zyzz 0.0.7 → 0.0.8
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/babel/index.d.ts +4 -1
- package/dist/babel/index.d.ts.map +1 -1
- package/dist/babel/index.js +6 -3
- package/dist/babel/index.js.map +1 -1
- package/dist/babel/internal/Compilation.d.ts +12 -0
- package/dist/babel/internal/Compilation.d.ts.map +1 -0
- package/dist/babel/internal/Compilation.js +3 -0
- package/dist/babel/internal/Compilation.js.map +1 -0
- package/dist/compiler/Graph.d.ts +6 -1
- package/dist/compiler/Graph.d.ts.map +1 -1
- package/dist/compiler/Graph.js +160 -36
- package/dist/compiler/Graph.js.map +1 -1
- package/dist/compiler/Transform.d.ts.map +1 -1
- package/dist/compiler/Transform.js +2 -1
- package/dist/compiler/Transform.js.map +1 -1
- package/dist/compiler/internal/Stylesheets.d.ts +8 -0
- package/dist/compiler/internal/Stylesheets.d.ts.map +1 -1
- package/dist/compiler/internal/Stylesheets.js +4 -0
- package/dist/compiler/internal/Stylesheets.js.map +1 -1
- package/dist/metro/Graph.d.ts +9 -1
- package/dist/metro/Graph.d.ts.map +1 -1
- package/dist/metro/Graph.js +5 -4
- package/dist/metro/Graph.js.map +1 -1
- package/dist/metro/transformer.d.ts +0 -1
- package/dist/metro/transformer.d.ts.map +1 -1
- package/dist/metro/transformer.js +19 -1
- package/dist/metro/transformer.js.map +1 -1
- package/dist/next/index.d.ts +3 -3
- package/dist/next/index.d.ts.map +1 -1
- package/dist/next/index.js +25 -30
- package/dist/next/index.js.map +1 -1
- package/dist/next/internal/Project.d.ts +4 -4
- package/dist/next/internal/Project.d.ts.map +1 -1
- package/dist/next/internal/Project.js +153 -107
- package/dist/next/internal/Project.js.map +1 -1
- package/dist/next/loader.d.ts +3 -1
- package/dist/next/loader.d.ts.map +1 -1
- package/dist/next/loader.js +152 -99
- package/dist/next/loader.js.map +1 -1
- package/dist/node/Host.d.ts.map +1 -1
- package/dist/node/Host.js +11 -3
- package/dist/node/Host.js.map +1 -1
- package/dist/node/internal/Snapshot.d.ts +12 -0
- package/dist/node/internal/Snapshot.d.ts.map +1 -0
- package/dist/node/internal/Snapshot.js +74 -0
- package/dist/node/internal/Snapshot.js.map +1 -0
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +10 -5
- package/dist/unplugin/index.js.map +1 -1
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +19 -4
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/src/babel/index.ts +10 -4
- package/src/babel/internal/Compilation.ts +13 -0
- package/src/compiler/Graph.ts +213 -47
- package/src/compiler/Transform.ts +2 -1
- package/src/compiler/internal/Stylesheets.ts +9 -0
- package/src/metro/Graph.ts +5 -3
- package/src/metro/transformer.ts +26 -1
- package/src/next/index.ts +26 -31
- package/src/next/internal/Project.ts +196 -155
- package/src/next/loader.ts +181 -124
- package/src/node/Host.ts +15 -3
- package/src/node/internal/Snapshot.ts +79 -0
- package/src/unplugin/index.ts +10 -5
- package/src/vite/index.ts +24 -4
package/dist/babel/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Compiles local Zyzz authoring before Babel lowers TypeScript and JSX. @module */
|
|
2
|
+
import * as Compilation from './internal/Compilation.js';
|
|
2
3
|
import type * as Babel from '@babel/core';
|
|
3
4
|
import * as Graph from '../compiler/Graph.js';
|
|
4
5
|
import * as Native from '../compiler/Native.js';
|
|
@@ -49,5 +50,7 @@ declare module '@babel/core' {
|
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
/** Rewrites direct Zyzz imports while preserving authored source locations. */
|
|
52
|
-
export declare function zyzz(api: typeof Babel, options: Options
|
|
53
|
+
export declare function zyzz(api: typeof Babel, options: Options & {
|
|
54
|
+
readonly [Compilation.key]?: Compilation.Context;
|
|
55
|
+
}): Babel.PluginObj;
|
|
53
56
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAMzC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAI/C,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACnD,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC/D,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnD,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAA;IACpC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;CACjD,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3D,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,CAAA;AAED,iDAAiD;AACjD,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,CAAA;AAEhD,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG;IACxB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,iBAAiB;QACzB,iGAAiG;QACjG,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KAC/B;CACF;AAED,+EAA+E;AAC/E,wBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAMzC,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAI/C,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACnD,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC/D,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnD,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAA;IACpC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;CACjD,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3D,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CACvB,CAAA;AAED,iDAAiD;AACjD,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,CAAA;AAEhD,sFAAsF;AACtF,MAAM,MAAM,WAAW,GAAG;IACxB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,iBAAiB;QACzB,iGAAiG;QACjG,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KAC/B;CACF;AAED,+EAA+E;AAC/E,wBAAgB,IAAI,CAClB,GAAG,EAAE,OAAO,KAAK,EACjB,OAAO,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAA;CAAE,GACtE,KAAK,CAAC,SAAS,CAkSjB"}
|
package/dist/babel/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Compiles local Zyzz authoring before Babel lowers TypeScript and JSX. @module */
|
|
2
|
+
import * as Compilation from './internal/Compilation.js';
|
|
1
3
|
import * as Syntax from '../compiler/internal/Syntax.js';
|
|
2
4
|
import * as Themes from '../compiler/internal/Themes.js';
|
|
3
5
|
import * as Path from 'node:path';
|
|
@@ -83,8 +85,9 @@ export function zyzz(api, options) {
|
|
|
83
85
|
const moduleId = options.moduleId;
|
|
84
86
|
if (!moduleId || !Object.hasOwn(options.modules, moduleId))
|
|
85
87
|
throw new Error('Native Babel graph compilation requires a moduleId present in modules.');
|
|
86
|
-
return Graph.compile({
|
|
87
|
-
[Syntax.cache]:
|
|
88
|
+
return (options[Compilation.key]?.compile ?? Graph.compile)({
|
|
89
|
+
[Syntax.cache]: options[Compilation.key]?.programs ??
|
|
90
|
+
(parsed ? new Map([[moduleId, parsed]]) : undefined),
|
|
88
91
|
modules: { ...options.modules, [moduleId]: file.code },
|
|
89
92
|
imports: options.imports,
|
|
90
93
|
native: {
|
|
@@ -133,7 +136,7 @@ export function zyzz(api, options) {
|
|
|
133
136
|
if (!opts)
|
|
134
137
|
return;
|
|
135
138
|
try {
|
|
136
|
-
const parsed = Syntax.parse({
|
|
139
|
+
const parsed = (options[Compilation.key]?.parse ?? Syntax.parse)({
|
|
137
140
|
moduleId: options.moduleId ??
|
|
138
141
|
`babel/${Path.basename(opts.filename ?? 'source.tsx')}`,
|
|
139
142
|
source: code,
|
package/dist/babel/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Carries worker-owned compilation state from Metro to its Babel invocation. @module */
|
|
2
|
+
import type * as Graph from '../../compiler/Graph.js';
|
|
3
|
+
import type * as Syntax from '../../compiler/internal/Syntax.js';
|
|
4
|
+
/** Private adapter transport, scoped to one transformer's platform and source entry. */
|
|
5
|
+
export declare const key: unique symbol;
|
|
6
|
+
/** Compiler and syntax supplied by the owning transformer. */
|
|
7
|
+
export type Context = {
|
|
8
|
+
readonly compile: typeof Graph.compile;
|
|
9
|
+
readonly parse: typeof Syntax.parse;
|
|
10
|
+
readonly programs: ReadonlyMap<string, ReturnType<typeof Syntax.parse>>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=Compilation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Compilation.d.ts","sourceRoot":"","sources":["../../../src/babel/internal/Compilation.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,KAAK,KAAK,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,mCAAmC,CAAA;AAEhE,wFAAwF;AACxF,eAAO,MAAM,GAAG,eAA+B,CAAA;AAE/C,8DAA8D;AAC9D,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;CACxE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Compilation.js","sourceRoot":"","sources":["../../../src/babel/internal/Compilation.ts"],"names":[],"mappings":"AAIA,wFAAwF;AACxF,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA"}
|
package/dist/compiler/Graph.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Stylesheets from './internal/Stylesheets.js';
|
|
1
2
|
import type * as Mapping from '@jridgewell/gen-mapping';
|
|
2
3
|
import * as Css from '../web/Css.js';
|
|
3
4
|
import * as Native from './Native.js';
|
|
@@ -14,6 +15,8 @@ export declare namespace compile {
|
|
|
14
15
|
type ErrorType = Native.compile.ErrorType | Source.ExtractError | Transform.compile.ErrorType;
|
|
15
16
|
/** Source modules available for relative import resolution. */
|
|
16
17
|
type Options = {
|
|
18
|
+
/** Host entrypoints emit owned stylesheet effects without packed contracts. */
|
|
19
|
+
readonly [Stylesheets.entry]?: string | undefined;
|
|
17
20
|
/** Host syntax from the same immutable source snapshot. */
|
|
18
21
|
readonly [Syntax.cache]?: ReadonlyMap<string, Parser.ParseResult> | undefined;
|
|
19
22
|
/** Rewrite authoring calls. False emits CSS for unchanged source. */
|
|
@@ -37,6 +40,8 @@ export declare namespace compile {
|
|
|
37
40
|
};
|
|
38
41
|
/** Compiled modules and their direct source dependencies. */
|
|
39
42
|
type ReturnType = {
|
|
43
|
+
/** Packed resources deduplicated by the host across scoped source outputs. */
|
|
44
|
+
readonly [Stylesheets.packed]?: readonly Stylesheets.Resource[];
|
|
40
45
|
/** Versioned compiler-only JSON per module; publish beside the compiled entrypoint as <entry>.zyzz.json. */
|
|
41
46
|
readonly contracts: Readonly<Record<string, string>>;
|
|
42
47
|
/** Direct static runtime source and library-contract dependencies, keyed by module identity. */
|
|
@@ -53,7 +58,7 @@ export declare namespace compile {
|
|
|
53
58
|
readonly modules: Readonly<Record<string, Transform.compile.ReturnType>>;
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
|
-
/** Creates an isolated compiler
|
|
61
|
+
/** Creates an isolated compiler with bounded extraction reuse across source graphs. */
|
|
57
62
|
export declare function create(): create.ReturnType;
|
|
58
63
|
/** Incremental graph compiler contracts. */
|
|
59
64
|
export declare namespace create {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../src/compiler/Graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../src/compiler/Graph.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/Graph.js
CHANGED
|
@@ -23,7 +23,7 @@ import * as Transform from './Transform.js';
|
|
|
23
23
|
export function compile(options) {
|
|
24
24
|
return build(options).result;
|
|
25
25
|
}
|
|
26
|
-
/** Creates an isolated compiler
|
|
26
|
+
/** Creates an isolated compiler with bounded extraction reuse across source graphs. */
|
|
27
27
|
export function create() {
|
|
28
28
|
let previous;
|
|
29
29
|
return Object.freeze({
|
|
@@ -79,24 +79,29 @@ function build(options, cache) {
|
|
|
79
79
|
? 'relative'
|
|
80
80
|
: JSON.stringify(Object.entries(options.imports[id] ?? {}).sort(([a], [b]) => a.localeCompare(b))),
|
|
81
81
|
]));
|
|
82
|
-
//
|
|
82
|
+
// Host resolutions remain explicit when generated modules enter or leave the graph.
|
|
83
83
|
const previous = (() => {
|
|
84
84
|
if (cache &&
|
|
85
85
|
cache.contracts === contracts &&
|
|
86
86
|
cache.development === !!options.development &&
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
(options.imports !== undefined ||
|
|
88
|
+
(ids.length === Object.keys(cache.sources).length &&
|
|
89
|
+
ids.every((id) => Object.hasOwn(cache.sources, id))))) {
|
|
89
90
|
return cache;
|
|
90
91
|
}
|
|
91
92
|
return undefined;
|
|
92
93
|
})();
|
|
93
94
|
if (previous &&
|
|
95
|
+
previous.entry === options[Stylesheets.entry] &&
|
|
96
|
+
ids.length === Object.keys(previous.sources).length &&
|
|
94
97
|
Object.keys(resolutions).length ===
|
|
95
98
|
Object.keys(previous.resolutions).length &&
|
|
96
99
|
Object.entries(resolutions).every(([id, value]) => value === previous.resolutions[id]) &&
|
|
97
100
|
ids.every((id) => options.modules[id] === previous.sources[id] &&
|
|
98
101
|
resolutions[id] === previous.resolutions[id]))
|
|
99
102
|
return previous;
|
|
103
|
+
const retained = new Map(previous?.retained);
|
|
104
|
+
const transformed = new Map(previous?.transformed);
|
|
100
105
|
const dependencies = Object.create(null);
|
|
101
106
|
const extracted = new Map();
|
|
102
107
|
const identifiers = new Map();
|
|
@@ -196,26 +201,6 @@ function build(options, cache) {
|
|
|
196
201
|
let direct;
|
|
197
202
|
const stars = [];
|
|
198
203
|
for (const statement of program.body) {
|
|
199
|
-
if (statement.type === 'ImportDeclaration' &&
|
|
200
|
-
statement.importKind !== 'type') {
|
|
201
|
-
const target = resolve(moduleId, statement.source.value, statement);
|
|
202
|
-
if (!target)
|
|
203
|
-
continue;
|
|
204
|
-
for (const specifier of statement.specifiers) {
|
|
205
|
-
if (specifier.type === 'ImportNamespaceSpecifier' ||
|
|
206
|
-
(specifier.type === 'ImportSpecifier' &&
|
|
207
|
-
specifier.importKind === 'type'))
|
|
208
|
-
continue;
|
|
209
|
-
const imported = specifier.type === 'ImportDefaultSpecifier'
|
|
210
|
-
? 'default'
|
|
211
|
-
: specifier.imported.type === 'Identifier'
|
|
212
|
-
? specifier.imported.name
|
|
213
|
-
: specifier.imported.value;
|
|
214
|
-
const value = constant(target, imported, next);
|
|
215
|
-
if (value)
|
|
216
|
-
imports[specifier.local.name] = relocate(value, specifier);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
204
|
if (statement.type === 'ExportDefaultDeclaration' && name === 'default') {
|
|
220
205
|
direct = statement.declaration;
|
|
221
206
|
exported = true;
|
|
@@ -258,7 +243,43 @@ function build(options, cache) {
|
|
|
258
243
|
.map((target) => constant(target, name, next))
|
|
259
244
|
.filter((value) => value !== undefined)),
|
|
260
245
|
];
|
|
261
|
-
|
|
246
|
+
const value = candidates.length === 1 ? candidates[0] : undefined;
|
|
247
|
+
if (value || !stars.length)
|
|
248
|
+
constants.set(key, value);
|
|
249
|
+
return value;
|
|
250
|
+
}
|
|
251
|
+
if (direct &&
|
|
252
|
+
[
|
|
253
|
+
'FunctionDeclaration',
|
|
254
|
+
'FunctionExpression',
|
|
255
|
+
'ArrowFunctionExpression',
|
|
256
|
+
'ClassDeclaration',
|
|
257
|
+
'ClassExpression',
|
|
258
|
+
].includes(direct.type)) {
|
|
259
|
+
constants.set(key, undefined);
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
for (const statement of program.body) {
|
|
263
|
+
if (statement.type === 'ImportDeclaration' &&
|
|
264
|
+
statement.importKind !== 'type') {
|
|
265
|
+
const target = resolve(moduleId, statement.source.value, statement);
|
|
266
|
+
if (!target)
|
|
267
|
+
continue;
|
|
268
|
+
for (const specifier of statement.specifiers) {
|
|
269
|
+
if (specifier.type === 'ImportNamespaceSpecifier' ||
|
|
270
|
+
(specifier.type === 'ImportSpecifier' &&
|
|
271
|
+
specifier.importKind === 'type'))
|
|
272
|
+
continue;
|
|
273
|
+
const imported = specifier.type === 'ImportDefaultSpecifier'
|
|
274
|
+
? 'default'
|
|
275
|
+
: specifier.imported.type === 'Identifier'
|
|
276
|
+
? specifier.imported.name
|
|
277
|
+
: specifier.imported.value;
|
|
278
|
+
const value = constant(target, imported, next);
|
|
279
|
+
if (value)
|
|
280
|
+
imports[specifier.local.name] = relocate(value, specifier);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
262
283
|
}
|
|
263
284
|
const scope = new Scope.Tracker({ preserveExitedScopes: true });
|
|
264
285
|
Walker.walk(program, { scopeTracker: scope });
|
|
@@ -389,12 +410,27 @@ function build(options, cache) {
|
|
|
389
410
|
fail(moduleId, 'Circular source dependencies are not supported yet.');
|
|
390
411
|
visiting.add(moduleId);
|
|
391
412
|
const source = options.modules[moduleId];
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
413
|
+
const snapshot = previous?.retained.get(moduleId) ??
|
|
414
|
+
(previous && Object.hasOwn(previous.sources, moduleId)
|
|
415
|
+
? {
|
|
416
|
+
dependencies: previous.result.dependencies[moduleId],
|
|
417
|
+
extracted: previous.extracted.get(moduleId),
|
|
418
|
+
inputs: new Map(previous.result.dependencies[moduleId].map((target) => [
|
|
419
|
+
target,
|
|
420
|
+
previous.libraries[target] ?? previous.extracted.get(target),
|
|
421
|
+
])),
|
|
422
|
+
resolution: previous.resolutions[moduleId],
|
|
423
|
+
source: previous.sources[moduleId],
|
|
424
|
+
}
|
|
425
|
+
: undefined);
|
|
426
|
+
if (snapshot &&
|
|
427
|
+
source === snapshot.source &&
|
|
428
|
+
resolutions[moduleId] === snapshot.resolution &&
|
|
429
|
+
snapshot.dependencies.every((target) => Object.hasOwn(libraries, target)
|
|
430
|
+
? libraries[target] === snapshot.inputs.get(target)
|
|
431
|
+
: Object.hasOwn(options.modules, target) &&
|
|
432
|
+
visit(target) === snapshot.inputs.get(target))) {
|
|
433
|
+
return retain(moduleId, snapshot.extracted, snapshot.dependencies);
|
|
398
434
|
}
|
|
399
435
|
// Validate identity and syntax through the public source boundary before linking.
|
|
400
436
|
Source.extract({ moduleId, source: '' });
|
|
@@ -642,6 +678,19 @@ function build(options, cache) {
|
|
|
642
678
|
}
|
|
643
679
|
extracted.set(moduleId, result);
|
|
644
680
|
dependencies[moduleId] = imports;
|
|
681
|
+
retained.delete(moduleId);
|
|
682
|
+
retained.set(moduleId, {
|
|
683
|
+
dependencies: imports,
|
|
684
|
+
extracted: result,
|
|
685
|
+
inputs: new Map(imports.map((target) => [
|
|
686
|
+
target,
|
|
687
|
+
libraries[target] ?? extracted.get(target),
|
|
688
|
+
])),
|
|
689
|
+
resolution: resolutions[moduleId],
|
|
690
|
+
source: options.modules[moduleId],
|
|
691
|
+
});
|
|
692
|
+
if (retained.size > 256)
|
|
693
|
+
retained.delete(retained.keys().next().value);
|
|
645
694
|
for (const call of result.themeCalls)
|
|
646
695
|
for (const name of new Set([
|
|
647
696
|
call.name,
|
|
@@ -735,6 +784,9 @@ function build(options, cache) {
|
|
|
735
784
|
...(options.native.units && { units: { ...options.native.units } }),
|
|
736
785
|
},
|
|
737
786
|
reset: options.reset,
|
|
787
|
+
entry: options[Stylesheets.entry],
|
|
788
|
+
retained,
|
|
789
|
+
transformed,
|
|
738
790
|
resolutions: Object.freeze(resolutions),
|
|
739
791
|
result: Object.freeze({
|
|
740
792
|
contracts: Object.freeze(Object.fromEntries(ids
|
|
@@ -843,13 +895,53 @@ function build(options, cache) {
|
|
|
843
895
|
];
|
|
844
896
|
}
|
|
845
897
|
const sharedVisited = new Set();
|
|
898
|
+
const packed = [];
|
|
846
899
|
const shared = (() => {
|
|
847
900
|
try {
|
|
848
|
-
const
|
|
901
|
+
const entry = options[Stylesheets.entry];
|
|
902
|
+
const packedSections = entry === undefined
|
|
903
|
+
? []
|
|
904
|
+
: (dependencies[entry] ?? [])
|
|
905
|
+
.filter((id) => Object.hasOwn(libraries, id))
|
|
906
|
+
.flatMap((id) => reachable(id, sharedVisited));
|
|
907
|
+
const sharedSections = entry === undefined
|
|
908
|
+
? ids.flatMap((id) => reachable(id, sharedVisited))
|
|
909
|
+
: (sections.get(entry) ?? []);
|
|
910
|
+
if (packedSections.length) {
|
|
911
|
+
// Validate combined ownership and ordering before splitting independently loaded resources.
|
|
912
|
+
Stylesheets.render([...packedSections, ...sharedSections]);
|
|
913
|
+
for (const section of packedSections) {
|
|
914
|
+
packed.push({
|
|
915
|
+
id: JSON.stringify([section.owner, section.source, section.key]),
|
|
916
|
+
...Stylesheets.render([section]),
|
|
917
|
+
});
|
|
918
|
+
}
|
|
919
|
+
}
|
|
849
920
|
const resetSource = (options.reset === undefined ? undefined : 'zyzz/reset.css') ??
|
|
850
921
|
resetOwners[0] ??
|
|
851
922
|
sharedSections.find((section) => section.key === 'optional-reset-order')
|
|
852
923
|
?.source;
|
|
924
|
+
if (packed.length) {
|
|
925
|
+
const order = Stylesheets.render([
|
|
926
|
+
...(resetSource === undefined
|
|
927
|
+
? []
|
|
928
|
+
: [
|
|
929
|
+
{
|
|
930
|
+
source: resetSource,
|
|
931
|
+
css: '',
|
|
932
|
+
layers: layerNames.length
|
|
933
|
+
? layerNames.map((name) => ['reset', name])
|
|
934
|
+
: [['reset']],
|
|
935
|
+
},
|
|
936
|
+
]),
|
|
937
|
+
...[...packedSections, ...sharedSections].map((section) => ({
|
|
938
|
+
...section,
|
|
939
|
+
css: '',
|
|
940
|
+
})),
|
|
941
|
+
]);
|
|
942
|
+
if (order.css)
|
|
943
|
+
packed.unshift({ ...order, id: order.css });
|
|
944
|
+
}
|
|
853
945
|
return Stylesheets.render([
|
|
854
946
|
...(resetSource === undefined
|
|
855
947
|
? []
|
|
@@ -972,10 +1064,20 @@ function build(options, cache) {
|
|
|
972
1064
|
const schemes = [...extracted.values()].some((module) => Boolean(module.themeAppearances?.length ||
|
|
973
1065
|
module.themeScripts?.length ||
|
|
974
1066
|
module.themeSelections?.length));
|
|
1067
|
+
const ownerSignature = JSON.stringify(owners);
|
|
975
1068
|
// Extraction visits dependencies first; their emitted classes must precede consumers.
|
|
976
1069
|
for (const moduleId of extracted.keys()) {
|
|
977
|
-
|
|
978
|
-
|
|
1070
|
+
const cached = transformed.get(moduleId);
|
|
1071
|
+
const reusable = cached &&
|
|
1072
|
+
cached.extracted === extracted.get(moduleId) &&
|
|
1073
|
+
cached.schemes === schemes &&
|
|
1074
|
+
Object.keys(cached.themes).length === names.length &&
|
|
1075
|
+
names.every((name) => cached.themes[name] === themes[name]) &&
|
|
1076
|
+
Object.entries(cached.classes).every(([name, value]) => styleClasses[name] === value) &&
|
|
1077
|
+
cached.owners === ownerSignature;
|
|
1078
|
+
modules[moduleId] = reusable
|
|
1079
|
+
? cached.output
|
|
1080
|
+
: sameThemes &&
|
|
979
1081
|
previous.schemes === schemes &&
|
|
980
1082
|
extracted.get(moduleId) === previous.extracted.get(moduleId)
|
|
981
1083
|
? previous.result.modules[moduleId]
|
|
@@ -988,6 +1090,7 @@ function build(options, cache) {
|
|
|
988
1090
|
schemes,
|
|
989
1091
|
source: options.modules[moduleId],
|
|
990
1092
|
[Themes.context]: {
|
|
1093
|
+
parsed: parse({ moduleId, source: options.modules[moduleId] }),
|
|
991
1094
|
extracted: Object.freeze({
|
|
992
1095
|
...extracted.get(moduleId),
|
|
993
1096
|
vars: sharedThemes,
|
|
@@ -998,12 +1101,29 @@ function build(options, cache) {
|
|
|
998
1101
|
styleClasses,
|
|
999
1102
|
},
|
|
1000
1103
|
});
|
|
1104
|
+
transformed.delete(moduleId);
|
|
1105
|
+
transformed.set(moduleId, {
|
|
1106
|
+
classes: Object.fromEntries(extracted
|
|
1107
|
+
.get(moduleId)
|
|
1108
|
+
.calls.flatMap((call) => (call.runtimeComposition ?? []).map((input) => [
|
|
1109
|
+
input.name,
|
|
1110
|
+
styleClasses[input.name],
|
|
1111
|
+
]))),
|
|
1112
|
+
extracted: extracted.get(moduleId),
|
|
1113
|
+
owners: ownerSignature,
|
|
1114
|
+
output: modules[moduleId],
|
|
1115
|
+
schemes,
|
|
1116
|
+
themes: sharedThemes,
|
|
1117
|
+
});
|
|
1118
|
+
if (transformed.size > 256)
|
|
1119
|
+
transformed.delete(transformed.keys().next().value);
|
|
1001
1120
|
// Module-local checks cannot detect truncated ownership hashes colliding across files.
|
|
1121
|
+
const emitted = new Set(Array.from(modules[moduleId].css.matchAll(/\.(z-[\w-]+)\{/g), (match) => match[1]));
|
|
1002
1122
|
for (const value of Object.values(modules[moduleId].classes))
|
|
1003
1123
|
for (const name of value.split(' ')) {
|
|
1004
1124
|
if (options.compiler === false ||
|
|
1005
1125
|
!name.startsWith('z-') ||
|
|
1006
|
-
!
|
|
1126
|
+
!emitted.has(name))
|
|
1007
1127
|
continue;
|
|
1008
1128
|
const owner = atomicOwners.get(name);
|
|
1009
1129
|
if (owner !== undefined && owner !== moduleId)
|
|
@@ -1076,8 +1196,12 @@ function build(options, cache) {
|
|
|
1076
1196
|
libraries: Object.freeze(libraries),
|
|
1077
1197
|
native: undefined,
|
|
1078
1198
|
reset: options.reset,
|
|
1199
|
+
entry: options[Stylesheets.entry],
|
|
1200
|
+
retained,
|
|
1201
|
+
transformed,
|
|
1079
1202
|
resolutions: Object.freeze(resolutions),
|
|
1080
1203
|
result: Object.freeze({
|
|
1204
|
+
...(packed.length ? { [Stylesheets.packed]: packed } : {}),
|
|
1081
1205
|
...(sharedCss
|
|
1082
1206
|
? {
|
|
1083
1207
|
sharedCss,
|
|
@@ -1086,7 +1210,7 @@ function build(options, cache) {
|
|
|
1086
1210
|
sharedAssetOwners: shared.owners,
|
|
1087
1211
|
}
|
|
1088
1212
|
: {}),
|
|
1089
|
-
contracts: Object.freeze(Object.fromEntries(ids
|
|
1213
|
+
contracts: Object.freeze(Object.fromEntries((options[Stylesheets.entry] === undefined ? ids : [])
|
|
1090
1214
|
.filter((id) => Object.keys(extracted.get(id).themeExports ?? {}).length ||
|
|
1091
1215
|
reachable(id).length ||
|
|
1092
1216
|
configurations(id).length)
|