@nudojs/env 0.2.4 → 0.3.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/dist/chunk-MW5NHORB.js +402 -0
- package/dist/es.d.ts +8 -3
- package/dist/es.js +1 -1
- package/dist/node.d.ts +4 -0
- package/dist/node.js +423 -302
- package/dist/web.d.ts +4 -0
- package/dist/web.js +320 -265
- package/package.json +2 -2
- package/dist/chunk-VBTQ36SR.js +0 -227
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
// src/es.ts
|
|
2
|
+
import {
|
|
3
|
+
litValue,
|
|
4
|
+
numLit,
|
|
5
|
+
strLit as strLit2,
|
|
6
|
+
boolLit
|
|
7
|
+
} from "@nudojs/core";
|
|
8
|
+
|
|
9
|
+
// src/abs-helpers.ts
|
|
10
|
+
import {
|
|
11
|
+
abs as makeAbs,
|
|
12
|
+
lit as termLit,
|
|
13
|
+
absFunction,
|
|
14
|
+
relationFn,
|
|
15
|
+
relationFingerprint,
|
|
16
|
+
objOf,
|
|
17
|
+
num,
|
|
18
|
+
str,
|
|
19
|
+
strLit,
|
|
20
|
+
bool,
|
|
21
|
+
never,
|
|
22
|
+
unknown
|
|
23
|
+
} from "@nudojs/core";
|
|
24
|
+
var dummyBody = {
|
|
25
|
+
type: "BlockStatement",
|
|
26
|
+
body: [],
|
|
27
|
+
directives: []
|
|
28
|
+
};
|
|
29
|
+
function undef() {
|
|
30
|
+
return makeAbs({ k: "unknown" }, termLit(void 0), void 0, "exact");
|
|
31
|
+
}
|
|
32
|
+
function nullLit() {
|
|
33
|
+
return makeAbs({ k: "unknown" }, termLit(null), void 0, "exact");
|
|
34
|
+
}
|
|
35
|
+
function anyAbs() {
|
|
36
|
+
return makeAbs({ k: "any" }, void 0, void 0, "path");
|
|
37
|
+
}
|
|
38
|
+
function arrOf(element) {
|
|
39
|
+
return makeAbs({ k: "arr", element }, void 0, void 0, "exact");
|
|
40
|
+
}
|
|
41
|
+
function tupleOf(elements, rest) {
|
|
42
|
+
const shape = rest ? { k: "tuple", elements, rest } : { k: "tuple", elements };
|
|
43
|
+
return makeAbs(shape, void 0, void 0, "exact");
|
|
44
|
+
}
|
|
45
|
+
function unionOf(...members) {
|
|
46
|
+
if (members.length === 0) return never;
|
|
47
|
+
if (members.length === 1) return members[0];
|
|
48
|
+
return makeAbs({ k: "sum", members }, void 0, void 0, "exact");
|
|
49
|
+
}
|
|
50
|
+
function promiseOf(inner) {
|
|
51
|
+
return makeAbs({ k: "eff", eff: "promise", inner }, void 0, void 0, "exact");
|
|
52
|
+
}
|
|
53
|
+
function brandOf(name, shape = unknown) {
|
|
54
|
+
return makeAbs({ k: "brand", name, shape }, void 0, void 0, "path");
|
|
55
|
+
}
|
|
56
|
+
function errorBrandOf(name) {
|
|
57
|
+
return makeAbs(
|
|
58
|
+
{
|
|
59
|
+
k: "brand",
|
|
60
|
+
name,
|
|
61
|
+
shape: objOf({
|
|
62
|
+
name: { value: strLit(name) },
|
|
63
|
+
message: { value: str() }
|
|
64
|
+
})
|
|
65
|
+
},
|
|
66
|
+
void 0,
|
|
67
|
+
void 0,
|
|
68
|
+
"path"
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
function envFn(paramTypes, returnType, apply, opts) {
|
|
72
|
+
const params = opts?.params ?? paramTypes.map((_, i) => paramTypes.length === 1 && i === 0 ? "x" : `x${i}`);
|
|
73
|
+
if (!apply) {
|
|
74
|
+
return relationFn(paramTypes, returnType, {
|
|
75
|
+
params,
|
|
76
|
+
conf: opts?.conf ?? "exact",
|
|
77
|
+
fingerprint: opts?.name ? `${opts.name}|${relationFingerprint(paramTypes, returnType)}` : void 0
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const implApply = apply;
|
|
81
|
+
const a = absFunction(params, {
|
|
82
|
+
body: dummyBody,
|
|
83
|
+
apply: (args) => {
|
|
84
|
+
try {
|
|
85
|
+
const r = implApply(args);
|
|
86
|
+
return r ?? returnType;
|
|
87
|
+
} catch {
|
|
88
|
+
return returnType;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
a.shape = {
|
|
93
|
+
k: "fn",
|
|
94
|
+
params,
|
|
95
|
+
paramTypes,
|
|
96
|
+
returnType,
|
|
97
|
+
...opts?.name ? { name: opts.name } : {}
|
|
98
|
+
};
|
|
99
|
+
if (opts?.conf && opts.conf !== "exact") a.conf = opts.conf;
|
|
100
|
+
return a;
|
|
101
|
+
}
|
|
102
|
+
function slotsOf(entries) {
|
|
103
|
+
const out = {};
|
|
104
|
+
for (const [k, v] of Object.entries(entries)) {
|
|
105
|
+
out[k] = v && typeof v === "object" && "value" in v && !("shape" in v) ? v : { value: v };
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
function objAbs(entries) {
|
|
110
|
+
return objOf(slotsOf(entries));
|
|
111
|
+
}
|
|
112
|
+
var prim = {
|
|
113
|
+
num,
|
|
114
|
+
str,
|
|
115
|
+
bool,
|
|
116
|
+
never,
|
|
117
|
+
unknown,
|
|
118
|
+
undef,
|
|
119
|
+
nullLit,
|
|
120
|
+
any: anyAbs
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// src/es.ts
|
|
124
|
+
function absNumLit(a) {
|
|
125
|
+
if (!a) return void 0;
|
|
126
|
+
const v = litValue(a);
|
|
127
|
+
return typeof v === "number" ? v : void 0;
|
|
128
|
+
}
|
|
129
|
+
function absStrLit(a) {
|
|
130
|
+
if (!a) return void 0;
|
|
131
|
+
const v = litValue(a);
|
|
132
|
+
return typeof v === "string" ? v : void 0;
|
|
133
|
+
}
|
|
134
|
+
function numImpl1Abs(fn) {
|
|
135
|
+
return (args) => {
|
|
136
|
+
const a = absNumLit(args[0]);
|
|
137
|
+
return a !== void 0 ? numLit(fn(a)) : void 0;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function numImpl2Abs(fn) {
|
|
141
|
+
return (args) => {
|
|
142
|
+
const a = absNumLit(args[0]);
|
|
143
|
+
const b = absNumLit(args[1]);
|
|
144
|
+
return a !== void 0 && b !== void 0 ? numLit(fn(a, b)) : void 0;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function strToStrImplAbs(fn) {
|
|
148
|
+
return (args) => {
|
|
149
|
+
const s = absStrLit(args[0]);
|
|
150
|
+
return s !== void 0 ? strLit2(fn(s)) : void 0;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function defineEnv() {
|
|
154
|
+
const voidFn = envFn([prim.unknown], undef());
|
|
155
|
+
const consoleSlots = {};
|
|
156
|
+
for (const name of [
|
|
157
|
+
"log",
|
|
158
|
+
"error",
|
|
159
|
+
"warn",
|
|
160
|
+
"info",
|
|
161
|
+
"debug",
|
|
162
|
+
"trace",
|
|
163
|
+
"dir",
|
|
164
|
+
"table",
|
|
165
|
+
"time",
|
|
166
|
+
"timeEnd",
|
|
167
|
+
"timeLog",
|
|
168
|
+
"clear",
|
|
169
|
+
"count",
|
|
170
|
+
"countReset",
|
|
171
|
+
"group",
|
|
172
|
+
"groupCollapsed",
|
|
173
|
+
"groupEnd",
|
|
174
|
+
"assert"
|
|
175
|
+
]) {
|
|
176
|
+
consoleSlots[name] = voidFn;
|
|
177
|
+
}
|
|
178
|
+
const jsonStringifyImplAbs = (args) => {
|
|
179
|
+
const a = args[0];
|
|
180
|
+
if (!a) return void 0;
|
|
181
|
+
const v = litValue(a);
|
|
182
|
+
if (v === void 0 && a.term?.op !== "lit") return void 0;
|
|
183
|
+
try {
|
|
184
|
+
const result = JSON.stringify(v);
|
|
185
|
+
return result === void 0 ? undef() : strLit2(result);
|
|
186
|
+
} catch {
|
|
187
|
+
return void 0;
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
const parseIntImplAbs = (args) => {
|
|
191
|
+
const s = absStrLit(args[0]);
|
|
192
|
+
if (s === void 0) return void 0;
|
|
193
|
+
if (args[1] === void 0) return numLit(parseInt(s));
|
|
194
|
+
const radix = absNumLit(args[1]);
|
|
195
|
+
if (radix === void 0) return void 0;
|
|
196
|
+
if (!Number.isInteger(radix) || radix < 2 || radix > 36) return numLit(NaN);
|
|
197
|
+
return numLit(parseInt(s, radix));
|
|
198
|
+
};
|
|
199
|
+
const parseFloatImplAbs = (args) => {
|
|
200
|
+
const s = absStrLit(args[0]);
|
|
201
|
+
if (s !== void 0) return numLit(parseFloat(s));
|
|
202
|
+
return void 0;
|
|
203
|
+
};
|
|
204
|
+
const isNaNImplAbs = (args) => {
|
|
205
|
+
const n = absNumLit(args[0]);
|
|
206
|
+
return n !== void 0 ? boolLit(Number.isNaN(n)) : void 0;
|
|
207
|
+
};
|
|
208
|
+
const isFiniteImplAbs = (args) => {
|
|
209
|
+
const n = absNumLit(args[0]);
|
|
210
|
+
return n !== void 0 ? boolLit(Number.isFinite(n)) : void 0;
|
|
211
|
+
};
|
|
212
|
+
const isIntegerImplAbs = (args) => {
|
|
213
|
+
const n = absNumLit(args[0]);
|
|
214
|
+
return n !== void 0 ? boolLit(Number.isInteger(n)) : void 0;
|
|
215
|
+
};
|
|
216
|
+
const isSafeIntegerImplAbs = (args) => {
|
|
217
|
+
const n = absNumLit(args[0]);
|
|
218
|
+
return n !== void 0 ? boolLit(Number.isSafeInteger(n)) : void 0;
|
|
219
|
+
};
|
|
220
|
+
const booleanImplAbs = (args) => {
|
|
221
|
+
const a = args[0];
|
|
222
|
+
if (!a) return void 0;
|
|
223
|
+
const v = litValue(a);
|
|
224
|
+
if (v === void 0 && a.term?.op !== "lit") return void 0;
|
|
225
|
+
return boolLit(Boolean(v));
|
|
226
|
+
};
|
|
227
|
+
const stringImplAbs = (args) => {
|
|
228
|
+
const a = args[0];
|
|
229
|
+
if (!a) return void 0;
|
|
230
|
+
const v = litValue(a);
|
|
231
|
+
if (v === null || v === void 0) return void 0;
|
|
232
|
+
return strLit2(String(v));
|
|
233
|
+
};
|
|
234
|
+
const isArrayImplAbs = (args) => {
|
|
235
|
+
const a = args[0];
|
|
236
|
+
if (!a) return void 0;
|
|
237
|
+
let s = a.shape;
|
|
238
|
+
while (s.k === "brand") s = s.shape.shape;
|
|
239
|
+
if (s.k === "arr" || s.k === "tuple") return boolLit(true);
|
|
240
|
+
if (s.k === "prim" || s.k === "obj" || s.k === "eff") return boolLit(false);
|
|
241
|
+
if (a.term?.op === "lit") return boolLit(false);
|
|
242
|
+
return void 0;
|
|
243
|
+
};
|
|
244
|
+
const promiseResolveImplAbs = (args) => {
|
|
245
|
+
if (!args[0]) return void 0;
|
|
246
|
+
return promiseOf(args[0]);
|
|
247
|
+
};
|
|
248
|
+
return {
|
|
249
|
+
globals: {
|
|
250
|
+
JSON: objAbs({
|
|
251
|
+
parse: envFn([prim.str()], prim.unknown),
|
|
252
|
+
stringify: envFn(
|
|
253
|
+
[prim.unknown],
|
|
254
|
+
unionOf(prim.str(), undef()),
|
|
255
|
+
jsonStringifyImplAbs
|
|
256
|
+
)
|
|
257
|
+
}),
|
|
258
|
+
Math: objAbs({
|
|
259
|
+
abs: envFn([prim.num()], prim.num(), numImpl1Abs(Math.abs)),
|
|
260
|
+
ceil: envFn([prim.num()], prim.num(), numImpl1Abs(Math.ceil)),
|
|
261
|
+
floor: envFn([prim.num()], prim.num(), numImpl1Abs(Math.floor)),
|
|
262
|
+
round: envFn([prim.num()], prim.num(), numImpl1Abs(Math.round)),
|
|
263
|
+
trunc: envFn([prim.num()], prim.num(), numImpl1Abs(Math.trunc)),
|
|
264
|
+
sign: envFn([prim.num()], prim.num(), numImpl1Abs(Math.sign)),
|
|
265
|
+
max: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.max)),
|
|
266
|
+
min: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.min)),
|
|
267
|
+
pow: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.pow)),
|
|
268
|
+
sqrt: envFn([prim.num()], prim.num(), numImpl1Abs(Math.sqrt)),
|
|
269
|
+
cbrt: envFn([prim.num()], prim.num(), numImpl1Abs(Math.cbrt)),
|
|
270
|
+
log: envFn([prim.num()], prim.num(), numImpl1Abs(Math.log)),
|
|
271
|
+
log2: envFn([prim.num()], prim.num(), numImpl1Abs(Math.log2)),
|
|
272
|
+
log10: envFn([prim.num()], prim.num(), numImpl1Abs(Math.log10)),
|
|
273
|
+
exp: envFn([prim.num()], prim.num(), numImpl1Abs(Math.exp)),
|
|
274
|
+
random: envFn([], prim.num()),
|
|
275
|
+
sin: envFn([prim.num()], prim.num(), numImpl1Abs(Math.sin)),
|
|
276
|
+
cos: envFn([prim.num()], prim.num(), numImpl1Abs(Math.cos)),
|
|
277
|
+
tan: envFn([prim.num()], prim.num(), numImpl1Abs(Math.tan)),
|
|
278
|
+
asin: envFn([prim.num()], prim.num(), numImpl1Abs(Math.asin)),
|
|
279
|
+
acos: envFn([prim.num()], prim.num(), numImpl1Abs(Math.acos)),
|
|
280
|
+
atan: envFn([prim.num()], prim.num(), numImpl1Abs(Math.atan)),
|
|
281
|
+
atan2: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.atan2)),
|
|
282
|
+
hypot: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.hypot)),
|
|
283
|
+
clz32: envFn([prim.num()], prim.num(), numImpl1Abs(Math.clz32)),
|
|
284
|
+
imul: envFn([prim.num(), prim.num()], prim.num(), numImpl2Abs(Math.imul)),
|
|
285
|
+
fround: envFn([prim.num()], prim.num(), numImpl1Abs(Math.fround)),
|
|
286
|
+
PI: prim.num(),
|
|
287
|
+
E: prim.num(),
|
|
288
|
+
LN2: prim.num(),
|
|
289
|
+
LN10: prim.num(),
|
|
290
|
+
LOG2E: prim.num(),
|
|
291
|
+
LOG10E: prim.num(),
|
|
292
|
+
SQRT2: prim.num(),
|
|
293
|
+
SQRT1_2: prim.num()
|
|
294
|
+
}),
|
|
295
|
+
Number: objAbs({
|
|
296
|
+
isFinite: envFn([prim.unknown], prim.bool(), isFiniteImplAbs),
|
|
297
|
+
isInteger: envFn([prim.unknown], prim.bool(), isIntegerImplAbs),
|
|
298
|
+
isNaN: envFn([prim.unknown], prim.bool(), isNaNImplAbs),
|
|
299
|
+
isSafeInteger: envFn([prim.unknown], prim.bool(), isSafeIntegerImplAbs),
|
|
300
|
+
parseFloat: envFn([prim.str()], prim.num(), parseFloatImplAbs),
|
|
301
|
+
parseInt: envFn([prim.str()], prim.num(), parseIntImplAbs),
|
|
302
|
+
MAX_SAFE_INTEGER: prim.num(),
|
|
303
|
+
MIN_SAFE_INTEGER: prim.num(),
|
|
304
|
+
MAX_VALUE: prim.num(),
|
|
305
|
+
MIN_VALUE: prim.num(),
|
|
306
|
+
POSITIVE_INFINITY: prim.num(),
|
|
307
|
+
NEGATIVE_INFINITY: prim.num(),
|
|
308
|
+
NaN: prim.num(),
|
|
309
|
+
EPSILON: prim.num()
|
|
310
|
+
}),
|
|
311
|
+
Boolean: envFn([prim.unknown], prim.bool(), booleanImplAbs),
|
|
312
|
+
String: envFn([prim.unknown], prim.str(), stringImplAbs),
|
|
313
|
+
Array: objAbs({
|
|
314
|
+
isArray: envFn([prim.unknown], prim.bool(), isArrayImplAbs),
|
|
315
|
+
from: envFn([prim.unknown], arrOf(prim.unknown)),
|
|
316
|
+
of: envFn([prim.unknown], arrOf(prim.unknown))
|
|
317
|
+
}),
|
|
318
|
+
console: objAbs(consoleSlots),
|
|
319
|
+
parseInt: envFn([prim.str(), prim.num()], prim.num(), parseIntImplAbs),
|
|
320
|
+
parseFloat: envFn([prim.str()], prim.num(), parseFloatImplAbs),
|
|
321
|
+
isNaN: envFn([prim.unknown], prim.bool(), isNaNImplAbs),
|
|
322
|
+
isFinite: envFn([prim.unknown], prim.bool(), isFiniteImplAbs),
|
|
323
|
+
encodeURI: envFn([prim.str()], prim.str(), strToStrImplAbs(encodeURI)),
|
|
324
|
+
decodeURI: envFn([prim.str()], prim.str(), strToStrImplAbs(decodeURI)),
|
|
325
|
+
encodeURIComponent: envFn(
|
|
326
|
+
[prim.str()],
|
|
327
|
+
prim.str(),
|
|
328
|
+
strToStrImplAbs(encodeURIComponent)
|
|
329
|
+
),
|
|
330
|
+
decodeURIComponent: envFn(
|
|
331
|
+
[prim.str()],
|
|
332
|
+
prim.str(),
|
|
333
|
+
strToStrImplAbs(decodeURIComponent)
|
|
334
|
+
),
|
|
335
|
+
Error: envFn([prim.str()], errorBrandOf("Error")),
|
|
336
|
+
TypeError: envFn([prim.str()], errorBrandOf("TypeError")),
|
|
337
|
+
RangeError: envFn([prim.str()], errorBrandOf("RangeError")),
|
|
338
|
+
SyntaxError: envFn([prim.str()], errorBrandOf("SyntaxError")),
|
|
339
|
+
ReferenceError: envFn([prim.str()], errorBrandOf("ReferenceError")),
|
|
340
|
+
URIError: envFn([prim.str()], errorBrandOf("URIError")),
|
|
341
|
+
Promise: objAbs({
|
|
342
|
+
resolve: envFn([prim.unknown], promiseOf(prim.unknown), promiseResolveImplAbs),
|
|
343
|
+
reject: envFn([prim.unknown], promiseOf(prim.never)),
|
|
344
|
+
all: envFn([arrOf(promiseOf(prim.unknown))], promiseOf(arrOf(prim.unknown))),
|
|
345
|
+
allSettled: envFn(
|
|
346
|
+
[arrOf(promiseOf(prim.unknown))],
|
|
347
|
+
promiseOf(arrOf(prim.unknown))
|
|
348
|
+
),
|
|
349
|
+
race: envFn([arrOf(promiseOf(prim.unknown))], promiseOf(prim.unknown)),
|
|
350
|
+
any: envFn([arrOf(promiseOf(prim.unknown))], promiseOf(prim.unknown))
|
|
351
|
+
}),
|
|
352
|
+
Date: objAbs({
|
|
353
|
+
now: envFn([], prim.num()),
|
|
354
|
+
parse: envFn([prim.str()], prim.num()),
|
|
355
|
+
UTC: envFn([prim.num(), prim.num()], prim.num())
|
|
356
|
+
}),
|
|
357
|
+
Symbol: envFn([prim.str()], brandOf("Symbol")),
|
|
358
|
+
Reflect: objAbs({
|
|
359
|
+
apply: envFn(
|
|
360
|
+
[prim.unknown, prim.unknown, arrOf(prim.unknown)],
|
|
361
|
+
prim.unknown
|
|
362
|
+
),
|
|
363
|
+
construct: envFn([prim.unknown, arrOf(prim.unknown)], prim.unknown),
|
|
364
|
+
defineProperty: envFn(
|
|
365
|
+
[prim.unknown, prim.str(), prim.unknown],
|
|
366
|
+
prim.bool()
|
|
367
|
+
),
|
|
368
|
+
deleteProperty: envFn([prim.unknown, prim.str()], prim.bool()),
|
|
369
|
+
get: envFn([prim.unknown, prim.str()], prim.unknown),
|
|
370
|
+
getOwnPropertyDescriptor: envFn(
|
|
371
|
+
[prim.unknown, prim.str()],
|
|
372
|
+
unionOf(prim.unknown, undef())
|
|
373
|
+
),
|
|
374
|
+
getPrototypeOf: envFn([prim.unknown], unionOf(prim.unknown, nullLit())),
|
|
375
|
+
has: envFn([prim.unknown, prim.str()], prim.bool()),
|
|
376
|
+
isExtensible: envFn([prim.unknown], prim.bool()),
|
|
377
|
+
ownKeys: envFn([prim.unknown], arrOf(prim.str())),
|
|
378
|
+
preventExtensions: envFn([prim.unknown], prim.bool()),
|
|
379
|
+
set: envFn([prim.unknown, prim.str(), prim.unknown], prim.bool()),
|
|
380
|
+
setPrototypeOf: envFn([prim.unknown, prim.unknown], prim.bool())
|
|
381
|
+
}),
|
|
382
|
+
globalThis: prim.unknown,
|
|
383
|
+
undefined: undef(),
|
|
384
|
+
NaN: prim.num(),
|
|
385
|
+
Infinity: prim.num()
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
export {
|
|
391
|
+
undef,
|
|
392
|
+
nullLit,
|
|
393
|
+
arrOf,
|
|
394
|
+
tupleOf,
|
|
395
|
+
unionOf,
|
|
396
|
+
promiseOf,
|
|
397
|
+
brandOf,
|
|
398
|
+
envFn,
|
|
399
|
+
objAbs,
|
|
400
|
+
prim,
|
|
401
|
+
defineEnv
|
|
402
|
+
};
|
package/dist/es.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Abs } from '@nudojs/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ES env:Abs 原生 globals。
|
|
5
|
+
* EnvDefinition.globals / modules 均为 Abs。
|
|
6
|
+
*/
|
|
2
7
|
|
|
3
8
|
type EnvDefinition = {
|
|
4
|
-
globals: Record<string,
|
|
5
|
-
modules?: Record<string, Record<string,
|
|
9
|
+
globals: Record<string, Abs>;
|
|
10
|
+
modules?: Record<string, Record<string, Abs>>;
|
|
6
11
|
};
|
|
7
12
|
declare function defineEnv(): EnvDefinition;
|
|
8
13
|
|
package/dist/es.js
CHANGED