zyzz 0.0.12 → 0.0.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../../src/next/internal/Project.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAA;AAMhD,wFAAwF;AACxF,MAAM,MAAM,OAAO,GAAG;IACpB,uCAAuC;IACvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gEAAgE;IAChE,UAAU,CACR,OAAO,EAAE,MAAM,GACd,CACD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,KAC3D,IAAI,CAAA;IACT,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAe1C,oFAAoF;IACpF,OAAO,UAAU,OAAO,UAAU,MAAM;EA6T3C;AAED,8BAA8B;AAC9B,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,qEAAqE;IACrE,KAAK,OAAO,GAAG;QACb,8DAA8D;QAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC1C,gDAAgD;QAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpC,sCAAsC;QACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,CAAA;CACF"}
1
+ {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../../src/next/internal/Project.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAA;AAMhD,wFAAwF;AACxF,MAAM,MAAM,OAAO,GAAG;IACpB,uCAAuC;IACvC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gEAAgE;IAChE,UAAU,CACR,OAAO,EAAE,MAAM,GACd,CACD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,KAC3D,IAAI,CAAA;IACT,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO;IAe1C,oFAAoF;IACpF,OAAO,UAAU,OAAO,UAAU,MAAM;EA+W3C;AAED,8BAA8B;AAC9B,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,qEAAqE;IACrE,KAAK,OAAO,GAAG;QACb,8DAA8D;QAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC1C,gDAAgD;QAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpC,sCAAsC;QACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,CAAA;CACF"}
@@ -101,6 +101,87 @@ export function create(options) {
101
101
  syntax.delete(syntax.keys().next().value);
102
102
  return entry.parsed;
103
103
  }
104
+ async function callable(file, name, seen = new Set()) {
105
+ const key = JSON.stringify([file, name]);
106
+ if (seen.has(key))
107
+ return false;
108
+ seen.add(key);
109
+ track(file);
110
+ runtime.add(file);
111
+ const parsed = parse(id(file), await read(file));
112
+ const functions = new Set();
113
+ let defaultBinding;
114
+ for (const statement of parsed.program.body) {
115
+ if (statement.type === 'ExportDefaultDeclaration' &&
116
+ [
117
+ 'FunctionDeclaration',
118
+ 'ClassDeclaration',
119
+ 'ArrowFunctionExpression',
120
+ 'FunctionExpression',
121
+ ].includes(statement.declaration.type)) {
122
+ functions.add('default');
123
+ if (statement.declaration.type === 'FunctionDeclaration' ||
124
+ statement.declaration.type === 'ClassDeclaration')
125
+ defaultBinding = statement.declaration.id?.name;
126
+ }
127
+ if (statement.type !== 'ExportNamedDeclaration')
128
+ continue;
129
+ const declaration = statement.declaration;
130
+ if ((declaration?.type === 'FunctionDeclaration' ||
131
+ declaration?.type === 'ClassDeclaration') &&
132
+ declaration.id)
133
+ functions.add(declaration.id.name);
134
+ if (declaration?.type === 'VariableDeclaration')
135
+ for (const item of declaration.declarations) {
136
+ if (item.id.type === 'Identifier' &&
137
+ item.init &&
138
+ [
139
+ 'ArrowFunctionExpression',
140
+ 'FunctionExpression',
141
+ 'ClassExpression',
142
+ ].includes(item.init.type))
143
+ functions.add(item.id.name);
144
+ }
145
+ }
146
+ for (const statement of parsed.program.body) {
147
+ const declaration = statement.type === 'ExportNamedDeclaration'
148
+ ? statement.declaration
149
+ : statement;
150
+ if (declaration?.type === 'TSModuleDeclaration' &&
151
+ declaration.id.type === 'Identifier') {
152
+ functions.delete(declaration.id.name);
153
+ if (declaration.id.name === defaultBinding)
154
+ functions.delete('default');
155
+ }
156
+ }
157
+ if (parsed.errors.length)
158
+ return false;
159
+ if (functions.has(name))
160
+ return true;
161
+ for (const statement of parsed.program.body) {
162
+ if (statement.type !== 'ExportNamedDeclaration' ||
163
+ !statement.source ||
164
+ statement.exportKind === 'type')
165
+ continue;
166
+ for (const specifier of statement.specifiers) {
167
+ if (specifier.exportKind === 'type')
168
+ continue;
169
+ const exported = specifier.exported.type === 'Identifier'
170
+ ? specifier.exported.name
171
+ : specifier.exported.value;
172
+ if (exported !== name)
173
+ continue;
174
+ const target = await resolve(Path.dirname(file), statement.source.value);
175
+ if (!target || !eligible(target))
176
+ return false;
177
+ const imported = specifier.local.type === 'Identifier'
178
+ ? specifier.local.name
179
+ : specifier.local.value;
180
+ return callable(target, imported, seen);
181
+ }
182
+ }
183
+ return false;
184
+ }
104
185
  async function visit(file, text) {
105
186
  const name = id(file);
106
187
  if (Object.hasOwn(modules, name))
@@ -140,66 +221,37 @@ export function create(options) {
140
221
  if (!resolved || !/\.[cm]?[jt]sx?$/.test(resolved))
141
222
  continue;
142
223
  if (eligible(resolved)) {
143
- if (node.type === 'ImportDeclaration' && node.specifiers.length) {
144
- track(resolved);
145
- const parsed = parse(id(resolved), await read(resolved));
146
- const functions = new Set();
147
- let defaultBinding;
148
- for (const statement of parsed.program.body) {
149
- if (statement.type === 'ExportDefaultDeclaration' &&
150
- [
151
- 'FunctionDeclaration',
152
- 'ClassDeclaration',
153
- 'ArrowFunctionExpression',
154
- 'FunctionExpression',
155
- ].includes(statement.declaration.type)) {
156
- functions.add('default');
157
- if (statement.declaration.type === 'FunctionDeclaration' ||
158
- statement.declaration.type === 'ClassDeclaration')
159
- defaultBinding = statement.declaration.id?.name;
160
- }
161
- if (statement.type !== 'ExportNamedDeclaration')
162
- continue;
163
- const declaration = statement.declaration;
164
- if ((declaration?.type === 'FunctionDeclaration' ||
165
- declaration?.type === 'ClassDeclaration') &&
166
- declaration.id)
167
- functions.add(declaration.id.name);
168
- if (declaration?.type === 'VariableDeclaration')
169
- for (const item of declaration.declarations) {
170
- if (item.id.type === 'Identifier' &&
171
- item.init &&
172
- [
173
- 'ArrowFunctionExpression',
174
- 'FunctionExpression',
175
- 'ClassExpression',
176
- ].includes(item.init.type))
177
- functions.add(item.id.name);
178
- }
179
- }
180
- for (const statement of parsed.program.body) {
181
- const declaration = statement.type === 'ExportNamedDeclaration'
182
- ? statement.declaration
183
- : statement;
184
- if (declaration?.type === 'TSModuleDeclaration' &&
185
- declaration.id.type === 'Identifier') {
186
- functions.delete(declaration.id.name);
187
- if (declaration.id.name === defaultBinding)
188
- functions.delete('default');
224
+ if ((node.type === 'ImportDeclaration' ||
225
+ node.type === 'ExportNamedDeclaration') &&
226
+ node.specifiers.length) {
227
+ const names = node.specifiers.map((specifier) => {
228
+ if (specifier.type === 'ImportDefaultSpecifier')
229
+ return 'default';
230
+ if (specifier.type === 'ImportNamespaceSpecifier')
231
+ return undefined;
232
+ if (specifier.type === 'ImportSpecifier') {
233
+ if (specifier.importKind === 'type')
234
+ return null;
235
+ return specifier.imported.type === 'Identifier'
236
+ ? specifier.imported.name
237
+ : specifier.imported.value;
189
238
  }
190
- }
191
- if (!parsed.errors.length &&
192
- node.specifiers.every((specifier) => specifier.type === 'ImportDefaultSpecifier'
193
- ? functions.has('default')
194
- : specifier.type === 'ImportSpecifier' &&
195
- (specifier.importKind === 'type' ||
196
- functions.has(specifier.imported.type === 'Identifier'
197
- ? specifier.imported.name
198
- : specifier.imported.value)))) {
199
- runtime.add(resolved);
200
- track(resolved);
239
+ if (specifier.exportKind === 'type')
240
+ return null;
241
+ return specifier.local.type === 'Identifier'
242
+ ? specifier.local.name
243
+ : specifier.local.value;
244
+ });
245
+ // Follow only requested named exports. Runtime implementations remain owned by Next's module graph.
246
+ const functions = await Promise.all(names.map(async (name) => {
247
+ if (name === null)
248
+ return true;
249
+ if (name === undefined)
250
+ return false;
251
+ return callable(resolved, name);
252
+ }));
253
+ if (functions.every(Boolean))
201
254
  continue;
202
- }
203
255
  }
204
256
  links[specifier] = id(resolved);
205
257
  await visit(resolved);
@@ -1 +1 @@
1
- {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../src/next/internal/Project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../../src/next/internal/Project.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zyzz",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "license": "MIT",
5
5
  "description": "Modern, universal, simple styling library for the Web and React Native",
6
6
  "repository": {
@@ -144,6 +144,103 @@ export function create(options: create.Options) {
144
144
  return entry.parsed
145
145
  }
146
146
 
147
+ async function callable(
148
+ file: string,
149
+ name: string,
150
+ seen = new Set<string>(),
151
+ ): Promise<boolean> {
152
+ const key = JSON.stringify([file, name])
153
+ if (seen.has(key)) return false
154
+ seen.add(key)
155
+ track(file)
156
+ runtime.add(file)
157
+ const parsed = parse(id(file), await read(file))
158
+ const functions = new Set<string>()
159
+ let defaultBinding: string | undefined
160
+ for (const statement of parsed.program.body) {
161
+ if (
162
+ statement.type === 'ExportDefaultDeclaration' &&
163
+ [
164
+ 'FunctionDeclaration',
165
+ 'ClassDeclaration',
166
+ 'ArrowFunctionExpression',
167
+ 'FunctionExpression',
168
+ ].includes(statement.declaration.type)
169
+ ) {
170
+ functions.add('default')
171
+ if (
172
+ statement.declaration.type === 'FunctionDeclaration' ||
173
+ statement.declaration.type === 'ClassDeclaration'
174
+ )
175
+ defaultBinding = statement.declaration.id?.name
176
+ }
177
+ if (statement.type !== 'ExportNamedDeclaration') continue
178
+ const declaration = statement.declaration
179
+ if (
180
+ (declaration?.type === 'FunctionDeclaration' ||
181
+ declaration?.type === 'ClassDeclaration') &&
182
+ declaration.id
183
+ )
184
+ functions.add(declaration.id.name)
185
+ if (declaration?.type === 'VariableDeclaration')
186
+ for (const item of declaration.declarations) {
187
+ if (
188
+ item.id.type === 'Identifier' &&
189
+ item.init &&
190
+ [
191
+ 'ArrowFunctionExpression',
192
+ 'FunctionExpression',
193
+ 'ClassExpression',
194
+ ].includes(item.init.type)
195
+ )
196
+ functions.add(item.id.name)
197
+ }
198
+ }
199
+ for (const statement of parsed.program.body) {
200
+ const declaration =
201
+ statement.type === 'ExportNamedDeclaration'
202
+ ? statement.declaration
203
+ : statement
204
+ if (
205
+ declaration?.type === 'TSModuleDeclaration' &&
206
+ declaration.id.type === 'Identifier'
207
+ ) {
208
+ functions.delete(declaration.id.name)
209
+ if (declaration.id.name === defaultBinding)
210
+ functions.delete('default')
211
+ }
212
+ }
213
+ if (parsed.errors.length) return false
214
+ if (functions.has(name)) return true
215
+ for (const statement of parsed.program.body) {
216
+ if (
217
+ statement.type !== 'ExportNamedDeclaration' ||
218
+ !statement.source ||
219
+ statement.exportKind === 'type'
220
+ )
221
+ continue
222
+ for (const specifier of statement.specifiers) {
223
+ if (specifier.exportKind === 'type') continue
224
+ const exported =
225
+ specifier.exported.type === 'Identifier'
226
+ ? specifier.exported.name
227
+ : specifier.exported.value
228
+ if (exported !== name) continue
229
+ const target = await resolve(
230
+ Path.dirname(file),
231
+ statement.source.value,
232
+ )
233
+ if (!target || !eligible(target)) return false
234
+ const imported =
235
+ specifier.local.type === 'Identifier'
236
+ ? specifier.local.name
237
+ : specifier.local.value
238
+ return callable(target, imported, seen)
239
+ }
240
+ }
241
+ return false
242
+ }
243
+
147
244
  async function visit(file: string, text?: string): Promise<void> {
148
245
  const name = id(file)
149
246
  if (Object.hasOwn(modules, name)) return
@@ -191,82 +288,35 @@ export function create(options: create.Options) {
191
288
  const { node, specifier, resolved } = resolution
192
289
  if (!resolved || !/\.[cm]?[jt]sx?$/.test(resolved)) continue
193
290
  if (eligible(resolved)) {
194
- if (node.type === 'ImportDeclaration' && node.specifiers.length) {
195
- track(resolved)
196
- const parsed = parse(id(resolved), await read(resolved))
197
- const functions = new Set<string>()
198
- let defaultBinding: string | undefined
199
- for (const statement of parsed.program.body) {
200
- if (
201
- statement.type === 'ExportDefaultDeclaration' &&
202
- [
203
- 'FunctionDeclaration',
204
- 'ClassDeclaration',
205
- 'ArrowFunctionExpression',
206
- 'FunctionExpression',
207
- ].includes(statement.declaration.type)
208
- ) {
209
- functions.add('default')
210
- if (
211
- statement.declaration.type === 'FunctionDeclaration' ||
212
- statement.declaration.type === 'ClassDeclaration'
213
- )
214
- defaultBinding = statement.declaration.id?.name
215
- }
216
- if (statement.type !== 'ExportNamedDeclaration') continue
217
- const declaration = statement.declaration
218
- if (
219
- (declaration?.type === 'FunctionDeclaration' ||
220
- declaration?.type === 'ClassDeclaration') &&
221
- declaration.id
222
- )
223
- functions.add(declaration.id.name)
224
- if (declaration?.type === 'VariableDeclaration')
225
- for (const item of declaration.declarations) {
226
- if (
227
- item.id.type === 'Identifier' &&
228
- item.init &&
229
- [
230
- 'ArrowFunctionExpression',
231
- 'FunctionExpression',
232
- 'ClassExpression',
233
- ].includes(item.init.type)
234
- )
235
- functions.add(item.id.name)
236
- }
237
- }
238
- for (const statement of parsed.program.body) {
239
- const declaration =
240
- statement.type === 'ExportNamedDeclaration'
241
- ? statement.declaration
242
- : statement
243
- if (
244
- declaration?.type === 'TSModuleDeclaration' &&
245
- declaration.id.type === 'Identifier'
246
- ) {
247
- functions.delete(declaration.id.name)
248
- if (declaration.id.name === defaultBinding)
249
- functions.delete('default')
291
+ if (
292
+ (node.type === 'ImportDeclaration' ||
293
+ node.type === 'ExportNamedDeclaration') &&
294
+ node.specifiers.length
295
+ ) {
296
+ const names = node.specifiers.map((specifier) => {
297
+ if (specifier.type === 'ImportDefaultSpecifier') return 'default'
298
+ if (specifier.type === 'ImportNamespaceSpecifier')
299
+ return undefined
300
+ if (specifier.type === 'ImportSpecifier') {
301
+ if (specifier.importKind === 'type') return null
302
+ return specifier.imported.type === 'Identifier'
303
+ ? specifier.imported.name
304
+ : specifier.imported.value
250
305
  }
251
- }
252
- if (
253
- !parsed.errors.length &&
254
- node.specifiers.every((specifier) =>
255
- specifier.type === 'ImportDefaultSpecifier'
256
- ? functions.has('default')
257
- : specifier.type === 'ImportSpecifier' &&
258
- (specifier.importKind === 'type' ||
259
- functions.has(
260
- specifier.imported.type === 'Identifier'
261
- ? specifier.imported.name
262
- : specifier.imported.value,
263
- )),
264
- )
265
- ) {
266
- runtime.add(resolved)
267
- track(resolved)
268
- continue
269
- }
306
+ if (specifier.exportKind === 'type') return null
307
+ return specifier.local.type === 'Identifier'
308
+ ? specifier.local.name
309
+ : specifier.local.value
310
+ })
311
+ // Follow only requested named exports. Runtime implementations remain owned by Next's module graph.
312
+ const functions = await Promise.all(
313
+ names.map(async (name) => {
314
+ if (name === null) return true
315
+ if (name === undefined) return false
316
+ return callable(resolved, name)
317
+ }),
318
+ )
319
+ if (functions.every(Boolean)) continue
270
320
  }
271
321
  links[specifier] = id(resolved)
272
322
  await visit(resolved)