@tamagui/static 3.0.0-beta.661.1 → 3.0.0-beta.719.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 +0 -1
- package/dist/cjs/checkDeps.cjs +0 -1
- package/dist/cjs/compiler.cjs +0 -1
- package/dist/cjs/compilerHost.cjs +5 -6
- package/dist/cjs/constants.cjs +0 -1
- package/dist/cjs/domStructuralPass.cjs +0 -1
- package/dist/cjs/exports.cjs +0 -1
- package/dist/cjs/extractor/addLocalExports.cjs +0 -1
- package/dist/cjs/extractor/bundle.cjs +0 -1
- package/dist/cjs/extractor/bundleConfig.cjs +0 -1
- package/dist/cjs/extractor/concatClassName.cjs +0 -1
- package/dist/cjs/extractor/detectModuleFormat.cjs +0 -1
- package/dist/cjs/extractor/esbuildAliasPlugin.cjs +0 -1
- package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +0 -1
- package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -1
- package/dist/cjs/extractor/loadTamagui.cjs +0 -1
- package/dist/cjs/extractor/regenerateConfig.cjs +2 -3
- package/dist/cjs/extractor/watchTamaguiConfig.cjs +0 -1
- package/dist/cjs/getPragmaOptions.cjs +0 -1
- package/dist/cjs/helpers/memoize.cjs +0 -1
- package/dist/cjs/helpers/requireTamaguiCore.cjs +0 -1
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/registerRequire.cjs +0 -1
- package/dist/cjs/server.cjs +0 -1
- package/dist/cjs/staticEvaluationIgnoredModules.cjs +0 -1
- package/dist/cjs/types.cjs +0 -1
- package/dist/cjs/zero/artifact.cjs +0 -1
- package/dist/cjs/zero/graph.cjs +0 -1
- package/dist/cjs/zero/identity.cjs +0 -1
- package/dist/cjs/zero/index.cjs +8 -1
- package/dist/cjs/zero/islands.cjs +5 -3
- package/dist/cjs/zero/options.cjs +0 -1
- package/dist/cjs/zero/ownership.cjs +0 -1
- package/dist/cjs/zero/theme.cjs +35 -14
- package/dist/cjs/zero/transform.cjs +7 -3
- package/dist/esm/check-dep-versions.mjs.map +1 -1
- package/dist/esm/checkDeps.mjs.map +1 -1
- package/dist/esm/compiler.mjs.map +1 -1
- package/dist/esm/compilerHost.mjs +2 -3
- package/dist/esm/compilerHost.mjs.map +1 -1
- package/dist/esm/domStructuralPass.mjs.map +1 -1
- package/dist/esm/extractor/bundle.mjs.map +1 -1
- package/dist/esm/extractor/bundleConfig.mjs.map +1 -1
- package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -1
- package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -1
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -1
- package/dist/esm/extractor/loadTamagui.mjs.map +1 -1
- package/dist/esm/extractor/regenerateConfig.mjs +1 -1
- package/dist/esm/extractor/regenerateConfig.mjs.map +1 -1
- package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -1
- package/dist/esm/getPragmaOptions.mjs.map +1 -1
- package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -1
- package/dist/esm/registerRequire.mjs.map +1 -1
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/zero/artifact.mjs.map +1 -1
- package/dist/esm/zero/graph.mjs.map +1 -1
- package/dist/esm/zero/identity.mjs.map +1 -1
- package/dist/esm/zero/index.mjs +4 -0
- package/dist/esm/zero/islands.mjs +5 -2
- package/dist/esm/zero/islands.mjs.map +1 -1
- package/dist/esm/zero/options.mjs.map +1 -1
- package/dist/esm/zero/ownership.mjs.map +1 -1
- package/dist/esm/zero/theme.mjs +35 -13
- package/dist/esm/zero/theme.mjs.map +1 -1
- package/dist/esm/zero/transform.mjs +7 -2
- package/dist/esm/zero/transform.mjs.map +1 -1
- package/package.json +19 -19
- package/src/compilerHost.ts +1 -1
- package/src/extractor/regenerateConfig.ts +1 -1
- package/src/zero/index.ts +1 -0
- package/src/zero/islands.ts +5 -2
- package/src/zero/theme.ts +49 -17
- package/src/zero/transform.ts +13 -4
- package/types/zero/index.d.ts +1 -0
- package/types/zero/index.d.ts.map +1 -1
- package/types/zero/islands.d.ts.map +1 -1
- package/types/zero/theme.d.ts +2 -1
- package/types/zero/theme.d.ts.map +1 -1
- package/types/zero/transform.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","names":[],"sources":["esm/zero/transform.js"],"sourcesContent":["import {\n applyLoweredModule,\n childNode,\n childNodes,\n parseModuleAst,\n planZeroErasure,\n resolvedModuleId,\n walkAst,\n zeroIslandThemeMessage,\n zeroViolationsFromPlan\n} from \"@tamagui/compiler-core\";\nimport { createHash } from \"node:crypto\";\nimport path from \"node:path\";\nimport {\n foldBranches,\n lowerStaticTheme,\n readStaticTheme,\n resolveThemeChain\n} from \"./theme\";\nfunction identifierNameOf(node) {\n return node && node.type === \"Identifier\" && typeof node.name === \"string\" ? node.name : null;\n}\nfunction jsxNameOf(element) {\n const opening = childNode(element, \"openingElement\");\n if (!opening) return null;\n const name = childNode(opening, \"name\");\n return name && name.type === \"JSXIdentifier\" && typeof name.name === \"string\" ? name.name : null;\n}\nfunction transformZeroModule(input) {\n const { id, source, config } = input;\n const moduleId = resolvedModuleId(id);\n const program = parseModuleAst(source, id);\n const violations = zeroViolationsFromPlan(input.plan);\n const edits = [];\n const bridges = /* @__PURE__ */ new Map();\n const bridgeCSS = /* @__PURE__ */ new Map();\n let themeLocal = null;\n const islandLocals = /* @__PURE__ */ new Map();\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type !== \"ImportDeclaration\") continue;\n const sourceNode = childNode(statement, \"source\");\n const specifier = sourceNode && typeof sourceNode.value === \"string\" ? sourceNode.value : null;\n if (!specifier) continue;\n const island = input.resolveIslandLoader(specifier);\n for (const importSpecifier of childNodes(statement, \"specifiers\")) {\n const local = identifierNameOf(childNode(importSpecifier, \"local\"));\n if (!local) continue;\n if (island) {\n islandLocals.set(local, island.islandId);\n continue;\n }\n if (!input.isTamaguiSpecifier(specifier)) continue;\n const imported = childNode(importSpecifier, \"imported\");\n if (imported && imported.name === \"Theme\") themeLocal = local;\n }\n }\n const parents = /* @__PURE__ */ new Map();\n const elements = [];\n walkAst(program, (node, parent) => {\n if (parent) parents.set(node, parent);\n if (node.type === \"JSXElement\") elements.push(node);\n });\n const themeElements = themeLocal ? elements.filter((element) => jsxNameOf(element) === themeLocal) : [];\n const themeNodes = /* @__PURE__ */ new Map();\n for (const element of themeElements) {\n const read = readStaticTheme(element, id, source, config);\n for (const [identifier, rules] of read.css) bridgeCSS.set(identifier, rules);\n violations.push(...read.violations);\n if (read.node) themeNodes.set(element, read.node);\n }\n const themeChainOf = (element) => {\n const chain = [];\n let cursor = element;\n while (cursor) {\n const node = themeNodes.get(cursor);\n if (node) chain.unshift(node);\n cursor = parents.get(cursor);\n }\n return chain;\n };\n const rootThemeName = Object.keys(config.themes)[0] ?? \"light\";\n for (const element of themeElements) {\n const node = themeNodes.get(element);\n if (!node) continue;\n const lowered = lowerStaticTheme(\n node,\n themeChainOf(element),\n rootThemeName,\n config,\n id\n );\n violations.push(...lowered.violations);\n edits.push(...lowered.edits);\n }\n const mounts = elements.filter((element) => {\n const name = jsxNameOf(element);\n return !!name && islandLocals.has(name);\n }).sort((left, right) => left.start - right.start);\n const moduleBridgePrefix = createHash(\"sha256\").update(path.relative(input.root, id).replace(/\\\\/g, \"/\")).digest(\"hex\").slice(0, 8);\n const loweredRanges = input.plan.edits.filter((edit) => edit.end > edit.start);\n const isOpaqueAncestor = (element) => {\n if (themeNodes.has(element)) return false;\n const name = jsxNameOf(element);\n if (!name || islandLocals.has(name)) return false;\n if (name[0] !== name[0].toUpperCase()) return false;\n const nameNode = childNode(childNode(element, \"openingElement\"), \"name\");\n return !loweredRanges.some(\n (edit) => edit.start <= nameNode.start && edit.end >= nameNode.end\n );\n };\n mounts.forEach((element, index) => {\n const islandId = islandLocals.get(jsxNameOf(element));\n let opaque = null;\n for (let cursor = parents.get(element); cursor; cursor = parents.get(cursor)) {\n if (cursor.type === \"JSXElement\" && isOpaqueAncestor(cursor)) opaque = cursor;\n }\n if (opaque) {\n violations.push({\n rule: 4,\n code: \"local/unsupported-target\",\n span: { id: moduleId, start: element.start, end: element.end },\n component: islandId,\n message: zeroIslandThemeMessage(islandId)\n });\n return;\n }\n const chain = themeChainOf(element);\n const layers = chain.map((node) => node.layer).filter((layer) => !!layer);\n const branches = resolveThemeChain(chain, rootThemeName, config);\n const descriptors = branches.map((branch, branchIndex) => ({\n test: branch.test,\n bridge: {\n // unique across modules and stable across the server and client\n // compilations of the same entry, because both see the same module path\n id: branches.length === 1 ? `b${moduleBridgePrefix}_${index}` : `b${moduleBridgePrefix}_${index}_${branchIndex}`,\n name: branch.name,\n layers\n }\n }));\n const list = bridges.get(islandId) ?? [];\n for (const descriptor of descriptors) list.push(descriptor.bridge);\n bridges.set(islandId, list);\n const fold = (value) => foldBranches(\n descriptors.map((descriptor) => ({\n test: descriptor.test,\n value: value(descriptor.bridge)\n }))\n );\n const opening = childNode(element, \"openingElement\");\n const nameNode = childNode(opening, \"name\");\n edits.push({\n start: nameNode.end,\n end: nameNode.end,\n content: ` data-tamagui-bridge={${fold(\n (bridge) => JSON.stringify(bridge.id)\n )}} __tamaguiBridge={${fold((bridge) => JSON.stringify(bridge))}}`,\n origin: { id: moduleId, start: nameNode.start, end: nameNode.end }\n });\n });\n const erasure = violations.length ? null : planZeroErasure({\n id: moduleId,\n source,\n loweredEdits: [...input.plan.edits, ...edits],\n isTamaguiSpecifier: input.isTamaguiSpecifier,\n islandIdFor: input.resolveIslandModule\n });\n if (erasure) {\n edits.push(...erasure.edits);\n violations.push(...erasure.violations);\n }\n const output = input.mode === \"report\" ? applyLoweredModule(source, moduleId, input.plan) : violations.length ? { changed: false, code: source, map: null } : applyLoweredModule(source, moduleId, {\n id: moduleId,\n sourceHash: input.plan.sourceHash,\n edits: [...input.plan.edits, ...edits]\n });\n return {\n output,\n edits: input.mode === \"report\" ? [] : edits,\n bridges: input.mode === \"report\" ? /* @__PURE__ */ new Map() : bridges,\n bridgeCSS: input.mode === \"report\" ? /* @__PURE__ */ new Map() : bridgeCSS,\n violations,\n erased: {\n modules: erasure?.removedModules ?? [],\n bindings: erasure?.removedBindings ?? [],\n styledDefinitions: erasure?.erasedStyledDefinitions ?? [],\n exports: erasure?.erasedExports ?? []\n },\n rewrittenAnimatedNumberHooks: erasure?.rewrittenAnimatedNumberHooks ?? []\n };\n}\nexport {\n transformZeroModule\n};\n//# sourceMappingURL=transform.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","names":[],"sources":["esm/zero/transform.js"],"sourcesContent":["import {\n applyLoweredModule,\n childNode,\n childNodes,\n parseModuleAst,\n planZeroErasure,\n resolvedModuleId,\n walkAst,\n zeroIslandThemeMessage,\n zeroViolationsFromPlan\n} from \"@tamagui/compiler-core\";\nimport { createHash } from \"node:crypto\";\nimport path from \"node:path\";\nimport {\n foldBranches,\n lowerStaticTheme,\n readStaticTheme,\n resolveThemeChain\n} from \"./theme\";\nfunction identifierNameOf(node) {\n return node && node.type === \"Identifier\" && typeof node.name === \"string\" ? node.name : null;\n}\nfunction jsxNameOf(element) {\n const opening = childNode(element, \"openingElement\");\n if (!opening) return null;\n const name = childNode(opening, \"name\");\n return name && name.type === \"JSXIdentifier\" && typeof name.name === \"string\" ? name.name : null;\n}\nfunction transformZeroModule(input) {\n const { id, source, config } = input;\n const moduleId = resolvedModuleId(id);\n const program = parseModuleAst(source, id);\n const violations = zeroViolationsFromPlan(input.plan);\n const edits = [];\n const bridges = /* @__PURE__ */ new Map();\n const bridgeCSS = /* @__PURE__ */ new Map();\n let themeLocal = null;\n let themeUpdateLocal = null;\n const islandLocals = /* @__PURE__ */ new Map();\n for (const statement of childNodes(program, \"body\")) {\n if (statement.type !== \"ImportDeclaration\") continue;\n const sourceNode = childNode(statement, \"source\");\n const specifier = sourceNode && typeof sourceNode.value === \"string\" ? sourceNode.value : null;\n if (!specifier) continue;\n const island = input.resolveIslandLoader(specifier);\n for (const importSpecifier of childNodes(statement, \"specifiers\")) {\n const local = identifierNameOf(childNode(importSpecifier, \"local\"));\n if (!local) continue;\n if (island) {\n islandLocals.set(local, island.islandId);\n continue;\n }\n if (!input.isTamaguiSpecifier(specifier)) continue;\n const imported = childNode(importSpecifier, \"imported\");\n if (imported && imported.name === \"Theme\") themeLocal = local;\n if (imported && imported.name === \"ThemeUpdate\") themeUpdateLocal = local;\n }\n }\n const parents = /* @__PURE__ */ new Map();\n const elements = [];\n walkAst(program, (node, parent) => {\n if (parent) parents.set(node, parent);\n if (node.type === \"JSXElement\") elements.push(node);\n });\n const themeElements = elements.filter((element) => {\n const name = jsxNameOf(element);\n return name === themeLocal || name === themeUpdateLocal;\n });\n const themeNodes = /* @__PURE__ */ new Map();\n for (const element of themeElements) {\n const read = readStaticTheme(\n element,\n id,\n source,\n config,\n jsxNameOf(element) === themeUpdateLocal ? \"ThemeUpdate\" : \"Theme\"\n );\n for (const [identifier, rules] of read.css) bridgeCSS.set(identifier, rules);\n violations.push(...read.violations);\n if (read.node) themeNodes.set(element, read.node);\n }\n const themeChainOf = (element) => {\n const chain = [];\n let cursor = element;\n while (cursor) {\n const node = themeNodes.get(cursor);\n if (node) chain.unshift(node);\n cursor = parents.get(cursor);\n }\n return chain;\n };\n const rootThemeName = Object.keys(config.themes)[0] ?? \"light\";\n for (const element of themeElements) {\n const node = themeNodes.get(element);\n if (!node) continue;\n const lowered = lowerStaticTheme(\n node,\n themeChainOf(element),\n rootThemeName,\n config,\n id\n );\n violations.push(...lowered.violations);\n edits.push(...lowered.edits);\n }\n const mounts = elements.filter((element) => {\n const name = jsxNameOf(element);\n return !!name && islandLocals.has(name);\n }).sort((left, right) => left.start - right.start);\n const moduleBridgePrefix = createHash(\"sha256\").update(path.relative(input.root, id).replace(/\\\\/g, \"/\")).digest(\"hex\").slice(0, 8);\n const loweredRanges = input.plan.edits.filter((edit) => edit.end > edit.start);\n const isOpaqueAncestor = (element) => {\n if (themeNodes.has(element)) return false;\n const name = jsxNameOf(element);\n if (!name || islandLocals.has(name)) return false;\n if (name[0] !== name[0].toUpperCase()) return false;\n const nameNode = childNode(childNode(element, \"openingElement\"), \"name\");\n return !loweredRanges.some(\n (edit) => edit.start <= nameNode.start && edit.end >= nameNode.end\n );\n };\n mounts.forEach((element, index) => {\n const islandId = islandLocals.get(jsxNameOf(element));\n let opaque = null;\n for (let cursor = parents.get(element); cursor; cursor = parents.get(cursor)) {\n if (cursor.type === \"JSXElement\" && isOpaqueAncestor(cursor)) opaque = cursor;\n }\n if (opaque) {\n violations.push({\n rule: 4,\n code: \"local/unsupported-target\",\n span: { id: moduleId, start: element.start, end: element.end },\n component: islandId,\n message: zeroIslandThemeMessage(islandId)\n });\n return;\n }\n const chain = themeChainOf(element);\n const layers = chain.map((node) => node.layer).filter((layer) => !!layer);\n const branches = resolveThemeChain(chain, rootThemeName, config);\n const descriptors = branches.map((branch, branchIndex) => ({\n test: branch.test,\n bridge: {\n // unique across modules and stable across the server and client\n // compilations of the same entry, because both see the same module path\n id: branches.length === 1 ? `b${moduleBridgePrefix}_${index}` : `b${moduleBridgePrefix}_${index}_${branchIndex}`,\n name: branch.name,\n layers\n }\n }));\n const list = bridges.get(islandId) ?? [];\n for (const descriptor of descriptors) list.push(descriptor.bridge);\n bridges.set(islandId, list);\n const fold = (value) => foldBranches(\n descriptors.map((descriptor) => ({\n test: descriptor.test,\n value: value(descriptor.bridge)\n }))\n );\n const opening = childNode(element, \"openingElement\");\n const nameNode = childNode(opening, \"name\");\n edits.push({\n start: nameNode.end,\n end: nameNode.end,\n content: ` data-tamagui-bridge={${fold(\n (bridge) => JSON.stringify(bridge.id)\n )}} __tamaguiBridge={${fold((bridge) => JSON.stringify(bridge))}}`,\n origin: { id: moduleId, start: nameNode.start, end: nameNode.end }\n });\n });\n const erasure = violations.length ? null : planZeroErasure({\n id: moduleId,\n source,\n loweredEdits: [...input.plan.edits, ...edits],\n isTamaguiSpecifier: input.isTamaguiSpecifier,\n islandIdFor: input.resolveIslandModule\n });\n if (erasure) {\n edits.push(...erasure.edits);\n violations.push(...erasure.violations);\n }\n const output = input.mode === \"report\" ? applyLoweredModule(source, moduleId, input.plan) : violations.length ? { changed: false, code: source, map: null } : applyLoweredModule(source, moduleId, {\n id: moduleId,\n sourceHash: input.plan.sourceHash,\n edits: [...input.plan.edits, ...edits]\n });\n return {\n output,\n edits: input.mode === \"report\" ? [] : edits,\n bridges: input.mode === \"report\" ? /* @__PURE__ */ new Map() : bridges,\n bridgeCSS: input.mode === \"report\" ? /* @__PURE__ */ new Map() : bridgeCSS,\n violations,\n erased: {\n modules: erasure?.removedModules ?? [],\n bindings: erasure?.removedBindings ?? [],\n styledDefinitions: erasure?.erasedStyledDefinitions ?? [],\n exports: erasure?.erasedExports ?? []\n },\n rewrittenAnimatedNumberHooks: erasure?.rewrittenAnimatedNumberHooks ?? []\n };\n}\nexport {\n transformZeroModule\n};\n//# sourceMappingURL=transform.js.map\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/static",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.719.1",
|
|
4
4
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -45,21 +45,21 @@
|
|
|
45
45
|
"clean:build": "tamagui-build clean:build"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@tamagui/cli-color": "3.0.0-beta.
|
|
49
|
-
"@tamagui/compiler-core": "3.0.0-beta.
|
|
50
|
-
"@tamagui/config-default": "3.0.0-beta.
|
|
51
|
-
"@tamagui/core": "3.0.0-beta.
|
|
52
|
-
"@tamagui/dom": "3.0.0-beta.
|
|
53
|
-
"@tamagui/fake-react-native": "3.0.0-beta.
|
|
54
|
-
"@tamagui/generate-themes": "3.0.0-beta.
|
|
55
|
-
"@tamagui/helpers": "3.0.0-beta.
|
|
56
|
-
"@tamagui/helpers-node": "3.0.0-beta.
|
|
57
|
-
"@tamagui/react-native-web-internals": "3.0.0-beta.
|
|
58
|
-
"@tamagui/react-native-web-lite": "3.0.0-beta.
|
|
59
|
-
"@tamagui/shorthands": "3.0.0-beta.
|
|
60
|
-
"@tamagui/style-grammar": "3.0.0-beta.
|
|
61
|
-
"@tamagui/types": "3.0.0-beta.
|
|
62
|
-
"@tamagui/web": "3.0.0-beta.
|
|
48
|
+
"@tamagui/cli-color": "3.0.0-beta.719.1",
|
|
49
|
+
"@tamagui/compiler-core": "3.0.0-beta.719.1",
|
|
50
|
+
"@tamagui/config-default": "3.0.0-beta.719.1",
|
|
51
|
+
"@tamagui/core": "3.0.0-beta.719.1",
|
|
52
|
+
"@tamagui/dom": "3.0.0-beta.719.1",
|
|
53
|
+
"@tamagui/fake-react-native": "3.0.0-beta.719.1",
|
|
54
|
+
"@tamagui/generate-themes": "3.0.0-beta.719.1",
|
|
55
|
+
"@tamagui/helpers": "3.0.0-beta.719.1",
|
|
56
|
+
"@tamagui/helpers-node": "3.0.0-beta.719.1",
|
|
57
|
+
"@tamagui/react-native-web-internals": "3.0.0-beta.719.1",
|
|
58
|
+
"@tamagui/react-native-web-lite": "3.0.0-beta.719.1",
|
|
59
|
+
"@tamagui/shorthands": "3.0.0-beta.719.1",
|
|
60
|
+
"@tamagui/style-grammar": "3.0.0-beta.719.1",
|
|
61
|
+
"@tamagui/types": "3.0.0-beta.719.1",
|
|
62
|
+
"@tamagui/web": "3.0.0-beta.719.1",
|
|
63
63
|
"browserslist": "^4.28.1",
|
|
64
64
|
"check-dependency-version-consistency": "^4.1.0",
|
|
65
65
|
"esbuild": "0.28.1",
|
|
@@ -68,16 +68,16 @@
|
|
|
68
68
|
"find-root": "^1.1.0",
|
|
69
69
|
"fs-extra": "^11.2.0",
|
|
70
70
|
"js-yaml": "^4.1.0",
|
|
71
|
-
"react-native-web": "
|
|
71
|
+
"react-native-web": "~0.21.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@tamagui/build": "3.0.0-beta.
|
|
74
|
+
"@tamagui/build": "3.0.0-beta.719.1",
|
|
75
75
|
"@types/find-root": "^1.1.2",
|
|
76
76
|
"@types/node": "^22.1.0",
|
|
77
77
|
"@types/webpack": "^4.41.26",
|
|
78
78
|
"esbuild-loader": "^4.2.2",
|
|
79
79
|
"null-loader": "^4.0.1",
|
|
80
|
-
"react": "
|
|
80
|
+
"react": "19.2.3",
|
|
81
81
|
"react-native": "0.86.2",
|
|
82
82
|
"typescript": "~6.0.3"
|
|
83
83
|
},
|
package/src/compilerHost.ts
CHANGED
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
createModifierRegistry,
|
|
38
38
|
parseTransition,
|
|
39
39
|
parseValue,
|
|
40
|
-
} from '@tamagui/style-grammar'
|
|
40
|
+
} from '@tamagui/style-grammar/tooling'
|
|
41
41
|
import { isValidStyleKey } from '@tamagui/web'
|
|
42
42
|
import type { AnimationDriver, StaticConfig, TamaguiInternalConfig } from '@tamagui/web'
|
|
43
43
|
|
|
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module'
|
|
|
3
3
|
|
|
4
4
|
import { generateThemes, writeGeneratedThemes } from '@tamagui/generate-themes'
|
|
5
5
|
import { stylePropsAll } from '@tamagui/helpers'
|
|
6
|
-
import { grammarEntries } from '@tamagui/style-grammar'
|
|
6
|
+
import { grammarEntries } from '@tamagui/style-grammar/tooling'
|
|
7
7
|
import type { TamaguiOptions } from '@tamagui/types'
|
|
8
8
|
import FS from 'fs-extra'
|
|
9
9
|
|
package/src/zero/index.ts
CHANGED
package/src/zero/islands.ts
CHANGED
|
@@ -170,6 +170,7 @@ export function generateIslandEntrySource(input: IslandGenerationInput): string
|
|
|
170
170
|
return `// generated by @tamagui/static zero-runtime. do not edit.
|
|
171
171
|
import * as React from 'react'
|
|
172
172
|
import { TamaguiProvider, Theme } from 'tamagui'
|
|
173
|
+
import { createThemeUpdateState } from '@tamagui/web/theme-update'
|
|
173
174
|
import config from ${JSON.stringify(importPath(entry, input.configPath))}
|
|
174
175
|
import IslandRoot from ${JSON.stringify(importPath(entry, input.island.module))}
|
|
175
176
|
|
|
@@ -185,8 +186,10 @@ export function Island(props) {
|
|
|
185
186
|
node = React.createElement(
|
|
186
187
|
Theme,
|
|
187
188
|
{
|
|
188
|
-
|
|
189
|
-
|
|
189
|
+
_themeUpdate: createThemeUpdateState(
|
|
190
|
+
layers[index].inlineValues,
|
|
191
|
+
layers[index].inlineClassName
|
|
192
|
+
),
|
|
190
193
|
forceClassName: true,
|
|
191
194
|
},
|
|
192
195
|
node
|
package/src/zero/theme.ts
CHANGED
|
@@ -10,13 +10,15 @@ import {
|
|
|
10
10
|
} from '@tamagui/compiler-core'
|
|
11
11
|
import { getThemeClassNames, reservedThemeProps } from '@tamagui/helpers'
|
|
12
12
|
import {
|
|
13
|
-
getInlineValuesFromProps,
|
|
14
|
-
getVariablesCSSRules,
|
|
15
13
|
resolveThemeName,
|
|
16
14
|
variableToString,
|
|
17
|
-
type InlineValueIssue,
|
|
18
15
|
type TamaguiInternalConfig,
|
|
19
16
|
} from '@tamagui/web'
|
|
17
|
+
import {
|
|
18
|
+
getInlineValuesFromProps,
|
|
19
|
+
getVariablesCSSRules,
|
|
20
|
+
type InlineValueIssue,
|
|
21
|
+
} from '@tamagui/web/theme-update'
|
|
20
22
|
|
|
21
23
|
import type { IslandThemeBridgeLayer } from './islands'
|
|
22
24
|
|
|
@@ -41,6 +43,7 @@ export interface ThemeNameOption {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export interface StaticThemeNode {
|
|
46
|
+
kind: 'Theme' | 'ThemeUpdate'
|
|
44
47
|
element: AstNode
|
|
45
48
|
opening: AstNode
|
|
46
49
|
closing: AstNode | null
|
|
@@ -215,7 +218,8 @@ export function readStaticTheme(
|
|
|
215
218
|
element: AstNode,
|
|
216
219
|
id: string,
|
|
217
220
|
source: string,
|
|
218
|
-
config: TamaguiInternalConfig
|
|
221
|
+
config: TamaguiInternalConfig,
|
|
222
|
+
kind: 'Theme' | 'ThemeUpdate' = 'Theme'
|
|
219
223
|
): StaticThemeReadResult {
|
|
220
224
|
const moduleId = resolvedModuleId(id)
|
|
221
225
|
const violations: ZeroViolation[] = []
|
|
@@ -236,8 +240,8 @@ export function readStaticTheme(
|
|
|
236
240
|
rule: 1,
|
|
237
241
|
code: 'local/unsafe-style-spread',
|
|
238
242
|
span: span(attribute),
|
|
239
|
-
component:
|
|
240
|
-
message: zeroRuleMessage(1, { component:
|
|
243
|
+
component: kind,
|
|
244
|
+
message: zeroRuleMessage(1, { component: kind }),
|
|
241
245
|
})
|
|
242
246
|
continue
|
|
243
247
|
}
|
|
@@ -249,7 +253,20 @@ export function readStaticTheme(
|
|
|
249
253
|
? childNode(rawValue, 'expression')
|
|
250
254
|
: rawValue
|
|
251
255
|
|
|
252
|
-
if (
|
|
256
|
+
if (kind === 'ThemeUpdate' && reservedThemeProps[key]) {
|
|
257
|
+
violations.push({
|
|
258
|
+
rule: 4,
|
|
259
|
+
code: 'local/unsupported-target',
|
|
260
|
+
span: span(attribute),
|
|
261
|
+
component: kind,
|
|
262
|
+
message: zeroRuleMessage(4, {
|
|
263
|
+
detail: `the <ThemeUpdate ${key}> prop, which belongs on <Theme>,`,
|
|
264
|
+
}),
|
|
265
|
+
})
|
|
266
|
+
continue
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (kind === 'Theme' && key === 'name') {
|
|
253
270
|
const read = value ? readNameOptions(value, source, []) : null
|
|
254
271
|
if (!read) {
|
|
255
272
|
violations.push({
|
|
@@ -270,7 +287,7 @@ export function readStaticTheme(
|
|
|
270
287
|
continue
|
|
271
288
|
}
|
|
272
289
|
|
|
273
|
-
if (reservedThemeProps[key]) {
|
|
290
|
+
if (kind === 'Theme' && reservedThemeProps[key]) {
|
|
274
291
|
if (!LOWERABLE_RESERVED_PROPS.has(key)) {
|
|
275
292
|
violations.push({
|
|
276
293
|
rule: 4,
|
|
@@ -302,6 +319,19 @@ export function readStaticTheme(
|
|
|
302
319
|
continue
|
|
303
320
|
}
|
|
304
321
|
|
|
322
|
+
if (kind === 'Theme') {
|
|
323
|
+
violations.push({
|
|
324
|
+
rule: 4,
|
|
325
|
+
code: 'local/unsupported-target',
|
|
326
|
+
span: span(attribute),
|
|
327
|
+
component: 'Theme',
|
|
328
|
+
message: zeroRuleMessage(4, {
|
|
329
|
+
detail: `the removed <Theme ${key}> inline-value spelling. Use <ThemeUpdate ${key}> around the subtree instead,`,
|
|
330
|
+
}),
|
|
331
|
+
})
|
|
332
|
+
continue
|
|
333
|
+
}
|
|
334
|
+
|
|
305
335
|
// everything else is a theme key, and its value has to be build-time data
|
|
306
336
|
const literal = value ? literalOf(value) : undefined
|
|
307
337
|
if (typeof literal !== 'string' && typeof literal !== 'number') {
|
|
@@ -309,10 +339,10 @@ export function readStaticTheme(
|
|
|
309
339
|
rule: 3,
|
|
310
340
|
code: 'local/dynamic-style-value',
|
|
311
341
|
span: span(attribute),
|
|
312
|
-
component:
|
|
342
|
+
component: kind,
|
|
313
343
|
message: zeroRuleMessage(3, {
|
|
314
344
|
prop: key,
|
|
315
|
-
component:
|
|
345
|
+
component: kind,
|
|
316
346
|
detail: value
|
|
317
347
|
? 'a theme value must be a string or number literal at build time'
|
|
318
348
|
: 'a theme key needs a value',
|
|
@@ -324,7 +354,7 @@ export function readStaticTheme(
|
|
|
324
354
|
}
|
|
325
355
|
|
|
326
356
|
// the runtime throws on this pair rather than picking one
|
|
327
|
-
if (reset && options.some((option) => option.name !== undefined)) {
|
|
357
|
+
if (kind === 'Theme' && reset && options.some((option) => option.name !== undefined)) {
|
|
328
358
|
violations.push({
|
|
329
359
|
rule: 4,
|
|
330
360
|
code: 'local/unsupported-target',
|
|
@@ -343,7 +373,7 @@ export function readStaticTheme(
|
|
|
343
373
|
span: span(element),
|
|
344
374
|
component: 'Theme',
|
|
345
375
|
message: zeroRuleMessage(4, {
|
|
346
|
-
detail:
|
|
376
|
+
detail: `a self-closing <${kind}>, which has no subtree to theme,`,
|
|
347
377
|
}),
|
|
348
378
|
})
|
|
349
379
|
}
|
|
@@ -351,18 +381,19 @@ export function readStaticTheme(
|
|
|
351
381
|
// One parse per unique authored value, and every clause the parser could not
|
|
352
382
|
// use is a violation here instead of the warn-and-drop the render path does.
|
|
353
383
|
const issues: InlineValueIssue[] = []
|
|
354
|
-
const inlineValues =
|
|
355
|
-
|
|
356
|
-
|
|
384
|
+
const inlineValues =
|
|
385
|
+
kind === 'ThemeUpdate' && Object.keys(themeKeyProps).length
|
|
386
|
+
? getInlineValuesFromProps(themeKeyProps, config, (issue) => issues.push(issue))
|
|
387
|
+
: null
|
|
357
388
|
for (const issue of issues) {
|
|
358
389
|
violations.push({
|
|
359
390
|
rule: 3,
|
|
360
391
|
code: 'local/dynamic-style-value',
|
|
361
392
|
span: span(opening),
|
|
362
|
-
component:
|
|
393
|
+
component: kind,
|
|
363
394
|
message: zeroRuleMessage(3, {
|
|
364
395
|
prop: issue.key,
|
|
365
|
-
component:
|
|
396
|
+
component: kind,
|
|
366
397
|
detail: issue.message,
|
|
367
398
|
}),
|
|
368
399
|
})
|
|
@@ -375,6 +406,7 @@ export function readStaticTheme(
|
|
|
375
406
|
|
|
376
407
|
return {
|
|
377
408
|
node: {
|
|
409
|
+
kind,
|
|
378
410
|
element,
|
|
379
411
|
opening,
|
|
380
412
|
closing,
|
package/src/zero/transform.ts
CHANGED
|
@@ -108,6 +108,7 @@ export function transformZeroModule(
|
|
|
108
108
|
|
|
109
109
|
// module-level bindings we care about
|
|
110
110
|
let themeLocal: string | null = null
|
|
111
|
+
let themeUpdateLocal: string | null = null
|
|
111
112
|
const islandLocals = new Map<string, string>()
|
|
112
113
|
for (const statement of childNodes(program, 'body')) {
|
|
113
114
|
if (statement.type !== 'ImportDeclaration') continue
|
|
@@ -126,6 +127,7 @@ export function transformZeroModule(
|
|
|
126
127
|
if (!input.isTamaguiSpecifier(specifier)) continue
|
|
127
128
|
const imported = childNode(importSpecifier, 'imported')
|
|
128
129
|
if (imported && imported.name === 'Theme') themeLocal = local
|
|
130
|
+
if (imported && imported.name === 'ThemeUpdate') themeUpdateLocal = local
|
|
129
131
|
}
|
|
130
132
|
}
|
|
131
133
|
|
|
@@ -137,15 +139,22 @@ export function transformZeroModule(
|
|
|
137
139
|
if (node.type === 'JSXElement') elements.push(node)
|
|
138
140
|
})
|
|
139
141
|
|
|
140
|
-
const themeElements =
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
const themeElements = elements.filter((element) => {
|
|
143
|
+
const name = jsxNameOf(element)
|
|
144
|
+
return name === themeLocal || name === themeUpdateLocal
|
|
145
|
+
})
|
|
143
146
|
|
|
144
147
|
// Each <Theme> is read once, then lowered against its own ancestry, so a
|
|
145
148
|
// nested node resolves against whatever its parent resolved to.
|
|
146
149
|
const themeNodes = new Map<AstNode, StaticThemeNode>()
|
|
147
150
|
for (const element of themeElements) {
|
|
148
|
-
const read = readStaticTheme(
|
|
151
|
+
const read = readStaticTheme(
|
|
152
|
+
element,
|
|
153
|
+
id,
|
|
154
|
+
source,
|
|
155
|
+
config,
|
|
156
|
+
jsxNameOf(element) === themeUpdateLocal ? 'ThemeUpdate' : 'Theme'
|
|
157
|
+
)
|
|
149
158
|
for (const [identifier, rules] of read.css) bridgeCSS.set(identifier, rules)
|
|
150
159
|
violations.push(...read.violations)
|
|
151
160
|
if (read.node) themeNodes.set(element, read.node)
|
package/types/zero/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zero/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zero/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/zero/islands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;GAOG;AAEH,eAAO,MAAM,kBAAkB,+BAA+B,CAAA;AAC9D,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AAExD,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;KACzD,CAAA;IACD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,sBAAsB,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAA;IAClB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;CAChB;AAkBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAyG/E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/zero/islands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;GAOG;AAEH,eAAO,MAAM,kBAAkB,+BAA+B,CAAA;AAC9D,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AAExD,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAA;KACzD,CAAA;IACD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,sBAAsB,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAA;IAClB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;CAChB;AAkBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAyG/E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAiD9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAGrE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAIjE,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1D,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,EACxC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GACzC,IAAI,CAWN"}
|
package/types/zero/theme.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export interface ThemeNameOption {
|
|
|
20
20
|
name: string | undefined;
|
|
21
21
|
}
|
|
22
22
|
export interface StaticThemeNode {
|
|
23
|
+
kind: 'Theme' | 'ThemeUpdate';
|
|
23
24
|
element: AstNode;
|
|
24
25
|
opening: AstNode;
|
|
25
26
|
closing: AstNode | null;
|
|
@@ -67,7 +68,7 @@ export interface StaticThemeReadResult {
|
|
|
67
68
|
* so a name that becomes reserved later cannot mean a theme key here and a
|
|
68
69
|
* reserved prop there.
|
|
69
70
|
*/
|
|
70
|
-
export declare function readStaticTheme(element: AstNode, id: string, source: string, config: TamaguiInternalConfig): StaticThemeReadResult;
|
|
71
|
+
export declare function readStaticTheme(element: AstNode, id: string, source: string, config: TamaguiInternalConfig, kind?: 'Theme' | 'ThemeUpdate'): StaticThemeReadResult;
|
|
71
72
|
/**
|
|
72
73
|
* The span a static `<Theme>` lowers to.
|
|
73
74
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/zero/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/zero/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAA;AAOrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAEvD;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,8EAA8E;IAC9E,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAA;CACrC;AAoFD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAYvF;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,qBAAqB,GAC5B,WAAW,EAAE,CAuBf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,8EAA8E;IAC9E,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,qBAAqB,EAC7B,IAAI,GAAE,OAAO,GAAG,aAAuB,GACtC,qBAAqB,CA4MvB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,qBAAqB,EAC7B,EAAE,EAAE,MAAM,GACT;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,CAmEtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/zero/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,oBAAoB,EAEzB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAKzD,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,WAAW,CAAA;AAS1E;;;;;;;GAOG;AAEH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,wEAAwE;IACxE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9C,wEAAwE;IACxE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACnE,4EAA4E;IAC5E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACzC,kEAAkE;IAClE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,iBAAiB,EAAE,MAAM,EAAE,CAAA;QAC3B,oDAAoD;QACpD,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IACD,0EAA0E;IAC1E,4BAA4B,EAAE,MAAM,EAAE,CAAA;CACvC;AAiBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/zero/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,oBAAoB,EAEzB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAKzD,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,WAAW,CAAA;AAS1E;;;;;;;GAOG;AAEH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,wEAAwE;IACxE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9C,wEAAwE;IACxE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACnE,4EAA4E;IAC5E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACtD;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACzC,kEAAkE;IAClE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,iBAAiB,EAAE,MAAM,EAAE,CAAA;QAC3B,oDAAoD;QACpD,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IACD,0EAA0E;IAC1E,4BAA4B,EAAE,MAAM,EAAE,CAAA;CACvC;AAiBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAwO3B"}
|