@rcrsr/rill 0.7.2 → 0.8.1
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 +29 -1
- package/dist/ast-nodes.d.ts +635 -0
- package/dist/ast-nodes.d.ts.map +1 -0
- package/dist/ast-nodes.js +2 -0
- package/dist/ast-nodes.js.map +1 -0
- package/dist/ast-unions.d.ts +6 -0
- package/dist/ast-unions.d.ts.map +1 -0
- package/dist/ast-unions.js +6 -0
- package/dist/ast-unions.js.map +1 -0
- package/dist/error-classes.d.ts +90 -0
- package/dist/error-classes.d.ts.map +1 -0
- package/dist/error-classes.js +185 -0
- package/dist/error-classes.js.map +1 -0
- package/dist/error-registry.d.ts +93 -0
- package/dist/error-registry.d.ts.map +1 -0
- package/dist/error-registry.js +876 -0
- package/dist/error-registry.js.map +1 -0
- package/dist/ext/crypto/index.d.ts +32 -0
- package/dist/ext/crypto/index.d.ts.map +1 -0
- package/dist/ext/crypto/index.js +143 -0
- package/dist/ext/crypto/index.js.map +1 -0
- package/dist/ext/exec/index.d.ts +45 -0
- package/dist/ext/exec/index.d.ts.map +1 -0
- package/dist/ext/exec/index.js +168 -0
- package/dist/ext/exec/index.js.map +1 -0
- package/dist/ext/exec/runner.d.ts +62 -0
- package/dist/ext/exec/runner.d.ts.map +1 -0
- package/dist/ext/exec/runner.js +168 -0
- package/dist/ext/exec/runner.js.map +1 -0
- package/dist/ext/fetch/index.d.ts +68 -0
- package/dist/ext/fetch/index.d.ts.map +1 -0
- package/dist/ext/fetch/index.js +259 -0
- package/dist/ext/fetch/index.js.map +1 -0
- package/dist/ext/fetch/request.d.ts +90 -0
- package/dist/ext/fetch/request.d.ts.map +1 -0
- package/dist/ext/fetch/request.js +413 -0
- package/dist/ext/fetch/request.js.map +1 -0
- package/dist/ext/fs/index.d.ts +39 -0
- package/dist/ext/fs/index.d.ts.map +1 -0
- package/dist/ext/fs/index.js +560 -0
- package/dist/ext/fs/index.js.map +1 -0
- package/dist/ext/fs/sandbox.d.ts +78 -0
- package/dist/ext/fs/sandbox.d.ts.map +1 -0
- package/dist/ext/fs/sandbox.js +208 -0
- package/dist/ext/fs/sandbox.js.map +1 -0
- package/dist/ext/kv/index.d.ts +46 -0
- package/dist/ext/kv/index.d.ts.map +1 -0
- package/dist/ext/kv/index.js +215 -0
- package/dist/ext/kv/index.js.map +1 -0
- package/dist/ext/kv/store.d.ts +46 -0
- package/dist/ext/kv/store.d.ts.map +1 -0
- package/dist/ext/kv/store.js +256 -0
- package/dist/ext/kv/store.js.map +1 -0
- package/dist/generated/introspection-data.d.ts +1 -1
- package/dist/generated/introspection-data.d.ts.map +1 -1
- package/dist/generated/introspection-data.js +509 -481
- package/dist/generated/introspection-data.js.map +1 -1
- package/dist/generated/version-data.d.ts +1 -1
- package/dist/generated/version-data.js +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/core/callable.d.ts +5 -5
- package/dist/runtime/core/callable.d.ts.map +1 -1
- package/dist/runtime/core/callable.js +2 -1
- package/dist/runtime/core/callable.js.map +1 -1
- package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/collections.js +5 -1
- package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.js +5 -1
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.js +12 -12
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
- package/dist/runtime/core/values.d.ts +31 -3
- package/dist/runtime/core/values.d.ts.map +1 -1
- package/dist/runtime/core/values.js +47 -1
- package/dist/runtime/core/values.js.map +1 -1
- package/dist/runtime/ext/builtins.d.ts.map +1 -1
- package/dist/runtime/ext/builtins.js +202 -1
- package/dist/runtime/ext/builtins.js.map +1 -1
- package/dist/runtime/ext/extensions.d.ts +39 -3
- package/dist/runtime/ext/extensions.d.ts.map +1 -1
- package/dist/runtime/ext/extensions.js +77 -12
- package/dist/runtime/ext/extensions.js.map +1 -1
- package/dist/runtime/index.d.ts +5 -5
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -2
- package/dist/runtime/index.js.map +1 -1
- package/dist/source-location.d.ts +10 -0
- package/dist/source-location.d.ts.map +1 -0
- package/dist/source-location.js +5 -0
- package/dist/source-location.js.map +1 -0
- package/dist/token-types.d.ts +68 -0
- package/dist/token-types.d.ts.map +1 -0
- package/dist/token-types.js +79 -0
- package/dist/token-types.js.map +1 -0
- package/dist/types.d.ts +9 -882
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -958
- package/dist/types.js.map +1 -1
- package/dist/value-types.d.ts +3 -0
- package/dist/value-types.d.ts.map +1 -0
- package/dist/value-types.js +2 -0
- package/dist/value-types.js.map +1 -0
- package/package.json +50 -11
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RuntimeError } from '../../types.js';
|
|
2
1
|
/**
|
|
3
2
|
* Prefix all function names in an extension with a namespace.
|
|
4
3
|
*
|
|
@@ -15,10 +14,16 @@ import { RuntimeError } from '../../types.js';
|
|
|
15
14
|
* ```
|
|
16
15
|
*/
|
|
17
16
|
export function prefixFunctions(namespace, functions) {
|
|
18
|
-
//
|
|
17
|
+
// EC-7: Extension not object
|
|
18
|
+
if (typeof functions !== 'object' ||
|
|
19
|
+
functions === null ||
|
|
20
|
+
Array.isArray(functions)) {
|
|
21
|
+
throw new TypeError('Extension must be an object');
|
|
22
|
+
}
|
|
23
|
+
// EC-6: Invalid namespace format
|
|
19
24
|
const NAMESPACE_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
20
25
|
if (!NAMESPACE_PATTERN.test(namespace)) {
|
|
21
|
-
throw new
|
|
26
|
+
throw new Error('Invalid namespace format: must match /^[a-zA-Z0-9_-]+$/');
|
|
22
27
|
}
|
|
23
28
|
// Create new object with prefixed keys
|
|
24
29
|
const result = {};
|
|
@@ -35,12 +40,59 @@ export function prefixFunctions(namespace, functions) {
|
|
|
35
40
|
}
|
|
36
41
|
return resultWithDispose;
|
|
37
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Separate dispose from functions for safe createRuntimeContext usage.
|
|
45
|
+
* Wraps prefixFunctions and returns separated structure.
|
|
46
|
+
*
|
|
47
|
+
* @param namespace - String matching /^[a-zA-Z0-9_-]+$/
|
|
48
|
+
* @param extension - Output from extension factory
|
|
49
|
+
* @returns Separated functions and dispose handler
|
|
50
|
+
* @throws {Error} If namespace is empty
|
|
51
|
+
* @throws {Error} If namespace has invalid format
|
|
52
|
+
* @throws {TypeError} If extension is null or undefined
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const { functions, dispose } = hoistExtension('db', dbExtension);
|
|
57
|
+
* const ctx = createRuntimeContext({ functions });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function hoistExtension(namespace, extension) {
|
|
61
|
+
// EC-3: Null/undefined extension
|
|
62
|
+
if (extension === null || extension === undefined) {
|
|
63
|
+
throw new TypeError('Extension cannot be null or undefined');
|
|
64
|
+
}
|
|
65
|
+
// EC-2: Empty namespace
|
|
66
|
+
if (namespace === '') {
|
|
67
|
+
throw new Error('Namespace cannot be empty');
|
|
68
|
+
}
|
|
69
|
+
// EC-1: Invalid namespace format
|
|
70
|
+
const NAMESPACE_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
71
|
+
if (!NAMESPACE_PATTERN.test(namespace)) {
|
|
72
|
+
throw new Error('Invalid namespace format: must match /^[a-zA-Z0-9_-]+$/');
|
|
73
|
+
}
|
|
74
|
+
// Call prefixFunctions internally
|
|
75
|
+
const prefixed = prefixFunctions(namespace, extension);
|
|
76
|
+
// Extract dispose from result
|
|
77
|
+
const { dispose, ...functions } = prefixed;
|
|
78
|
+
// Return separated structure
|
|
79
|
+
const result = {
|
|
80
|
+
functions: functions,
|
|
81
|
+
};
|
|
82
|
+
// Only add dispose if it exists (exactOptionalPropertyTypes)
|
|
83
|
+
if (dispose !== undefined) {
|
|
84
|
+
result.dispose = dispose;
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
38
88
|
/**
|
|
39
89
|
* Emit an extension event with auto-generated timestamp.
|
|
40
90
|
* Adds ISO timestamp if event.timestamp is undefined, then calls onLogEvent callback.
|
|
41
91
|
*
|
|
42
|
-
* @param ctx - Runtime context containing callbacks
|
|
92
|
+
* @param ctx - Runtime context or context-like object containing callbacks
|
|
43
93
|
* @param event - Extension event (timestamp auto-added if omitted)
|
|
94
|
+
* @throws {TypeError} If ctx is null or undefined
|
|
95
|
+
* @throws {Error} If event.event is missing or empty
|
|
44
96
|
*
|
|
45
97
|
* @example
|
|
46
98
|
* ```typescript
|
|
@@ -53,14 +105,27 @@ export function prefixFunctions(namespace, functions) {
|
|
|
53
105
|
* ```
|
|
54
106
|
*/
|
|
55
107
|
export function emitExtensionEvent(ctx, event) {
|
|
56
|
-
//
|
|
57
|
-
if (ctx
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
108
|
+
// EC-4: Null/undefined context
|
|
109
|
+
if (ctx === null || ctx === undefined) {
|
|
110
|
+
throw new TypeError('Context cannot be null or undefined');
|
|
111
|
+
}
|
|
112
|
+
// EC-5: Missing/empty event.event field
|
|
113
|
+
if (!event['event'] ||
|
|
114
|
+
typeof event['event'] !== 'string' ||
|
|
115
|
+
event['event'].trim() === '') {
|
|
116
|
+
throw new Error('Event must include non-empty event field');
|
|
117
|
+
}
|
|
118
|
+
// IC-2: Guard for callbacks property (graceful degradation)
|
|
119
|
+
if ('callbacks' in ctx && ctx.callbacks) {
|
|
120
|
+
// Call callback if defined
|
|
121
|
+
if (ctx.callbacks.onLogEvent !== undefined) {
|
|
122
|
+
// Auto-add timestamp if not present
|
|
123
|
+
const eventWithTimestamp = {
|
|
124
|
+
...event,
|
|
125
|
+
timestamp: event.timestamp ?? new Date().toISOString(),
|
|
126
|
+
};
|
|
127
|
+
ctx.callbacks.onLogEvent(eventWithTimestamp);
|
|
128
|
+
}
|
|
64
129
|
}
|
|
65
130
|
}
|
|
66
131
|
//# sourceMappingURL=extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/runtime/ext/extensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/runtime/ext/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
* - builtins.ts: Built-in functions and methods
|
|
18
18
|
*/
|
|
19
19
|
export type { CaptureEvent, ErrorEvent, ExecutionResult, ExecutionStepper, HostCallEvent, FunctionReturnEvent, ObservabilityCallbacks, RuntimeCallbacks, RuntimeContext, RuntimeOptions, StepEndEvent, StepResult, StepStartEvent, } from './core/types.js';
|
|
20
|
-
export type { ApplicationCallable, CallableFn, HostFunctionDefinition, HostFunctionParam, RillCallable, RillFunctionReturnType, RuntimeCallable, ScriptCallable, } from './core/callable.js';
|
|
20
|
+
export type { ApplicationCallable, CallableFn, CallableParam, HostFunctionDefinition, HostFunctionParam, RillCallable, RillFunctionReturnType, RuntimeCallable, ScriptCallable, } from './core/callable.js';
|
|
21
21
|
export { callable, isApplicationCallable, isCallable, isDict, isRuntimeCallable, isScriptCallable, validateHostFunctionArgs, validateReturnType, } from './core/callable.js';
|
|
22
|
-
export type { RillTuple, RillValue } from './core/values.js';
|
|
23
|
-
export { isTuple, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
|
|
22
|
+
export type { RillIterator, RillTuple, RillValue, RillVector, } from './core/values.js';
|
|
23
|
+
export { createVector, isRillIterator, isTuple, isVector, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
|
|
24
24
|
export { BreakSignal, ReturnSignal } from './core/signals.js';
|
|
25
25
|
export type { ExtensionEvent } from './core/types.js';
|
|
26
|
-
export type { ExtensionFactory, ExtensionResult } from './ext/extensions.js';
|
|
27
|
-
export { prefixFunctions, emitExtensionEvent } from './ext/extensions.js';
|
|
26
|
+
export type { ExtensionFactory, ExtensionResult, HoistedExtension, } from './ext/extensions.js';
|
|
27
|
+
export { prefixFunctions, emitExtensionEvent, hoistExtension, } from './ext/extensions.js';
|
|
28
28
|
export { createRuntimeContext } from './core/context.js';
|
|
29
29
|
export type { CallFrame } from '../types.js';
|
|
30
30
|
export { getCallStack, pushCallFrame, popCallFrame } from './core/context.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,YAAY,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAC;AAMzB,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,YAAY,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAC;AAMzB,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAM9D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAM9E,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM3D,YAAY,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
* - builtins.ts: Built-in functions and methods
|
|
18
18
|
*/
|
|
19
19
|
export { callable, isApplicationCallable, isCallable, isDict, isRuntimeCallable, isScriptCallable, validateHostFunctionArgs, validateReturnType, } from './core/callable.js';
|
|
20
|
-
export { isTuple, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
|
|
20
|
+
export { createVector, isRillIterator, isTuple, isVector, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
|
|
21
21
|
// ============================================================
|
|
22
22
|
// CONTROL FLOW SIGNALS
|
|
23
23
|
// ============================================================
|
|
24
24
|
export { BreakSignal, ReturnSignal } from './core/signals.js';
|
|
25
|
-
export { prefixFunctions, emitExtensionEvent } from './ext/extensions.js';
|
|
25
|
+
export { prefixFunctions, emitExtensionEvent, hoistExtension, } from './ext/extensions.js';
|
|
26
26
|
// ============================================================
|
|
27
27
|
// CONTEXT FACTORY
|
|
28
28
|
// ============================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAsCH,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAa5B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,+DAA+D;AAC/D,uBAAuB;AACvB,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAc9D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9E,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAY3D,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SourceLocation {
|
|
2
|
+
readonly line: number;
|
|
3
|
+
readonly column: number;
|
|
4
|
+
readonly offset: number;
|
|
5
|
+
}
|
|
6
|
+
export interface SourceSpan {
|
|
7
|
+
readonly start: SourceLocation;
|
|
8
|
+
readonly end: SourceLocation;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=source-location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-location.d.ts","sourceRoot":"","sources":["../src/source-location.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-location.js","sourceRoot":"","sources":["../src/source-location.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { SourceSpan } from './source-location.js';
|
|
2
|
+
export declare const TOKEN_TYPES: {
|
|
3
|
+
readonly STRING: "STRING";
|
|
4
|
+
readonly NUMBER: "NUMBER";
|
|
5
|
+
readonly TRUE: "TRUE";
|
|
6
|
+
readonly FALSE: "FALSE";
|
|
7
|
+
readonly IDENTIFIER: "IDENTIFIER";
|
|
8
|
+
readonly DOLLAR: "DOLLAR";
|
|
9
|
+
readonly PIPE_VAR: "PIPE_VAR";
|
|
10
|
+
readonly ARROW: "ARROW";
|
|
11
|
+
readonly CAPTURE_ARROW: "CAPTURE_ARROW";
|
|
12
|
+
readonly DOT: "DOT";
|
|
13
|
+
readonly QUESTION: "QUESTION";
|
|
14
|
+
readonly AT: "AT";
|
|
15
|
+
readonly CARET: "CARET";
|
|
16
|
+
readonly COLON: "COLON";
|
|
17
|
+
readonly DOUBLE_COLON: "DOUBLE_COLON";
|
|
18
|
+
readonly COMMA: "COMMA";
|
|
19
|
+
readonly BANG: "BANG";
|
|
20
|
+
readonly AND: "AND";
|
|
21
|
+
readonly OR: "OR";
|
|
22
|
+
readonly NULLISH_COALESCE: "NULLISH_COALESCE";
|
|
23
|
+
readonly DOT_QUESTION: "DOT_QUESTION";
|
|
24
|
+
readonly AMPERSAND: "AMPERSAND";
|
|
25
|
+
readonly ASSIGN: "ASSIGN";
|
|
26
|
+
readonly EQ: "EQ";
|
|
27
|
+
readonly NE: "NE";
|
|
28
|
+
readonly LT: "LT";
|
|
29
|
+
readonly GT: "GT";
|
|
30
|
+
readonly LE: "LE";
|
|
31
|
+
readonly GE: "GE";
|
|
32
|
+
readonly STAR_LT: "STAR_LT";
|
|
33
|
+
readonly SLASH_LT: "SLASH_LT";
|
|
34
|
+
readonly UNDERSCORE: "UNDERSCORE";
|
|
35
|
+
readonly ELLIPSIS: "ELLIPSIS";
|
|
36
|
+
readonly PIPE_BAR: "PIPE_BAR";
|
|
37
|
+
readonly PLUS: "PLUS";
|
|
38
|
+
readonly MINUS: "MINUS";
|
|
39
|
+
readonly STAR: "STAR";
|
|
40
|
+
readonly SLASH: "SLASH";
|
|
41
|
+
readonly PERCENT: "PERCENT";
|
|
42
|
+
readonly LPAREN: "LPAREN";
|
|
43
|
+
readonly RPAREN: "RPAREN";
|
|
44
|
+
readonly LBRACE: "LBRACE";
|
|
45
|
+
readonly RBRACE: "RBRACE";
|
|
46
|
+
readonly LBRACKET: "LBRACKET";
|
|
47
|
+
readonly RBRACKET: "RBRACKET";
|
|
48
|
+
readonly BREAK: "BREAK";
|
|
49
|
+
readonly RETURN: "RETURN";
|
|
50
|
+
readonly PASS: "PASS";
|
|
51
|
+
readonly ASSERT: "ASSERT";
|
|
52
|
+
readonly ERROR: "ERROR";
|
|
53
|
+
readonly EACH: "EACH";
|
|
54
|
+
readonly MAP: "MAP";
|
|
55
|
+
readonly FOLD: "FOLD";
|
|
56
|
+
readonly FILTER: "FILTER";
|
|
57
|
+
readonly FRONTMATTER_DELIM: "FRONTMATTER_DELIM";
|
|
58
|
+
readonly NEWLINE: "NEWLINE";
|
|
59
|
+
readonly COMMENT: "COMMENT";
|
|
60
|
+
readonly EOF: "EOF";
|
|
61
|
+
};
|
|
62
|
+
export type TokenType = (typeof TOKEN_TYPES)[keyof typeof TOKEN_TYPES];
|
|
63
|
+
export interface Token {
|
|
64
|
+
readonly type: TokenType;
|
|
65
|
+
readonly value: string;
|
|
66
|
+
readonly span: SourceSpan;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=token-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-types.d.ts","sourceRoot":"","sources":["../src/token-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwFd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// TOKEN TYPES
|
|
3
|
+
// ============================================================
|
|
4
|
+
export const TOKEN_TYPES = {
|
|
5
|
+
// Literals
|
|
6
|
+
STRING: 'STRING',
|
|
7
|
+
NUMBER: 'NUMBER',
|
|
8
|
+
TRUE: 'TRUE',
|
|
9
|
+
FALSE: 'FALSE',
|
|
10
|
+
// Identifiers
|
|
11
|
+
IDENTIFIER: 'IDENTIFIER',
|
|
12
|
+
// Variables
|
|
13
|
+
DOLLAR: 'DOLLAR', // $
|
|
14
|
+
PIPE_VAR: 'PIPE_VAR', // $ (lone dollar sign)
|
|
15
|
+
// Operators
|
|
16
|
+
ARROW: 'ARROW', // ->
|
|
17
|
+
CAPTURE_ARROW: 'CAPTURE_ARROW', // =>
|
|
18
|
+
DOT: 'DOT', // .
|
|
19
|
+
QUESTION: 'QUESTION', // ?
|
|
20
|
+
AT: 'AT', // @
|
|
21
|
+
CARET: 'CARET', // ^ (annotation prefix)
|
|
22
|
+
COLON: 'COLON', // :
|
|
23
|
+
DOUBLE_COLON: 'DOUBLE_COLON', // :: (namespace separator)
|
|
24
|
+
COMMA: 'COMMA', // ,
|
|
25
|
+
// Boolean operators
|
|
26
|
+
BANG: 'BANG', // !
|
|
27
|
+
AND: 'AND', // &&
|
|
28
|
+
OR: 'OR', // ||
|
|
29
|
+
// Null-coalescing and existence
|
|
30
|
+
NULLISH_COALESCE: 'NULLISH_COALESCE', // ??
|
|
31
|
+
DOT_QUESTION: 'DOT_QUESTION', // .?
|
|
32
|
+
AMPERSAND: 'AMPERSAND', // &
|
|
33
|
+
// Assignment
|
|
34
|
+
ASSIGN: 'ASSIGN', // =
|
|
35
|
+
// Comparison operators
|
|
36
|
+
EQ: 'EQ', // ==
|
|
37
|
+
NE: 'NE', // !=
|
|
38
|
+
LT: 'LT', // <
|
|
39
|
+
GT: 'GT', // >
|
|
40
|
+
LE: 'LE', // <=
|
|
41
|
+
GE: 'GE', // >=
|
|
42
|
+
// Extraction operators
|
|
43
|
+
STAR_LT: 'STAR_LT', // *< (destructure)
|
|
44
|
+
SLASH_LT: 'SLASH_LT', // /< (slice)
|
|
45
|
+
UNDERSCORE: 'UNDERSCORE', // _ (skip in destructure)
|
|
46
|
+
// Spread operator
|
|
47
|
+
ELLIPSIS: 'ELLIPSIS', // ... (list spread)
|
|
48
|
+
// Arithmetic operators
|
|
49
|
+
PIPE_BAR: 'PIPE_BAR', // |
|
|
50
|
+
PLUS: 'PLUS', // +
|
|
51
|
+
MINUS: 'MINUS', // -
|
|
52
|
+
STAR: 'STAR', // *
|
|
53
|
+
SLASH: 'SLASH', // /
|
|
54
|
+
PERCENT: 'PERCENT', // %
|
|
55
|
+
// Delimiters
|
|
56
|
+
LPAREN: 'LPAREN', // (
|
|
57
|
+
RPAREN: 'RPAREN', // )
|
|
58
|
+
LBRACE: 'LBRACE', // {
|
|
59
|
+
RBRACE: 'RBRACE', // }
|
|
60
|
+
LBRACKET: 'LBRACKET', // [
|
|
61
|
+
RBRACKET: 'RBRACKET', // ]
|
|
62
|
+
// Keywords
|
|
63
|
+
BREAK: 'BREAK',
|
|
64
|
+
RETURN: 'RETURN',
|
|
65
|
+
PASS: 'PASS',
|
|
66
|
+
ASSERT: 'ASSERT',
|
|
67
|
+
ERROR: 'ERROR',
|
|
68
|
+
EACH: 'EACH',
|
|
69
|
+
MAP: 'MAP',
|
|
70
|
+
FOLD: 'FOLD',
|
|
71
|
+
FILTER: 'FILTER',
|
|
72
|
+
// Frontmatter
|
|
73
|
+
FRONTMATTER_DELIM: 'FRONTMATTER_DELIM', // ---
|
|
74
|
+
// Special
|
|
75
|
+
NEWLINE: 'NEWLINE',
|
|
76
|
+
COMMENT: 'COMMENT',
|
|
77
|
+
EOF: 'EOF',
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=token-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-types.js","sourceRoot":"","sources":["../src/token-types.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,cAAc;AACd,+DAA+D;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IAEd,cAAc;IACd,UAAU,EAAE,YAAY;IAExB,YAAY;IACZ,MAAM,EAAE,QAAQ,EAAE,IAAI;IACtB,QAAQ,EAAE,UAAU,EAAE,uBAAuB;IAE7C,YAAY;IACZ,KAAK,EAAE,OAAO,EAAE,KAAK;IACrB,aAAa,EAAE,eAAe,EAAE,KAAK;IACrC,GAAG,EAAE,KAAK,EAAE,IAAI;IAChB,QAAQ,EAAE,UAAU,EAAE,IAAI;IAC1B,EAAE,EAAE,IAAI,EAAE,IAAI;IACd,KAAK,EAAE,OAAO,EAAE,wBAAwB;IACxC,KAAK,EAAE,OAAO,EAAE,IAAI;IACpB,YAAY,EAAE,cAAc,EAAE,2BAA2B;IACzD,KAAK,EAAE,OAAO,EAAE,IAAI;IAEpB,oBAAoB;IACpB,IAAI,EAAE,MAAM,EAAE,IAAI;IAClB,GAAG,EAAE,KAAK,EAAE,KAAK;IACjB,EAAE,EAAE,IAAI,EAAE,KAAK;IAEf,gCAAgC;IAChC,gBAAgB,EAAE,kBAAkB,EAAE,KAAK;IAC3C,YAAY,EAAE,cAAc,EAAE,KAAK;IACnC,SAAS,EAAE,WAAW,EAAE,IAAI;IAE5B,aAAa;IACb,MAAM,EAAE,QAAQ,EAAE,IAAI;IAEtB,uBAAuB;IACvB,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,IAAI;IACd,EAAE,EAAE,IAAI,EAAE,IAAI;IACd,EAAE,EAAE,IAAI,EAAE,KAAK;IACf,EAAE,EAAE,IAAI,EAAE,KAAK;IAEf,uBAAuB;IACvB,OAAO,EAAE,SAAS,EAAE,mBAAmB;IACvC,QAAQ,EAAE,UAAU,EAAE,aAAa;IACnC,UAAU,EAAE,YAAY,EAAE,0BAA0B;IAEpD,kBAAkB;IAClB,QAAQ,EAAE,UAAU,EAAE,oBAAoB;IAE1C,uBAAuB;IACvB,QAAQ,EAAE,UAAU,EAAE,IAAI;IAC1B,IAAI,EAAE,MAAM,EAAE,IAAI;IAClB,KAAK,EAAE,OAAO,EAAE,IAAI;IACpB,IAAI,EAAE,MAAM,EAAE,IAAI;IAClB,KAAK,EAAE,OAAO,EAAE,IAAI;IACpB,OAAO,EAAE,SAAS,EAAE,IAAI;IAExB,aAAa;IACb,MAAM,EAAE,QAAQ,EAAE,IAAI;IACtB,MAAM,EAAE,QAAQ,EAAE,IAAI;IACtB,MAAM,EAAE,QAAQ,EAAE,IAAI;IACtB,MAAM,EAAE,QAAQ,EAAE,IAAI;IACtB,QAAQ,EAAE,UAAU,EAAE,IAAI;IAC1B,QAAQ,EAAE,UAAU,EAAE,IAAI;IAE1B,WAAW;IACX,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAEhB,cAAc;IACd,iBAAiB,EAAE,mBAAmB,EAAE,MAAM;IAE9C,UAAU;IACV,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;CACF,CAAC"}
|