Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

784 lines
28 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _sourceMap() {
const data = _interopRequireDefault(require("@parcel/source-map"));
_sourceMap = function () {
return data;
};
return data;
}
function _plugin() {
const data = require("@parcel/plugin");
_plugin = function () {
return data;
};
return data;
}
var _native = require("../native");
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _browserslist() {
const data = _interopRequireDefault(require("browserslist"));
_browserslist = function () {
return data;
};
return data;
}
function _semver() {
const data = _interopRequireDefault(require("semver"));
_semver = function () {
return data;
};
return data;
}
function _nullthrows() {
const data = _interopRequireDefault(require("nullthrows"));
_nullthrows = function () {
return data;
};
return data;
}
function _diagnostic() {
const data = _interopRequireWildcard(require("@parcel/diagnostic"));
_diagnostic = function () {
return data;
};
return data;
}
function _utils() {
const data = require("@parcel/utils");
_utils = function () {
return data;
};
return data;
}
function _micromatch() {
const data = require("micromatch");
_micromatch = function () {
return data;
};
return data;
}
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const JSX_EXTENSIONS = {
jsx: true,
tsx: true
};
const JSX_PRAGMA = {
react: {
pragma: 'React.createElement',
pragmaFrag: 'React.Fragment',
automatic: '>= 17.0.0'
},
preact: {
pragma: 'h',
pragmaFrag: 'Fragment',
automatic: '>= 10.5.0'
},
nervjs: {
pragma: 'Nerv.createElement',
pragmaFrag: undefined,
automatic: undefined
},
hyperapp: {
pragma: 'h',
pragmaFrag: undefined,
automatic: undefined
}
};
const BROWSER_MAPPING = {
and_chr: 'chrome',
and_ff: 'firefox',
ie_mob: 'ie',
ios_saf: 'ios',
op_mob: 'opera',
and_qq: null,
and_uc: null,
baidu: null,
bb: null,
kaios: null,
op_mini: null
}; // List of browsers to exclude when the esmodule target is specified.
// Based on https://caniuse.com/#feat=es6-module
const ESMODULE_BROWSERS = ['not ie <= 11', 'not edge < 16', 'not firefox < 60', 'not chrome < 61', 'not safari < 11', 'not opera < 48', 'not ios_saf < 11', 'not op_mini all', 'not android < 76', 'not blackberry > 0', 'not op_mob > 0', 'not and_chr < 76', 'not and_ff < 68', 'not ie_mob > 0', 'not and_uc > 0', 'not samsung < 8.2', 'not and_qq > 0', 'not baidu > 0', 'not kaios > 0'];
const CONFIG_SCHEMA = {
type: 'object',
properties: {
inlineFS: {
type: 'boolean'
},
inlineEnvironment: {
oneOf: [{
type: 'boolean'
}, {
type: 'array',
items: {
type: 'string'
}
}]
}
},
additionalProperties: false
};
const SCRIPT_ERRORS = {
browser: {
message: 'Browser scripts cannot have imports or exports.',
hint: 'Add the type="module" attribute to the <script> tag.'
},
'web-worker': {
message: 'Web workers cannot have imports or exports without the `type: "module"` option.',
hint: "Add {type: 'module'} as a second argument to the Worker constructor."
},
'service-worker': {
message: 'Service workers cannot have imports or exports without the `type: "module"` option.',
hint: "Add {type: 'module'} as a second argument to the navigator.serviceWorker.register() call."
}
};
var _default = new (_plugin().Transformer)({
async loadConfig({
config,
options
}) {
let pkg = await config.getPackage();
let isJSX, pragma, pragmaFrag, jsxImportSource, automaticJSXRuntime, reactRefresh, decorators;
if (config.isSource) {
var _pkg$dependencies2, _pkg$devDependencies2, _pkg$peerDependencies2, _tsconfig$contents;
let reactLib;
if (pkg !== null && pkg !== void 0 && pkg.alias && pkg.alias['react']) {
// e.g.: `{ alias: { "react": "preact/compat" } }`
reactLib = 'react';
} else {
// Find a dependency that we can map to a JSX pragma
reactLib = Object.keys(JSX_PRAGMA).find(libName => {
var _pkg$dependencies, _pkg$devDependencies, _pkg$peerDependencies;
return (pkg === null || pkg === void 0 ? void 0 : (_pkg$dependencies = pkg.dependencies) === null || _pkg$dependencies === void 0 ? void 0 : _pkg$dependencies[libName]) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$devDependencies = pkg.devDependencies) === null || _pkg$devDependencies === void 0 ? void 0 : _pkg$devDependencies[libName]) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$peerDependencies = pkg.peerDependencies) === null || _pkg$peerDependencies === void 0 ? void 0 : _pkg$peerDependencies[libName]);
});
}
reactRefresh = options.hmrOptions && options.mode === 'development' && Boolean((pkg === null || pkg === void 0 ? void 0 : (_pkg$dependencies2 = pkg.dependencies) === null || _pkg$dependencies2 === void 0 ? void 0 : _pkg$dependencies2.react) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$devDependencies2 = pkg.devDependencies) === null || _pkg$devDependencies2 === void 0 ? void 0 : _pkg$devDependencies2.react) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$peerDependencies2 = pkg.peerDependencies) === null || _pkg$peerDependencies2 === void 0 ? void 0 : _pkg$peerDependencies2.react));
let tsconfig = await config.getConfigFrom(options.projectRoot + '/index', ['tsconfig.json', 'jsconfig.json']);
let compilerOptions = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$contents = tsconfig.contents) === null || _tsconfig$contents === void 0 ? void 0 : _tsconfig$contents.compilerOptions; // Use explicitly defined JSX options in tsconfig.json over inferred values from dependencies.
pragma = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFactory) || (reactLib ? JSX_PRAGMA[reactLib].pragma : undefined);
pragmaFrag = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFragmentFactory) || (reactLib ? JSX_PRAGMA[reactLib].pragmaFrag : undefined);
if ((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsx' || (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsxdev' || compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxImportSource) {
jsxImportSource = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxImportSource;
automaticJSXRuntime = true;
} else if (reactLib) {
var _JSX_PRAGMA$reactLib, _pkg$dependencies3, _pkg$devDependencies3, _pkg$peerDependencies3, _semver$minVersion;
let automaticVersion = (_JSX_PRAGMA$reactLib = JSX_PRAGMA[reactLib]) === null || _JSX_PRAGMA$reactLib === void 0 ? void 0 : _JSX_PRAGMA$reactLib.automatic;
let reactLibVersion = (pkg === null || pkg === void 0 ? void 0 : (_pkg$dependencies3 = pkg.dependencies) === null || _pkg$dependencies3 === void 0 ? void 0 : _pkg$dependencies3[reactLib]) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$devDependencies3 = pkg.devDependencies) === null || _pkg$devDependencies3 === void 0 ? void 0 : _pkg$devDependencies3[reactLib]) || (pkg === null || pkg === void 0 ? void 0 : (_pkg$peerDependencies3 = pkg.peerDependencies) === null || _pkg$peerDependencies3 === void 0 ? void 0 : _pkg$peerDependencies3[reactLib]);
let minReactLibVersion = reactLibVersion != null && reactLibVersion !== '*' ? (_semver$minVersion = _semver().default.minVersion(reactLibVersion)) === null || _semver$minVersion === void 0 ? void 0 : _semver$minVersion.toString() : null;
automaticJSXRuntime = automaticVersion && !(compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxFactory) && minReactLibVersion != null && _semver().default.satisfies(minReactLibVersion, automaticVersion);
if (automaticJSXRuntime) {
jsxImportSource = reactLib;
}
}
isJSX = Boolean((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) || pragma);
decorators = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.experimentalDecorators;
} // Check if we should ignore fs calls
// See https://github.com/defunctzombie/node-browser-resolve#skip
let ignoreFS = pkg && pkg.browser && typeof pkg.browser === 'object' && pkg.browser.fs === false;
let result = await config.getConfigFrom(_path().default.join(options.projectRoot, 'index'), ['package.json']);
let rootPkg = result === null || result === void 0 ? void 0 : result.contents;
let inlineEnvironment = config.isSource;
let inlineFS = !ignoreFS;
if (result && rootPkg !== null && rootPkg !== void 0 && rootPkg['@parcel/transformer-js']) {
var _rootPkg$ParcelTran, _rootPkg$ParcelTran2, _rootPkg$ParcelTran3, _rootPkg$ParcelTran4;
_utils().validateSchema.diagnostic(CONFIG_SCHEMA, {
data: rootPkg['@parcel/transformer-js'],
// FIXME
source: await options.inputFS.readFile(result.filePath, 'utf8'),
filePath: result.filePath,
prependKey: `/${(0, _diagnostic().encodeJSONKeyComponent)('@parcel/transformer-js')}`
}, // FIXME
'@parcel/transformer-js', 'Invalid config for @parcel/transformer-js');
inlineEnvironment = (_rootPkg$ParcelTran = (_rootPkg$ParcelTran2 = rootPkg['@parcel/transformer-js']) === null || _rootPkg$ParcelTran2 === void 0 ? void 0 : _rootPkg$ParcelTran2.inlineEnvironment) !== null && _rootPkg$ParcelTran !== void 0 ? _rootPkg$ParcelTran : inlineEnvironment;
inlineFS = (_rootPkg$ParcelTran3 = (_rootPkg$ParcelTran4 = rootPkg['@parcel/transformer-js']) === null || _rootPkg$ParcelTran4 === void 0 ? void 0 : _rootPkg$ParcelTran4.inlineFS) !== null && _rootPkg$ParcelTran3 !== void 0 ? _rootPkg$ParcelTran3 : inlineFS;
}
return {
isJSX,
automaticJSXRuntime,
jsxImportSource,
pragma,
pragmaFrag,
inlineEnvironment,
inlineFS,
reactRefresh,
decorators
};
},
async transform({
asset,
config,
options,
logger
}) {
let [code, originalMap] = await Promise.all([asset.getBuffer(), asset.getMap(), _native.init]);
let targets;
if (asset.isSource) {
if (asset.env.isElectron() && asset.env.engines.electron) {
var _semver$minVersion2;
targets = {
electron: (_semver$minVersion2 = _semver().default.minVersion(asset.env.engines.electron)) === null || _semver$minVersion2 === void 0 ? void 0 : _semver$minVersion2.toString()
};
} else if (asset.env.isBrowser() && asset.env.engines.browsers) {
targets = {};
let browsers = Array.isArray(asset.env.engines.browsers) ? asset.env.engines.browsers : [asset.env.engines.browsers]; // If the output format is esmodule, exclude browsers
// that support them natively so that we transpile less.
if (asset.env.outputFormat === 'esmodule') {
browsers = [...browsers, ...ESMODULE_BROWSERS];
}
browsers = (0, _browserslist().default)(browsers);
for (let browser of browsers) {
let [name, version] = browser.split(' ');
if (BROWSER_MAPPING.hasOwnProperty(name)) {
name = BROWSER_MAPPING[name];
if (!name) {
continue;
}
}
let [major, minor = '0', patch = '0'] = version.split('-')[0].split('.');
let semverVersion = `${major}.${minor}.${patch}`;
if (targets[name] == null || _semver().default.gt(targets[name], semverVersion)) {
targets[name] = semverVersion;
}
}
} else if (asset.env.isNode() && asset.env.engines.node) {
var _semver$minVersion3;
targets = {
node: (_semver$minVersion3 = _semver().default.minVersion(asset.env.engines.node)) === null || _semver$minVersion3 === void 0 ? void 0 : _semver$minVersion3.toString()
};
}
}
let env = {};
if (!(config !== null && config !== void 0 && config.inlineEnvironment)) {
if (options.env.NODE_ENV != null) {
env.NODE_ENV = options.env.NODE_ENV;
}
} else if (Array.isArray(config === null || config === void 0 ? void 0 : config.inlineEnvironment)) {
for (let key in options.env) {
if ((0, _micromatch().isMatch)(key, config.inlineEnvironment)) {
env[key] = String(options.env[key]);
}
}
} else {
for (let key in options.env) {
if (!key.startsWith('npm_')) {
env[key] = String(options.env[key]);
}
}
}
let supportsModuleWorkers = asset.env.shouldScopeHoist && asset.env.supports('worker-module', true);
let isJSX = Boolean(config === null || config === void 0 ? void 0 : config.isJSX);
if (asset.isSource) {
if (asset.type === 'ts') {
isJSX = false;
} else if (!isJSX) {
isJSX = Boolean(JSX_EXTENSIONS[asset.type]);
}
}
let {
dependencies,
code: compiledCode,
map,
shebang,
hoist_result,
needs_esm_helpers,
diagnostics,
used_env
} = (0, _native.transform)({
filename: asset.filePath,
code,
module_id: asset.id,
project_root: options.projectRoot,
replace_env: !asset.env.isNode(),
inline_fs: Boolean(config === null || config === void 0 ? void 0 : config.inlineFS) && !asset.env.isNode(),
insert_node_globals: !asset.env.isNode(),
is_browser: asset.env.isBrowser(),
is_worker: asset.env.isWorker(),
env,
is_type_script: asset.type === 'ts' || asset.type === 'tsx',
is_jsx: isJSX,
jsx_pragma: config === null || config === void 0 ? void 0 : config.pragma,
jsx_pragma_frag: config === null || config === void 0 ? void 0 : config.pragmaFrag,
automatic_jsx_runtime: Boolean(config === null || config === void 0 ? void 0 : config.automaticJSXRuntime),
jsx_import_source: config === null || config === void 0 ? void 0 : config.jsxImportSource,
is_development: options.mode === 'development',
react_refresh: asset.env.isBrowser() && !asset.env.isWorker() && !asset.env.isWorklet() && Boolean(config === null || config === void 0 ? void 0 : config.reactRefresh),
decorators: Boolean(config === null || config === void 0 ? void 0 : config.decorators),
targets,
source_maps: !!asset.env.sourceMap,
scope_hoist: asset.env.shouldScopeHoist && asset.env.sourceType !== 'script',
source_type: asset.env.sourceType === 'script' ? 'Script' : 'Module',
supports_module_workers: supportsModuleWorkers,
is_library: asset.env.isLibrary,
is_esm_output: asset.env.outputFormat === 'esmodule',
trace_bailouts: options.logLevel === 'verbose'
});
let convertLoc = loc => {
var _asset$meta$startLine, _asset$meta$startLine2;
let location = {
filePath: asset.filePath,
start: {
line: loc.start_line + Number((_asset$meta$startLine = asset.meta.startLine) !== null && _asset$meta$startLine !== void 0 ? _asset$meta$startLine : 1) - 1,
column: loc.start_col
},
end: {
line: loc.end_line + Number((_asset$meta$startLine2 = asset.meta.startLine) !== null && _asset$meta$startLine2 !== void 0 ? _asset$meta$startLine2 : 1) - 1,
column: loc.end_col
}
}; // If there is an original source map, use it to remap to the original source location.
if (originalMap) {
location = (0, _utils().remapSourceLocation)(location, originalMap);
}
return location;
};
if (diagnostics) {
let errors = diagnostics.filter(d => d.severity === 'Error' || d.severity === 'SourceError' && asset.isSource);
let warnings = diagnostics.filter(d => d.severity === 'Warning' || d.severity === 'SourceError' && !asset.isSource);
let convertDiagnostic = diagnostic => {
var _diagnostic$code_high;
let message = diagnostic.message;
if (message === 'SCRIPT_ERROR') {
let err = SCRIPT_ERRORS[asset.env.context];
message = (err === null || err === void 0 ? void 0 : err.message) || SCRIPT_ERRORS.browser.message;
}
let res = {
message,
codeFrames: [{
filePath: asset.filePath,
codeHighlights: (_diagnostic$code_high = diagnostic.code_highlights) === null || _diagnostic$code_high === void 0 ? void 0 : _diagnostic$code_high.map(highlight => {
let {
start,
end
} = convertLoc(highlight.loc);
return {
message: highlight.message,
start,
end
};
})
}],
hints: diagnostic.hints
};
if (diagnostic.documentation_url) {
res.documentationURL = diagnostic.documentation_url;
}
if (diagnostic.show_environment) {
if (asset.env.loc && asset.env.loc.filePath !== asset.filePath) {
var _res$codeFrames;
(_res$codeFrames = res.codeFrames) === null || _res$codeFrames === void 0 ? void 0 : _res$codeFrames.push({
filePath: asset.env.loc.filePath,
codeHighlights: [{
start: asset.env.loc.start,
end: asset.env.loc.end,
message: 'The environment was originally created here'
}]
});
}
let err = SCRIPT_ERRORS[asset.env.context];
if (err) {
if (!res.hints) {
res.hints = [err.hint];
} else {
res.hints.push(err.hint);
}
}
}
return res;
};
if (errors.length > 0) {
throw new (_diagnostic().default)({
diagnostic: errors.map(convertDiagnostic)
});
}
logger.warn(warnings.map(convertDiagnostic));
}
if (shebang) {
asset.meta.interpreter = shebang;
}
for (let env of used_env) {
asset.invalidateOnEnvChange(env);
}
for (let dep of dependencies) {
if (dep.kind === 'WebWorker') {
// Use native ES module output if the worker was created with `type: 'module'` and all targets
// support native module workers. Only do this if parent asset output format is also esmodule so that
// assets can be shared between workers and the main thread in the global output format.
let outputFormat;
if (asset.env.outputFormat === 'esmodule' && dep.source_type === 'Module' && supportsModuleWorkers) {
outputFormat = 'esmodule';
} else {
outputFormat = asset.env.outputFormat === 'commonjs' ? 'commonjs' : 'global';
}
let loc = convertLoc(dep.loc);
asset.addURLDependency(dep.specifier, {
loc,
env: {
context: 'web-worker',
sourceType: dep.source_type === 'Module' ? 'module' : 'script',
outputFormat,
loc
},
meta: {
webworker: true,
placeholder: dep.placeholder
}
});
} else if (dep.kind === 'ServiceWorker') {
let loc = convertLoc(dep.loc);
asset.addURLDependency(dep.specifier, {
loc,
needsStableName: true,
env: {
context: 'service-worker',
sourceType: dep.source_type === 'Module' ? 'module' : 'script',
outputFormat: 'global',
// TODO: module service worker support
loc
},
meta: {
placeholder: dep.placeholder
}
});
} else if (dep.kind === 'Worklet') {
let loc = convertLoc(dep.loc);
asset.addURLDependency(dep.specifier, {
loc,
env: {
context: 'worklet',
sourceType: 'module',
outputFormat: 'esmodule',
// Worklets require ESM
loc
},
meta: {
placeholder: dep.placeholder
}
});
} else if (dep.kind === 'Url') {
asset.addURLDependency(dep.specifier, {
bundleBehavior: 'isolated',
loc: convertLoc(dep.loc),
meta: {
placeholder: dep.placeholder
}
});
} else if (dep.kind === 'File') {
asset.invalidateOnFileChange(dep.specifier);
} else {
let meta = {
kind: dep.kind
};
if (dep.attributes) {
meta.importAttributes = dep.attributes;
}
if (dep.placeholder) {
meta.placeholder = dep.placeholder;
}
let env;
if (dep.kind === 'DynamicImport') {
// https://html.spec.whatwg.org/multipage/webappapis.html#hostimportmoduledynamically(referencingscriptormodule,-modulerequest,-promisecapability)
if (asset.env.isWorklet() || asset.env.context === 'service-worker') {
let loc = convertLoc(dep.loc);
let diagnostic = {
message: `import() is not allowed in ${asset.env.isWorklet() ? 'worklets' : 'service workers'}.`,
codeFrames: [{
filePath: asset.filePath,
codeHighlights: [{
start: loc.start,
end: loc.end
}]
}],
hints: ['Try using a static `import`.']
};
if (asset.env.loc) {
diagnostic.codeFrames.push({
filePath: asset.env.loc.filePath,
codeHighlights: [{
start: asset.env.loc.start,
end: asset.env.loc.end,
message: 'The environment was originally created here'
}]
});
}
throw new (_diagnostic().default)({
diagnostic
});
} // If all of the target engines support dynamic import natively,
// we can output native ESM if scope hoisting is enabled.
// Only do this for scripts, rather than modules in the global
// output format so that assets can be shared between the bundles.
let outputFormat = asset.env.outputFormat;
if (asset.env.sourceType === 'script' && asset.env.shouldScopeHoist && asset.env.supports('dynamic-import', true)) {
outputFormat = 'esmodule';
}
env = {
sourceType: 'module',
outputFormat,
loc: convertLoc(dep.loc)
};
} // Always bundle helpers, even with includeNodeModules: false, except if this is a library.
let isHelper = dep.is_helper && !dep.specifier.endsWith('/jsx-runtime');
if (isHelper && !asset.env.isLibrary) {
env = { ...env,
includeNodeModules: true
};
}
asset.addDependency({
specifier: dep.specifier,
specifierType: dep.kind === 'Require' ? 'commonjs' : 'esm',
loc: convertLoc(dep.loc),
priority: dep.kind === 'DynamicImport' ? 'lazy' : 'sync',
isOptional: dep.is_optional,
meta,
resolveFrom: isHelper ? __filename : undefined,
env
});
}
}
asset.meta.id = asset.id;
if (hoist_result) {
asset.symbols.ensure();
for (let {
exported,
local,
loc
} of hoist_result.exported_symbols) {
asset.symbols.set(exported, local, convertLoc(loc));
}
let deps = new Map(asset.getDependencies().map(dep => {
var _dep$meta$placeholder;
return [(_dep$meta$placeholder = dep.meta.placeholder) !== null && _dep$meta$placeholder !== void 0 ? _dep$meta$placeholder : dep.specifier, dep];
}));
for (let dep of deps.values()) {
dep.symbols.ensure();
}
for (let {
source,
local,
imported,
loc
} of hoist_result.imported_symbols) {
let dep = deps.get(source);
if (!dep) continue;
dep.symbols.set(imported, local, convertLoc(loc));
}
for (let {
source,
local,
imported,
loc
} of hoist_result.re_exports) {
let dep = deps.get(source);
if (!dep) continue;
if (local === '*' && imported === '*') {
dep.symbols.set('*', '*', convertLoc(loc), true);
} else {
var _dep$symbols$get$loca, _dep$symbols$get;
let reExportName = (_dep$symbols$get$loca = (_dep$symbols$get = dep.symbols.get(imported)) === null || _dep$symbols$get === void 0 ? void 0 : _dep$symbols$get.local) !== null && _dep$symbols$get$loca !== void 0 ? _dep$symbols$get$loca : `$${asset.id}$re_export$${local}`;
asset.symbols.set(local, reExportName);
dep.symbols.set(imported, reExportName, convertLoc(loc), true);
}
}
for (let specifier of hoist_result.wrapped_requires) {
let dep = deps.get(specifier);
if (!dep) continue;
dep.meta.shouldWrap = true;
}
for (let name in hoist_result.dynamic_imports) {
let dep = deps.get(hoist_result.dynamic_imports[name]);
if (!dep) continue;
dep.meta.promiseSymbol = name;
}
if (hoist_result.self_references.length > 0) {
let symbols = new Map();
for (let name of hoist_result.self_references) {
// Do not create a self-reference for the `default` symbol unless we have seen an __esModule flag.
if (name === 'default' && !asset.symbols.hasExportSymbol('__esModule')) {
continue;
}
let local = (0, _nullthrows().default)(asset.symbols.get(name)).local;
symbols.set(name, {
local,
isWeak: false,
loc: null
});
}
asset.addDependency({
specifier: `./${_path().default.basename(asset.filePath)}`,
specifierType: 'esm',
symbols
});
} // Add * symbol if there are CJS exports, no imports/exports at all, or the asset is wrapped.
// This allows accessing symbols that don't exist without errors in symbol propagation.
if (hoist_result.has_cjs_exports || !hoist_result.is_esm && deps.size === 0 && Object.keys(hoist_result.exported_symbols).length === 0 || hoist_result.should_wrap && !asset.symbols.hasExportSymbol('*')) {
asset.symbols.set('*', `$${asset.id}$exports`);
}
asset.meta.hasCJSExports = hoist_result.has_cjs_exports;
asset.meta.staticExports = hoist_result.static_cjs_exports;
asset.meta.shouldWrap = hoist_result.should_wrap;
} else if (needs_esm_helpers) {
asset.addDependency({
specifier: '@parcel/transformer-js/src/esmodule-helpers.js',
specifierType: 'esm',
resolveFrom: __filename,
env: {
includeNodeModules: {
'@parcel/transformer-js': true
}
}
});
}
asset.type = 'js';
asset.setBuffer(compiledCode);
if (map) {
let sourceMap = new (_sourceMap().default)(options.projectRoot);
sourceMap.addVLQMap(JSON.parse(map));
if (originalMap) {
sourceMap.extends(originalMap);
}
asset.setMap(sourceMap);
}
return [asset];
}
});
exports.default = _default;