@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.
- package/README.md +1 -1
- package/lib/src/compiler/createWorkerCompiler.js +7 -191
- package/lib/src/compiler/createWorkerCompiler.js.map +1 -1
- package/lib/src/compiler/internal/createWorkerCompilerService.d.ts +18 -0
- package/lib/src/compiler/internal/createWorkerCompilerService.js +272 -0
- package/lib/src/compiler/internal/createWorkerCompilerService.js.map +1 -0
- package/lib/src/npm/collectExternalPackageNames.js +253 -9
- package/lib/src/npm/collectExternalPackageNames.js.map +1 -1
- package/lib/src/sandbox/createSandboxRequire.js +34 -9
- package/lib/src/sandbox/createSandboxRequire.js.map +1 -1
- package/package.json +3 -3
- package/src/compiler/createWorkerCompiler.ts +8 -236
- package/src/compiler/internal/createWorkerCompilerService.ts +358 -0
- package/src/npm/collectExternalPackageNames.ts +262 -9
- package/src/sandbox/createSandboxRequire.ts +32 -9
|
@@ -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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
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
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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":";AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,gDAAgD;AAChD,EAAE;AACF,kCAAkC;AAClC,oCAAoC;AACpC,0EAA0E;AAC1E,2EAA2E;AAC3E,mBAAmB;AACnB,2EAA2E;AAC3E,0DAA0D;AAC1D,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,6EAA6E;AAC7E,qDAAqD;AACrD,+EAA+E;;;AAgB/E;;;;GAIG;AACH,8BACE,IAA4B,EAC5B,IAA4B;IAG5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE3C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAW,EAAE,CACnC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAoB,EAAiB,EAAE;QAC1D,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,4DAA4D;IAC5D,MAAM,mBAAmB,GAAG,CAC1B,GAAW,EACX,OAAsB,EACP,EAAE;QACjB,MAAM,KAAK,GAAG,GAAG,GAAG,eAAe,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,EAAa,CAAC;QAClB,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAE,CAAc,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,
|
|
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.
|
|
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.
|
|
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.
|
|
53
|
+
"@ttsc/wasm": "^0.19.0"
|
|
54
54
|
},
|
|
55
55
|
"keywords": [
|
|
56
56
|
"ttsc",
|