@rcrsr/rill 0.7.2 → 0.8.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.
Files changed (71) hide show
  1. package/README.md +1 -1
  2. package/dist/ast-nodes.d.ts +635 -0
  3. package/dist/ast-nodes.d.ts.map +1 -0
  4. package/dist/ast-nodes.js +2 -0
  5. package/dist/ast-nodes.js.map +1 -0
  6. package/dist/ast-unions.d.ts +6 -0
  7. package/dist/ast-unions.d.ts.map +1 -0
  8. package/dist/ast-unions.js +6 -0
  9. package/dist/ast-unions.js.map +1 -0
  10. package/dist/error-classes.d.ts +90 -0
  11. package/dist/error-classes.d.ts.map +1 -0
  12. package/dist/error-classes.js +185 -0
  13. package/dist/error-classes.js.map +1 -0
  14. package/dist/error-registry.d.ts +93 -0
  15. package/dist/error-registry.d.ts.map +1 -0
  16. package/dist/error-registry.js +712 -0
  17. package/dist/error-registry.js.map +1 -0
  18. package/dist/generated/introspection-data.d.ts +1 -1
  19. package/dist/generated/introspection-data.d.ts.map +1 -1
  20. package/dist/generated/introspection-data.js +509 -481
  21. package/dist/generated/introspection-data.js.map +1 -1
  22. package/dist/generated/version-data.d.ts +1 -1
  23. package/dist/generated/version-data.js +3 -3
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/runtime/core/callable.d.ts +5 -5
  29. package/dist/runtime/core/callable.d.ts.map +1 -1
  30. package/dist/runtime/core/callable.js +2 -1
  31. package/dist/runtime/core/callable.js.map +1 -1
  32. package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -1
  33. package/dist/runtime/core/eval/mixins/collections.js +5 -1
  34. package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
  35. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  36. package/dist/runtime/core/eval/mixins/literals.js +5 -1
  37. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  38. package/dist/runtime/core/eval/mixins/variables.js +12 -12
  39. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  40. package/dist/runtime/core/values.d.ts +31 -3
  41. package/dist/runtime/core/values.d.ts.map +1 -1
  42. package/dist/runtime/core/values.js +47 -1
  43. package/dist/runtime/core/values.js.map +1 -1
  44. package/dist/runtime/ext/builtins.d.ts.map +1 -1
  45. package/dist/runtime/ext/builtins.js +202 -1
  46. package/dist/runtime/ext/builtins.js.map +1 -1
  47. package/dist/runtime/ext/extensions.d.ts +39 -3
  48. package/dist/runtime/ext/extensions.d.ts.map +1 -1
  49. package/dist/runtime/ext/extensions.js +77 -12
  50. package/dist/runtime/ext/extensions.js.map +1 -1
  51. package/dist/runtime/index.d.ts +5 -5
  52. package/dist/runtime/index.d.ts.map +1 -1
  53. package/dist/runtime/index.js +2 -2
  54. package/dist/runtime/index.js.map +1 -1
  55. package/dist/source-location.d.ts +10 -0
  56. package/dist/source-location.d.ts.map +1 -0
  57. package/dist/source-location.js +5 -0
  58. package/dist/source-location.js.map +1 -0
  59. package/dist/token-types.d.ts +68 -0
  60. package/dist/token-types.d.ts.map +1 -0
  61. package/dist/token-types.js +79 -0
  62. package/dist/token-types.js.map +1 -0
  63. package/dist/types.d.ts +9 -882
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js +8 -958
  66. package/dist/types.js.map +1 -1
  67. package/dist/value-types.d.ts +3 -0
  68. package/dist/value-types.d.ts.map +1 -0
  69. package/dist/value-types.js +2 -0
  70. package/dist/value-types.js.map +1 -0
  71. package/package.json +15 -2
@@ -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
- // Validate namespace pattern: non-empty alphanumeric with underscores/hyphens
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 RuntimeError('RILL-R004', `Invalid namespace: must be non-empty alphanumeric with underscores or hyphens, got "${namespace}"`);
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
- // Call callback if defined
57
- if (ctx.callbacks.onLogEvent !== undefined) {
58
- // Auto-add timestamp if not present
59
- const eventWithTimestamp = {
60
- ...event,
61
- timestamp: event.timestamp ?? new Date().toISOString(),
62
- };
63
- ctx.callbacks.onLogEvent(eventWithTimestamp);
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":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgB9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,SAA0B;IAE1B,8EAA8E;IAC9E,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;IAE7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,uFAAuF,SAAS,GAAG,CACpG,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,2CAA2C;QAC3C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,MAAM,CAAC,GAAG,SAAS,KAAK,IAAI,EAAE,CAAC,GAAG,UAAoC,CAAC;IACzE,CAAC;IAED,qCAAqC;IACrC,MAAM,iBAAiB,GAAoB,MAAM,CAAC;IAClD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAChD,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAmB,EACnB,KAA6E;IAE7E,2BAA2B;IAC3B,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3C,oCAAoC;QACpC,MAAM,kBAAkB,GAAG;YACzB,GAAG,KAAK;YACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACpB,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/runtime/ext/extensions.ts"],"names":[],"mappings":"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"}
@@ -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,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EACL,OAAO,EACP,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,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM1E,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"}
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"}
@@ -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;AAqCH,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,OAAO,EACP,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;AAU9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,+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"}
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,5 @@
1
+ // ============================================================
2
+ // SOURCE LOCATION
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=source-location.js.map
@@ -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"}