zyzz 0.0.6 → 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.
Files changed (104) hide show
  1. package/README.md +26 -1
  2. package/dist/Style.d.ts +3 -3
  3. package/dist/Style.d.ts.map +1 -1
  4. package/dist/Style.js +12 -1
  5. package/dist/Style.js.map +1 -1
  6. package/dist/babel/index.d.ts +4 -1
  7. package/dist/babel/index.d.ts.map +1 -1
  8. package/dist/babel/index.js +6 -3
  9. package/dist/babel/index.js.map +1 -1
  10. package/dist/babel/internal/Compilation.d.ts +12 -0
  11. package/dist/babel/internal/Compilation.d.ts.map +1 -0
  12. package/dist/babel/internal/Compilation.js +3 -0
  13. package/dist/babel/internal/Compilation.js.map +1 -0
  14. package/dist/compiler/Graph.d.ts +6 -1
  15. package/dist/compiler/Graph.d.ts.map +1 -1
  16. package/dist/compiler/Graph.js +160 -36
  17. package/dist/compiler/Graph.js.map +1 -1
  18. package/dist/compiler/Transform.d.ts.map +1 -1
  19. package/dist/compiler/Transform.js +2 -1
  20. package/dist/compiler/Transform.js.map +1 -1
  21. package/dist/compiler/internal/Stylesheets.d.ts +8 -0
  22. package/dist/compiler/internal/Stylesheets.d.ts.map +1 -1
  23. package/dist/compiler/internal/Stylesheets.js +4 -0
  24. package/dist/compiler/internal/Stylesheets.js.map +1 -1
  25. package/dist/internal/Authoring.d.ts.map +1 -1
  26. package/dist/internal/Authoring.js +14 -0
  27. package/dist/internal/Authoring.js.map +1 -1
  28. package/dist/internal/Binding.d.ts +7 -0
  29. package/dist/internal/Binding.d.ts.map +1 -1
  30. package/dist/internal/Binding.js.map +1 -1
  31. package/dist/internal/Configuration.d.ts +1 -1
  32. package/dist/internal/Configuration.d.ts.map +1 -1
  33. package/dist/internal/Configuration.js +7 -6
  34. package/dist/internal/Configuration.js.map +1 -1
  35. package/dist/internal/Theme.d.ts +1 -1
  36. package/dist/internal/Theme.d.ts.map +1 -1
  37. package/dist/internal/Theme.js.map +1 -1
  38. package/dist/internal/Token.d.ts +3 -1
  39. package/dist/internal/Token.d.ts.map +1 -1
  40. package/dist/internal/Token.js +28 -3
  41. package/dist/internal/Token.js.map +1 -1
  42. package/dist/internal/Value.d.ts +22 -0
  43. package/dist/internal/Value.d.ts.map +1 -1
  44. package/dist/internal/Value.js +76 -9
  45. package/dist/internal/Value.js.map +1 -1
  46. package/dist/metro/Graph.d.ts +9 -1
  47. package/dist/metro/Graph.d.ts.map +1 -1
  48. package/dist/metro/Graph.js +5 -4
  49. package/dist/metro/Graph.js.map +1 -1
  50. package/dist/metro/transformer.d.ts +0 -1
  51. package/dist/metro/transformer.d.ts.map +1 -1
  52. package/dist/metro/transformer.js +19 -1
  53. package/dist/metro/transformer.js.map +1 -1
  54. package/dist/next/index.d.ts +3 -3
  55. package/dist/next/index.d.ts.map +1 -1
  56. package/dist/next/index.js +25 -30
  57. package/dist/next/index.js.map +1 -1
  58. package/dist/next/internal/Project.d.ts +28 -0
  59. package/dist/next/internal/Project.d.ts.map +1 -0
  60. package/dist/next/internal/Project.js +295 -0
  61. package/dist/next/internal/Project.js.map +1 -0
  62. package/dist/next/loader.d.ts +5 -6
  63. package/dist/next/loader.d.ts.map +1 -1
  64. package/dist/next/loader.js +161 -247
  65. package/dist/next/loader.js.map +1 -1
  66. package/dist/node/Host.d.ts.map +1 -1
  67. package/dist/node/Host.js +11 -3
  68. package/dist/node/Host.js.map +1 -1
  69. package/dist/node/internal/Snapshot.d.ts +12 -0
  70. package/dist/node/internal/Snapshot.d.ts.map +1 -0
  71. package/dist/node/internal/Snapshot.js +74 -0
  72. package/dist/node/internal/Snapshot.js.map +1 -0
  73. package/dist/unplugin/index.d.ts.map +1 -1
  74. package/dist/unplugin/index.js +10 -5
  75. package/dist/unplugin/index.js.map +1 -1
  76. package/dist/variants.d.ts +1 -1
  77. package/dist/variants.d.ts.map +1 -1
  78. package/dist/variants.js.map +1 -1
  79. package/dist/vite/index.d.ts.map +1 -1
  80. package/dist/vite/index.js +19 -4
  81. package/dist/vite/index.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/Style.ts +42 -8
  84. package/src/babel/index.ts +10 -4
  85. package/src/babel/internal/Compilation.ts +13 -0
  86. package/src/compiler/Graph.ts +213 -47
  87. package/src/compiler/Transform.ts +2 -1
  88. package/src/compiler/internal/Stylesheets.ts +9 -0
  89. package/src/internal/Authoring.ts +21 -0
  90. package/src/internal/Binding.ts +30 -0
  91. package/src/internal/Configuration.ts +19 -13
  92. package/src/internal/Theme.ts +5 -1
  93. package/src/internal/Token.ts +34 -3
  94. package/src/internal/Value.ts +180 -10
  95. package/src/metro/Graph.ts +5 -3
  96. package/src/metro/transformer.ts +26 -1
  97. package/src/next/index.ts +26 -31
  98. package/src/next/internal/Project.ts +378 -0
  99. package/src/next/loader.ts +195 -315
  100. package/src/node/Host.ts +15 -3
  101. package/src/node/internal/Snapshot.ts +79 -0
  102. package/src/unplugin/index.ts +10 -5
  103. package/src/variants.ts +1 -0
  104. package/src/vite/index.ts +24 -4
