@tamagui/static 2.7.7 → 3.0.0-beta.643.1
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/cjs/check-dep-versions.cjs +355 -0
- package/dist/cjs/checkDeps.cjs +302 -0
- package/dist/cjs/compiler.cjs +286 -0
- package/dist/cjs/compilerHost.cjs +1695 -0
- package/dist/cjs/constants.cjs +33 -0
- package/dist/cjs/domStructuralPass.cjs +112 -0
- package/dist/cjs/exports.cjs +42 -0
- package/dist/cjs/extractor/addLocalExports.cjs +64 -0
- package/dist/cjs/extractor/bundle.cjs +203 -0
- package/dist/cjs/extractor/bundleConfig.cjs +747 -0
- package/dist/cjs/extractor/concatClassName.cjs +117 -0
- package/dist/cjs/extractor/detectModuleFormat.cjs +54 -0
- package/dist/cjs/extractor/esbuildAliasPlugin.cjs +47 -0
- package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +92 -0
- package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +38 -0
- package/dist/cjs/extractor/loadTamagui.cjs +344 -0
- package/dist/cjs/extractor/regenerateConfig.cjs +161 -0
- package/dist/cjs/extractor/watchTamaguiConfig.cjs +64 -0
- package/dist/cjs/getPragmaOptions.cjs +67 -0
- package/dist/cjs/helpers/memoize.cjs +42 -0
- package/dist/cjs/helpers/requireTamaguiCore.cjs +40 -0
- package/dist/cjs/index.cjs +34 -0
- package/dist/cjs/registerRequire.cjs +220 -0
- package/dist/cjs/server.cjs +66 -0
- package/dist/cjs/staticEvaluationIgnoredModules.cjs +86 -0
- package/dist/cjs/types.cjs +17 -0
- package/dist/cjs/zero/artifact.cjs +145 -0
- package/dist/cjs/zero/graph.cjs +209 -0
- package/dist/cjs/zero/identity.cjs +61 -0
- package/dist/cjs/zero/index.cjs +26 -0
- package/dist/cjs/zero/islands.cjs +232 -0
- package/dist/cjs/zero/options.cjs +163 -0
- package/dist/cjs/zero/ownership.cjs +79 -0
- package/dist/cjs/zero/theme.cjs +328 -0
- package/dist/cjs/zero/transform.cjs +203 -0
- package/dist/esm/check-dep-versions.mjs +329 -0
- package/dist/esm/check-dep-versions.mjs.map +1 -0
- package/dist/esm/checkDeps.mjs +279 -0
- package/dist/esm/checkDeps.mjs.map +1 -0
- package/dist/esm/compiler.mjs +255 -0
- package/dist/esm/compiler.mjs.map +1 -0
- package/dist/esm/compilerHost.mjs +1675 -0
- package/dist/esm/compilerHost.mjs.map +1 -0
- package/dist/esm/constants.mjs +7 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/domStructuralPass.mjs +92 -0
- package/dist/esm/domStructuralPass.mjs.map +1 -0
- package/dist/esm/exports.mjs +26 -0
- package/dist/esm/extractor/addLocalExports.mjs +44 -0
- package/dist/esm/extractor/addLocalExports.mjs.map +1 -0
- package/dist/esm/extractor/bundle.mjs +173 -0
- package/dist/esm/extractor/bundle.mjs.map +1 -0
- package/dist/esm/extractor/bundleConfig.mjs +706 -0
- package/dist/esm/extractor/bundleConfig.mjs.map +1 -0
- package/dist/esm/extractor/concatClassName.mjs +96 -0
- package/dist/esm/extractor/concatClassName.mjs.map +1 -0
- package/dist/esm/extractor/detectModuleFormat.mjs +31 -0
- package/dist/esm/extractor/detectModuleFormat.mjs.map +1 -0
- package/dist/esm/extractor/esbuildAliasPlugin.mjs +26 -0
- package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -0
- package/dist/esm/extractor/esbuildTsconfigPaths.mjs +63 -0
- package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs +18 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -0
- package/dist/esm/extractor/loadTamagui.mjs +306 -0
- package/dist/esm/extractor/loadTamagui.mjs.map +1 -0
- package/dist/esm/extractor/regenerateConfig.mjs +131 -0
- package/dist/esm/extractor/regenerateConfig.mjs.map +1 -0
- package/dist/esm/extractor/watchTamaguiConfig.mjs +43 -0
- package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -0
- package/dist/esm/getPragmaOptions.mjs +46 -0
- package/dist/esm/getPragmaOptions.mjs.map +1 -0
- package/dist/esm/helpers/memoize.mjs +21 -0
- package/dist/esm/helpers/memoize.mjs.map +1 -0
- package/dist/esm/helpers/requireTamaguiCore.mjs +19 -0
- package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -0
- package/dist/esm/index.mjs +8 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/registerRequire.mjs +195 -0
- package/dist/esm/registerRequire.mjs.map +1 -0
- package/dist/esm/server.mjs +40 -0
- package/dist/esm/server.mjs.map +1 -0
- package/dist/esm/setup.mjs +0 -0
- package/dist/esm/staticEvaluationIgnoredModules.mjs +61 -0
- package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -0
- package/dist/esm/types.mjs +0 -0
- package/dist/esm/zero/artifact.mjs +119 -0
- package/dist/esm/zero/artifact.mjs.map +1 -0
- package/dist/esm/zero/graph.mjs +170 -0
- package/dist/esm/zero/graph.mjs.map +1 -0
- package/dist/esm/zero/identity.mjs +36 -0
- package/dist/esm/zero/identity.mjs.map +1 -0
- package/dist/esm/zero/index.mjs +15 -0
- package/dist/esm/zero/islands.mjs +197 -0
- package/dist/esm/zero/islands.mjs.map +1 -0
- package/dist/esm/zero/options.mjs +129 -0
- package/dist/esm/zero/options.mjs.map +1 -0
- package/dist/esm/zero/ownership.mjs +48 -0
- package/dist/esm/zero/ownership.mjs.map +1 -0
- package/dist/esm/zero/theme.mjs +303 -0
- package/dist/esm/zero/theme.mjs.map +1 -0
- package/dist/esm/zero/transform.mjs +177 -0
- package/dist/esm/zero/transform.mjs.map +1 -0
- package/package.json +33 -43
- package/src/check-dep-versions.ts +2 -2
- package/src/checkDeps.ts +3 -2
- package/src/compiler.ts +425 -0
- package/src/compilerHost.ts +3125 -0
- package/src/constants.ts +0 -5
- package/src/domStructuralPass.ts +170 -0
- package/src/exports.ts +3 -6
- package/src/extractor/addLocalExports.ts +49 -0
- package/src/extractor/bundle.ts +20 -35
- package/src/extractor/bundleConfig.ts +334 -187
- package/src/extractor/concatClassName.ts +13 -20
- package/src/extractor/getTamaguiConfigPathFromOptionsConfig.ts +5 -4
- package/src/extractor/loadTamagui.ts +196 -143
- package/src/extractor/regenerateConfig.ts +65 -13
- package/src/extractor/watchTamaguiConfig.ts +6 -1
- package/src/helpers/requireTamaguiCore.ts +6 -1
- package/src/registerRequire.ts +94 -132
- package/src/staticEvaluationIgnoredModules.ts +74 -0
- package/src/types.ts +2 -107
- package/src/zero/artifact.ts +142 -0
- package/src/zero/graph.ts +359 -0
- package/src/zero/identity.ts +73 -0
- package/src/zero/index.ts +8 -0
- package/src/zero/islands.ts +262 -0
- package/src/zero/options.ts +239 -0
- package/src/zero/ownership.ts +113 -0
- package/src/zero/theme.ts +478 -0
- package/src/zero/transform.ts +320 -0
- package/types/check-dep-versions.d.ts.map +1 -1
- package/types/checkDeps.d.ts.map +1 -1
- package/types/compiler.d.ts +117 -0
- package/types/compiler.d.ts.map +1 -0
- package/types/compilerHost.d.ts +25 -0
- package/types/compilerHost.d.ts.map +1 -0
- package/types/constants.d.ts +0 -1
- package/types/constants.d.ts.map +1 -1
- package/types/domStructuralPass.d.ts +3 -0
- package/types/domStructuralPass.d.ts.map +1 -0
- package/types/exports.d.ts +3 -6
- package/types/exports.d.ts.map +1 -1
- package/types/extractor/addLocalExports.d.ts +3 -0
- package/types/extractor/addLocalExports.d.ts.map +1 -0
- package/types/extractor/bundle.d.ts +66 -65
- package/types/extractor/bundle.d.ts.map +1 -1
- package/types/extractor/bundleConfig.d.ts +19 -4
- package/types/extractor/bundleConfig.d.ts.map +1 -1
- package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
- package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts +1 -1
- package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts.map +1 -1
- package/types/extractor/loadTamagui.d.ts +26 -3
- package/types/extractor/loadTamagui.d.ts.map +1 -1
- package/types/extractor/regenerateConfig.d.ts +1 -1
- package/types/extractor/regenerateConfig.d.ts.map +1 -1
- package/types/extractor/watchTamaguiConfig.d.ts.map +1 -1
- package/types/getPragmaOptions.d.ts +1 -1
- package/types/helpers/memoize.d.ts +1 -1
- package/types/helpers/memoize.d.ts.map +1 -1
- package/types/helpers/requireTamaguiCore.d.ts.map +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/registerRequire.d.ts +2 -2
- package/types/registerRequire.d.ts.map +1 -1
- package/types/staticEvaluationIgnoredModules.d.ts +9 -0
- package/types/staticEvaluationIgnoredModules.d.ts.map +1 -0
- package/types/types.d.ts +2 -90
- package/types/types.d.ts.map +1 -1
- package/types/zero/artifact.d.ts +44 -0
- package/types/zero/artifact.d.ts.map +1 -0
- package/types/zero/graph.d.ts +139 -0
- package/types/zero/graph.d.ts.map +1 -0
- package/types/zero/identity.d.ts +33 -0
- package/types/zero/identity.d.ts.map +1 -0
- package/types/zero/index.d.ts +9 -0
- package/types/zero/index.d.ts.map +1 -0
- package/types/zero/islands.d.ts +56 -0
- package/types/zero/islands.d.ts.map +1 -0
- package/types/zero/options.d.ts +58 -0
- package/types/zero/options.d.ts.map +1 -0
- package/types/zero/ownership.d.ts +51 -0
- package/types/zero/ownership.d.ts.map +1 -0
- package/types/zero/theme.d.ts +83 -0
- package/types/zero/theme.d.ts.map +1 -0
- package/types/zero/transform.d.ts +53 -0
- package/types/zero/transform.d.ts.map +1 -0
- package/dist/check-dep-versions.cjs +0 -372
- package/dist/checkDeps.cjs +0 -271
- package/dist/constants.cjs +0 -51
- package/dist/exports.cjs +0 -48
- package/dist/extractor/accessSafe.cjs +0 -48
- package/dist/extractor/babelParse.cjs +0 -56
- package/dist/extractor/buildClassName.cjs +0 -86
- package/dist/extractor/bundle.cjs +0 -234
- package/dist/extractor/bundleConfig.cjs +0 -729
- package/dist/extractor/concatClassName.cjs +0 -129
- package/dist/extractor/createEvaluator.cjs +0 -88
- package/dist/extractor/createExtractor.cjs +0 -1968
- package/dist/extractor/createLogger.cjs +0 -50
- package/dist/extractor/detectModuleFormat.cjs +0 -55
- package/dist/extractor/ensureImportingConcat.cjs +0 -54
- package/dist/extractor/errors.cjs +0 -28
- package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
- package/dist/extractor/esbuildTsconfigPaths.cjs +0 -108
- package/dist/extractor/evaluateAstNode.cjs +0 -128
- package/dist/extractor/extractHelpers.cjs +0 -182
- package/dist/extractor/extractMediaStyle.cjs +0 -169
- package/dist/extractor/extractToClassNames.cjs +0 -475
- package/dist/extractor/extractToNative.cjs +0 -369
- package/dist/extractor/findTopmostFunction.cjs +0 -43
- package/dist/extractor/generatedUid.cjs +0 -58
- package/dist/extractor/getPrefixLogs.cjs +0 -31
- package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
- package/dist/extractor/getSourceModule.cjs +0 -100
- package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -41
- package/dist/extractor/hasTopLevelAwait.cjs +0 -62
- package/dist/extractor/hoistClassNames.cjs +0 -76
- package/dist/extractor/literalToAst.cjs +0 -109
- package/dist/extractor/loadFile.cjs +0 -17
- package/dist/extractor/loadTamagui.cjs +0 -373
- package/dist/extractor/logLines.cjs +0 -43
- package/dist/extractor/normalizeTernaries.cjs +0 -100
- package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
- package/dist/extractor/regenerateConfig.cjs +0 -178
- package/dist/extractor/removeUnusedHooks.cjs +0 -108
- package/dist/extractor/timer.cjs +0 -52
- package/dist/extractor/validHTMLAttributes.cjs +0 -79
- package/dist/extractor/watchTamaguiConfig.cjs +0 -70
- package/dist/getPragmaOptions.cjs +0 -73
- package/dist/helpers/memoize.cjs +0 -45
- package/dist/helpers/requireTamaguiCore.cjs +0 -40
- package/dist/index.cjs +0 -42
- package/dist/registerRequire.cjs +0 -209
- package/dist/server.cjs +0 -82
- package/dist/types.cjs +0 -18
- package/dist/worker.cjs +0 -111
- package/src/extractor/accessSafe.ts +0 -22
- package/src/extractor/babelParse.ts +0 -38
- package/src/extractor/buildClassName.ts +0 -76
- package/src/extractor/createEvaluator.ts +0 -82
- package/src/extractor/createExtractor.ts +0 -2970
- package/src/extractor/createLogger.ts +0 -41
- package/src/extractor/ensureImportingConcat.ts +0 -36
- package/src/extractor/errors.ts +0 -1
- package/src/extractor/evaluateAstNode.ts +0 -136
- package/src/extractor/extractHelpers.ts +0 -211
- package/src/extractor/extractMediaStyle.ts +0 -194
- package/src/extractor/extractToClassNames.ts +0 -733
- package/src/extractor/extractToNative.ts +0 -506
- package/src/extractor/findTopmostFunction.ts +0 -24
- package/src/extractor/generatedUid.ts +0 -41
- package/src/extractor/getPrefixLogs.ts +0 -9
- package/src/extractor/getPropValueFromAttributes.ts +0 -95
- package/src/extractor/getSourceModule.ts +0 -96
- package/src/extractor/getStaticBindingsForScope.ts +0 -237
- package/src/extractor/hasTopLevelAwait.ts +0 -28
- package/src/extractor/hoistClassNames.ts +0 -52
- package/src/extractor/literalToAst.ts +0 -85
- package/src/extractor/loadFile.ts +0 -17
- package/src/extractor/logLines.ts +0 -16
- package/src/extractor/normalizeTernaries.ts +0 -89
- package/src/extractor/propsToFontFamilyCache.ts +0 -18
- package/src/extractor/removeUnusedHooks.ts +0 -83
- package/src/extractor/timer.ts +0 -25
- package/src/extractor/validHTMLAttributes.ts +0 -52
- package/src/worker.ts +0 -142
- package/types/extractor/accessSafe.d.ts +0 -3
- package/types/extractor/accessSafe.d.ts.map +0 -1
- package/types/extractor/babelParse.d.ts +0 -5
- package/types/extractor/babelParse.d.ts.map +0 -1
- package/types/extractor/buildClassName.d.ts +0 -7
- package/types/extractor/buildClassName.d.ts.map +0 -1
- package/types/extractor/createEvaluator.d.ts +0 -12
- package/types/extractor/createEvaluator.d.ts.map +0 -1
- package/types/extractor/createExtractor.d.ts +0 -32
- package/types/extractor/createExtractor.d.ts.map +0 -1
- package/types/extractor/createLogger.d.ts +0 -3
- package/types/extractor/createLogger.d.ts.map +0 -1
- package/types/extractor/ensureImportingConcat.d.ts +0 -4
- package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
- package/types/extractor/errors.d.ts +0 -3
- package/types/extractor/errors.d.ts.map +0 -1
- package/types/extractor/evaluateAstNode.d.ts +0 -3
- package/types/extractor/evaluateAstNode.d.ts.map +0 -1
- package/types/extractor/extractHelpers.d.ts +0 -28
- package/types/extractor/extractHelpers.d.ts.map +0 -1
- package/types/extractor/extractMediaStyle.d.ts +0 -11
- package/types/extractor/extractMediaStyle.d.ts.map +0 -1
- package/types/extractor/extractToClassNames.d.ts +0 -25
- package/types/extractor/extractToClassNames.d.ts.map +0 -1
- package/types/extractor/extractToNative.d.ts +0 -13
- package/types/extractor/extractToNative.d.ts.map +0 -1
- package/types/extractor/findTopmostFunction.d.ts +0 -4
- package/types/extractor/findTopmostFunction.d.ts.map +0 -1
- package/types/extractor/generatedUid.d.ts +0 -5
- package/types/extractor/generatedUid.d.ts.map +0 -1
- package/types/extractor/getPrefixLogs.d.ts +0 -3
- package/types/extractor/getPrefixLogs.d.ts.map +0 -1
- package/types/extractor/getPropValueFromAttributes.d.ts +0 -19
- package/types/extractor/getPropValueFromAttributes.d.ts.map +0 -1
- package/types/extractor/getSourceModule.d.ts +0 -16
- package/types/extractor/getSourceModule.d.ts.map +0 -1
- package/types/extractor/getStaticBindingsForScope.d.ts +0 -5
- package/types/extractor/getStaticBindingsForScope.d.ts.map +0 -1
- package/types/extractor/hasTopLevelAwait.d.ts +0 -2
- package/types/extractor/hasTopLevelAwait.d.ts.map +0 -1
- package/types/extractor/hoistClassNames.d.ts +0 -6
- package/types/extractor/hoistClassNames.d.ts.map +0 -1
- package/types/extractor/literalToAst.d.ts +0 -4
- package/types/extractor/literalToAst.d.ts.map +0 -1
- package/types/extractor/loadFile.d.ts +0 -1
- package/types/extractor/loadFile.d.ts.map +0 -1
- package/types/extractor/logLines.d.ts +0 -2
- package/types/extractor/logLines.d.ts.map +0 -1
- package/types/extractor/normalizeTernaries.d.ts +0 -5
- package/types/extractor/normalizeTernaries.d.ts.map +0 -1
- package/types/extractor/propsToFontFamilyCache.d.ts +0 -4
- package/types/extractor/propsToFontFamilyCache.d.ts.map +0 -1
- package/types/extractor/removeUnusedHooks.d.ts +0 -3
- package/types/extractor/removeUnusedHooks.d.ts.map +0 -1
- package/types/extractor/timer.d.ts +0 -5
- package/types/extractor/timer.d.ts.map +0 -1
- package/types/extractor/validHTMLAttributes.d.ts +0 -52
- package/types/extractor/validHTMLAttributes.d.ts.map +0 -1
- package/types/worker.d.ts +0 -46
- package/types/worker.d.ts.map +0 -1
- /package/dist/{setup.cjs → cjs/setup.cjs} +0 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var islands_exports = {};
|
|
29
|
+
__export(islands_exports, {
|
|
30
|
+
ISLAND_EXTERNAL_GLOBALS: () => ISLAND_EXTERNAL_GLOBALS,
|
|
31
|
+
ISLAND_EXTERNAL_GLOBAL_PATHS: () => ISLAND_EXTERNAL_GLOBAL_PATHS,
|
|
32
|
+
ISLAND_REGISTRY_KEY: () => ISLAND_REGISTRY_KEY,
|
|
33
|
+
ISLAND_RUNTIME_KEY: () => ISLAND_RUNTIME_KEY,
|
|
34
|
+
generateIslandEntrySource: () => generateIslandEntrySource,
|
|
35
|
+
generateIslandLoaderSource: () => generateIslandLoaderSource,
|
|
36
|
+
mergeIslandBridges: () => mergeIslandBridges,
|
|
37
|
+
writeIslandModules: () => writeIslandModules
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(islands_exports);
|
|
40
|
+
var import_node_fs = require("node:fs");
|
|
41
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
42
|
+
const ISLAND_RUNTIME_KEY = "__tamagui_island_runtime__";
|
|
43
|
+
const ISLAND_REGISTRY_KEY = "__tamagui_islands__";
|
|
44
|
+
function writeIfChanged(file, content) {
|
|
45
|
+
(0, import_node_fs.mkdirSync)(import_node_path.default.dirname(file), { recursive: true });
|
|
46
|
+
let existing = null;
|
|
47
|
+
try {
|
|
48
|
+
existing = (0, import_node_fs.readFileSync)(file, "utf8");
|
|
49
|
+
} catch {
|
|
50
|
+
existing = null;
|
|
51
|
+
}
|
|
52
|
+
if (existing !== content) (0, import_node_fs.writeFileSync)(file, content);
|
|
53
|
+
}
|
|
54
|
+
function importPath(from, to) {
|
|
55
|
+
const relative = import_node_path.default.relative(import_node_path.default.dirname(from), to).replace(/\\/g, "/");
|
|
56
|
+
return relative.startsWith(".") ? relative : `./${relative}`;
|
|
57
|
+
}
|
|
58
|
+
function generateIslandLoaderSource(input) {
|
|
59
|
+
return `// generated by @tamagui/static zero-runtime. do not edit.
|
|
60
|
+
import * as React from 'react'
|
|
61
|
+
import * as ReactDOM from 'react-dom'
|
|
62
|
+
import * as JSXRuntime from 'react/jsx-runtime'
|
|
63
|
+
|
|
64
|
+
const ISLAND_ID = ${JSON.stringify(input.island.id)}
|
|
65
|
+
const ISLAND_SRC = ${JSON.stringify(input.scriptUrl)}
|
|
66
|
+
const CSS_HREF = ${JSON.stringify(input.cssHref)}
|
|
67
|
+
const INTEGRATION = ${JSON.stringify(input.integration)}
|
|
68
|
+
|
|
69
|
+
function sharedRuntime() {
|
|
70
|
+
const scope = globalThis
|
|
71
|
+
if (!scope[${JSON.stringify(ISLAND_RUNTIME_KEY)}]) {
|
|
72
|
+
scope[${JSON.stringify(ISLAND_RUNTIME_KEY)}] = {
|
|
73
|
+
react: React,
|
|
74
|
+
reactDom: ReactDOM,
|
|
75
|
+
jsxRuntime: JSXRuntime,
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (!scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}]) {
|
|
79
|
+
scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}] = {}
|
|
80
|
+
}
|
|
81
|
+
return scope
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// The one accepted runtime recovery in zero-runtime mode, and it is loud on
|
|
85
|
+
// purpose. "Unimported" is not decidable at build time for a published zero
|
|
86
|
+
// artifact on Next or Metro, so the loader still guarantees the island has its
|
|
87
|
+
// styles; on a correct build this never runs.
|
|
88
|
+
function ensureZeroStylesheet() {
|
|
89
|
+
const links = document.querySelectorAll('link[rel="stylesheet"]')
|
|
90
|
+
for (let index = 0; index < links.length; index++) {
|
|
91
|
+
const href = links[index].getAttribute('href') || ''
|
|
92
|
+
if (href === CSS_HREF || href.split('?')[0].endsWith(CSS_HREF)) return
|
|
93
|
+
}
|
|
94
|
+
console.error(
|
|
95
|
+
'[tamagui zero-runtime] the page did not link the generated CSS artifact ' +
|
|
96
|
+
CSS_HREF +
|
|
97
|
+
', so island "' +
|
|
98
|
+
ISLAND_ID +
|
|
99
|
+
'" (' +
|
|
100
|
+
INTEGRATION +
|
|
101
|
+
') is loading it at runtime. On a correct build this never happens: the ' +
|
|
102
|
+
'artifact is generated by the build and must be linked by the document ' +
|
|
103
|
+
'that mounts the island. Fix the document, not this recovery.'
|
|
104
|
+
)
|
|
105
|
+
const link = document.createElement('link')
|
|
106
|
+
link.rel = 'stylesheet'
|
|
107
|
+
link.href = CSS_HREF
|
|
108
|
+
link.setAttribute('data-tamagui-zero-css', '1')
|
|
109
|
+
document.head.appendChild(link)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
let pending = null
|
|
113
|
+
|
|
114
|
+
function loadIsland() {
|
|
115
|
+
const scope = sharedRuntime()
|
|
116
|
+
const registered = scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}][ISLAND_ID]
|
|
117
|
+
if (registered) return Promise.resolve(registered)
|
|
118
|
+
if (!pending) {
|
|
119
|
+
pending = new Promise((resolve, reject) => {
|
|
120
|
+
ensureZeroStylesheet()
|
|
121
|
+
const script = document.createElement('script')
|
|
122
|
+
script.src = ISLAND_SRC
|
|
123
|
+
script.async = true
|
|
124
|
+
script.onload = () => {
|
|
125
|
+
const mod = scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}][ISLAND_ID]
|
|
126
|
+
if (mod) resolve(mod)
|
|
127
|
+
else reject(new Error('tamagui island ' + ISLAND_ID + ' did not register'))
|
|
128
|
+
}
|
|
129
|
+
script.onerror = () => reject(new Error('tamagui island ' + ISLAND_ID + ' failed to load ' + ISLAND_SRC))
|
|
130
|
+
document.head.appendChild(script)
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
return pending
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export default function TamaguiIsland(props) {
|
|
137
|
+
const bridgeId = props['data-tamagui-bridge'] || 'root'
|
|
138
|
+
const [Loaded, setLoaded] = React.useState(null)
|
|
139
|
+
|
|
140
|
+
React.useEffect(() => {
|
|
141
|
+
let cancelled = false
|
|
142
|
+
loadIsland().then((mod) => {
|
|
143
|
+
if (!cancelled) setLoaded(() => mod.Island)
|
|
144
|
+
})
|
|
145
|
+
return () => {
|
|
146
|
+
cancelled = true
|
|
147
|
+
}
|
|
148
|
+
}, [])
|
|
149
|
+
|
|
150
|
+
if (!Loaded) {
|
|
151
|
+
return React.createElement('div', {
|
|
152
|
+
'data-tamagui-island': ISLAND_ID,
|
|
153
|
+
'data-tamagui-bridge': bridgeId,
|
|
154
|
+
})
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const forwarded = {}
|
|
158
|
+
for (const key in props) forwarded[key] = props[key]
|
|
159
|
+
forwarded['data-tamagui-island'] = ISLAND_ID
|
|
160
|
+
return React.createElement(Loaded, forwarded)
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
}
|
|
164
|
+
function generateIslandEntrySource(input) {
|
|
165
|
+
const entry = input.island.entry;
|
|
166
|
+
return `// generated by @tamagui/static zero-runtime. do not edit.
|
|
167
|
+
import * as React from 'react'
|
|
168
|
+
import { TamaguiProvider, Theme } from 'tamagui'
|
|
169
|
+
import config from ${JSON.stringify(importPath(entry, input.configPath))}
|
|
170
|
+
import IslandRoot from ${JSON.stringify(importPath(entry, input.island.module))}
|
|
171
|
+
|
|
172
|
+
export function Island(props) {
|
|
173
|
+
const bridge = props.__tamaguiBridge
|
|
174
|
+
const inner = {}
|
|
175
|
+
for (const key in props) {
|
|
176
|
+
if (key !== '__tamaguiBridge') inner[key] = props[key]
|
|
177
|
+
}
|
|
178
|
+
let node = React.createElement(IslandRoot, inner)
|
|
179
|
+
const layers = (bridge && bridge.layers) || []
|
|
180
|
+
for (let index = layers.length - 1; index >= 0; index--) {
|
|
181
|
+
node = React.createElement(
|
|
182
|
+
Theme,
|
|
183
|
+
{
|
|
184
|
+
inlineValues: layers[index].inlineValues,
|
|
185
|
+
inlineClassName: layers[index].inlineClassName,
|
|
186
|
+
forceClassName: true,
|
|
187
|
+
},
|
|
188
|
+
node
|
|
189
|
+
)
|
|
190
|
+
}
|
|
191
|
+
// isSubtreeRoot: the island shares a document with a zero page that already
|
|
192
|
+
// has its own compiled theme spans, so its provider must not write a theme
|
|
193
|
+
// class onto html or body and must carry its own theme on its own node.
|
|
194
|
+
return React.createElement(
|
|
195
|
+
TamaguiProvider,
|
|
196
|
+
{
|
|
197
|
+
config,
|
|
198
|
+
defaultTheme: (bridge && bridge.name) || 'light',
|
|
199
|
+
disableInjectCSS: true,
|
|
200
|
+
isSubtreeRoot: true,
|
|
201
|
+
},
|
|
202
|
+
node
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const scope = globalThis
|
|
207
|
+
if (!scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}]) scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}] = {}
|
|
208
|
+
scope[${JSON.stringify(ISLAND_REGISTRY_KEY)}][${JSON.stringify(input.island.id)}] = { Island }
|
|
209
|
+
`;
|
|
210
|
+
}
|
|
211
|
+
function writeIslandModules(input) {
|
|
212
|
+
writeIfChanged(input.island.loader, generateIslandLoaderSource(input));
|
|
213
|
+
writeIfChanged(input.island.entry, generateIslandEntrySource(input));
|
|
214
|
+
}
|
|
215
|
+
const ISLAND_EXTERNAL_GLOBAL_PATHS = {
|
|
216
|
+
react: [ISLAND_RUNTIME_KEY, "react"],
|
|
217
|
+
"react-dom": [ISLAND_RUNTIME_KEY, "reactDom"],
|
|
218
|
+
"react/jsx-runtime": [ISLAND_RUNTIME_KEY, "jsxRuntime"]
|
|
219
|
+
};
|
|
220
|
+
const ISLAND_EXTERNAL_GLOBALS = Object.fromEntries(Object.entries(ISLAND_EXTERNAL_GLOBAL_PATHS).map(([name, segments]) => [name, `globalThis.${segments.join(".")}`]));
|
|
221
|
+
function mergeIslandBridges(target, incoming) {
|
|
222
|
+
for (const [islandId, bridges] of incoming) {
|
|
223
|
+
const list = target.get(islandId) ?? [];
|
|
224
|
+
for (const bridge of bridges) {
|
|
225
|
+
const index = list.findIndex((existing) => existing.id === bridge.id);
|
|
226
|
+
if (index >= 0) list[index] = bridge;
|
|
227
|
+
else list.push(bridge);
|
|
228
|
+
}
|
|
229
|
+
list.sort((left, right) => left.id < right.id ? -1 : left.id > right.id ? 1 : 0);
|
|
230
|
+
target.set(islandId, list);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var options_exports = {};
|
|
29
|
+
__export(options_exports, {
|
|
30
|
+
ZERO_INTEGRATION_SUPPORT: () => ZERO_INTEGRATION_SUPPORT,
|
|
31
|
+
ZERO_OUT_DIRNAME: () => ZERO_OUT_DIRNAME,
|
|
32
|
+
assertZeroConfigDrivers: () => assertZeroConfigDrivers,
|
|
33
|
+
assertZeroIntegrationSupport: () => assertZeroIntegrationSupport,
|
|
34
|
+
islandIdFor: () => islandIdFor,
|
|
35
|
+
resolveZeroRuntime: () => resolveZeroRuntime,
|
|
36
|
+
resolveZeroRuntimeSync: () => resolveZeroRuntimeSync
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(options_exports);
|
|
39
|
+
var import_compiler_core = require("@tamagui/compiler-core");
|
|
40
|
+
var import_fast_glob = __toESM(require("fast-glob"), 1);
|
|
41
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
42
|
+
const ZERO_OUT_DIRNAME = ".tamagui/zero";
|
|
43
|
+
function islandIdFor(moduleId) {
|
|
44
|
+
return import_node_path.default.basename(moduleId).replace(/\.[jt]sx?$/, "");
|
|
45
|
+
}
|
|
46
|
+
async function resolveZeroRuntime(options, root) {
|
|
47
|
+
const early = resolveZeroRuntimeEarly(options, root);
|
|
48
|
+
if (early.done) return early.resolved;
|
|
49
|
+
return finishZeroRuntime(options, root, early.islandGlobs, early.islandGlobs.length ? await (0, import_fast_glob.default)(early.islandGlobs, {
|
|
50
|
+
cwd: root,
|
|
51
|
+
absolute: true,
|
|
52
|
+
dot: false
|
|
53
|
+
}) : []);
|
|
54
|
+
}
|
|
55
|
+
function resolveZeroRuntimeSync(options, root) {
|
|
56
|
+
const early = resolveZeroRuntimeEarly(options, root);
|
|
57
|
+
if (early.done) return early.resolved;
|
|
58
|
+
return finishZeroRuntime(options, root, early.islandGlobs, early.islandGlobs.length ? import_fast_glob.default.sync(early.islandGlobs, {
|
|
59
|
+
cwd: root,
|
|
60
|
+
absolute: true,
|
|
61
|
+
dot: false
|
|
62
|
+
}) : []);
|
|
63
|
+
}
|
|
64
|
+
function resolveZeroRuntimeEarly(options, root) {
|
|
65
|
+
const requested = options.experimental?.zeroRuntime;
|
|
66
|
+
const outDir = import_node_path.default.join(root, ZERO_OUT_DIRNAME);
|
|
67
|
+
const off = {
|
|
68
|
+
mode: "off",
|
|
69
|
+
root,
|
|
70
|
+
islandGlobs: [],
|
|
71
|
+
islands: [],
|
|
72
|
+
outDir,
|
|
73
|
+
cssPath: ""
|
|
74
|
+
};
|
|
75
|
+
if (!requested) return {
|
|
76
|
+
done: true,
|
|
77
|
+
resolved: off
|
|
78
|
+
};
|
|
79
|
+
if (options.platform === "native" && requested === "report") {
|
|
80
|
+
return {
|
|
81
|
+
done: true,
|
|
82
|
+
resolved: {
|
|
83
|
+
...off,
|
|
84
|
+
mode: "report"
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (options.platform === "native") {
|
|
89
|
+
throw new Error(`[tamagui zero-runtime] experimental.zeroRuntime is web only. A native build always receives TAMAGUI_RUNTIME="full".`);
|
|
90
|
+
}
|
|
91
|
+
if (requested !== "report" && !options.outputCSS) {
|
|
92
|
+
throw new Error(`[tamagui zero-runtime] experimental.zeroRuntime requires outputCSS. The bundler owns one generated CSS artifact and derives TAMAGUI_DID_OUTPUT_CSS from it.`);
|
|
93
|
+
}
|
|
94
|
+
if (requested !== "report" && process.env.TAMAGUI_DOES_SSR_CSS === "mutates-themes") {
|
|
95
|
+
throw new Error(`[tamagui zero-runtime] Rule 4: TAMAGUI_DOES_SSR_CSS="mutates-themes" declares runtime theme mutation. Zero-runtime themes are build-time data. Remove runtime mutation or move that surface to a full-runtime island.`);
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
done: false,
|
|
99
|
+
islandGlobs: requested === true || requested === "report" ? [] : requested.islands
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function finishZeroRuntime(options, root, islandGlobs, matches) {
|
|
103
|
+
const outDir = import_node_path.default.join(root, ZERO_OUT_DIRNAME);
|
|
104
|
+
const outputCSS = options.outputCSS ?? "";
|
|
105
|
+
const islands = [...new Set(matches.map((match) => import_node_path.default.normalize(match)))].sort().map((module2) => {
|
|
106
|
+
const id = islandIdFor(module2);
|
|
107
|
+
return {
|
|
108
|
+
id,
|
|
109
|
+
module: module2,
|
|
110
|
+
loader: import_node_path.default.join(outDir, `${id}.loader.js`),
|
|
111
|
+
entry: import_node_path.default.join(outDir, `${id}.entry.js`)
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
const seen = /* @__PURE__ */ new Set();
|
|
115
|
+
for (const island of islands) {
|
|
116
|
+
if (seen.has(island.id)) {
|
|
117
|
+
throw new Error(`[tamagui zero-runtime] two declared islands share the basename "${island.id}". Island ids are their module basename because that is also the generated loader's filename.`);
|
|
118
|
+
}
|
|
119
|
+
seen.add(island.id);
|
|
120
|
+
}
|
|
121
|
+
if (islandGlobs.length && islands.length === 0) {
|
|
122
|
+
throw new Error(`[tamagui zero-runtime] experimental.zeroRuntime.islands matched no module for ${JSON.stringify(islandGlobs)}`);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
mode: options.experimental?.zeroRuntime === "report" ? "report" : "enforce",
|
|
126
|
+
root,
|
|
127
|
+
islandGlobs,
|
|
128
|
+
islands,
|
|
129
|
+
outDir,
|
|
130
|
+
cssPath: !outputCSS ? "" : import_node_path.default.isAbsolute(outputCSS) ? outputCSS : import_node_path.default.resolve(root, outputCSS)
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function assertZeroConfigDrivers(config) {
|
|
134
|
+
const drivers = config.animationDrivers ? Object.entries(config.animationDrivers) : [["default", config.animations]];
|
|
135
|
+
for (const [name, driver] of drivers) {
|
|
136
|
+
if (!driver || driver.outputStyle === "css") continue;
|
|
137
|
+
throw new Error((0, import_compiler_core.zeroConfigDriverMessage)(name, driver.outputStyle));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const ZERO_INTEGRATION_SUPPORT = {
|
|
141
|
+
vite: {
|
|
142
|
+
base: true,
|
|
143
|
+
islands: true
|
|
144
|
+
},
|
|
145
|
+
"next-webpack": {
|
|
146
|
+
base: true,
|
|
147
|
+
islands: true
|
|
148
|
+
},
|
|
149
|
+
"metro-web": {
|
|
150
|
+
base: true,
|
|
151
|
+
islands: true
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
function assertZeroIntegrationSupport(integration, resolved) {
|
|
155
|
+
if (resolved.mode !== "enforce") return;
|
|
156
|
+
const support = ZERO_INTEGRATION_SUPPORT[integration];
|
|
157
|
+
if (!support.base) {
|
|
158
|
+
throw new Error(`[tamagui zero-runtime] ${integration} has not qualified for zero-runtime output in this version. Use zeroRuntime: "report" or choose a qualified integration.`);
|
|
159
|
+
}
|
|
160
|
+
if (resolved.islands.length && !support.islands) {
|
|
161
|
+
throw new Error(`[tamagui zero-runtime] ${integration} does not support experimental.zeroRuntime islands in this version. Use zeroRuntime: true without islands or choose an integration with island support.`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var ownership_exports = {};
|
|
29
|
+
__export(ownership_exports, {
|
|
30
|
+
checkGlobalCSSArtifact: () => checkGlobalCSSArtifact,
|
|
31
|
+
declaresRuntimeThemeMutation: () => declaresRuntimeThemeMutation,
|
|
32
|
+
hashCSS: () => hashCSS,
|
|
33
|
+
resolveGlobalCSSOwnership: () => resolveGlobalCSSOwnership
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(ownership_exports);
|
|
36
|
+
var import_node_crypto = require("node:crypto");
|
|
37
|
+
var import_node_fs = require("node:fs");
|
|
38
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
39
|
+
var import_options = require("./options.cjs");
|
|
40
|
+
const hashCSS = (css) => (0, import_node_crypto.createHash)("sha256").update(css).digest("hex").slice(0, 16);
|
|
41
|
+
const normalize = (value) => value.split(/[?#]/, 1)[0].replace(/\\/g, "/");
|
|
42
|
+
const declaresRuntimeThemeMutation = () => process.env.TAMAGUI_DOES_SSR_CSS === "mutates-themes";
|
|
43
|
+
function resolveGlobalCSSOwnership(options, root) {
|
|
44
|
+
if (options.disable) return null;
|
|
45
|
+
if (options.platform === "native") return null;
|
|
46
|
+
if (!options.outputCSS) return null;
|
|
47
|
+
if (declaresRuntimeThemeMutation()) return null;
|
|
48
|
+
if ((0, import_options.resolveZeroRuntimeSync)(options, root).mode === "enforce") return null;
|
|
49
|
+
return { cssPath: import_node_path.default.isAbsolute(options.outputCSS) ? options.outputCSS : import_node_path.default.resolve(root, options.outputCSS) };
|
|
50
|
+
}
|
|
51
|
+
function checkGlobalCSSArtifact(input) {
|
|
52
|
+
const { cssPath, expectedCSS } = input;
|
|
53
|
+
let onDisk;
|
|
54
|
+
try {
|
|
55
|
+
onDisk = (0, import_node_fs.readFileSync)(cssPath, "utf8");
|
|
56
|
+
} catch {
|
|
57
|
+
return {
|
|
58
|
+
kind: "missing",
|
|
59
|
+
cssPath,
|
|
60
|
+
message: `[tamagui] the generated CSS artifact ${cssPath} does not exist, so this build cannot claim TAMAGUI_DID_OUTPUT_CSS. The design-system, :root, font and theme rules would be stripped from JavaScript and put nowhere.`
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (onDisk !== expectedCSS) {
|
|
64
|
+
return {
|
|
65
|
+
kind: "stale",
|
|
66
|
+
cssPath,
|
|
67
|
+
message: `[tamagui] the generated CSS artifact ${cssPath} is stale: it hashes ${hashCSS(onDisk)} but this build's config generates ${hashCSS(expectedCSS)}. Deriving TAMAGUI_DID_OUTPUT_CSS from it would ship rules that do not match the build.`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const wanted = normalize(cssPath);
|
|
71
|
+
for (const id of input.loadedModuleIds) {
|
|
72
|
+
if (normalize(id) === wanted) return null;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
kind: "unimported",
|
|
76
|
+
cssPath,
|
|
77
|
+
message: `[tamagui] the generated CSS artifact ${cssPath} exists but the entry graph never loads it. ${input.importHint}`
|
|
78
|
+
};
|
|
79
|
+
}
|