@nudojs/env 0.2.3 → 0.2.5

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/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@nudojs/env",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
+ "engines": {
5
+ "node": ">=20"
6
+ },
4
7
  "description": "ES standard, Web platform, and Node.js API type definitions for the Nudo inference engine",
5
8
  "type": "module",
6
9
  "license": "MIT",
@@ -32,7 +35,7 @@
32
35
  "registry": "https://registry.npmjs.org"
33
36
  },
34
37
  "dependencies": {
35
- "@nudojs/core": "0.4.0"
38
+ "@nudojs/core": "1.0.1"
36
39
  },
37
40
  "scripts": {
38
41
  "build": "tsup src/es.ts src/web.ts src/node.ts --format esm --dts"
@@ -1,227 +0,0 @@
1
- // src/es.ts
2
- import { T } from "@nudojs/core";
3
- function litNum(tv) {
4
- return tv.kind === "literal" && typeof tv.value === "number" ? tv.value : void 0;
5
- }
6
- function litStr(tv) {
7
- return tv.kind === "literal" && typeof tv.value === "string" ? tv.value : void 0;
8
- }
9
- function numImpl1(fn) {
10
- return (args) => {
11
- const a = litNum(args[0]);
12
- return a !== void 0 ? T.literal(fn(a)) : void 0;
13
- };
14
- }
15
- function numImpl2(fn) {
16
- return (args) => {
17
- const a = litNum(args[0]);
18
- const b = litNum(args[1]);
19
- return a !== void 0 && b !== void 0 ? T.literal(fn(a, b)) : void 0;
20
- };
21
- }
22
- function strToStrImpl(fn) {
23
- return (args) => {
24
- const s = litStr(args[0]);
25
- return s !== void 0 ? T.literal(fn(s)) : void 0;
26
- };
27
- }
28
- function defineEnv() {
29
- const voidFn = T.fnSig([T.unknown], T.undefined);
30
- const consoleMethods = {};
31
- for (const name of ["log", "error", "warn", "info", "debug", "trace", "dir", "table", "time", "timeEnd", "timeLog", "clear", "count", "countReset", "group", "groupCollapsed", "groupEnd", "assert"]) {
32
- consoleMethods[name] = voidFn;
33
- }
34
- const jsonStringifyImpl = (args) => {
35
- const v = args[0];
36
- if (v.kind === "literal") {
37
- try {
38
- const result = JSON.stringify(v.value);
39
- return result === void 0 ? T.undefined : T.literal(result);
40
- } catch {
41
- }
42
- }
43
- return void 0;
44
- };
45
- const parseIntImpl = (args) => {
46
- const s = litStr(args[0]);
47
- const radix = args[1] !== void 0 ? litNum(args[1]) : 10;
48
- if (s !== void 0 && radix !== void 0) {
49
- const result = parseInt(s, radix);
50
- return Number.isNaN(result) ? T.literal(NaN) : T.literal(result);
51
- }
52
- return void 0;
53
- };
54
- const parseFloatImpl = (args) => {
55
- const s = litStr(args[0]);
56
- if (s !== void 0) {
57
- const result = parseFloat(s);
58
- return T.literal(result);
59
- }
60
- return void 0;
61
- };
62
- const isNaNImpl = (args) => {
63
- const v = args[0];
64
- if (v.kind === "literal" && typeof v.value === "number") return T.literal(Number.isNaN(v.value));
65
- return void 0;
66
- };
67
- const isFiniteImpl = (args) => {
68
- const v = args[0];
69
- if (v.kind === "literal" && typeof v.value === "number") return T.literal(Number.isFinite(v.value));
70
- return void 0;
71
- };
72
- return {
73
- globals: {
74
- // --- JSON ---
75
- JSON: T.object({
76
- parse: T.fnSig([T.string], T.unknown, T.instanceOf("SyntaxError")),
77
- stringify: T.fnSig([T.unknown], T.union(T.string, T.undefined), T.never, jsonStringifyImpl)
78
- }),
79
- // --- Math ---
80
- Math: T.object({
81
- abs: T.fnSig([T.number], T.number, T.never, numImpl1(Math.abs)),
82
- ceil: T.fnSig([T.number], T.number, T.never, numImpl1(Math.ceil)),
83
- floor: T.fnSig([T.number], T.number, T.never, numImpl1(Math.floor)),
84
- round: T.fnSig([T.number], T.number, T.never, numImpl1(Math.round)),
85
- trunc: T.fnSig([T.number], T.number, T.never, numImpl1(Math.trunc)),
86
- sign: T.fnSig([T.number], T.number, T.never, numImpl1(Math.sign)),
87
- max: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.max)),
88
- min: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.min)),
89
- pow: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.pow)),
90
- sqrt: T.fnSig([T.number], T.number, T.never, numImpl1(Math.sqrt)),
91
- cbrt: T.fnSig([T.number], T.number, T.never, numImpl1(Math.cbrt)),
92
- log: T.fnSig([T.number], T.number, T.never, numImpl1(Math.log)),
93
- log2: T.fnSig([T.number], T.number, T.never, numImpl1(Math.log2)),
94
- log10: T.fnSig([T.number], T.number, T.never, numImpl1(Math.log10)),
95
- exp: T.fnSig([T.number], T.number, T.never, numImpl1(Math.exp)),
96
- random: T.fnSig([], T.number),
97
- sin: T.fnSig([T.number], T.number, T.never, numImpl1(Math.sin)),
98
- cos: T.fnSig([T.number], T.number, T.never, numImpl1(Math.cos)),
99
- tan: T.fnSig([T.number], T.number, T.never, numImpl1(Math.tan)),
100
- asin: T.fnSig([T.number], T.number, T.never, numImpl1(Math.asin)),
101
- acos: T.fnSig([T.number], T.number, T.never, numImpl1(Math.acos)),
102
- atan: T.fnSig([T.number], T.number, T.never, numImpl1(Math.atan)),
103
- atan2: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.atan2)),
104
- hypot: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.hypot)),
105
- clz32: T.fnSig([T.number], T.number, T.never, numImpl1(Math.clz32)),
106
- imul: T.fnSig([T.number, T.number], T.number, T.never, numImpl2(Math.imul)),
107
- fround: T.fnSig([T.number], T.number, T.never, numImpl1(Math.fround)),
108
- PI: T.number,
109
- E: T.number,
110
- LN2: T.number,
111
- LN10: T.number,
112
- LOG2E: T.number,
113
- LOG10E: T.number,
114
- SQRT2: T.number,
115
- SQRT1_2: T.number
116
- }),
117
- // --- Number ---
118
- Number: T.object({
119
- isFinite: T.fnSig([T.unknown], T.boolean, T.never, isFiniteImpl),
120
- isInteger: T.fnSig([T.unknown], T.boolean, T.never, (args) => {
121
- const v = args[0];
122
- if (v.kind === "literal" && typeof v.value === "number") return T.literal(Number.isInteger(v.value));
123
- return void 0;
124
- }),
125
- isNaN: T.fnSig([T.unknown], T.boolean, T.never, isNaNImpl),
126
- isSafeInteger: T.fnSig([T.unknown], T.boolean, T.never, (args) => {
127
- const v = args[0];
128
- if (v.kind === "literal" && typeof v.value === "number") return T.literal(Number.isSafeInteger(v.value));
129
- return void 0;
130
- }),
131
- parseFloat: T.fnSig([T.string], T.number, T.never, parseFloatImpl),
132
- parseInt: T.fnSig([T.string], T.number, T.never, parseIntImpl),
133
- MAX_SAFE_INTEGER: T.number,
134
- MIN_SAFE_INTEGER: T.number,
135
- MAX_VALUE: T.number,
136
- MIN_VALUE: T.number,
137
- POSITIVE_INFINITY: T.number,
138
- NEGATIVE_INFINITY: T.number,
139
- NaN: T.number,
140
- EPSILON: T.number
141
- }),
142
- // --- Boolean ---
143
- Boolean: T.fnSig([T.unknown], T.boolean, T.never, (args) => {
144
- const v = args[0];
145
- if (v.kind === "literal") return T.literal(Boolean(v.value));
146
- return void 0;
147
- }),
148
- // --- String ---
149
- String: T.fnSig([T.unknown], T.string, T.never, (args) => {
150
- const v = args[0];
151
- if (v.kind === "literal" && v.value !== null && v.value !== void 0) return T.literal(String(v.value));
152
- return void 0;
153
- }),
154
- // --- Array ---
155
- Array: T.object({
156
- isArray: T.fnSig([T.unknown], T.boolean, T.never, (args) => {
157
- const v = args[0];
158
- if (v.kind === "array" || v.kind === "tuple") return T.literal(true);
159
- if (v.kind === "literal" || v.kind === "primitive" || v.kind === "object") return T.literal(false);
160
- return void 0;
161
- }),
162
- from: T.fnSig([T.unknown], T.array(T.unknown)),
163
- of: T.fnSig([T.unknown], T.array(T.unknown))
164
- }),
165
- // --- console ---
166
- console: T.object(consoleMethods),
167
- // --- Global functions ---
168
- parseInt: T.fnSig([T.string, T.number], T.number, T.never, parseIntImpl),
169
- parseFloat: T.fnSig([T.string], T.number, T.never, parseFloatImpl),
170
- isNaN: T.fnSig([T.unknown], T.boolean, T.never, isNaNImpl),
171
- isFinite: T.fnSig([T.unknown], T.boolean, T.never, isFiniteImpl),
172
- encodeURI: T.fnSig([T.string], T.string, T.never, strToStrImpl(encodeURI)),
173
- decodeURI: T.fnSig([T.string], T.string, T.instanceOf("URIError"), strToStrImpl(decodeURI)),
174
- encodeURIComponent: T.fnSig([T.string], T.string, T.never, strToStrImpl(encodeURIComponent)),
175
- decodeURIComponent: T.fnSig([T.string], T.string, T.instanceOf("URIError"), strToStrImpl(decodeURIComponent)),
176
- // --- Error constructors ---
177
- Error: T.fnSig([T.string], T.instanceOf("Error")),
178
- TypeError: T.fnSig([T.string], T.instanceOf("TypeError")),
179
- RangeError: T.fnSig([T.string], T.instanceOf("RangeError")),
180
- SyntaxError: T.fnSig([T.string], T.instanceOf("SyntaxError")),
181
- ReferenceError: T.fnSig([T.string], T.instanceOf("ReferenceError")),
182
- URIError: T.fnSig([T.string], T.instanceOf("URIError")),
183
- // --- Promise ---
184
- Promise: T.object({
185
- resolve: T.fnSig([T.unknown], T.promise(T.unknown), T.never, (args) => T.promise(args[0])),
186
- reject: T.fnSig([T.unknown], T.promise(T.never)),
187
- all: T.fnSig([T.array(T.promise(T.unknown))], T.promise(T.array(T.unknown))),
188
- allSettled: T.fnSig([T.array(T.promise(T.unknown))], T.promise(T.array(T.unknown))),
189
- race: T.fnSig([T.array(T.promise(T.unknown))], T.promise(T.unknown)),
190
- any: T.fnSig([T.array(T.promise(T.unknown))], T.promise(T.unknown))
191
- }),
192
- // --- Date ---
193
- Date: T.object({
194
- now: T.fnSig([], T.number),
195
- parse: T.fnSig([T.string], T.number),
196
- UTC: T.fnSig([T.number, T.number], T.number)
197
- }),
198
- // --- Symbol ---
199
- Symbol: T.fnSig([T.string], T.symbol),
200
- // --- Reflect ---
201
- Reflect: T.object({
202
- apply: T.fnSig([T.unknown, T.unknown, T.array(T.unknown)], T.unknown),
203
- construct: T.fnSig([T.unknown, T.array(T.unknown)], T.unknown),
204
- defineProperty: T.fnSig([T.unknown, T.string, T.unknown], T.boolean),
205
- deleteProperty: T.fnSig([T.unknown, T.string], T.boolean),
206
- get: T.fnSig([T.unknown, T.string], T.unknown),
207
- getOwnPropertyDescriptor: T.fnSig([T.unknown, T.string], T.union(T.unknown, T.undefined)),
208
- getPrototypeOf: T.fnSig([T.unknown], T.union(T.unknown, T.null)),
209
- has: T.fnSig([T.unknown, T.string], T.boolean),
210
- isExtensible: T.fnSig([T.unknown], T.boolean),
211
- ownKeys: T.fnSig([T.unknown], T.array(T.string)),
212
- preventExtensions: T.fnSig([T.unknown], T.boolean),
213
- set: T.fnSig([T.unknown, T.string, T.unknown], T.boolean),
214
- setPrototypeOf: T.fnSig([T.unknown, T.unknown], T.boolean)
215
- }),
216
- // --- globalThis ---
217
- globalThis: T.unknown,
218
- undefined: T.undefined,
219
- NaN: T.number,
220
- Infinity: T.number
221
- }
222
- };
223
- }
224
-
225
- export {
226
- defineEnv
227
- };