@@ -1,12 +1,12 @@
1
1
  /** Loads a physical source graph through Next.js resolution and emits cache-owned CSS. @module */
2
+ import * as AtRules from '../compiler/internal/AtRules.js';
2
3
  import * as Crypto from 'node:crypto';
3
4
  import * as Fs from 'node:fs/promises';
4
5
  import * as Path from 'node:path';
5
- import * as Parser from 'oxc-parser';
6
- import * as Graph from '../compiler/Graph.js';
7
- import * as Reset from '../node/Reset.js';
8
- import * as AtRules from '../compiler/internal/AtRules.js';
9
- import * as Contract from '../compiler/internal/Contract.js';
6
+ import * as Stylesheets from '../compiler/internal/Stylesheets.js';
7
+ import * as Project from './internal/Project.js';
8
+ // Next owns loader worker lifetimes. Each project retains only its latest graph in that worker.
9
+ const projects = new Map();
10
10
  /** Loader-runner boundary used by Webpack and Turbopack. */
11
11
  export default function loader(source) {
12
12
  const callback = this.async();
@@ -16,11 +16,14 @@ async function compile(context, source) {
16
16
  const options = context.getOptions();
17
17
  const root = options.root;
18
18
  const directory = Path.resolve(root, '.zyzz', 'next');
19
- const modules = Object.create(null);
20
- const imports = Object.create(null);
21
- const contracts = Object.create(null);
22
- const resolve = context.getResolve({});
23
- const id = (file) => `app/${Path.relative(root, file).split(Path.sep).join('/')}`;
19
+ if (options.mode) {
20
+ const hash = new URLSearchParams(context.resourceQuery).get('zyzz');
21
+ if (!hash || !/^[a-f0-9]{64}$/.test(hash))
22
+ throw new Error('Invalid generated stylesheet request.');
23
+ const file = Path.join(directory, `${hash}.css`);
24
+ context.addDependency(file);
25
+ return { code: await Fs.readFile(file, 'utf8'), map: undefined };
26
+ }
24
27
  const eligible = (file) => /\.[cm]?[jt]sx?$/.test(file) &&
25
28
  !/\.(?:d|test|test-d|bench|bench-d)\.[cm]?[jt]sx?$/.test(file) &&
26
29
  !Path.relative(root, file)
@@ -29,185 +32,21 @@ async function compile(context, source) {
29
32
  // Next.js hoists instrumentation CSS out of route stylesheets without loading it.
30
33
  if (/^(?:src\/)?instrumentation-client\.[cm]?[jt]s$/.test(Path.relative(root, context.resourcePath).split(Path.sep).join('/')))
31
34
  return { code: source, map: undefined };
32
- if (options.mode !== 'shared' && !eligible(context.resourcePath))
35
+ if (!eligible(context.resourcePath))
33
36
  return { code: source, map: undefined };
34
- async function visit(file, text) {
35
- const name = id(file);
36
- if (Object.hasOwn(modules, name))
37
- return;
38
- context.addDependency(file);
39
- modules[name] = text ?? (await Fs.readFile(file, 'utf8'));
40
- const links = Object.create(null);
41
- imports[name] = links;
42
- const parsed = Parser.parseSync(file, modules[name], {
43
- sourceType: 'module',
44
- });
45
- for (const node of parsed.program.body) {
46
- if ((node.type !== 'ImportDeclaration' &&
47
- node.type !== 'ExportNamedDeclaration' &&
48
- node.type !== 'ExportAllDeclaration') ||
49
- !node.source)
50
- continue;
51
- if (node.type === 'ImportDeclaration'
52
- ? node.importKind === 'type'
53
- : node.exportKind === 'type')
54
- continue;
55
- const specifier = node.source.value;
56
- links[specifier] = null;
57
- // Next owns this virtual module, which has no physical stylesheet contract.
58
- if (specifier === 'next/root-params')
59
- continue;
60
- if (specifier === 'zyzz' ||
61
- (specifier.startsWith('zyzz/') && specifier !== 'zyzz/default') ||
62
- specifier.startsWith('node:'))
63
- continue;
64
- const resolved = await new Promise((accept, reject) => {
65
- resolve(Path.dirname(file), specifier, (error, value) => error ? reject(error) : accept(value));
66
- });
67
- if (!resolved || !/\.[cm]?[jt]sx?$/.test(resolved))
68
- continue;
69
- if (eligible(resolved)) {
70
- links[specifier] = id(resolved);
71
- await visit(resolved);
72
- continue;
73
- }
74
- const sidecar = `${resolved}.zyzz.json`;
75
- try {
76
- contracts[resolved] = await Fs.readFile(sidecar, 'utf8');
77
- context.addDependency(sidecar);
78
- links[specifier] = resolved;
79
- }
80
- catch (error) {
81
- if (error.code !== 'ENOENT')
82
- throw error;
83
- }
84
- }
85
- }
86
- async function discover(directory) {
87
- const items = await Fs.readdir(directory, { withFileTypes: true });
88
- // Recursive tracking of a package root follows every installed dependency.
89
- // A dependency symlink back to an ancestor, as a package linked from its
90
- // own repository, is rejected as a loop, so such a root is tracked through
91
- // its files and subdirectories instead.
92
- if (!items.some((item) => item.name === 'node_modules') ||
93
- !(await loops(directory)))
94
- context.addContextDependency(directory);
95
- for (const item of items) {
96
- if (item.name.startsWith('.') ||
97
- [
98
- 'node_modules',
99
- 'dist',
100
- 'build',
101
- 'coverage',
102
- 'test',
103
- 'tests',
104
- '__tests__',
105
- ].includes(item.name))
106
- continue;
107
- const file = Path.join(directory, item.name);
108
- if (item.isDirectory())
109
- await discover(file);
110
- else if (item.isFile() && eligible(file))
111
- await visit(file);
112
- }
113
- }
114
- if (options.mode !== 'shared')
115
- await visit(context.resourcePath, source);
116
- await discover(root);
117
- const loaded = new Set();
118
- async function dependencies(file) {
119
- if (loaded.has(file))
120
- return;
121
- loaded.add(file);
122
- const metadata = Contract.read(contracts[file], new Map(), file);
123
- for (const section of metadata.stylesheets) {
124
- let owner = file;
125
- for (const specifier of section.dependency ?? []) {
126
- const target = await new Promise((accept, reject) => {
127
- resolve(Path.dirname(owner), specifier, (error, value) => error ? reject(error) : accept(value));
128
- });
129
- if (!target || !Path.isAbsolute(target))
130
- throw new Error('Unable to resolve packed stylesheet dependency.');
131
- const links = (imports[owner] ??= Object.create(null));
132
- links[specifier] = target;
133
- if (!Object.hasOwn(contracts, target)) {
134
- const sidecar = `${target}.zyzz.json`;
135
- contracts[target] = await Fs.readFile(sidecar, 'utf8');
136
- context.addDependency(sidecar);
137
- }
138
- await dependencies(target);
139
- owner = target;
140
- }
141
- }
37
+ const key = JSON.stringify([
38
+ root,
39
+ options.bundler,
40
+ options.reset ?? false,
41
+ options.development ?? false,
42
+ ]);
43
+ let project = projects.get(key);
44
+ if (!project) {
45
+ project = Project.create(options);
46
+ projects.set(key, project);
142
47
  }
143
- for (const file of Object.keys(contracts))
144
- await dependencies(file);
145
- const graph = Graph.compile({
146
- contracts,
147
- imports,
148
- modules,
149
- reset: options.reset ? Reset.read() : undefined,
150
- });
151
- const output = graph.modules[id(context.resourcePath)];
152
- const assets = new Map();
153
- for (const [placeholder, target] of Object.entries(graph.sharedAssets ?? {})) {
154
- const raw = target.split(/[?#]/)[0];
155
- const file = await Fs.realpath(target.startsWith('app/')
156
- ? Path.join(root, decodeURIComponent(raw.slice(4)))
157
- : decodeURIComponent(raw));
158
- const identity = graph.sharedAssetOwners?.[placeholder];
159
- let owner = root;
160
- if (identity && Path.isAbsolute(identity)) {
161
- owner = Path.dirname(identity);
162
- for (;;) {
163
- try {
164
- await Fs.access(Path.join(owner, 'package.json'));
165
- break;
166
- }
167
- catch (error) {
168
- if (error.code !== 'ENOENT')
169
- throw error;
170
- const parent = Path.dirname(owner);
171
- if (parent === owner)
172
- throw new Error('Packed assets require an owning package.json.');
173
- owner = parent;
174
- }
175
- }
176
- }
177
- const relative = Path.relative(await Fs.realpath(owner), file);
178
- if (!identity ||
179
- relative === '..' ||
180
- relative.startsWith(`..${Path.sep}`) ||
181
- Path.isAbsolute(relative))
182
- throw new Error('Asset path escapes its owning package.');
183
- context.addDependency(file);
184
- assets.set(placeholder, Path.relative(options.bundler === 'turbopack'
185
- ? Path.dirname(context.resourcePath)
186
- : directory, file)
187
- .split(Path.sep)
188
- .map(encodeURIComponent)
189
- .join('/') + target.slice(raw.length));
190
- }
191
- const shared = graph.sharedCss
192
- ? AtRules.transform({
193
- code: Buffer.from(graph.sharedCss),
194
- filename: 'shared.css',
195
- inputSourceMap: JSON.stringify(graph.sharedCssMap),
196
- sourceMap: true,
197
- visitor: {
198
- Url: (url) => assets.has(url.url)
199
- ? { ...url, url: assets.get(url.url) }
200
- : undefined,
201
- },
202
- })
203
- : undefined;
204
- if (options.mode === 'shared')
205
- return {
206
- code: shared?.code.toString() ?? '',
207
- map: shared?.map
208
- ? JSON.parse(shared.map.toString())
209
- : undefined,
210
- };
48
+ const graph = await project.compile(context, source);
49
+ const output = graph.modules[`app/${Path.relative(root, context.resourcePath).split(Path.sep).join('/')}`];
211
50
  if (!output)
212
51
  throw new Error('Missing Next.js source compilation.');
213
52
  // Bundlers resolve map sources relative to the loader resource, not graph identities.
@@ -218,84 +57,159 @@ async function compile(context, source) {
218
57
  sources: sources(output.map.sources),
219
58
  };
220
59
  const cssMap = { ...output.cssMap, sources: sources(output.cssMap.sources) };
221
- if (options.mode === 'style')
222
- return { code: output.css, map: cssMap };
223
- if (options.bundler === 'turbopack') {
224
- const sharedFile = Path.relative(Path.dirname(context.resourcePath), Path.join(directory, 'shared.css'))
225
- .split(Path.sep)
226
- .join('/');
227
- // Turbopack appends the output extension to loader-transformed resource paths.
228
- const resource = await Fs.stat(context.resourcePath).then(() => context.resourcePath, async (error) => {
229
- if (error.code !== 'ENOENT')
230
- throw error;
231
- const original = context.resourcePath.slice(0, -Path.extname(context.resourcePath).length);
232
- await Fs.access(original);
233
- return original;
234
- });
235
- const requests = [
236
- ...(graph.sharedCss
237
- ? [
238
- `import ${JSON.stringify(sharedFile.startsWith('../') ? sharedFile : `./${sharedFile}`)};`,
239
- ]
240
- : []),
241
- ...(output.css
242
- ? [
243
- `import ${JSON.stringify(`./${Path.basename(resource)}?zyzz-style`)};`,
244
- ]
245
- : []),
246
- ];
247
- return { code: `${output.code}\n${requests.join('\n')}`, map };
60
+ if (output.code === source &&
61
+ !output.css &&
62
+ !/(?:^|[/\\])(?:layout|_app)\.[cm]?[jt]sx?$/.test(context.resourcePath) &&
63
+ !graph.sharedCssMap?.sources.some((name) => name !== 'zyzz/reset.css') &&
64
+ !graph[Stylesheets.packed]?.length)
65
+ return { code: source, map };
66
+ const shared = await compileShared({
67
+ css: graph.sharedCss ?? '',
68
+ map: graph.sharedCssMap,
69
+ assets: graph.sharedAssets ?? {},
70
+ owners: graph.sharedAssetOwners ?? {},
71
+ });
72
+ async function compileShared(stylesheet) {
73
+ const assets = new Map();
74
+ for (const [placeholder, target] of Object.entries(stylesheet.assets)) {
75
+ const raw = target.split(/[?#]/)[0];
76
+ const file = await Fs.realpath(target.startsWith('app/')
77
+ ? Path.join(root, decodeURIComponent(raw.slice(4)))
78
+ : decodeURIComponent(raw));
79
+ const identity = stylesheet.owners[placeholder];
80
+ let owner = root;
81
+ if (identity && Path.isAbsolute(identity)) {
82
+ owner = Path.dirname(identity);
83
+ for (;;) {
84
+ try {
85
+ await Fs.access(Path.join(owner, 'package.json'));
86
+ break;
87
+ }
88
+ catch (error) {
89
+ if (error.code !== 'ENOENT')
90
+ throw error;
91
+ const parent = Path.dirname(owner);
92
+ if (parent === owner)
93
+ throw new Error('Packed assets require an owning package.json.');
94
+ owner = parent;
95
+ }
96
+ }
97
+ }
98
+ const relative = Path.relative(await Fs.realpath(owner), file);
99
+ if (!identity ||
100
+ relative === '..' ||
101
+ relative.startsWith(`..${Path.sep}`) ||
102
+ Path.isAbsolute(relative))
103
+ throw new Error('Asset path escapes its owning package.');
104
+ context.addDependency(file);
105
+ assets.set(placeholder, Path.relative(directory, file)
106
+ .split(Path.sep)
107
+ .map(encodeURIComponent)
108
+ .join('/') + target.slice(raw.length));
109
+ }
110
+ return stylesheet.css
111
+ ? AtRules.transform({
112
+ code: Buffer.from(stylesheet.css),
113
+ filename: 'shared.css',
114
+ inputSourceMap: JSON.stringify({
115
+ ...stylesheet.map,
116
+ sources: sources(stylesheet.map.sources),
117
+ }),
118
+ sourceMap: true,
119
+ visitor: {
120
+ Url: (url) => assets.has(url.url)
121
+ ? { ...url, url: assets.get(url.url) }
122
+ : undefined,
123
+ },
124
+ })
125
+ : undefined;
248
126
  }
249
127
  const styles = [
250
- { css: shared?.code.toString(), map: shared?.map?.toString() },
251
- { css: output.css, map: JSON.stringify(cssMap) },
128
+ ...(await Promise.all((graph[Stylesheets.packed] ?? []).map(async (resource) => {
129
+ const output = await compileShared(resource);
130
+ return {
131
+ css: output?.code.toString(),
132
+ map: output?.map?.toString(),
133
+ id: resource.id,
134
+ };
135
+ }))),
136
+ {
137
+ id: undefined,
138
+ css: shared?.code.toString(),
139
+ map: shared?.map?.toString(),
140
+ },
141
+ { id: undefined, css: output.css, map: JSON.stringify(cssMap) },
252
142
  ];
253
143
  const requests = [];
254
144
  await Fs.mkdir(directory, { recursive: true });
255
- for (const stylesheet of styles) {
145
+ try {
146
+ await Fs.writeFile(Path.join(directory, 'package.json'), JSON.stringify({ sideEffects: true, type: 'module' }), { flag: 'wx' });
147
+ }
148
+ catch (error) {
149
+ if (error.code !== 'EEXIST')
150
+ throw error;
151
+ }
152
+ for (const [index, stylesheet] of styles.entries()) {
256
153
  if (!stylesheet.css)
257
154
  continue;
258
155
  const css = stylesheet.css +
259
156
  (stylesheet.map
260
157
  ? `\n/*# sourceMappingURL=data:application/json;base64,${Buffer.from(stylesheet.map).toString('base64')} */`
261
158
  : '');
262
- const hash = Crypto.createHash('sha256').update(css).digest('hex');
159
+ const hash = Crypto.createHash('sha256')
160
+ .update(options.development &&
161
+ !(index === (graph[Stylesheets.packed]?.length ?? 0) &&
162
+ graph.sharedCssMap?.sources.every((name) => name === 'zyzz/reset.css'))
163
+ ? (stylesheet.id ??
164
+ JSON.stringify([context.resourcePath, index, graph.dependencies]))
165
+ : css)
166
+ .digest('hex');
263
167
  const file = Path.join(directory, `${hash}.css`);
264
- try {
265
- await Fs.writeFile(file, css, { flag: 'wx' });
168
+ if (options.development) {
169
+ const previous = await Fs.readFile(file, 'utf8').catch((error) => {
170
+ if (error.code !== 'ENOENT')
171
+ throw error;
172
+ return undefined;
173
+ });
174
+ if (previous !== css) {
175
+ const temporary = `${file}.${Crypto.randomUUID()}.tmp`;
176
+ await Fs.writeFile(temporary, css);
177
+ await Fs.rename(temporary, file);
178
+ }
266
179
  }
267
- catch (error) {
268
- if (error.code !== 'EEXIST')
269
- throw error;
180
+ else {
181
+ try {
182
+ await Fs.writeFile(file, css, { flag: 'wx' });
183
+ }
184
+ catch (error) {
185
+ if (error.code !== 'EEXIST')
186
+ throw error;
187
+ }
270
188
  }
271
- const relative = Path.relative(Path.dirname(context.resourcePath), file)
189
+ let request = file;
190
+ if (options.development) {
191
+ // Server-component CSS needs a client graph edge for Next's native CSS HMR.
192
+ request = `${file}.js`;
193
+ const stylesheet = options.bundler === 'turbopack'
194
+ ? `./style.css?zyzz=${hash}`
195
+ : `./${hash}.css`;
196
+ const code = `'use client';import ${JSON.stringify(stylesheet)};`;
197
+ const existing = await Fs.readFile(request, 'utf8').catch((error) => {
198
+ if (error.code !== 'ENOENT')
199
+ throw error;
200
+ return undefined;
201
+ });
202
+ if (existing !== code)
203
+ await Fs.writeFile(request, code);
204
+ }
205
+ else if (options.bundler === 'turbopack') {
206
+ request = Path.join(directory, 'style.css') + `?zyzz=${hash}`;
207
+ }
208
+ const relative = Path.relative(Path.dirname(context.resourcePath), request)
272
209
  .split(Path.sep)
273
210
  .join('/');
274
211
  requests.push(`import ${JSON.stringify(relative.startsWith('../') ? relative : `./${relative}`)};`);
275
212
  }
276
213
  return { code: `${output.code}\n${requests.join('\n')}`, map };
277
214
  }
278
- /** Whether an installed dependency links back to the directory or one of its ancestors. */
279
- async function loops(directory) {
280
- const installed = Path.join(directory, 'node_modules');
281
- const entries = await Fs.readdir(installed, { withFileTypes: true }).catch(() => []);
282
- const candidates = (await Promise.all(entries.map(async (entry) => {
283
- if (!entry.name.startsWith('@'))
284
- return [Path.join(installed, entry.name)];
285
- const scoped = Path.join(installed, entry.name);
286
- return (await Fs.readdir(scoped).catch(() => [])).map((name) => Path.join(scoped, name));
287
- }))).flat();
288
- for (const candidate of candidates) {
289
- const stat = await Fs.lstat(candidate).catch(() => undefined);
290
- if (!stat?.isSymbolicLink())
291
- continue;
292
- const target = await Fs.realpath(candidate).catch(() => undefined);
293
- if (target === undefined)
294
- continue;
295
- const relative = Path.relative(target, directory);
296
- if (!relative.startsWith('..') && !Path.isAbsolute(relative))
297
- return true;
298
- }
299
- return false;
300
- }
301
215
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/next/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/next/loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../../src/node/Host.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,YAAY,MAAM,cAAc,CAAA;AAMjD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAQ7C,4EAA4E;AAC5E,MAAM,MAAM,KAAK,GAAG;IAClB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAk3BtE;AAED,oCAAoC;AACpC,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,OAAO,GAAG;QACb,mFAAmF;QACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACvC,8EAA8E;QAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACtC,sFAAsF;QACtF,QAAQ,CAAC,GAAG,CAAC,EACT,KAAK,GACL;YACE,qDAAqD;YACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YACrC,0GAA0G;YAC1G,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;SAC9D,GACD,SAAS,CAAA;QACb,qGAAqG;QACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjD,qGAAqG;QACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,uEAAuE;QACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,0EAA0E;QAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB;;;;;WAKG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;KAC7C,CAAA;CACF;AAED,kFAAkF;AAClF,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAA;AAE5E,wCAAwC;AACxC,MAAM,MAAM,OAAO,GAAG;IACpB,6FAA6F;IAC7F,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,oCAAoC;AACpC,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,yDAAyD;IACzD,KAAK,OAAO,GAAG;QACb,+DAA+D;QAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;KAC1C,CAAA;CACF"}
1
+ {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../../src/node/Host.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,YAAY,MAAM,cAAc,CAAA;AAMjD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAS7C,4EAA4E;AAC5E,MAAM,MAAM,KAAK,GAAG;IAClB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA63BtE;AAED,oCAAoC;AACpC,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,OAAO,GAAG;QACb,mFAAmF;QACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACvC,8EAA8E;QAC9E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACtC,sFAAsF;QACtF,QAAQ,CAAC,GAAG,CAAC,EACT,KAAK,GACL;YACE,qDAAqD;YACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YACrC,0GAA0G;YAC1G,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;SAC9D,GACD,SAAS,CAAA;QACb,qGAAqG;QACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjD,qGAAqG;QACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,uEAAuE;QACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,0EAA0E;QAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB;;;;;WAKG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;KAC7C,CAAA;CACF;AAED,kFAAkF;AAClF,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAA;AAE5E,wCAAwC;AACxC,MAAM,MAAM,OAAO,GAAG;IACpB,6FAA6F;IAC7F,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,oCAAoC;AACpC,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,yDAAyD;IACzD,KAAK,OAAO,GAAG;QACb,+DAA+D;QAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;KAC1C,CAAA;CACF"}
package/dist/node/Host.js CHANGED
@@ -12,6 +12,7 @@ import * as Graph from '../compiler/Graph.js';
12
12
  import * as AtRules from '../compiler/internal/AtRules.js';
13
13
  import * as Catalogs from '../compiler/internal/Catalogs.js';
14
14
  import * as Relative from '../compiler/internal/Relative.js';
15
+ import * as Snapshot from './internal/Snapshot.js';
15
16
  import * as Syntax from '../compiler/internal/Syntax.js';
16
17
  import * as Source from '../compiler/Source.js';
17
18
  import * as Transform from '../compiler/Transform.js';
@@ -90,6 +91,7 @@ export async function create(options) {
90
91
  })();
91
92
  const manifestPath = Path.join(outDir, '.zyzz.json');
92
93
  const compiler = Graph.create();
94
+ const snapshot = Snapshot.create();
93
95
  const stylesheets = new WeakMap();
94
96
  let closed = false;
95
97
  let closing;
@@ -178,7 +180,7 @@ export async function create(options) {
178
180
  const name = Path.relative(root, input).split(Path.sep).join('/');
179
181
  if (['.zyzz-lock', '.zyzz.json'].includes(name.split('/')[0].toLowerCase()))
180
182
  throw new Error(`Source path conflicts with host control files: ${name}`);
181
- sources[name] = await Fs.readFile(input, 'utf8');
183
+ sources[name] = await snapshot.read(input);
182
184
  }
183
185
  const modules = Object.fromEntries(Object.entries(sources).map(([name, source]) => [
184
186
  `${options.packageId}/${name}`,
@@ -223,7 +225,7 @@ export async function create(options) {
223
225
  return true;
224
226
  observe(`${file}.zyzz.json`);
225
227
  try {
226
- contracts[file] = await Fs.readFile(`${file}.zyzz.json`, 'utf8');
228
+ contracts[file] = await snapshot.read(`${file}.zyzz.json`);
227
229
  }
228
230
  catch (error) {
229
231
  if (!required &&
@@ -269,7 +271,7 @@ export async function create(options) {
269
271
  const moduleId = `${options.packageId}/${name}`;
270
272
  const file = Path.join(root, name);
271
273
  const resolutions = (imports[moduleId] = Object.create(null));
272
- for (const node of Syntax.parse({ moduleId, source }).program.body) {
274
+ for (const node of snapshot.parse({ moduleId, source }).program.body) {
273
275
  if ((node.type !== 'ImportDeclaration' &&
274
276
  node.type !== 'ExportNamedDeclaration' &&
275
277
  node.type !== 'ExportAllDeclaration') ||
@@ -328,12 +330,17 @@ export async function create(options) {
328
330
  }
329
331
  }
330
332
  const graph = compiler.compile({
333
+ [Syntax.cache]: snapshot.programs(modules),
331
334
  compiler: options.compiler,
332
335
  native,
333
336
  modules,
334
337
  contracts,
335
338
  imports,
336
339
  });
340
+ snapshot.retain(new Set([
341
+ ...inputs,
342
+ ...Object.keys(contracts).map((file) => `${file}.zyzz.json`),
343
+ ]), modules);
337
344
  const artifactNames = [
338
345
  'zyzz.css',
339
346
  'zyzz.css.map',
@@ -620,6 +627,7 @@ export async function create(options) {
620
627
  dependencies.clear();
621
628
  closing = (async () => {
622
629
  await tail;
630
+ snapshot.clear();
623
631
  await lock.close();
624
632
  await Fs.rm(lockPath);
625
633
  })();