@jsenv/core 40.3.2 → 40.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/browserslist_index/browserslist_index.js +4951 -0
- package/dist/build/build.js +228 -83
- package/dist/build/jsenv_core_node_modules.js +709 -0
- package/dist/build/jsenv_core_packages.js +10915 -0
- package/dist/start_build_server/jsenv_core_node_modules.js +685 -0
- package/dist/start_build_server/jsenv_core_packages.js +1550 -0
- package/dist/start_build_server/start_build_server.js +2 -9
- package/dist/start_dev_server/jsenv_core_node_modules.js +685 -0
- package/dist/start_dev_server/jsenv_core_packages.js +6185 -0
- package/dist/start_dev_server/start_dev_server.js +109 -75
- package/package.json +20 -20
- package/src/build/build.js +79 -0
- package/src/build/build_specifier_manager.js +2 -2
- package/src/build/build_urls_generator.js +42 -5
- package/src/kitchen/errors.js +6 -1
- package/src/kitchen/kitchen.js +95 -7
- package/src/plugins/package_side_effects/jsenv_plugin_package_side_effects.js +5 -65
- package/dist/babel_helpers/AsyncGenerator/AsyncGenerator.js +0 -112
- package/dist/babel_helpers/AwaitValue/AwaitValue.js +0 -3
- package/dist/babel_helpers/OverloadYield/OverloadYield.js +0 -11
- package/dist/babel_helpers/applyDecoratedDescriptor/applyDecoratedDescriptor.js +0 -32
- package/dist/babel_helpers/applyDecs/applyDecs.js +0 -813
- package/dist/babel_helpers/applyDecs2203/applyDecs2203.js +0 -635
- package/dist/babel_helpers/applyDecs2203R/applyDecs2203R.js +0 -654
- package/dist/babel_helpers/applyDecs2301/applyDecs2301.js +0 -721
- package/dist/babel_helpers/applyDecs2305/applyDecs2305.js +0 -531
- package/dist/babel_helpers/arrayLikeToArray/arrayLikeToArray.js +0 -7
- package/dist/babel_helpers/arrayWithHoles/arrayWithHoles.js +0 -4
- package/dist/babel_helpers/arrayWithoutHoles/arrayWithoutHoles.js +0 -6
- package/dist/babel_helpers/assertThisInitialized/assertThisInitialized.js +0 -9
- package/dist/babel_helpers/asyncGeneratorDelegate/asyncGeneratorDelegate.js +0 -55
- package/dist/babel_helpers/asyncIterator/asyncIterator.js +0 -68
- package/dist/babel_helpers/asyncToGenerator/asyncToGenerator.js +0 -34
- package/dist/babel_helpers/awaitAsyncGenerator/awaitAsyncGenerator.js +0 -5
- package/dist/babel_helpers/callSuper/callSuper.js +0 -25
- package/dist/babel_helpers/checkInRHS/checkInRHS.js +0 -11
- package/dist/babel_helpers/classApplyDescriptorDestructureSet/classApplyDescriptorDestructureSet.js +0 -23
- package/dist/babel_helpers/classApplyDescriptorGet/classApplyDescriptorGet.js +0 -6
- package/dist/babel_helpers/classApplyDescriptorSet/classApplyDescriptorSet.js +0 -13
- package/dist/babel_helpers/classCallCheck/classCallCheck.js +0 -5
- package/dist/babel_helpers/classCheckPrivateStaticAccess/classCheckPrivateStaticAccess.js +0 -8
- package/dist/babel_helpers/classCheckPrivateStaticFieldDescriptor/classCheckPrivateStaticFieldDescriptor.js +0 -11
- package/dist/babel_helpers/classExtractFieldDescriptor/classExtractFieldDescriptor.js +0 -13
- package/dist/babel_helpers/classNameTDZError/classNameTDZError.js +0 -6
- package/dist/babel_helpers/classPrivateFieldDestructureSet/classPrivateFieldDestructureSet.js +0 -7
- package/dist/babel_helpers/classPrivateFieldGet/classPrivateFieldGet.js +0 -7
- package/dist/babel_helpers/classPrivateFieldLooseBase/classPrivateFieldLooseBase.js +0 -6
- package/dist/babel_helpers/classPrivateFieldLooseKey/classPrivateFieldLooseKey.js +0 -5
- package/dist/babel_helpers/classPrivateFieldSet/classPrivateFieldSet.js +0 -8
- package/dist/babel_helpers/classPrivateMethodGet/classPrivateMethodGet.js +0 -6
- package/dist/babel_helpers/classPrivateMethodSet/classPrivateMethodSet.js +0 -3
- package/dist/babel_helpers/classStaticPrivateFieldSpecGet/classStaticPrivateFieldSpecGet.js +0 -13
- package/dist/babel_helpers/classStaticPrivateFieldSpecSet/classStaticPrivateFieldSpecSet.js +0 -15
- package/dist/babel_helpers/classStaticPrivateMethodGet/classStaticPrivateMethodGet.js +0 -10
- package/dist/babel_helpers/classStaticPrivateMethodSet/classStaticPrivateMethodSet.js +0 -3
- package/dist/babel_helpers/construct/construct.js +0 -20
- package/dist/babel_helpers/createClass/createClass.js +0 -17
- package/dist/babel_helpers/createForOfIteratorHelper/createForOfIteratorHelper.js +0 -61
- package/dist/babel_helpers/createForOfIteratorHelperLoose/createForOfIteratorHelperLoose.js +0 -24
- package/dist/babel_helpers/createRawReactElement/createRawReactElement.js +0 -50
- package/dist/babel_helpers/createSuper/createSuper.js +0 -22
- package/dist/babel_helpers/decorate/decorate.js +0 -488
- package/dist/babel_helpers/defaults/defaults.js +0 -11
- package/dist/babel_helpers/defineAccessor/defineAccessor.js +0 -6
- package/dist/babel_helpers/defineEnumerableProperties/defineEnumerableProperties.js +0 -23
- package/dist/babel_helpers/defineProperty/defineProperty.js +0 -21
- package/dist/babel_helpers/dispose/dispose.js +0 -45
- package/dist/babel_helpers/extends/extends.js +0 -14
- package/dist/babel_helpers/get/get.js +0 -19
- package/dist/babel_helpers/getPrototypeOf/getPrototypeOf.js +0 -4
- package/dist/babel_helpers/identity/identity.js +0 -3
- package/dist/babel_helpers/importDeferProxy/importDeferProxy.js +0 -31
- package/dist/babel_helpers/inherits/inherits.js +0 -19
- package/dist/babel_helpers/inheritsLoose/inheritsLoose.js +0 -7
- package/dist/babel_helpers/initializerDefineProperty/initializerDefineProperty.js +0 -12
- package/dist/babel_helpers/initializerWarningHelper/initializerWarningHelper.js +0 -6
- package/dist/babel_helpers/instanceof/instanceof.js +0 -10
- package/dist/babel_helpers/interopRequireDefault/interopRequireDefault.js +0 -3
- package/dist/babel_helpers/interopRequireWildcard/interopRequireWildcard.js +0 -47
- package/dist/babel_helpers/isNativeFunction/isNativeFunction.js +0 -9
- package/dist/babel_helpers/isNativeReflectConstruct/isNativeReflectConstruct.js +0 -19
- package/dist/babel_helpers/iterableToArray/iterableToArray.js +0 -7
- package/dist/babel_helpers/iterableToArrayLimit/iterableToArrayLimit.js +0 -54
- package/dist/babel_helpers/iterableToArrayLimitLoose/iterableToArrayLimitLoose.js +0 -16
- package/dist/babel_helpers/jsx/jsx.js +0 -50
- package/dist/babel_helpers/maybeArrayLike/maybeArrayLike.js +0 -10
- package/dist/babel_helpers/newArrowCheck/newArrowCheck.js +0 -5
- package/dist/babel_helpers/nonIterableRest/nonIterableRest.js +0 -5
- package/dist/babel_helpers/nonIterableSpread/nonIterableSpread.js +0 -5
- package/dist/babel_helpers/nullishReceiverError/nullishReceiverError.js +0 -3
- package/dist/babel_helpers/objectDestructuringEmpty/objectDestructuringEmpty.js +0 -3
- package/dist/babel_helpers/objectSpread/objectSpread.js +0 -23
- package/dist/babel_helpers/objectSpread2/objectSpread2.js +0 -43
- package/dist/babel_helpers/objectWithoutProperties/objectWithoutProperties.js +0 -19
- package/dist/babel_helpers/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js +0 -13
- package/dist/babel_helpers/possibleConstructorReturn/possibleConstructorReturn.js +0 -12
- package/dist/babel_helpers/readOnlyError/readOnlyError.js +0 -4
- package/dist/babel_helpers/regeneratorRuntime/regeneratorRuntime.js +0 -698
- package/dist/babel_helpers/set/set.js +0 -47
- package/dist/babel_helpers/setFunctionName/setFunctionName.js +0 -19
- package/dist/babel_helpers/setPrototypeOf/setPrototypeOf.js +0 -7
- package/dist/babel_helpers/skipFirstGeneratorNext/skipFirstGeneratorNext.js +0 -8
- package/dist/babel_helpers/slicedToArray/slicedToArray.js +0 -10
- package/dist/babel_helpers/slicedToArrayLoose/slicedToArrayLoose.js +0 -13
- package/dist/babel_helpers/superPropBase/superPropBase.js +0 -10
- package/dist/babel_helpers/taggedTemplateLiteral/taggedTemplateLiteral.js +0 -10
- package/dist/babel_helpers/taggedTemplateLiteralLoose/taggedTemplateLiteralLoose.js +0 -7
- package/dist/babel_helpers/tdz/tdz.js +0 -4
- package/dist/babel_helpers/temporalRef/temporalRef.js +0 -6
- package/dist/babel_helpers/temporalUndefined/temporalUndefined.js +0 -3
- package/dist/babel_helpers/toArray/toArray.js +0 -10
- package/dist/babel_helpers/toConsumableArray/toConsumableArray.js +0 -10
- package/dist/babel_helpers/toPrimitive/toPrimitive.js +0 -14
- package/dist/babel_helpers/toPropertyKey/toPropertyKey.js +0 -10
- package/dist/babel_helpers/typeof/typeof.js +0 -15
- package/dist/babel_helpers/unsupportedIterableToArray/unsupportedIterableToArray.js +0 -12
- package/dist/babel_helpers/using/using.js +0 -23
- package/dist/babel_helpers/wrapAsyncGenerator/wrapAsyncGenerator.js +0 -8
- package/dist/babel_helpers/wrapNativeSuper/wrapNativeSuper.js +0 -30
- package/dist/babel_helpers/wrapRegExp/wrapRegExp.js +0 -79
- package/dist/babel_helpers/writeOnlyError/writeOnlyError.js +0 -3
- package/dist/jsenv_core_node_modules.js +0 -2045
- package/dist/jsenv_core_packages.js +0 -23833
package/dist/build/build.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { parseHtml, injectHtmlNodeAsEarlyAsPossible, createHtmlNode, stringifyHtmlAst, applyBabelPlugins, generateUrlForInlineContent, parseJsWithAcorn, visitHtmlNodes, analyzeScriptNode, getHtmlNodeText, getHtmlNodeAttribute, getHtmlNodePosition, getUrlForContentInsideHtml, setHtmlNodeAttributes, setHtmlNodeText, parseCssUrls, getHtmlNodeAttributePosition, parseSrcSet, removeHtmlNodeText, parseJsUrls, getUrlForContentInsideJs, analyzeLinkNode, injectJsenvScript, findHtmlNode, removeHtmlNode, insertHtmlNodeAfter } from "@jsenv/ast";
|
|
2
|
+
import { jsenvPluginBundling } from "@jsenv/plugin-bundling";
|
|
3
|
+
import { jsenvPluginMinification } from "@jsenv/plugin-minification";
|
|
4
|
+
import { jsenvPluginTranspilation, jsenvPluginJsModuleFallback } from "@jsenv/plugin-transpilation";
|
|
2
5
|
import { memoryUsage } from "node:process";
|
|
3
6
|
import { readFileSync, existsSync, readdirSync, lstatSync, realpathSync } from "node:fs";
|
|
4
|
-
import { lookupPackageDirectory
|
|
7
|
+
import { lookupPackageDirectory, registerDirectoryLifecycle, urlToRelativeUrl, createDetailedMessage, stringifyUrlSite, generateContentFrame, validateResponseIntegrity, urlIsInsideOf, ensureWindowsDriveLetter, setUrlFilename, moveUrl, getCallerPosition, urlToBasename, urlToExtension, asSpecifierWithoutSearch, asUrlWithoutSearch, injectQueryParamsIntoSpecifier, bufferToEtag, isFileSystemPath, urlToPathname, setUrlBasename, urlToFileSystemPath, writeFileSync, createLogger, URL_META, applyNodeEsmResolution, RUNTIME_COMPAT, normalizeUrl, ANSI, CONTENT_TYPE, urlToFilename, DATA_URL, errorToHTML, normalizeImportMap, composeTwoImportMaps, resolveImport, JS_QUOTES, defaultLookupPackageScope, defaultReadPackageJson, readCustomConditionsFromProcessArgs, readEntryStatSync, ensurePathnameTrailingSlash, compareFileUrls, applyFileSystemMagicResolution, getExtensionsToTry, setUrlExtension, isSpecifierForNodeBuiltin, renderDetails, humanizeDuration, humanizeFileSize, renderTable, renderBigSection, distributePercentages, humanizeMemory, comparePathnames, UNICODE, escapeRegexpSpecialChars, injectQueryParamIntoSpecifierWithoutEncoding, renderUrlOrRelativeUrlFilename, injectQueryParams, assertAndNormalizeDirectoryUrl, Abort, raceProcessTeardownEvents, startMonitoringCpuUsage, startMonitoringMemoryUsage, createLookupPackageDirectory, readPackageAtOrNull, inferRuntimeCompatFromClosestPackage, browserDefaultRuntimeCompat, nodeDefaultRuntimeCompat, clearDirectorySync, createTaskLog, ensureEmptyDirectory, updateJsonFileSync, createDynamicLog } from "./jsenv_core_packages.js";
|
|
5
8
|
import { pathToFileURL } from "node:url";
|
|
6
9
|
import { generateSourcemapFileUrl, createMagicSource, composeTwoSourcemaps, generateSourcemapDataUrl, SOURCEMAP } from "@jsenv/sourcemap";
|
|
7
10
|
import { performance } from "node:perf_hooks";
|
|
8
11
|
import { jsenvPluginSupervisor } from "@jsenv/plugin-supervisor";
|
|
9
12
|
import { WebSocketResponse, pickContentType } from "@jsenv/server";
|
|
10
13
|
import { randomUUID, createHash } from "node:crypto";
|
|
11
|
-
import "
|
|
12
|
-
import "../jsenv_core_node_modules.js";
|
|
14
|
+
import "./jsenv_core_node_modules.js";
|
|
13
15
|
import "node:os";
|
|
14
16
|
import "node:tty";
|
|
15
|
-
import "node:util";
|
|
16
17
|
import "node:path";
|
|
17
|
-
import "node:
|
|
18
|
-
import "@jsenv/js-module-fallback";
|
|
18
|
+
import "node:util";
|
|
19
19
|
|
|
20
20
|
const getDirectoryWatchPatterns = (
|
|
21
21
|
directoryUrl,
|
|
@@ -179,6 +179,7 @@ ${reason}`,
|
|
|
179
179
|
if (error.code === "DIRECTORY_REFERENCE_NOT_ALLOWED") {
|
|
180
180
|
error.message = createDetailedMessage(error.message, {
|
|
181
181
|
"reference trace": reference.trace.message,
|
|
182
|
+
...detailsFromFirstReference(reference),
|
|
182
183
|
});
|
|
183
184
|
return error;
|
|
184
185
|
}
|
|
@@ -418,7 +419,11 @@ const detailsFromFirstReference = (reference) => {
|
|
|
418
419
|
};
|
|
419
420
|
const getFirstReferenceInProject = (reference) => {
|
|
420
421
|
const ownerUrlInfo = reference.ownerUrlInfo;
|
|
421
|
-
if (
|
|
422
|
+
if (
|
|
423
|
+
!ownerUrlInfo.url.includes("/node_modules/") &&
|
|
424
|
+
ownerUrlInfo.packageDirectoryUrl ===
|
|
425
|
+
ownerUrlInfo.context.packageDirectory.url
|
|
426
|
+
) {
|
|
422
427
|
return reference;
|
|
423
428
|
}
|
|
424
429
|
return getFirstReferenceInProject(ownerUrlInfo.firstReference);
|
|
@@ -2646,10 +2651,9 @@ const shouldHandleSourcemap = (urlInfo) => {
|
|
|
2646
2651
|
return true;
|
|
2647
2652
|
};
|
|
2648
2653
|
|
|
2649
|
-
const inlineContentClientFileUrl =
|
|
2654
|
+
const inlineContentClientFileUrl = import.meta.resolve(
|
|
2650
2655
|
"../client/inline_content/inline_content.js",
|
|
2651
|
-
|
|
2652
|
-
).href;
|
|
2656
|
+
);
|
|
2653
2657
|
|
|
2654
2658
|
const createKitchen = ({
|
|
2655
2659
|
name,
|
|
@@ -2658,12 +2662,14 @@ const createKitchen = ({
|
|
|
2658
2662
|
|
|
2659
2663
|
rootDirectoryUrl,
|
|
2660
2664
|
mainFilePath,
|
|
2661
|
-
ignore,
|
|
2662
|
-
ignoreProtocol = "remove",
|
|
2663
|
-
supportedProtocols = ["file:", "data:", "virtual:", "http:", "https:"],
|
|
2664
2665
|
dev = false,
|
|
2665
2666
|
build = false,
|
|
2666
2667
|
runtimeCompat,
|
|
2668
|
+
|
|
2669
|
+
ignore,
|
|
2670
|
+
ignoreProtocol = "remove",
|
|
2671
|
+
supportedProtocols = ["file:", "data:", "virtual:", "http:", "https:"],
|
|
2672
|
+
|
|
2667
2673
|
// during dev/test clientRuntimeCompat is a single runtime
|
|
2668
2674
|
// during build clientRuntimeCompat is runtimeCompat
|
|
2669
2675
|
clientRuntimeCompat = runtimeCompat,
|
|
@@ -2676,12 +2682,17 @@ const createKitchen = ({
|
|
|
2676
2682
|
outDirectoryUrl,
|
|
2677
2683
|
initialContext = {},
|
|
2678
2684
|
packageDirectory,
|
|
2685
|
+
packageDependencies,
|
|
2679
2686
|
}) => {
|
|
2680
2687
|
const logger = createLogger({ logLevel });
|
|
2681
2688
|
|
|
2682
2689
|
const nodeRuntimeEnabled = Object.keys(runtimeCompat).includes("node");
|
|
2683
2690
|
const packageConditions = [nodeRuntimeEnabled ? "node" : "browser", "import"];
|
|
2684
2691
|
|
|
2692
|
+
if (packageDependencies === "auto") {
|
|
2693
|
+
packageDependencies = build && nodeRuntimeEnabled ? "ignore" : "include";
|
|
2694
|
+
}
|
|
2695
|
+
|
|
2685
2696
|
const kitchen = {
|
|
2686
2697
|
context: {
|
|
2687
2698
|
...initialContext,
|
|
@@ -2751,6 +2762,82 @@ const createKitchen = ({
|
|
|
2751
2762
|
const protocolIsSupported = supportedProtocols.includes(protocol);
|
|
2752
2763
|
return !protocolIsSupported;
|
|
2753
2764
|
};
|
|
2765
|
+
const isIgnoredBecauseInPackageDependencies = (() => {
|
|
2766
|
+
if (packageDependencies === undefined) {
|
|
2767
|
+
return FUNCTION_RETURNING_FALSE;
|
|
2768
|
+
}
|
|
2769
|
+
if (packageDependencies === "include") {
|
|
2770
|
+
return FUNCTION_RETURNING_FALSE;
|
|
2771
|
+
}
|
|
2772
|
+
if (!packageDirectory.url) {
|
|
2773
|
+
return FUNCTION_RETURNING_FALSE;
|
|
2774
|
+
}
|
|
2775
|
+
const rootPackageJSON = packageDirectory.read(packageDirectory.url);
|
|
2776
|
+
if (!rootPackageJSON) {
|
|
2777
|
+
return FUNCTION_RETURNING_FALSE;
|
|
2778
|
+
}
|
|
2779
|
+
const { dependencies = {}, optionalDependencies = {} } = rootPackageJSON;
|
|
2780
|
+
const dependencyKeys = Object.keys(dependencies);
|
|
2781
|
+
const optionalDependencyKeys = Object.keys(optionalDependencies);
|
|
2782
|
+
const dependencySet = new Set([
|
|
2783
|
+
...dependencyKeys,
|
|
2784
|
+
...optionalDependencyKeys,
|
|
2785
|
+
]);
|
|
2786
|
+
if (dependencySet.size === 0) {
|
|
2787
|
+
return FUNCTION_RETURNING_FALSE;
|
|
2788
|
+
}
|
|
2789
|
+
|
|
2790
|
+
let getEffect;
|
|
2791
|
+
if (packageDependencies === "ignore") {
|
|
2792
|
+
getEffect = (dependencyName) => {
|
|
2793
|
+
if (!dependencySet.has(dependencyName)) {
|
|
2794
|
+
return "include";
|
|
2795
|
+
}
|
|
2796
|
+
return "ignore";
|
|
2797
|
+
};
|
|
2798
|
+
} else if (typeof packageDependencies === "object") {
|
|
2799
|
+
let defaultEffect = "ignore";
|
|
2800
|
+
const dependencyEffectMap = new Map();
|
|
2801
|
+
for (const dependencyKey of Object.keys(packageDependencies)) {
|
|
2802
|
+
const dependencyEffect = packageDependencies[dependencyKey];
|
|
2803
|
+
if (dependencyKey === "*") {
|
|
2804
|
+
defaultEffect = dependencyEffect;
|
|
2805
|
+
} else {
|
|
2806
|
+
dependencyEffectMap.set(dependencyKey, dependencyEffect);
|
|
2807
|
+
}
|
|
2808
|
+
}
|
|
2809
|
+
getEffect = (dependencyName) => {
|
|
2810
|
+
if (!dependencySet.has(dependencyName)) {
|
|
2811
|
+
return "include";
|
|
2812
|
+
}
|
|
2813
|
+
const dependencyEffect = packageDependencies[dependencyName];
|
|
2814
|
+
if (dependencyEffect) {
|
|
2815
|
+
return dependencyEffect;
|
|
2816
|
+
}
|
|
2817
|
+
return defaultEffect;
|
|
2818
|
+
};
|
|
2819
|
+
}
|
|
2820
|
+
return (url) => {
|
|
2821
|
+
if (!url.startsWith("file:")) {
|
|
2822
|
+
return false;
|
|
2823
|
+
}
|
|
2824
|
+
const packageDirectoryUrl = packageDirectory.find(url);
|
|
2825
|
+
if (!packageDirectoryUrl) {
|
|
2826
|
+
return false;
|
|
2827
|
+
}
|
|
2828
|
+
const packageJSON = packageDirectory.read(packageDirectoryUrl);
|
|
2829
|
+
const name = packageJSON?.name;
|
|
2830
|
+
if (!name) {
|
|
2831
|
+
return false;
|
|
2832
|
+
}
|
|
2833
|
+
const effect = getEffect(name);
|
|
2834
|
+
if (effect !== "ignore") {
|
|
2835
|
+
return false;
|
|
2836
|
+
}
|
|
2837
|
+
return true;
|
|
2838
|
+
};
|
|
2839
|
+
})();
|
|
2840
|
+
|
|
2754
2841
|
let isIgnoredByParam = () => false;
|
|
2755
2842
|
if (ignore) {
|
|
2756
2843
|
const associations = URL_META.resolveAssociations(
|
|
@@ -2770,7 +2857,11 @@ const createKitchen = ({
|
|
|
2770
2857
|
};
|
|
2771
2858
|
}
|
|
2772
2859
|
const isIgnored = (url) => {
|
|
2773
|
-
return
|
|
2860
|
+
return (
|
|
2861
|
+
isIgnoredByProtocol(url) ||
|
|
2862
|
+
isIgnoredByParam(url) ||
|
|
2863
|
+
isIgnoredBecauseInPackageDependencies(url)
|
|
2864
|
+
);
|
|
2774
2865
|
};
|
|
2775
2866
|
const resolveReference = (reference) => {
|
|
2776
2867
|
const setReferenceUrl = (referenceUrl) => {
|
|
@@ -3261,6 +3352,8 @@ ${urlInfo.firstReference.trace.message}`;
|
|
|
3261
3352
|
return kitchen;
|
|
3262
3353
|
};
|
|
3263
3354
|
|
|
3355
|
+
const FUNCTION_RETURNING_FALSE = () => false;
|
|
3356
|
+
|
|
3264
3357
|
const debounceCook = (cook) => {
|
|
3265
3358
|
const pendingDishes = new Map();
|
|
3266
3359
|
return async (urlInfo, context) => {
|
|
@@ -8229,29 +8322,6 @@ const jsenvPluginPackageSideEffects = ({ packageDirectory }) => {
|
|
|
8229
8322
|
return [];
|
|
8230
8323
|
}
|
|
8231
8324
|
|
|
8232
|
-
const normalizeSideEffectFileUrl = (url) => {
|
|
8233
|
-
const urlRelativeToPackage = urlToRelativeUrl(url, packageDirectory.url);
|
|
8234
|
-
return urlRelativeToPackage[0] === "."
|
|
8235
|
-
? urlRelativeToPackage
|
|
8236
|
-
: `./${urlRelativeToPackage}`;
|
|
8237
|
-
};
|
|
8238
|
-
|
|
8239
|
-
const updatePackageSideEffects = (sideEffectBuildFileUrls) => {
|
|
8240
|
-
const packageJsonFileUrl = new URL("./package.json", packageDirectory.url)
|
|
8241
|
-
.href;
|
|
8242
|
-
const sideEffectRelativeUrlArray = [];
|
|
8243
|
-
for (const sideEffectBuildUrl of sideEffectBuildFileUrls) {
|
|
8244
|
-
sideEffectRelativeUrlArray.push(
|
|
8245
|
-
normalizeSideEffectFileUrl(sideEffectBuildUrl),
|
|
8246
|
-
);
|
|
8247
|
-
}
|
|
8248
|
-
updateJsonFileSync(packageJsonFileUrl, {
|
|
8249
|
-
sideEffects: sideEffectRelativeUrlArray,
|
|
8250
|
-
});
|
|
8251
|
-
};
|
|
8252
|
-
|
|
8253
|
-
const sideEffectBuildFileUrls = [];
|
|
8254
|
-
|
|
8255
8325
|
const packageSideEffectsCacheMap = new Map();
|
|
8256
8326
|
const readSideEffectInfoFromClosestPackage = (urlInfo) => {
|
|
8257
8327
|
const closestPackageDirectoryUrl = urlInfo.packageDirectoryUrl;
|
|
@@ -8377,52 +8447,17 @@ const jsenvPluginPackageSideEffects = ({ packageDirectory }) => {
|
|
|
8377
8447
|
return;
|
|
8378
8448
|
}
|
|
8379
8449
|
},
|
|
8380
|
-
refineBuildUrlContent: (
|
|
8450
|
+
refineBuildUrlContent: (
|
|
8451
|
+
buildUrlInfo,
|
|
8452
|
+
{ buildUrl, registerBuildSideEffectFile },
|
|
8453
|
+
) => {
|
|
8381
8454
|
for (const sideEffect of buildUrlInfo.contentSideEffects) {
|
|
8382
8455
|
if (sideEffect.has) {
|
|
8383
|
-
|
|
8456
|
+
registerBuildSideEffectFile(buildUrl);
|
|
8384
8457
|
return;
|
|
8385
8458
|
}
|
|
8386
8459
|
}
|
|
8387
8460
|
},
|
|
8388
|
-
refineBuild: (kitchen) => {
|
|
8389
|
-
if (sideEffectBuildFileUrls.length === 0) {
|
|
8390
|
-
return;
|
|
8391
|
-
}
|
|
8392
|
-
if (sideEffects === false) {
|
|
8393
|
-
updatePackageSideEffects(sideEffectBuildFileUrls);
|
|
8394
|
-
return;
|
|
8395
|
-
}
|
|
8396
|
-
const { buildDirectoryUrl } = kitchen.context;
|
|
8397
|
-
const sideEffectFileUrlSet = new Set();
|
|
8398
|
-
if (Array.isArray(sideEffects)) {
|
|
8399
|
-
let packageNeedsUpdate = false;
|
|
8400
|
-
for (const sideEffectFileRelativeUrl of sideEffects) {
|
|
8401
|
-
const sideEffectFileUrl = new URL(
|
|
8402
|
-
sideEffectFileRelativeUrl,
|
|
8403
|
-
packageDirectory.url,
|
|
8404
|
-
).href;
|
|
8405
|
-
if (
|
|
8406
|
-
urlIsInsideOf(sideEffectFileUrl, buildDirectoryUrl) &&
|
|
8407
|
-
!sideEffectBuildFileUrls.includes(sideEffectFileUrl)
|
|
8408
|
-
) {
|
|
8409
|
-
packageNeedsUpdate = true;
|
|
8410
|
-
} else {
|
|
8411
|
-
sideEffectFileUrlSet.add(sideEffectFileUrl);
|
|
8412
|
-
}
|
|
8413
|
-
}
|
|
8414
|
-
for (const sideEffectBuildUrl of sideEffectBuildFileUrls) {
|
|
8415
|
-
if (sideEffectFileUrlSet.has(sideEffectBuildUrl)) {
|
|
8416
|
-
continue;
|
|
8417
|
-
}
|
|
8418
|
-
packageNeedsUpdate = true;
|
|
8419
|
-
sideEffectFileUrlSet.add(sideEffectBuildUrl);
|
|
8420
|
-
}
|
|
8421
|
-
if (packageNeedsUpdate) {
|
|
8422
|
-
updatePackageSideEffects(sideEffectFileUrlSet);
|
|
8423
|
-
}
|
|
8424
|
-
}
|
|
8425
|
-
},
|
|
8426
8461
|
};
|
|
8427
8462
|
};
|
|
8428
8463
|
|
|
@@ -8985,7 +9020,6 @@ const createBuildSpecifierManager = ({
|
|
|
8985
9020
|
buildUrl = generateSourcemapFileUrl(parentBuildUrl);
|
|
8986
9021
|
reference.generatedSpecifier = buildUrl;
|
|
8987
9022
|
} else {
|
|
8988
|
-
const url = reference.generatedUrl;
|
|
8989
9023
|
const rawUrlInfo = rawKitchen.graph.getUrlInfo(reference.url);
|
|
8990
9024
|
let urlInfo;
|
|
8991
9025
|
if (rawUrlInfo) {
|
|
@@ -8995,6 +9029,7 @@ const createBuildSpecifierManager = ({
|
|
|
8995
9029
|
buildUrlInfo.subtype = reference.expectedSubtype;
|
|
8996
9030
|
urlInfo = buildUrlInfo;
|
|
8997
9031
|
}
|
|
9032
|
+
const url = reference.generatedUrl;
|
|
8998
9033
|
buildUrl = buildUrlsGenerator.generate(url, {
|
|
8999
9034
|
urlInfo,
|
|
9000
9035
|
ownerUrlInfo: reference.ownerUrlInfo,
|
|
@@ -9172,7 +9207,7 @@ const createBuildSpecifierManager = ({
|
|
|
9172
9207
|
js_classic: undefined, // TODO: add comment to explain who is using this
|
|
9173
9208
|
entry_point: undefined,
|
|
9174
9209
|
dynamic_import: undefined,
|
|
9175
|
-
dynamic_import_id: undefined,
|
|
9210
|
+
// dynamic_import_id: undefined,
|
|
9176
9211
|
};
|
|
9177
9212
|
},
|
|
9178
9213
|
formatReference: (reference) => {
|
|
@@ -10314,6 +10349,20 @@ const createBuildUrlsGenerator = ({
|
|
|
10314
10349
|
return buildUrlFromMap;
|
|
10315
10350
|
}
|
|
10316
10351
|
if (urlIsInsideOf(url, buildDirectoryUrl)) {
|
|
10352
|
+
if (ownerUrlInfo.searchParams.has("dynamic_import_id")) {
|
|
10353
|
+
const ownerDirectoryPath = determineDirectoryPath({
|
|
10354
|
+
sourceDirectoryUrl,
|
|
10355
|
+
assetsDirectory,
|
|
10356
|
+
urlInfo: ownerUrlInfo,
|
|
10357
|
+
});
|
|
10358
|
+
const buildRelativeUrl = urlToRelativeUrl(url, buildDirectoryUrl);
|
|
10359
|
+
let buildUrl = `${buildDirectoryUrl}${ownerDirectoryPath}${buildRelativeUrl}`;
|
|
10360
|
+
buildUrl = injectQueryParams(buildUrl, {
|
|
10361
|
+
dynamic_import_id: undefined,
|
|
10362
|
+
});
|
|
10363
|
+
associateBuildUrl(url, buildUrl);
|
|
10364
|
+
return buildUrl;
|
|
10365
|
+
}
|
|
10317
10366
|
associateBuildUrl(url, url);
|
|
10318
10367
|
return url;
|
|
10319
10368
|
}
|
|
@@ -10334,7 +10383,8 @@ const createBuildUrlsGenerator = ({
|
|
|
10334
10383
|
} else {
|
|
10335
10384
|
directoryPath = urlToRelativeUrl(url, sourceDirectoryUrl);
|
|
10336
10385
|
}
|
|
10337
|
-
const
|
|
10386
|
+
const urlObject = new URL(url);
|
|
10387
|
+
const { search } = urlObject;
|
|
10338
10388
|
const buildUrl = `${buildDirectoryUrl}${directoryPath}${search}`;
|
|
10339
10389
|
associateBuildUrl(url, buildUrl);
|
|
10340
10390
|
return buildUrl;
|
|
@@ -10352,6 +10402,7 @@ const createBuildUrlsGenerator = ({
|
|
|
10352
10402
|
nameSetPerDirectoryMap.set(directoryPath, nameSet);
|
|
10353
10403
|
}
|
|
10354
10404
|
const urlObject = new URL(url);
|
|
10405
|
+
injectQueryParams(urlObject, { dynamic_import_id: undefined });
|
|
10355
10406
|
let { search, hash } = urlObject;
|
|
10356
10407
|
let urlName = getUrlName(url, urlInfo);
|
|
10357
10408
|
let [basename, extension] = splitFileExtension(urlName);
|
|
@@ -10398,7 +10449,7 @@ const determineDirectoryPath = ({
|
|
|
10398
10449
|
sourceDirectoryUrl,
|
|
10399
10450
|
assetsDirectory,
|
|
10400
10451
|
urlInfo,
|
|
10401
|
-
ownerUrlInfo,
|
|
10452
|
+
ownerUrlInfo = urlInfo.firstReference.ownerUrlInfo,
|
|
10402
10453
|
}) => {
|
|
10403
10454
|
if (urlInfo.dirnameHint) {
|
|
10404
10455
|
return urlInfo.dirnameHint;
|
|
@@ -10410,13 +10461,29 @@ const determineDirectoryPath = ({
|
|
|
10410
10461
|
const parentDirectoryPath = determineDirectoryPath({
|
|
10411
10462
|
sourceDirectoryUrl,
|
|
10412
10463
|
assetsDirectory,
|
|
10413
|
-
urlInfo: ownerUrlInfo
|
|
10464
|
+
urlInfo: ownerUrlInfo,
|
|
10414
10465
|
});
|
|
10415
10466
|
return parentDirectoryPath;
|
|
10416
10467
|
}
|
|
10417
10468
|
const dynamicImportId = urlInfo.searchParams.get("dynamic_import_id");
|
|
10418
10469
|
if (dynamicImportId) {
|
|
10419
|
-
|
|
10470
|
+
const ancestorImportIds = [];
|
|
10471
|
+
let ancestorUrlInfo = ownerUrlInfo;
|
|
10472
|
+
let currentImportId = dynamicImportId;
|
|
10473
|
+
while (ancestorUrlInfo) {
|
|
10474
|
+
const ancestorDynamicImportId =
|
|
10475
|
+
ancestorUrlInfo.searchParams.get("dynamic_import_id");
|
|
10476
|
+
if (!ancestorDynamicImportId) {
|
|
10477
|
+
break;
|
|
10478
|
+
}
|
|
10479
|
+
if (ancestorDynamicImportId !== currentImportId) {
|
|
10480
|
+
ancestorImportIds.push(ancestorDynamicImportId);
|
|
10481
|
+
currentImportId = ancestorDynamicImportId;
|
|
10482
|
+
}
|
|
10483
|
+
ancestorUrlInfo = ancestorUrlInfo.firstReference?.ownerUrlInfo;
|
|
10484
|
+
}
|
|
10485
|
+
const importIdPath = [...ancestorImportIds, dynamicImportId].join("/");
|
|
10486
|
+
return `${assetsDirectory}${importIdPath}/`;
|
|
10420
10487
|
}
|
|
10421
10488
|
if (urlInfo.isEntryPoint && !urlInfo.isDynamicEntryPoint) {
|
|
10422
10489
|
return "";
|
|
@@ -11124,6 +11191,7 @@ const build = async ({
|
|
|
11124
11191
|
entryBuildInfo.buildFileVersions = result.buildFileVersions;
|
|
11125
11192
|
entryBuildInfo.buildInlineContents = result.buildInlineContents;
|
|
11126
11193
|
entryBuildInfo.buildManifest = result.buildManifest;
|
|
11194
|
+
entryBuildInfo.buildSideEffectFiles = result.buildSideEffectFiles;
|
|
11127
11195
|
entryBuildInfo.duration = Date.now() - entryPointBuildStartMs;
|
|
11128
11196
|
onEntryPointBuildEnd();
|
|
11129
11197
|
})();
|
|
@@ -11146,11 +11214,15 @@ const build = async ({
|
|
|
11146
11214
|
const buildFileVersions = {};
|
|
11147
11215
|
const buildInlineContents = {};
|
|
11148
11216
|
const buildManifest = {};
|
|
11217
|
+
const buildSideEffectUrlSet = new Set();
|
|
11149
11218
|
for (const [, entryBuildInfo] of entryBuildInfoMap) {
|
|
11150
11219
|
Object.assign(buildFileContents, entryBuildInfo.buildFileContents);
|
|
11151
11220
|
Object.assign(buildFileVersions, entryBuildInfo.buildFileVersions);
|
|
11152
11221
|
Object.assign(buildInlineContents, entryBuildInfo.buildInlineContents);
|
|
11153
11222
|
Object.assign(buildManifest, entryBuildInfo.buildManifest);
|
|
11223
|
+
for (const buildSideEffectUrl of entryBuildInfo.buildSideEffectFiles) {
|
|
11224
|
+
buildSideEffectUrlSet.add(buildSideEffectUrl);
|
|
11225
|
+
}
|
|
11154
11226
|
}
|
|
11155
11227
|
if (writeOnFileSystem) {
|
|
11156
11228
|
clearDirectorySync(buildDirectoryUrl, buildDirectoryCleanPatterns);
|
|
@@ -11159,6 +11231,70 @@ const build = async ({
|
|
|
11159
11231
|
const buildUrl = new URL(buildRelativeUrl, buildDirectoryUrl);
|
|
11160
11232
|
writeFileSync(buildUrl, buildFileContents[buildRelativeUrl]);
|
|
11161
11233
|
}
|
|
11234
|
+
if (buildSideEffectUrlSet.size) {
|
|
11235
|
+
const normalizeSideEffectFileUrl = (url) => {
|
|
11236
|
+
const urlRelativeToPackage = urlToRelativeUrl(
|
|
11237
|
+
url,
|
|
11238
|
+
packageDirectory.url,
|
|
11239
|
+
);
|
|
11240
|
+
return urlRelativeToPackage[0] === "."
|
|
11241
|
+
? urlRelativeToPackage
|
|
11242
|
+
: `./${urlRelativeToPackage}`;
|
|
11243
|
+
};
|
|
11244
|
+
const updatePackageSideEffects = (sideEffectUrlSet) => {
|
|
11245
|
+
const packageJsonFileUrl = new URL(
|
|
11246
|
+
"./package.json",
|
|
11247
|
+
packageDirectory.url,
|
|
11248
|
+
).href;
|
|
11249
|
+
const sideEffectRelativeUrlArray = [];
|
|
11250
|
+
for (const sideEffectUrl of sideEffectUrlSet) {
|
|
11251
|
+
sideEffectRelativeUrlArray.push(
|
|
11252
|
+
normalizeSideEffectFileUrl(sideEffectUrl),
|
|
11253
|
+
);
|
|
11254
|
+
}
|
|
11255
|
+
updateJsonFileSync(packageJsonFileUrl, {
|
|
11256
|
+
sideEffects: sideEffectRelativeUrlArray,
|
|
11257
|
+
});
|
|
11258
|
+
};
|
|
11259
|
+
const sideEffects = readPackageDirectory(
|
|
11260
|
+
packageDirectory.url,
|
|
11261
|
+
)?.sideEffects;
|
|
11262
|
+
if (sideEffects === false) {
|
|
11263
|
+
updatePackageSideEffects(buildSideEffectUrlSet);
|
|
11264
|
+
} else if (Array.isArray(sideEffects)) {
|
|
11265
|
+
const sideEffectUrlSet = new Set();
|
|
11266
|
+
const packageSideEffectUrlSet = new Set();
|
|
11267
|
+
for (const sideEffectFileRelativeUrl of sideEffects) {
|
|
11268
|
+
const sideEffectFileUrl = new URL(
|
|
11269
|
+
sideEffectFileRelativeUrl,
|
|
11270
|
+
packageDirectory.url,
|
|
11271
|
+
).href;
|
|
11272
|
+
packageSideEffectUrlSet.add(sideEffectFileUrl);
|
|
11273
|
+
}
|
|
11274
|
+
let hasSomeOutdatedSideEffectUrl = false;
|
|
11275
|
+
for (const packageSideEffectUrl of packageSideEffectUrlSet) {
|
|
11276
|
+
if (
|
|
11277
|
+
urlIsInsideOf(packageSideEffectUrl, buildDirectoryUrl) &&
|
|
11278
|
+
!buildSideEffectUrlSet.has(packageSideEffectUrl)
|
|
11279
|
+
) {
|
|
11280
|
+
hasSomeOutdatedSideEffectUrl = true;
|
|
11281
|
+
} else {
|
|
11282
|
+
sideEffectUrlSet.add(packageSideEffectUrl);
|
|
11283
|
+
}
|
|
11284
|
+
}
|
|
11285
|
+
let hasSomeNewSideEffectsUrl = false;
|
|
11286
|
+
for (const buildSideEffectUrl of buildSideEffectUrlSet) {
|
|
11287
|
+
if (packageSideEffectUrlSet.has(buildSideEffectUrl)) {
|
|
11288
|
+
continue;
|
|
11289
|
+
}
|
|
11290
|
+
hasSomeNewSideEffectsUrl = true;
|
|
11291
|
+
sideEffectUrlSet.add(buildSideEffectUrl);
|
|
11292
|
+
}
|
|
11293
|
+
if (hasSomeOutdatedSideEffectUrl || hasSomeNewSideEffectsUrl) {
|
|
11294
|
+
updatePackageSideEffects(sideEffectUrlSet);
|
|
11295
|
+
}
|
|
11296
|
+
}
|
|
11297
|
+
}
|
|
11162
11298
|
}
|
|
11163
11299
|
onBuildEnd({
|
|
11164
11300
|
buildFileContents,
|
|
@@ -11284,6 +11420,7 @@ const entryPointDefaultParams = {
|
|
|
11284
11420
|
assetManifest: false,
|
|
11285
11421
|
assetManifestFileRelativeUrl: "asset-manifest.json",
|
|
11286
11422
|
packageSideEffects: true,
|
|
11423
|
+
packageDependencies: "auto", // "auto", "ignore", "include"
|
|
11287
11424
|
};
|
|
11288
11425
|
|
|
11289
11426
|
const prepareEntryPointBuild = async (
|
|
@@ -11334,6 +11471,7 @@ const prepareEntryPointBuild = async (
|
|
|
11334
11471
|
assetManifest,
|
|
11335
11472
|
assetManifestFileRelativeUrl,
|
|
11336
11473
|
packageSideEffects,
|
|
11474
|
+
packageDependencies,
|
|
11337
11475
|
} = {
|
|
11338
11476
|
...entryPointDefaultParams,
|
|
11339
11477
|
...entryPointParams,
|
|
@@ -11427,6 +11565,7 @@ const prepareEntryPointBuild = async (
|
|
|
11427
11565
|
? new URL("craft/", outDirectoryUrl)
|
|
11428
11566
|
: undefined,
|
|
11429
11567
|
packageDirectory,
|
|
11568
|
+
packageDependencies,
|
|
11430
11569
|
});
|
|
11431
11570
|
|
|
11432
11571
|
let _getOtherEntryBuildInfo;
|
|
@@ -11526,6 +11665,7 @@ const prepareEntryPointBuild = async (
|
|
|
11526
11665
|
? new URL("shape/", outDirectoryUrl)
|
|
11527
11666
|
: undefined,
|
|
11528
11667
|
packageDirectory,
|
|
11668
|
+
packageDependencies,
|
|
11529
11669
|
});
|
|
11530
11670
|
const buildSpecifierManager = createBuildSpecifierManager({
|
|
11531
11671
|
rawKitchen,
|
|
@@ -11731,6 +11871,7 @@ const prepareEntryPointBuild = async (
|
|
|
11731
11871
|
});
|
|
11732
11872
|
}
|
|
11733
11873
|
|
|
11874
|
+
const buildSideEffectFiles = [];
|
|
11734
11875
|
{
|
|
11735
11876
|
finalKitchen.context.buildStep = "refine";
|
|
11736
11877
|
|
|
@@ -11818,6 +11959,9 @@ const prepareEntryPointBuild = async (
|
|
|
11818
11959
|
for (const refineBuildUrlContentCallback of refineBuildUrlContentCallbackSet) {
|
|
11819
11960
|
refineBuildUrlContentCallback(buildUrlInfo, {
|
|
11820
11961
|
buildUrl: buildSpecifierManager.getBuildUrl(buildUrlInfo),
|
|
11962
|
+
registerBuildSideEffectFile: (buildFileUrl) => {
|
|
11963
|
+
buildSideEffectFiles.push(buildFileUrl);
|
|
11964
|
+
},
|
|
11821
11965
|
});
|
|
11822
11966
|
}
|
|
11823
11967
|
},
|
|
@@ -11848,6 +11992,7 @@ const prepareEntryPointBuild = async (
|
|
|
11848
11992
|
buildFileVersions,
|
|
11849
11993
|
buildInlineContents,
|
|
11850
11994
|
buildManifest,
|
|
11995
|
+
buildSideEffectFiles,
|
|
11851
11996
|
};
|
|
11852
11997
|
},
|
|
11853
11998
|
};
|