@ttsc/playground 0.18.3 → 0.19.0

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.
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.collectExternalPackageNames = collectExternalPackageNames;
4
4
  const BUILT_IN_PLAYGROUND_PACKAGES_1 = require("./BUILT_IN_PLAYGROUND_PACKAGES");
5
5
  const packageNameFromSpecifier_1 = require("./packageNameFromSpecifier");
6
- const MODULE_SPECIFIER_REGEXP = /\b(?:import|export)\s+(?:type\s+)?(?:[^"'()]*?\s+from\s*)?["']([^"']+)["']|import\s*\(\s*["']([^"']+)["']\s*\)|require\s*\(\s*["']([^"']+)["']\s*\)/g;
7
6
  /**
8
7
  * Scan `source` for `import` / `require` specifiers and return the unique
9
8
  * sorted list of bare npm package names that are not in `ignoredPackages`.
@@ -18,17 +17,262 @@ function collectExternalPackageNames(source, ignoredPackages = BUILT_IN_PLAYGROU
18
17
  }
19
18
  return [...found].sort();
20
19
  }
20
+ /**
21
+ * Collect the string specifiers of every executable module-loading construct in
22
+ * `source`: `import`/`export ... from`, side-effect `import "x"`, dynamic
23
+ * `import("x")`, and `require("x")` calls.
24
+ *
25
+ * The scan tokenizes `source` first so import/export/require lookalikes that
26
+ * live inside comments, string or template contents, or regular-expression
27
+ * literals never become package requests — only real code-level string
28
+ * arguments are returned. Specifiers that cannot be resolved statically (a
29
+ * template-literal or computed argument) are intentionally skipped so inert
30
+ * text cannot drive a network install.
31
+ */
21
32
  function collectModuleSpecifiers(source) {
33
+ const tokens = tokenize(source);
22
34
  const out = [];
23
- MODULE_SPECIFIER_REGEXP.lastIndex = 0;
24
- for (;;) {
25
- const match = MODULE_SPECIFIER_REGEXP.exec(source);
26
- if (!match)
27
- break;
28
- const specifier = match[1] ?? match[2] ?? match[3];
29
- if (specifier)
30
- out.push(specifier);
35
+ const asString = (token) => token && token.kind === "string" ? token.value : null;
36
+ const isOpenParen = (token) => token !== undefined && token.kind === "punct" && token.value === "(";
37
+ const isMemberAccess = (token) => token !== undefined && token.kind === "punct" && token.value === ".";
38
+ for (let i = 0; i < tokens.length; i++) {
39
+ const token = tokens[i];
40
+ if (!token || token.kind !== "word")
41
+ continue;
42
+ if (token.value === "require") {
43
+ // `obj.require(...)` is an unrelated method call, not CommonJS require.
44
+ if (isMemberAccess(tokens[i - 1]))
45
+ continue;
46
+ if (isOpenParen(tokens[i + 1])) {
47
+ const spec = asString(tokens[i + 2]);
48
+ if (spec !== null)
49
+ out.push(spec);
50
+ }
51
+ continue;
52
+ }
53
+ if (token.value === "import" || token.value === "export") {
54
+ // `foo.import(...)` / `import.meta` are not module-loading imports.
55
+ if (token.value === "import" && isMemberAccess(tokens[i - 1]))
56
+ continue;
57
+ // Dynamic `import("x")`.
58
+ if (token.value === "import" && isOpenParen(tokens[i + 1])) {
59
+ const spec = asString(tokens[i + 2]);
60
+ if (spec !== null)
61
+ out.push(spec);
62
+ continue;
63
+ }
64
+ // Side-effect `import "x"`.
65
+ if (token.value === "import") {
66
+ const bare = asString(tokens[i + 1]);
67
+ if (bare !== null) {
68
+ out.push(bare);
69
+ continue;
70
+ }
71
+ }
72
+ // `import ... from "x"` / `export ... from "x"`.
73
+ const spec = findFromSpecifier(tokens, i + 1);
74
+ if (spec !== null)
75
+ out.push(spec);
76
+ }
31
77
  }
32
78
  return out;
33
79
  }
80
+ /**
81
+ * From token index `start`, find the specifier of a `... from "x"` clause,
82
+ * bounded to the current statement. Stops at a `;` terminator or the start of
83
+ * another `import`/`export` so a local `export const x = ...` never borrows a
84
+ * later statement's `from`.
85
+ */
86
+ function findFromSpecifier(tokens, start) {
87
+ for (let i = start; i < tokens.length; i++) {
88
+ const token = tokens[i];
89
+ if (!token)
90
+ break;
91
+ if (token.kind === "punct" && token.value === ";")
92
+ return null;
93
+ if (token.kind === "word" &&
94
+ (token.value === "import" || token.value === "export"))
95
+ return null;
96
+ if (token.kind === "word" && token.value === "from") {
97
+ const next = tokens[i + 1];
98
+ return next && next.kind === "string" ? next.value : null;
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ // Keywords after which a `/` begins a regular-expression literal rather than a
104
+ // division operator. After any other word (an identifier or value keyword such
105
+ // as `this`), `/` is division.
106
+ const REGEX_PRECEDING_KEYWORDS = new Set([
107
+ "return",
108
+ "typeof",
109
+ "instanceof",
110
+ "in",
111
+ "of",
112
+ "new",
113
+ "delete",
114
+ "void",
115
+ "do",
116
+ "else",
117
+ "yield",
118
+ "await",
119
+ "case",
120
+ "throw",
121
+ ]);
122
+ /**
123
+ * Lexically tokenize `source` into the coarse token stream the specifier
124
+ * collector needs. Comments are dropped; strings, templates, regex literals,
125
+ * and numbers become single tokens so their contents cannot leak into the
126
+ * grammar match.
127
+ */
128
+ function tokenize(source) {
129
+ const tokens = [];
130
+ const n = source.length;
131
+ const isIdStart = (c) => (c >= "a" && c <= "z") || (c >= "A" && c <= "Z") || c === "_" || c === "$";
132
+ const isIdPart = (c) => isIdStart(c) || (c >= "0" && c <= "9");
133
+ const isDigit = (c) => c >= "0" && c <= "9";
134
+ // A `/` opens a regex only in operator/statement position — never right after
135
+ // a value (identifier, number, string, template, regex, `)` or `]`).
136
+ const regexAllowed = () => {
137
+ const prev = tokens[tokens.length - 1];
138
+ if (!prev)
139
+ return true;
140
+ if (prev.kind === "string" || prev.kind === "other")
141
+ return false;
142
+ if (prev.kind === "word")
143
+ return REGEX_PRECEDING_KEYWORDS.has(prev.value);
144
+ return prev.value !== ")" && prev.value !== "]";
145
+ };
146
+ let i = 0;
147
+ while (i < n) {
148
+ const c = source[i];
149
+ // Whitespace.
150
+ if (c === " " ||
151
+ c === "\t" ||
152
+ c === "\r" ||
153
+ c === "\n" ||
154
+ c === "\f" ||
155
+ c === "\v") {
156
+ i++;
157
+ continue;
158
+ }
159
+ // Line comment.
160
+ if (c === "/" && source[i + 1] === "/") {
161
+ i += 2;
162
+ while (i < n && source[i] !== "\n")
163
+ i++;
164
+ continue;
165
+ }
166
+ // Block comment.
167
+ if (c === "/" && source[i + 1] === "*") {
168
+ i += 2;
169
+ while (i < n && !(source[i] === "*" && source[i + 1] === "/"))
170
+ i++;
171
+ i += 2;
172
+ continue;
173
+ }
174
+ // Regular-expression literal.
175
+ if (c === "/" && regexAllowed()) {
176
+ i++;
177
+ let inClass = false;
178
+ while (i < n) {
179
+ const d = source[i];
180
+ if (d === "\\") {
181
+ i += 2;
182
+ continue;
183
+ }
184
+ if (d === "\n")
185
+ break;
186
+ if (d === "[")
187
+ inClass = true;
188
+ else if (d === "]")
189
+ inClass = false;
190
+ else if (d === "/" && !inClass) {
191
+ i++;
192
+ break;
193
+ }
194
+ i++;
195
+ }
196
+ while (i < n && isIdPart(source[i]))
197
+ i++; // flags
198
+ tokens.push({ kind: "other" });
199
+ continue;
200
+ }
201
+ // String literal.
202
+ if (c === '"' || c === "'") {
203
+ i++;
204
+ let value = "";
205
+ while (i < n) {
206
+ const d = source[i];
207
+ if (d === "\\") {
208
+ value += source[i + 1] ?? "";
209
+ i += 2;
210
+ continue;
211
+ }
212
+ if (d === c) {
213
+ i++;
214
+ break;
215
+ }
216
+ if (d === "\n")
217
+ break; // unterminated single-line string
218
+ value += d;
219
+ i++;
220
+ }
221
+ tokens.push({ kind: "string", value });
222
+ continue;
223
+ }
224
+ // Template literal. Contents (including `${...}` expressions) are treated as
225
+ // opaque: a template specifier is not statically resolvable.
226
+ if (c === "`") {
227
+ i++;
228
+ let depth = 0;
229
+ while (i < n) {
230
+ const d = source[i];
231
+ if (d === "\\") {
232
+ i += 2;
233
+ continue;
234
+ }
235
+ if (depth === 0 && d === "`") {
236
+ i++;
237
+ break;
238
+ }
239
+ if (d === "$" && source[i + 1] === "{") {
240
+ depth++;
241
+ i += 2;
242
+ continue;
243
+ }
244
+ if (depth > 0 && d === "}") {
245
+ depth--;
246
+ i++;
247
+ continue;
248
+ }
249
+ i++;
250
+ }
251
+ tokens.push({ kind: "other" });
252
+ continue;
253
+ }
254
+ // Identifier / keyword.
255
+ if (isIdStart(c)) {
256
+ let j = i + 1;
257
+ while (j < n && isIdPart(source[j]))
258
+ j++;
259
+ tokens.push({ kind: "word", value: source.slice(i, j) });
260
+ i = j;
261
+ continue;
262
+ }
263
+ // Numeric literal.
264
+ if (isDigit(c) || (c === "." && isDigit(source[i + 1] ?? ""))) {
265
+ let j = i + 1;
266
+ while (j < n && /[0-9a-fA-FxXoObBeE._]/.test(source[j]))
267
+ j++;
268
+ tokens.push({ kind: "other" });
269
+ i = j;
270
+ continue;
271
+ }
272
+ // Single punctuation character.
273
+ tokens.push({ kind: "punct", value: c });
274
+ i++;
275
+ }
276
+ return tokens;
277
+ }
34
278
  //# sourceMappingURL=collectExternalPackageNames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectExternalPackageNames.js","sourceRoot":"","sources":["../../../src/npm/collectExternalPackageNames.ts"],"names":[],"mappings":";;;AAAA,iFAA8E;AAC9E,yEAAsE;AAEtE,MAAM,uBAAuB,GAC3B,sJAAsJ,CAAC;AAEzJ;;;GAGG;AACH,qCACE,MAAc,EACd,eAAe,GAAqB,2DAA4B;IAEhE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,IAAA,mDAAwB,EAAC,SAAS,CAAC,CAAC;QACxD,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,uBAAuB,CAAC,SAAS,GAAG,CAAC,CAAC;IACtC,SAAS,CAAC;QACR,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"collectExternalPackageNames.js","sourceRoot":"","sources":["../../../src/npm/collectExternalPackageNames.ts"],"names":[],"mappings":"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"}
@@ -45,15 +45,13 @@ function createSandboxRequire(pack, opts) {
45
45
  return null;
46
46
  }
47
47
  if (subpath === null) {
48
- // bare "name": honor exports["."] string, else main, else index.
49
- const exportsAny = pj.exports;
50
- if (typeof exportsAny === "object" && exportsAny !== null) {
51
- const root = exportsAny["."];
52
- const r = pickConditionalExport(root);
53
- if (r) {
54
- const resolved = `${pkg}/${stripDotSlash(r)}`;
55
- return has(resolved) ? resolved : null;
56
- }
48
+ // bare "name": honor the root `exports` entry (string, subpath table
49
+ // "." key, or bare condition map) → CJS target, else main, else index.
50
+ const root = rootExportTarget(pj.exports);
51
+ const r = pickConditionalExport(root);
52
+ if (r) {
53
+ const resolved = `${pkg}/${stripDotSlash(r)}`;
54
+ return has(resolved) ? resolved : null;
57
55
  }
58
56
  if (typeof pj.main === "string") {
59
57
  return tryPaths(`${pkg}/${stripDotSlash(pj.main)}`, `${pkg}/${stripDotSlash(pj.main)}.js`, `${pkg}/${stripDotSlash(pj.main)}.cjs`, `${pkg}/${stripDotSlash(pj.main)}.mjs`, `${pkg}/${stripDotSlash(pj.main)}.json`, `${pkg}/${stripDotSlash(pj.main)}/index.js`, `${pkg}/${stripDotSlash(pj.main)}/index.cjs`);
@@ -153,6 +151,33 @@ function createSandboxRequire(pack, opts) {
153
151
  return evaluate(resolved).exports;
154
152
  };
155
153
  }
154
+ /**
155
+ * Reduce a `package.json` `exports` field to the value describing its ROOT
156
+ * (".") entry, ready for {@link pickConditionalExport}. Node accepts three valid
157
+ * root shapes and they must all resolve consistently:
158
+ *
159
+ * - A bare string target — `"exports": "./index.cjs"`;
160
+ * - A subpath table keyed by "." — `{ ".": <target>, "./sub": ... }`;
161
+ * - A bare condition map whose keys are all conditions, not subpaths — `{
162
+ * "require": "./index.cjs", "default": "./index.cjs" }`.
163
+ *
164
+ * Node forbids mixing subpath keys with condition keys, so the presence of any
165
+ * "."-prefixed key decides the interpretation: a subpath table exposes its root
166
+ * as `exports["."]`, while a condition map is itself the root target. Returns
167
+ * null when `exports` is absent, empty, or describes no root entry.
168
+ */
169
+ function rootExportTarget(exports) {
170
+ if (typeof exports === "string")
171
+ return exports;
172
+ if (!exports || typeof exports !== "object")
173
+ return null;
174
+ const obj = exports;
175
+ const keys = Object.keys(obj);
176
+ if (keys.length === 0)
177
+ return null;
178
+ const hasSubpathKey = keys.some((k) => k === "." || k.startsWith("./"));
179
+ return hasSubpathKey ? obj["."] : obj;
180
+ }
156
181
  function pickConditionalExport(value) {
157
182
  if (typeof value === "string")
158
183
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"createSandboxRequire.js","sourceRoot":"","sources":["../../../src/sandbox/createSandboxRequire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSandboxRequire.js","sourceRoot":"","sources":["../../../src/sandbox/createSandboxRequire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttsc/playground",
3
- "version": "0.18.3",
3
+ "version": "0.19.0",
4
4
  "description": "Reusable React + Web Worker scaffolding for in-browser ttsc playgrounds built on @ttsc/wasm.",
5
5
  "main": "lib/src/index.js",
6
6
  "types": "lib/src/index.d.ts",
@@ -38,7 +38,7 @@
38
38
  "react": "^18.0.0",
39
39
  "react-dom": "^18.0.0",
40
40
  "tgrid": "^1.0.3",
41
- "@ttsc/wasm": "^0.18.3"
41
+ "@ttsc/wasm": "^0.19.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@monaco-editor/react": "^4.6.0",
@@ -50,7 +50,7 @@
50
50
  "rimraf": "^6.1.2",
51
51
  "tgrid": "^1.0.3",
52
52
  "typescript": "^7.0.2",
53
- "@ttsc/wasm": "^0.18.3"
53
+ "@ttsc/wasm": "^0.19.0"
54
54
  },
55
55
  "keywords": [
56
56
  "ttsc",