@forthix/forthic 0.10.0 → 0.12.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/cjs/common/runtime_client.d.ts +30 -0
- package/dist/cjs/common/runtime_client.js +10 -0
- package/dist/cjs/common/runtime_client.js.map +1 -0
- package/dist/cjs/common/type_utils.d.ts +7 -1
- package/dist/cjs/common/type_utils.js +13 -2
- package/dist/cjs/common/type_utils.js.map +1 -1
- package/dist/cjs/forthic/interpreter.js +6 -3
- package/dist/cjs/forthic/interpreter.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/array_module.d.ts +17 -7
- package/dist/cjs/forthic/modules/standard/array_module.js +326 -78
- package/dist/cjs/forthic/modules/standard/array_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/boolean_module.d.ts +5 -6
- package/dist/cjs/forthic/modules/standard/boolean_module.js +43 -60
- package/dist/cjs/forthic/modules/standard/boolean_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/classic/classic_module.d.ts +56 -0
- package/dist/cjs/forthic/modules/standard/classic/classic_module.js +616 -0
- package/dist/cjs/forthic/modules/standard/classic/classic_module.js.map +1 -0
- package/dist/cjs/forthic/modules/standard/core_module.d.ts +11 -14
- package/dist/cjs/forthic/modules/standard/core_module.js +91 -97
- package/dist/cjs/forthic/modules/standard/core_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/datetime_module.d.ts +4 -2
- package/dist/cjs/forthic/modules/standard/datetime_module.js +39 -20
- package/dist/cjs/forthic/modules/standard/datetime_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/json_module.d.ts +0 -1
- package/dist/cjs/forthic/modules/standard/json_module.js +0 -15
- package/dist/cjs/forthic/modules/standard/json_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/math_module.d.ts +7 -12
- package/dist/cjs/forthic/modules/standard/math_module.js +76 -137
- package/dist/cjs/forthic/modules/standard/math_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/record_module.d.ts +15 -4
- package/dist/cjs/forthic/modules/standard/record_module.js +311 -45
- package/dist/cjs/forthic/modules/standard/record_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/string_module.d.ts +14 -6
- package/dist/cjs/forthic/modules/standard/string_module.js +183 -60
- package/dist/cjs/forthic/modules/standard/string_module.js.map +1 -1
- package/dist/cjs/forthic/tokenizer.js +29 -1
- package/dist/cjs/forthic/tokenizer.js.map +1 -1
- package/dist/cjs/grpc/config_loader.d.ts +3 -0
- package/dist/cjs/grpc/config_loader.js +5 -0
- package/dist/cjs/grpc/config_loader.js.map +1 -1
- package/dist/cjs/grpc/remote_module.d.ts +3 -3
- package/dist/cjs/grpc/remote_module.js +1 -1
- package/dist/cjs/grpc/remote_module.js.map +1 -1
- package/dist/cjs/grpc/remote_word.d.ts +3 -3
- package/dist/cjs/grpc/remote_word.js +1 -1
- package/dist/cjs/grpc/remote_word.js.map +1 -1
- package/dist/cjs/grpc/runtime_manager.d.ts +5 -4
- package/dist/cjs/grpc/runtime_manager.js +2 -2
- package/dist/cjs/grpc/runtime_manager.js.map +1 -1
- package/dist/cjs/grpc/serializer.d.ts +2 -2
- package/dist/cjs/grpc/serializer.js +11 -10
- package/dist/cjs/grpc/serializer.js.map +1 -1
- package/dist/cjs/jsonrpc/browser-stub.d.ts +8 -0
- package/dist/cjs/jsonrpc/browser-stub.js +18 -0
- package/dist/cjs/jsonrpc/browser-stub.js.map +1 -0
- package/dist/cjs/jsonrpc/client.d.ts +31 -0
- package/dist/cjs/jsonrpc/client.js +98 -0
- package/dist/cjs/jsonrpc/client.js.map +1 -0
- package/dist/cjs/jsonrpc/errors.d.ts +18 -0
- package/dist/cjs/jsonrpc/errors.js +23 -0
- package/dist/cjs/jsonrpc/errors.js.map +1 -0
- package/dist/cjs/jsonrpc/index.d.ts +16 -0
- package/dist/cjs/jsonrpc/index.js +26 -0
- package/dist/cjs/jsonrpc/index.js.map +1 -0
- package/dist/cjs/jsonrpc/serializer.d.ts +8 -0
- package/dist/cjs/jsonrpc/serializer.js +14 -0
- package/dist/cjs/jsonrpc/serializer.js.map +1 -0
- package/dist/cjs/jsonrpc/server.d.ts +15 -0
- package/dist/cjs/jsonrpc/server.js +386 -0
- package/dist/cjs/jsonrpc/server.js.map +1 -0
- package/dist/cjs/websocket/serializer.d.ts +4 -4
- package/dist/cjs/websocket/serializer.js +15 -14
- package/dist/cjs/websocket/serializer.js.map +1 -1
- package/dist/esm/common/runtime_client.d.ts +30 -0
- package/dist/esm/common/runtime_client.js +9 -0
- package/dist/esm/common/runtime_client.js.map +1 -0
- package/dist/esm/common/type_utils.d.ts +7 -1
- package/dist/esm/common/type_utils.js +12 -2
- package/dist/esm/common/type_utils.js.map +1 -1
- package/dist/esm/forthic/interpreter.js +6 -3
- package/dist/esm/forthic/interpreter.js.map +1 -1
- package/dist/esm/forthic/modules/standard/array_module.d.ts +17 -7
- package/dist/esm/forthic/modules/standard/array_module.js +293 -72
- package/dist/esm/forthic/modules/standard/array_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/boolean_module.d.ts +5 -6
- package/dist/esm/forthic/modules/standard/boolean_module.js +38 -54
- package/dist/esm/forthic/modules/standard/boolean_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/classic/classic_module.d.ts +56 -0
- package/dist/esm/forthic/modules/standard/classic/classic_module.js +500 -0
- package/dist/esm/forthic/modules/standard/classic/classic_module.js.map +1 -0
- package/dist/esm/forthic/modules/standard/core_module.d.ts +11 -14
- package/dist/esm/forthic/modules/standard/core_module.js +76 -82
- package/dist/esm/forthic/modules/standard/core_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/datetime_module.d.ts +4 -2
- package/dist/esm/forthic/modules/standard/datetime_module.js +30 -17
- package/dist/esm/forthic/modules/standard/datetime_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/json_module.d.ts +0 -1
- package/dist/esm/forthic/modules/standard/json_module.js +0 -12
- package/dist/esm/forthic/modules/standard/json_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/math_module.d.ts +7 -12
- package/dist/esm/forthic/modules/standard/math_module.js +69 -117
- package/dist/esm/forthic/modules/standard/math_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/record_module.d.ts +15 -4
- package/dist/esm/forthic/modules/standard/record_module.js +292 -44
- package/dist/esm/forthic/modules/standard/record_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/string_module.d.ts +14 -6
- package/dist/esm/forthic/modules/standard/string_module.js +151 -54
- package/dist/esm/forthic/modules/standard/string_module.js.map +1 -1
- package/dist/esm/forthic/tokenizer.js +29 -1
- package/dist/esm/forthic/tokenizer.js.map +1 -1
- package/dist/esm/grpc/config_loader.d.ts +3 -0
- package/dist/esm/grpc/config_loader.js +5 -0
- package/dist/esm/grpc/config_loader.js.map +1 -1
- package/dist/esm/grpc/remote_module.d.ts +3 -3
- package/dist/esm/grpc/remote_module.js +1 -1
- package/dist/esm/grpc/remote_module.js.map +1 -1
- package/dist/esm/grpc/remote_word.d.ts +3 -3
- package/dist/esm/grpc/remote_word.js +1 -1
- package/dist/esm/grpc/remote_word.js.map +1 -1
- package/dist/esm/grpc/runtime_manager.d.ts +5 -4
- package/dist/esm/grpc/runtime_manager.js +2 -2
- package/dist/esm/grpc/runtime_manager.js.map +1 -1
- package/dist/esm/grpc/serializer.d.ts +2 -2
- package/dist/esm/grpc/serializer.js +12 -11
- package/dist/esm/grpc/serializer.js.map +1 -1
- package/dist/esm/jsonrpc/browser-stub.d.ts +8 -0
- package/dist/esm/jsonrpc/browser-stub.js +12 -0
- package/dist/esm/jsonrpc/browser-stub.js.map +1 -0
- package/dist/esm/jsonrpc/client.d.ts +31 -0
- package/dist/esm/jsonrpc/client.js +94 -0
- package/dist/esm/jsonrpc/client.js.map +1 -0
- package/dist/esm/jsonrpc/errors.d.ts +18 -0
- package/dist/esm/jsonrpc/errors.js +18 -0
- package/dist/esm/jsonrpc/errors.js.map +1 -0
- package/dist/esm/jsonrpc/index.d.ts +16 -0
- package/dist/esm/jsonrpc/index.js +16 -0
- package/dist/esm/jsonrpc/index.js.map +1 -0
- package/dist/esm/jsonrpc/serializer.d.ts +8 -0
- package/dist/esm/jsonrpc/serializer.js +9 -0
- package/dist/esm/jsonrpc/serializer.js.map +1 -0
- package/dist/esm/jsonrpc/server.d.ts +15 -0
- package/dist/esm/jsonrpc/server.js +349 -0
- package/dist/esm/jsonrpc/server.js.map +1 -0
- package/dist/esm/websocket/serializer.d.ts +4 -4
- package/dist/esm/websocket/serializer.js +16 -15
- package/dist/esm/websocket/serializer.js.map +1 -1
- package/package.json +15 -2
|
@@ -4,7 +4,7 @@ export declare class CoreModule extends DecoratedModule {
|
|
|
4
4
|
constructor();
|
|
5
5
|
private static get_or_create_variable;
|
|
6
6
|
private static get_existing_variable;
|
|
7
|
-
|
|
7
|
+
DROP(_a: any): Promise<void>;
|
|
8
8
|
DUP(a: any): Promise<void>;
|
|
9
9
|
SWAP(a: any, b: any): Promise<void>;
|
|
10
10
|
["PEEK!"](): Promise<void>;
|
|
@@ -13,25 +13,22 @@ export declare class CoreModule extends DecoratedModule {
|
|
|
13
13
|
["!"](value: any, variable: any): Promise<void>;
|
|
14
14
|
["@"](variable: any): Promise<any>;
|
|
15
15
|
["!@"](value: any, variable: any): Promise<any>;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
RUN(forthic: string): Promise<void>;
|
|
17
|
+
IF(bool: any, then_value: any, else_value: any): Promise<any>;
|
|
18
|
+
IF_RUN(bool: any, then_forthic: string, else_forthic: string): Promise<void>;
|
|
19
|
+
WHEN(bool: any, forthic: string): Promise<void>;
|
|
18
20
|
USE_MODULES(names: string[], options: Record<string, any>): Promise<void>;
|
|
19
|
-
IDENTITY(): Promise<void>;
|
|
20
21
|
NOP(): Promise<void>;
|
|
21
22
|
NULL(): Promise<any>;
|
|
22
23
|
["ARRAY?"](value: any): Promise<boolean>;
|
|
24
|
+
["NULL?"](value: any): Promise<boolean>;
|
|
25
|
+
["EMPTY?"](value: any): Promise<boolean>;
|
|
26
|
+
["STRING?"](value: any): Promise<boolean>;
|
|
27
|
+
["NUMBER?"](value: any): Promise<boolean>;
|
|
28
|
+
["RECORD?"](value: any): Promise<boolean>;
|
|
23
29
|
DEFAULT(value: any, default_value: any): Promise<any>;
|
|
24
|
-
|
|
30
|
+
DEFAULT_RUN(value: any, forthic: string): Promise<any>;
|
|
25
31
|
["~>"](array: any[]): Promise<WordOptions>;
|
|
26
|
-
["PROFILE-START"](): Promise<void>;
|
|
27
|
-
["PROFILE-END"](): Promise<void>;
|
|
28
|
-
["PROFILE-TIMESTAMP"](label: string): Promise<void>;
|
|
29
|
-
["PROFILE-DATA"](): Promise<{
|
|
30
|
-
word_counts: any[];
|
|
31
|
-
timestamps: any[];
|
|
32
|
-
}>;
|
|
33
|
-
START_LOG(): Promise<void>;
|
|
34
|
-
END_LOG(): Promise<void>;
|
|
35
32
|
INTERPOLATE(string: string, options: Record<string, any>): Promise<string>;
|
|
36
33
|
PRINT(value: any, options: Record<string, any>): Promise<void>;
|
|
37
34
|
private interpolateString;
|
|
@@ -19,14 +19,13 @@ class CoreModule extends word_js_1.DecoratedModule {
|
|
|
19
19
|
Essential interpreter operations for stack manipulation, variables, control flow, and module system.
|
|
20
20
|
|
|
21
21
|
## Categories
|
|
22
|
-
- Stack:
|
|
22
|
+
- Stack: DROP, DUP, SWAP
|
|
23
23
|
- Variables: VARIABLES, !, @, !@
|
|
24
|
-
- Module:
|
|
25
|
-
- Execution:
|
|
26
|
-
- Control:
|
|
24
|
+
- Module: USE-MODULES
|
|
25
|
+
- Execution: RUN
|
|
26
|
+
- Control: NOP, DEFAULT, DEFAULT-RUN, NULL, IF, IF-RUN, WHEN
|
|
27
|
+
- Predicates: ARRAY?, NULL?, EMPTY?, STRING?, NUMBER?, RECORD?
|
|
27
28
|
- Options: ~> (converts array to WordOptions)
|
|
28
|
-
- Profiling: PROFILE-START, PROFILE-TIMESTAMP, PROFILE-END, PROFILE-DATA
|
|
29
|
-
- Logging: START-LOG, END-LOG
|
|
30
29
|
- String: INTERPOLATE, PRINT
|
|
31
30
|
- Debug: PEEK!, STACK!
|
|
32
31
|
|
|
@@ -71,7 +70,7 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
71
70
|
}
|
|
72
71
|
return variable;
|
|
73
72
|
}
|
|
74
|
-
async
|
|
73
|
+
async DROP(_a) {
|
|
75
74
|
// No return = push nothing
|
|
76
75
|
}
|
|
77
76
|
async DUP(a) {
|
|
@@ -137,22 +136,32 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
137
136
|
var_obj.set_value(value);
|
|
138
137
|
return var_obj.get_value();
|
|
139
138
|
}
|
|
140
|
-
async
|
|
139
|
+
async RUN(forthic) {
|
|
141
140
|
const string_location = this.interp.get_string_location();
|
|
142
|
-
if (
|
|
143
|
-
await this.interp.run(
|
|
141
|
+
if (forthic)
|
|
142
|
+
await this.interp.run(forthic, string_location);
|
|
144
143
|
}
|
|
145
|
-
async
|
|
146
|
-
|
|
144
|
+
async IF(bool, then_value, else_value) {
|
|
145
|
+
return bool ? then_value : else_value;
|
|
146
|
+
}
|
|
147
|
+
async IF_RUN(bool, then_forthic, else_forthic) {
|
|
148
|
+
const branch = bool ? then_forthic : else_forthic;
|
|
149
|
+
if (branch) {
|
|
150
|
+
const string_location = this.interp.get_string_location();
|
|
151
|
+
await this.interp.run(branch, string_location);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async WHEN(bool, forthic) {
|
|
155
|
+
if (bool && forthic) {
|
|
156
|
+
const string_location = this.interp.get_string_location();
|
|
157
|
+
await this.interp.run(forthic, string_location);
|
|
158
|
+
}
|
|
147
159
|
}
|
|
148
160
|
async USE_MODULES(names, options) {
|
|
149
161
|
if (!names)
|
|
150
162
|
return;
|
|
151
163
|
this.interp.use_modules(names, options);
|
|
152
164
|
}
|
|
153
|
-
async IDENTITY() {
|
|
154
|
-
// No-op
|
|
155
|
-
}
|
|
156
165
|
async NOP() {
|
|
157
166
|
// No-op
|
|
158
167
|
}
|
|
@@ -162,16 +171,39 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
162
171
|
async ["ARRAY?"](value) {
|
|
163
172
|
return value instanceof Array;
|
|
164
173
|
}
|
|
174
|
+
async ["NULL?"](value) {
|
|
175
|
+
return value === null || value === undefined;
|
|
176
|
+
}
|
|
177
|
+
async ["EMPTY?"](value) {
|
|
178
|
+
if (value === null || value === undefined)
|
|
179
|
+
return true;
|
|
180
|
+
if (typeof value === "string")
|
|
181
|
+
return value.length === 0;
|
|
182
|
+
if (Array.isArray(value))
|
|
183
|
+
return value.length === 0;
|
|
184
|
+
if (typeof value === "object")
|
|
185
|
+
return Object.keys(value).length === 0;
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
async ["STRING?"](value) {
|
|
189
|
+
return typeof value === "string";
|
|
190
|
+
}
|
|
191
|
+
async ["NUMBER?"](value) {
|
|
192
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
193
|
+
}
|
|
194
|
+
async ["RECORD?"](value) {
|
|
195
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
196
|
+
}
|
|
165
197
|
async DEFAULT(value, default_value) {
|
|
166
198
|
if (value === undefined || value === null || value === "") {
|
|
167
199
|
return default_value;
|
|
168
200
|
}
|
|
169
201
|
return value;
|
|
170
202
|
}
|
|
171
|
-
async
|
|
203
|
+
async DEFAULT_RUN(value, forthic) {
|
|
172
204
|
if (value === undefined || value === null || value === "") {
|
|
173
205
|
const string_location = this.interp.get_string_location();
|
|
174
|
-
await this.interp.run(
|
|
206
|
+
await this.interp.run(forthic, string_location);
|
|
175
207
|
return this.interp.stack_pop();
|
|
176
208
|
}
|
|
177
209
|
return value;
|
|
@@ -179,44 +211,6 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
179
211
|
async ["~>"](array) {
|
|
180
212
|
return new word_options_js_1.WordOptions(array);
|
|
181
213
|
}
|
|
182
|
-
async ["PROFILE-START"]() {
|
|
183
|
-
this.interp.start_profiling();
|
|
184
|
-
}
|
|
185
|
-
async ["PROFILE-END"]() {
|
|
186
|
-
this.interp.stop_profiling();
|
|
187
|
-
}
|
|
188
|
-
async ["PROFILE-TIMESTAMP"](label) {
|
|
189
|
-
this.interp.add_timestamp(label);
|
|
190
|
-
}
|
|
191
|
-
async ["PROFILE-DATA"]() {
|
|
192
|
-
const histogram = this.interp.word_histogram();
|
|
193
|
-
const timestamps = this.interp.profile_timestamps();
|
|
194
|
-
const result = {
|
|
195
|
-
word_counts: [],
|
|
196
|
-
timestamps: [],
|
|
197
|
-
};
|
|
198
|
-
histogram.forEach((val) => {
|
|
199
|
-
const rec = { word: val["word"], count: val["count"] };
|
|
200
|
-
result["word_counts"].push(rec);
|
|
201
|
-
});
|
|
202
|
-
let prev_time = 0.0;
|
|
203
|
-
timestamps.forEach((t) => {
|
|
204
|
-
const rec = {
|
|
205
|
-
label: t["label"],
|
|
206
|
-
time_ms: t["time_ms"],
|
|
207
|
-
delta: t["time_ms"] - prev_time,
|
|
208
|
-
};
|
|
209
|
-
prev_time = t["time_ms"];
|
|
210
|
-
result["timestamps"].push(rec);
|
|
211
|
-
});
|
|
212
|
-
return result;
|
|
213
|
-
}
|
|
214
|
-
async START_LOG() {
|
|
215
|
-
this.interp.startStream();
|
|
216
|
-
}
|
|
217
|
-
async END_LOG() {
|
|
218
|
-
this.interp.endStream();
|
|
219
|
-
}
|
|
220
214
|
async INTERPOLATE(string, options) {
|
|
221
215
|
const separator = options.separator ?? ", ";
|
|
222
216
|
const null_text = options.null_text ?? "null";
|
|
@@ -270,7 +264,7 @@ __decorate([
|
|
|
270
264
|
__metadata("design:type", Function),
|
|
271
265
|
__metadata("design:paramtypes", [Object]),
|
|
272
266
|
__metadata("design:returntype", Promise)
|
|
273
|
-
], CoreModule.prototype, "
|
|
267
|
+
], CoreModule.prototype, "DROP", null);
|
|
274
268
|
__decorate([
|
|
275
269
|
(0, word_js_1.ForthicWord)("( a:any -- a:any a:any )", "Duplicates top stack item"),
|
|
276
270
|
__metadata("design:type", Function),
|
|
@@ -320,29 +314,35 @@ __decorate([
|
|
|
320
314
|
__metadata("design:returntype", Promise)
|
|
321
315
|
], CoreModule.prototype, "!@", null);
|
|
322
316
|
__decorate([
|
|
323
|
-
(0, word_js_1.ForthicWord)("(
|
|
317
|
+
(0, word_js_1.ForthicWord)("( forthic:string -- ? )", "Run a Forthic string in the current context. Whatever the forthic produces is left on the stack.", "RUN"),
|
|
324
318
|
__metadata("design:type", Function),
|
|
325
319
|
__metadata("design:paramtypes", [String]),
|
|
326
320
|
__metadata("design:returntype", Promise)
|
|
327
|
-
], CoreModule.prototype, "
|
|
321
|
+
], CoreModule.prototype, "RUN", null);
|
|
328
322
|
__decorate([
|
|
329
|
-
(0, word_js_1.ForthicWord)("(
|
|
323
|
+
(0, word_js_1.ForthicWord)("( bool:boolean then_value:any else_value:any -- chosen:any )", "Pure value selection: push then_value if bool is truthy, else push else_value. For lazy code execution use IF-RUN; for one-sided side effects use WHEN."),
|
|
330
324
|
__metadata("design:type", Function),
|
|
331
|
-
__metadata("design:paramtypes", [
|
|
325
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
332
326
|
__metadata("design:returntype", Promise)
|
|
333
|
-
], CoreModule.prototype, "
|
|
327
|
+
], CoreModule.prototype, "IF", null);
|
|
334
328
|
__decorate([
|
|
335
|
-
(0, word_js_1.ForthicWord)("(
|
|
329
|
+
(0, word_js_1.ForthicWord)("( bool:boolean then_forthic:string else_forthic:string -- ? )", "Conditional code execution: if bool is truthy run then_forthic, otherwise run else_forthic. Branches are Forthic strings.", "IF-RUN"),
|
|
336
330
|
__metadata("design:type", Function),
|
|
337
|
-
__metadata("design:paramtypes", [
|
|
331
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
338
332
|
__metadata("design:returntype", Promise)
|
|
339
|
-
], CoreModule.prototype, "
|
|
333
|
+
], CoreModule.prototype, "IF_RUN", null);
|
|
340
334
|
__decorate([
|
|
341
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
335
|
+
(0, word_js_1.ForthicWord)("( bool:boolean forthic:string -- ? )", "If bool is truthy run forthic, otherwise do nothing. The forthic argument is always treated as code (executed in current context)."),
|
|
342
336
|
__metadata("design:type", Function),
|
|
343
|
-
__metadata("design:paramtypes", []),
|
|
337
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
338
|
+
__metadata("design:returntype", Promise)
|
|
339
|
+
], CoreModule.prototype, "WHEN", null);
|
|
340
|
+
__decorate([
|
|
341
|
+
(0, word_js_1.ForthicWord)("( names:string[] [options:WordOptions] -- )", "Imports modules by name", "USE-MODULES"),
|
|
342
|
+
__metadata("design:type", Function),
|
|
343
|
+
__metadata("design:paramtypes", [Array, Object]),
|
|
344
344
|
__metadata("design:returntype", Promise)
|
|
345
|
-
], CoreModule.prototype, "
|
|
345
|
+
], CoreModule.prototype, "USE_MODULES", null);
|
|
346
346
|
__decorate([
|
|
347
347
|
(0, word_js_1.ForthicWord)("( -- )", "Does nothing (no operation)"),
|
|
348
348
|
__metadata("design:type", Function),
|
|
@@ -362,59 +362,53 @@ __decorate([
|
|
|
362
362
|
__metadata("design:returntype", Promise)
|
|
363
363
|
], CoreModule.prototype, "ARRAY?", null);
|
|
364
364
|
__decorate([
|
|
365
|
-
(0, word_js_1.ForthicWord)("( value:any
|
|
366
|
-
__metadata("design:type", Function),
|
|
367
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
368
|
-
__metadata("design:returntype", Promise)
|
|
369
|
-
], CoreModule.prototype, "DEFAULT", null);
|
|
370
|
-
__decorate([
|
|
371
|
-
(0, word_js_1.ForthicWord)("( value:any default_forthic:string -- result:any )", "Returns value or executes Forthic if value is null/undefined/empty string"),
|
|
365
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is null or undefined"),
|
|
372
366
|
__metadata("design:type", Function),
|
|
373
|
-
__metadata("design:paramtypes", [Object
|
|
367
|
+
__metadata("design:paramtypes", [Object]),
|
|
374
368
|
__metadata("design:returntype", Promise)
|
|
375
|
-
], CoreModule.prototype, "
|
|
369
|
+
], CoreModule.prototype, "NULL?", null);
|
|
376
370
|
__decorate([
|
|
377
|
-
(0, word_js_1.ForthicWord)("(
|
|
371
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is null/undefined, an empty string, or a container (array/record) with no entries"),
|
|
378
372
|
__metadata("design:type", Function),
|
|
379
|
-
__metadata("design:paramtypes", [
|
|
373
|
+
__metadata("design:paramtypes", [Object]),
|
|
380
374
|
__metadata("design:returntype", Promise)
|
|
381
|
-
], CoreModule.prototype, "
|
|
375
|
+
], CoreModule.prototype, "EMPTY?", null);
|
|
382
376
|
__decorate([
|
|
383
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
377
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a string"),
|
|
384
378
|
__metadata("design:type", Function),
|
|
385
|
-
__metadata("design:paramtypes", []),
|
|
379
|
+
__metadata("design:paramtypes", [Object]),
|
|
386
380
|
__metadata("design:returntype", Promise)
|
|
387
|
-
], CoreModule.prototype, "
|
|
381
|
+
], CoreModule.prototype, "STRING?", null);
|
|
388
382
|
__decorate([
|
|
389
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
383
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a finite number"),
|
|
390
384
|
__metadata("design:type", Function),
|
|
391
|
-
__metadata("design:paramtypes", []),
|
|
385
|
+
__metadata("design:paramtypes", [Object]),
|
|
392
386
|
__metadata("design:returntype", Promise)
|
|
393
|
-
], CoreModule.prototype, "
|
|
387
|
+
], CoreModule.prototype, "NUMBER?", null);
|
|
394
388
|
__decorate([
|
|
395
|
-
(0, word_js_1.ForthicWord)("(
|
|
389
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a plain record (object that is not an array and not null)"),
|
|
396
390
|
__metadata("design:type", Function),
|
|
397
|
-
__metadata("design:paramtypes", [
|
|
391
|
+
__metadata("design:paramtypes", [Object]),
|
|
398
392
|
__metadata("design:returntype", Promise)
|
|
399
|
-
], CoreModule.prototype, "
|
|
393
|
+
], CoreModule.prototype, "RECORD?", null);
|
|
400
394
|
__decorate([
|
|
401
|
-
(0, word_js_1.ForthicWord)("( --
|
|
395
|
+
(0, word_js_1.ForthicWord)("( value:any default_value:any -- result:any )", "Returns value or default if value is null/undefined/empty string"),
|
|
402
396
|
__metadata("design:type", Function),
|
|
403
|
-
__metadata("design:paramtypes", []),
|
|
397
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
404
398
|
__metadata("design:returntype", Promise)
|
|
405
|
-
], CoreModule.prototype, "
|
|
399
|
+
], CoreModule.prototype, "DEFAULT", null);
|
|
406
400
|
__decorate([
|
|
407
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
401
|
+
(0, word_js_1.ForthicWord)("( value:any forthic:string -- result:any )", "Lazy default: returns value if non-empty, otherwise runs forthic and uses its result. The forthic is only evaluated when needed.", "DEFAULT-RUN"),
|
|
408
402
|
__metadata("design:type", Function),
|
|
409
|
-
__metadata("design:paramtypes", []),
|
|
403
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
410
404
|
__metadata("design:returntype", Promise)
|
|
411
|
-
], CoreModule.prototype, "
|
|
405
|
+
], CoreModule.prototype, "DEFAULT_RUN", null);
|
|
412
406
|
__decorate([
|
|
413
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
407
|
+
(0, word_js_1.ForthicWord)("( array:any[] -- options:WordOptions )", "Convert options array to WordOptions. Format: [.key1 val1 .key2 val2]"),
|
|
414
408
|
__metadata("design:type", Function),
|
|
415
|
-
__metadata("design:paramtypes", []),
|
|
409
|
+
__metadata("design:paramtypes", [Array]),
|
|
416
410
|
__metadata("design:returntype", Promise)
|
|
417
|
-
], CoreModule.prototype, "
|
|
411
|
+
], CoreModule.prototype, "~>", null);
|
|
418
412
|
__decorate([
|
|
419
413
|
(0, word_js_1.ForthicWord)("( string:string [options:WordOptions] -- result:string )", "Interpolate variables (.name) and return result string. Use \\. to escape literal dots."),
|
|
420
414
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,+CAAuG;AACvG,sDAA2F;AAC3F,2DAAoD;AAEpD,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE
|
|
1
|
+
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,11 @@ export declare class DateTimeModule extends DecoratedModule {
|
|
|
12
12
|
AT(interp: Interpreter): Promise<void>;
|
|
13
13
|
TIME_to_STR(time: any): Promise<string>;
|
|
14
14
|
DATE_to_STR(date: any): Promise<any>;
|
|
15
|
-
DATE_to_INT(date: any): Promise<number>;
|
|
16
15
|
to_TIMESTAMP(interp: Interpreter): Promise<void>;
|
|
17
16
|
TIMESTAMP_to_DATETIME(interp: Interpreter): Promise<void>;
|
|
18
17
|
ADD_DAYS(date: any, num_days: number): Promise<any>;
|
|
19
|
-
|
|
18
|
+
DAYS_BETWEEN(date1: any, date2: any): Promise<any>;
|
|
19
|
+
YEAR(date: any): Promise<any>;
|
|
20
|
+
MONTH(date: any): Promise<any>;
|
|
21
|
+
DAY_OF_WEEK(date: any): Promise<any>;
|
|
20
22
|
}
|
|
@@ -21,9 +21,10 @@ Date and time operations using the Temporal API for timezone-aware datetime mani
|
|
|
21
21
|
- Current: TODAY, NOW
|
|
22
22
|
- Time adjustment: AM, PM
|
|
23
23
|
- Conversion to: >TIME, >DATE, >DATETIME, AT
|
|
24
|
-
- Conversion from: TIME>STR, DATE>STR
|
|
24
|
+
- Conversion from: TIME>STR, DATE>STR
|
|
25
|
+
- Getters: YEAR, MONTH, DAY-OF-WEEK
|
|
25
26
|
- Timestamps: >TIMESTAMP, TIMESTAMP>DATETIME
|
|
26
|
-
- Date math: ADD-DAYS,
|
|
27
|
+
- Date math: ADD-DAYS, DAYS-BETWEEN
|
|
27
28
|
|
|
28
29
|
## Examples
|
|
29
30
|
TODAY
|
|
@@ -206,15 +207,6 @@ TODAY 7 ADD-DAYS
|
|
|
206
207
|
}
|
|
207
208
|
return date.toString();
|
|
208
209
|
}
|
|
209
|
-
async DATE_to_INT(date) {
|
|
210
|
-
if (!date || typeof date.year !== "number") {
|
|
211
|
-
return null;
|
|
212
|
-
}
|
|
213
|
-
const year = date.year;
|
|
214
|
-
const month = String(date.month).padStart(2, "0");
|
|
215
|
-
const day = String(date.day).padStart(2, "0");
|
|
216
|
-
return parseInt(`${year}${month}${day}`, 10);
|
|
217
|
-
}
|
|
218
210
|
async to_TIMESTAMP(interp) {
|
|
219
211
|
const datetime = interp.stack_pop();
|
|
220
212
|
if (!datetime) {
|
|
@@ -261,7 +253,7 @@ TODAY 7 ADD-DAYS
|
|
|
261
253
|
return date.add({ days: num_days });
|
|
262
254
|
}
|
|
263
255
|
// ( date1 date2 -- num_days )
|
|
264
|
-
async
|
|
256
|
+
async DAYS_BETWEEN(date1, date2) {
|
|
265
257
|
if (!date1 || !date2 || typeof date1.year !== "number" || typeof date2.year !== "number") {
|
|
266
258
|
return null;
|
|
267
259
|
}
|
|
@@ -270,6 +262,21 @@ TODAY 7 ADD-DAYS
|
|
|
270
262
|
const duration = date2.until(date1, { largestUnit: "days" });
|
|
271
263
|
return duration.days;
|
|
272
264
|
}
|
|
265
|
+
async YEAR(date) {
|
|
266
|
+
if (!date || typeof date.year !== "number")
|
|
267
|
+
return null;
|
|
268
|
+
return date.year;
|
|
269
|
+
}
|
|
270
|
+
async MONTH(date) {
|
|
271
|
+
if (!date || typeof date.month !== "number")
|
|
272
|
+
return null;
|
|
273
|
+
return date.month;
|
|
274
|
+
}
|
|
275
|
+
async DAY_OF_WEEK(date) {
|
|
276
|
+
if (!date || typeof date.dayOfWeek !== "number")
|
|
277
|
+
return null;
|
|
278
|
+
return date.dayOfWeek;
|
|
279
|
+
}
|
|
273
280
|
}
|
|
274
281
|
exports.DateTimeModule = DateTimeModule;
|
|
275
282
|
__decorate([
|
|
@@ -332,12 +339,6 @@ __decorate([
|
|
|
332
339
|
__metadata("design:paramtypes", [Object]),
|
|
333
340
|
__metadata("design:returntype", Promise)
|
|
334
341
|
], DateTimeModule.prototype, "DATE_to_STR", null);
|
|
335
|
-
__decorate([
|
|
336
|
-
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- int:number )", "Convert date to integer (YYYYMMDD)", "DATE>INT"),
|
|
337
|
-
__metadata("design:type", Function),
|
|
338
|
-
__metadata("design:paramtypes", [Object]),
|
|
339
|
-
__metadata("design:returntype", Promise)
|
|
340
|
-
], DateTimeModule.prototype, "DATE_to_INT", null);
|
|
341
342
|
__decorate([
|
|
342
343
|
(0, word_js_1.ForthicDirectWord)("( datetime:Temporal.ZonedDateTime -- timestamp:number )", "Convert datetime to Unix timestamp (seconds)", ">TIMESTAMP"),
|
|
343
344
|
__metadata("design:type", Function),
|
|
@@ -357,9 +358,27 @@ __decorate([
|
|
|
357
358
|
__metadata("design:returntype", Promise)
|
|
358
359
|
], DateTimeModule.prototype, "ADD_DAYS", null);
|
|
359
360
|
__decorate([
|
|
360
|
-
(0, word_js_1.ForthicWord)("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get
|
|
361
|
+
(0, word_js_1.ForthicWord)("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get number of days between two dates (date1 - date2)", "DAYS-BETWEEN"),
|
|
361
362
|
__metadata("design:type", Function),
|
|
362
363
|
__metadata("design:paramtypes", [Object, Object]),
|
|
363
364
|
__metadata("design:returntype", Promise)
|
|
364
|
-
], DateTimeModule.prototype, "
|
|
365
|
+
], DateTimeModule.prototype, "DAYS_BETWEEN", null);
|
|
366
|
+
__decorate([
|
|
367
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- year:number )", "Get the calendar year of a date.", "YEAR"),
|
|
368
|
+
__metadata("design:type", Function),
|
|
369
|
+
__metadata("design:paramtypes", [Object]),
|
|
370
|
+
__metadata("design:returntype", Promise)
|
|
371
|
+
], DateTimeModule.prototype, "YEAR", null);
|
|
372
|
+
__decorate([
|
|
373
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- month:number )", "Get the calendar month of a date (1=January, 12=December).", "MONTH"),
|
|
374
|
+
__metadata("design:type", Function),
|
|
375
|
+
__metadata("design:paramtypes", [Object]),
|
|
376
|
+
__metadata("design:returntype", Promise)
|
|
377
|
+
], DateTimeModule.prototype, "MONTH", null);
|
|
378
|
+
__decorate([
|
|
379
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- day:number )", "Get the day-of-week (1=Monday, 7=Sunday, ISO 8601).", "DAY-OF-WEEK"),
|
|
380
|
+
__metadata("design:type", Function),
|
|
381
|
+
__metadata("design:paramtypes", [Object]),
|
|
382
|
+
__metadata("design:returntype", Promise)
|
|
383
|
+
], DateTimeModule.prototype, "DAY_OF_WEEK", null);
|
|
365
384
|
//# sourceMappingURL=datetime_module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/datetime_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAmD;AACnD,sDAA8G;AAE9G,MAAa,cAAe,SAAQ,yBAAe;IACjD;QACE,IAAA,2BAAiB,EAAC,cAAc,EAAE
|
|
1
|
+
{"version":3,"file":"datetime_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/datetime_module.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,10 @@ JSON serialization, parsing, and formatting operations.
|
|
|
18
18
|
|
|
19
19
|
## Categories
|
|
20
20
|
- Conversion: >JSON, JSON>
|
|
21
|
-
- Formatting: JSON-PRETTIFY
|
|
22
21
|
|
|
23
22
|
## Examples
|
|
24
23
|
{name: "Alice", age: 30} >JSON
|
|
25
24
|
'{"name":"Alice"}' JSON>
|
|
26
|
-
'{"a":1}' JSON-PRETTIFY
|
|
27
25
|
`);
|
|
28
26
|
}
|
|
29
27
|
constructor() {
|
|
@@ -41,13 +39,6 @@ JSON serialization, parsing, and formatting operations.
|
|
|
41
39
|
}
|
|
42
40
|
return JSON.parse(json);
|
|
43
41
|
}
|
|
44
|
-
async JSON_PRETTIFY(json) {
|
|
45
|
-
if (!json || json.trim() === "") {
|
|
46
|
-
return "";
|
|
47
|
-
}
|
|
48
|
-
const obj = JSON.parse(json);
|
|
49
|
-
return JSON.stringify(obj, null, 2);
|
|
50
|
-
}
|
|
51
42
|
}
|
|
52
43
|
exports.JsonModule = JsonModule;
|
|
53
44
|
__decorate([
|
|
@@ -62,10 +53,4 @@ __decorate([
|
|
|
62
53
|
__metadata("design:paramtypes", [String]),
|
|
63
54
|
__metadata("design:returntype", Promise)
|
|
64
55
|
], JsonModule.prototype, "from_JSON", null);
|
|
65
|
-
__decorate([
|
|
66
|
-
(0, word_js_1.ForthicWord)("( json:string -- pretty:string )", "Format JSON with 2-space indentation", "JSON-PRETTIFY"),
|
|
67
|
-
__metadata("design:type", Function),
|
|
68
|
-
__metadata("design:paramtypes", [String]),
|
|
69
|
-
__metadata("design:returntype", Promise)
|
|
70
|
-
], JsonModule.prototype, "JSON_PRETTIFY", null);
|
|
71
56
|
//# sourceMappingURL=json_module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/json_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAA2F;AAE3F,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE
|
|
1
|
+
{"version":3,"file":"json_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/json_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAA2F;AAE3F,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE;;;;;;;;;CASjC,CAAC,CAAC;IACD,CAAC;IAED;QACE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAC,MAAW;QACvB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAEF;AAlCD,gCAkCC;AAfO;IADL,IAAA,qBAAW,EAAC,+BAA+B,EAAE,+BAA+B,EAAE,OAAO,CAAC;;;;yCAMtF;AAGK;IADL,IAAA,qBAAW,EAAC,+BAA+B,EAAE,6BAA6B,EAAE,OAAO,CAAC;;;;2CAMpF"}
|