@rcrsr/rill 0.15.0 → 0.16.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/ast-nodes.d.ts +2 -13
- package/dist/ast-nodes.js +0 -1
- package/dist/ast-unions.d.ts +0 -1
- package/dist/ast-unions.js +0 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +0 -1
- package/dist/error-classes.d.ts +0 -1
- package/dist/error-classes.js +0 -1
- package/dist/error-formatter.d.ts +0 -1
- package/dist/error-formatter.js +0 -1
- package/dist/error-registry.d.ts +0 -1
- package/dist/error-registry.js +32 -1
- package/dist/ext/crypto/index.d.ts +0 -1
- package/dist/ext/crypto/index.js +5 -6
- package/dist/ext/exec/index.d.ts +0 -1
- package/dist/ext/exec/index.js +3 -4
- package/dist/ext/exec/runner.d.ts +0 -1
- package/dist/ext/exec/runner.js +0 -1
- package/dist/ext/fetch/index.d.ts +0 -1
- package/dist/ext/fetch/index.js +8 -39
- package/dist/ext/fetch/request.d.ts +0 -1
- package/dist/ext/fetch/request.js +0 -1
- package/dist/ext/fs/index.d.ts +0 -1
- package/dist/ext/fs/index.js +26 -27
- package/dist/ext/fs/sandbox.d.ts +0 -1
- package/dist/ext/fs/sandbox.js +0 -1
- package/dist/ext/kv/index.d.ts +0 -1
- package/dist/ext/kv/index.js +19 -20
- package/dist/ext/kv/store.d.ts +0 -1
- package/dist/ext/kv/store.js +0 -1
- package/dist/generated/introspection-data.d.ts +0 -1
- package/dist/generated/introspection-data.js +0 -1
- package/dist/generated/version-data.d.ts +1 -2
- package/dist/generated/version-data.js +2 -3
- package/dist/highlight-map.d.ts +0 -1
- package/dist/highlight-map.js +0 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/lexer/errors.d.ts +0 -1
- package/dist/lexer/errors.js +0 -1
- package/dist/lexer/helpers.d.ts +0 -1
- package/dist/lexer/helpers.js +0 -1
- package/dist/lexer/index.d.ts +0 -1
- package/dist/lexer/index.js +0 -1
- package/dist/lexer/operators.d.ts +0 -1
- package/dist/lexer/operators.js +0 -1
- package/dist/lexer/readers.d.ts +0 -1
- package/dist/lexer/readers.js +0 -1
- package/dist/lexer/state.d.ts +0 -1
- package/dist/lexer/state.js +0 -1
- package/dist/lexer/tokenizer.d.ts +0 -1
- package/dist/lexer/tokenizer.js +0 -1
- package/dist/parser/helpers.d.ts +0 -1
- package/dist/parser/helpers.js +0 -1
- package/dist/parser/index.d.ts +0 -1
- package/dist/parser/index.js +0 -1
- package/dist/parser/parser-collect.d.ts +0 -1
- package/dist/parser/parser-collect.js +0 -1
- package/dist/parser/parser-control.d.ts +0 -1
- package/dist/parser/parser-control.js +0 -1
- package/dist/parser/parser-expr.d.ts +0 -1
- package/dist/parser/parser-expr.js +0 -1
- package/dist/parser/parser-extract.d.ts +0 -1
- package/dist/parser/parser-extract.js +0 -1
- package/dist/parser/parser-functions.d.ts +0 -1
- package/dist/parser/parser-functions.js +0 -1
- package/dist/parser/parser-literals.d.ts +0 -1
- package/dist/parser/parser-literals.js +4 -2
- package/dist/parser/parser-script.d.ts +0 -1
- package/dist/parser/parser-script.js +0 -1
- package/dist/parser/parser-shape.d.ts +2 -3
- package/dist/parser/parser-shape.js +8 -52
- package/dist/parser/parser-types.d.ts +28 -2
- package/dist/parser/parser-types.js +64 -13
- package/dist/parser/parser-use.d.ts +0 -1
- package/dist/parser/parser-use.js +0 -1
- package/dist/parser/parser-variables.d.ts +0 -1
- package/dist/parser/parser-variables.js +0 -1
- package/dist/parser/parser.d.ts +0 -1
- package/dist/parser/parser.js +0 -1
- package/dist/parser/state.d.ts +0 -1
- package/dist/parser/state.js +0 -1
- package/dist/runtime/core/callable.d.ts +40 -13
- package/dist/runtime/core/callable.js +137 -28
- package/dist/runtime/core/context.d.ts +0 -1
- package/dist/runtime/core/context.js +1 -2
- package/dist/runtime/core/equals.d.ts +0 -1
- package/dist/runtime/core/equals.js +35 -3
- package/dist/runtime/core/eval/base.d.ts +0 -1
- package/dist/runtime/core/eval/base.js +0 -1
- package/dist/runtime/core/eval/evaluator.d.ts +0 -1
- package/dist/runtime/core/eval/evaluator.js +0 -1
- package/dist/runtime/core/eval/index.d.ts +0 -1
- package/dist/runtime/core/eval/index.js +0 -1
- package/dist/runtime/core/eval/mixins/annotations.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/annotations.js +0 -1
- package/dist/runtime/core/eval/mixins/closures.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/closures.js +82 -60
- package/dist/runtime/core/eval/mixins/collections.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/collections.js +9 -4
- package/dist/runtime/core/eval/mixins/control-flow.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/control-flow.js +0 -1
- package/dist/runtime/core/eval/mixins/conversion.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/conversion.js +153 -86
- package/dist/runtime/core/eval/mixins/core.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/core.js +0 -1
- package/dist/runtime/core/eval/mixins/expressions.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/expressions.js +0 -1
- package/dist/runtime/core/eval/mixins/extraction.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/extraction.js +8 -9
- package/dist/runtime/core/eval/mixins/list-dispatch.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/list-dispatch.js +0 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/literals.js +3 -7
- package/dist/runtime/core/eval/mixins/types.d.ts +2 -1
- package/dist/runtime/core/eval/mixins/types.js +222 -242
- package/dist/runtime/core/eval/mixins/use.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/use.js +0 -1
- package/dist/runtime/core/eval/mixins/variables.d.ts +0 -1
- package/dist/runtime/core/eval/mixins/variables.js +6 -7
- package/dist/runtime/core/eval/types.d.ts +0 -1
- package/dist/runtime/core/eval/types.js +0 -1
- package/dist/runtime/core/execute.d.ts +0 -1
- package/dist/runtime/core/execute.js +0 -1
- package/dist/runtime/core/field-descriptor.d.ts +2 -3
- package/dist/runtime/core/field-descriptor.js +0 -1
- package/dist/runtime/core/introspection.d.ts +0 -1
- package/dist/runtime/core/introspection.js +0 -1
- package/dist/runtime/core/resolvers.d.ts +0 -1
- package/dist/runtime/core/resolvers.js +0 -1
- package/dist/runtime/core/signals.d.ts +0 -1
- package/dist/runtime/core/signals.js +0 -1
- package/dist/runtime/core/types.d.ts +0 -1
- package/dist/runtime/core/types.js +0 -1
- package/dist/runtime/core/values.d.ts +59 -26
- package/dist/runtime/core/values.js +289 -77
- package/dist/runtime/ext/builtins.d.ts +0 -1
- package/dist/runtime/ext/builtins.js +43 -17
- package/dist/runtime/ext/extensions.d.ts +0 -1
- package/dist/runtime/ext/extensions.js +0 -1
- package/dist/runtime/index.d.ts +2 -3
- package/dist/runtime/index.js +1 -2
- package/dist/signature-parser.d.ts +0 -1
- package/dist/signature-parser.js +8 -6
- package/dist/source-location.d.ts +0 -1
- package/dist/source-location.js +0 -1
- package/dist/token-types.d.ts +0 -1
- package/dist/token-types.js +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/dist/value-types.d.ts +15 -12
- package/dist/value-types.js +0 -1
- package/package.json +2 -1
- package/dist/ast-nodes.d.ts.map +0 -1
- package/dist/ast-nodes.js.map +0 -1
- package/dist/ast-unions.d.ts.map +0 -1
- package/dist/ast-unions.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/error-classes.d.ts.map +0 -1
- package/dist/error-classes.js.map +0 -1
- package/dist/error-formatter.d.ts.map +0 -1
- package/dist/error-formatter.js.map +0 -1
- package/dist/error-registry.d.ts.map +0 -1
- package/dist/error-registry.js.map +0 -1
- package/dist/ext/crypto/index.d.ts.map +0 -1
- package/dist/ext/crypto/index.js.map +0 -1
- package/dist/ext/exec/index.d.ts.map +0 -1
- package/dist/ext/exec/index.js.map +0 -1
- package/dist/ext/exec/runner.d.ts.map +0 -1
- package/dist/ext/exec/runner.js.map +0 -1
- package/dist/ext/fetch/index.d.ts.map +0 -1
- package/dist/ext/fetch/index.js.map +0 -1
- package/dist/ext/fetch/request.d.ts.map +0 -1
- package/dist/ext/fetch/request.js.map +0 -1
- package/dist/ext/fs/index.d.ts.map +0 -1
- package/dist/ext/fs/index.js.map +0 -1
- package/dist/ext/fs/sandbox.d.ts.map +0 -1
- package/dist/ext/fs/sandbox.js.map +0 -1
- package/dist/ext/kv/index.d.ts.map +0 -1
- package/dist/ext/kv/index.js.map +0 -1
- package/dist/ext/kv/store.d.ts.map +0 -1
- package/dist/ext/kv/store.js.map +0 -1
- package/dist/generated/introspection-data.d.ts.map +0 -1
- package/dist/generated/introspection-data.js.map +0 -1
- package/dist/generated/version-data.d.ts.map +0 -1
- package/dist/generated/version-data.js.map +0 -1
- package/dist/highlight-map.d.ts.map +0 -1
- package/dist/highlight-map.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lexer/errors.d.ts.map +0 -1
- package/dist/lexer/errors.js.map +0 -1
- package/dist/lexer/helpers.d.ts.map +0 -1
- package/dist/lexer/helpers.js.map +0 -1
- package/dist/lexer/index.d.ts.map +0 -1
- package/dist/lexer/index.js.map +0 -1
- package/dist/lexer/operators.d.ts.map +0 -1
- package/dist/lexer/operators.js.map +0 -1
- package/dist/lexer/readers.d.ts.map +0 -1
- package/dist/lexer/readers.js.map +0 -1
- package/dist/lexer/state.d.ts.map +0 -1
- package/dist/lexer/state.js.map +0 -1
- package/dist/lexer/tokenizer.d.ts.map +0 -1
- package/dist/lexer/tokenizer.js.map +0 -1
- package/dist/parser/helpers.d.ts.map +0 -1
- package/dist/parser/helpers.js.map +0 -1
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/parser-collect.d.ts.map +0 -1
- package/dist/parser/parser-collect.js.map +0 -1
- package/dist/parser/parser-control.d.ts.map +0 -1
- package/dist/parser/parser-control.js.map +0 -1
- package/dist/parser/parser-expr.d.ts.map +0 -1
- package/dist/parser/parser-expr.js.map +0 -1
- package/dist/parser/parser-extract.d.ts.map +0 -1
- package/dist/parser/parser-extract.js.map +0 -1
- package/dist/parser/parser-functions.d.ts.map +0 -1
- package/dist/parser/parser-functions.js.map +0 -1
- package/dist/parser/parser-literals.d.ts.map +0 -1
- package/dist/parser/parser-literals.js.map +0 -1
- package/dist/parser/parser-script.d.ts.map +0 -1
- package/dist/parser/parser-script.js.map +0 -1
- package/dist/parser/parser-shape.d.ts.map +0 -1
- package/dist/parser/parser-shape.js.map +0 -1
- package/dist/parser/parser-types.d.ts.map +0 -1
- package/dist/parser/parser-types.js.map +0 -1
- package/dist/parser/parser-use.d.ts.map +0 -1
- package/dist/parser/parser-use.js.map +0 -1
- package/dist/parser/parser-variables.d.ts.map +0 -1
- package/dist/parser/parser-variables.js.map +0 -1
- package/dist/parser/parser.d.ts.map +0 -1
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/state.d.ts.map +0 -1
- package/dist/parser/state.js.map +0 -1
- package/dist/runtime/core/callable.d.ts.map +0 -1
- package/dist/runtime/core/callable.js.map +0 -1
- package/dist/runtime/core/context.d.ts.map +0 -1
- package/dist/runtime/core/context.js.map +0 -1
- package/dist/runtime/core/equals.d.ts.map +0 -1
- package/dist/runtime/core/equals.js.map +0 -1
- package/dist/runtime/core/eval/base.d.ts.map +0 -1
- package/dist/runtime/core/eval/base.js.map +0 -1
- package/dist/runtime/core/eval/evaluator.d.ts.map +0 -1
- package/dist/runtime/core/eval/evaluator.js.map +0 -1
- package/dist/runtime/core/eval/index.d.ts.map +0 -1
- package/dist/runtime/core/eval/index.js.map +0 -1
- package/dist/runtime/core/eval/mixins/annotations.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/annotations.js.map +0 -1
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/closures.js.map +0 -1
- package/dist/runtime/core/eval/mixins/collections.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/collections.js.map +0 -1
- package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/control-flow.js.map +0 -1
- package/dist/runtime/core/eval/mixins/conversion.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/conversion.js.map +0 -1
- package/dist/runtime/core/eval/mixins/core.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/core.js.map +0 -1
- package/dist/runtime/core/eval/mixins/expressions.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/expressions.js.map +0 -1
- package/dist/runtime/core/eval/mixins/extraction.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/extraction.js.map +0 -1
- package/dist/runtime/core/eval/mixins/list-dispatch.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/list-dispatch.js.map +0 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/literals.js.map +0 -1
- package/dist/runtime/core/eval/mixins/types.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/types.js.map +0 -1
- package/dist/runtime/core/eval/mixins/use.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/use.js.map +0 -1
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +0 -1
- package/dist/runtime/core/eval/mixins/variables.js.map +0 -1
- package/dist/runtime/core/eval/types.d.ts.map +0 -1
- package/dist/runtime/core/eval/types.js.map +0 -1
- package/dist/runtime/core/execute.d.ts.map +0 -1
- package/dist/runtime/core/execute.js.map +0 -1
- package/dist/runtime/core/field-descriptor.d.ts.map +0 -1
- package/dist/runtime/core/field-descriptor.js.map +0 -1
- package/dist/runtime/core/introspection.d.ts.map +0 -1
- package/dist/runtime/core/introspection.js.map +0 -1
- package/dist/runtime/core/resolvers.d.ts.map +0 -1
- package/dist/runtime/core/resolvers.js.map +0 -1
- package/dist/runtime/core/signals.d.ts.map +0 -1
- package/dist/runtime/core/signals.js.map +0 -1
- package/dist/runtime/core/types.d.ts.map +0 -1
- package/dist/runtime/core/types.js.map +0 -1
- package/dist/runtime/core/values.d.ts.map +0 -1
- package/dist/runtime/core/values.js.map +0 -1
- package/dist/runtime/ext/builtins.d.ts.map +0 -1
- package/dist/runtime/ext/builtins.js.map +0 -1
- package/dist/runtime/ext/extensions.d.ts.map +0 -1
- package/dist/runtime/ext/extensions.js.map +0 -1
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js.map +0 -1
- package/dist/signature-parser.d.ts.map +0 -1
- package/dist/signature-parser.js.map +0 -1
- package/dist/source-location.d.ts.map +0 -1
- package/dist/source-location.js.map +0 -1
- package/dist/token-types.d.ts.map +0 -1
- package/dist/token-types.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/value-types.d.ts.map +0 -1
- package/dist/value-types.js.map +0 -1
|
@@ -317,11 +317,11 @@ function createVariablesMixin(Base) {
|
|
|
317
317
|
const finalAccess = node.existenceCheck.finalAccess;
|
|
318
318
|
const typeRef = node.existenceCheck.typeRef;
|
|
319
319
|
// Helper: check type match using structural resolution (EC-4: mismatch returns false)
|
|
320
|
-
const matchesType = (fieldValue) => {
|
|
320
|
+
const matchesType = async (fieldValue) => {
|
|
321
321
|
if (typeRef === null)
|
|
322
322
|
return true;
|
|
323
323
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
324
|
-
const resolved = this.resolveTypeRef(typeRef, (name) => getVariable(this.ctx, name));
|
|
324
|
+
const resolved = await this.resolveTypeRef(typeRef, (name) => getVariable(this.ctx, name));
|
|
325
325
|
return structuralTypeMatches(fieldValue, resolved.structure);
|
|
326
326
|
};
|
|
327
327
|
if (finalAccess.kind === 'literal') {
|
|
@@ -331,7 +331,7 @@ function createVariablesMixin(Base) {
|
|
|
331
331
|
const exists = fieldValue !== undefined && fieldValue !== null;
|
|
332
332
|
// If type-qualified check, verify type matches
|
|
333
333
|
if (exists && typeRef !== null) {
|
|
334
|
-
return matchesType(fieldValue);
|
|
334
|
+
return await matchesType(fieldValue);
|
|
335
335
|
}
|
|
336
336
|
return exists;
|
|
337
337
|
}
|
|
@@ -361,7 +361,7 @@ function createVariablesMixin(Base) {
|
|
|
361
361
|
const exists = fieldValue !== undefined && fieldValue !== null;
|
|
362
362
|
// If type-qualified check, verify type matches
|
|
363
363
|
if (exists && typeRef !== null) {
|
|
364
|
-
return matchesType(fieldValue);
|
|
364
|
+
return await matchesType(fieldValue);
|
|
365
365
|
}
|
|
366
366
|
return exists;
|
|
367
367
|
}
|
|
@@ -388,7 +388,7 @@ function createVariablesMixin(Base) {
|
|
|
388
388
|
const exists = fieldValue !== undefined && fieldValue !== null;
|
|
389
389
|
// If type-qualified check, verify type matches
|
|
390
390
|
if (exists && typeRef !== null) {
|
|
391
|
-
return matchesType(fieldValue);
|
|
391
|
+
return await matchesType(fieldValue);
|
|
392
392
|
}
|
|
393
393
|
return exists;
|
|
394
394
|
}
|
|
@@ -552,7 +552,7 @@ function createVariablesMixin(Base) {
|
|
|
552
552
|
if (node.typeRef !== null) {
|
|
553
553
|
// Resolve TypeRef and validate against the declared type
|
|
554
554
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
555
|
-
const resolved = this.resolveTypeRef(node.typeRef, (name) => getVariable(this.ctx, name));
|
|
555
|
+
const resolved = await this.resolveTypeRef(node.typeRef, (name) => getVariable(this.ctx, name));
|
|
556
556
|
this.setVariable(node.name, input, resolved.structure, node.span.start);
|
|
557
557
|
}
|
|
558
558
|
else {
|
|
@@ -578,4 +578,3 @@ function createVariablesMixin(Base) {
|
|
|
578
578
|
// TypeScript can't generate declarations for functions returning classes with protected members
|
|
579
579
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
580
580
|
export const VariablesMixin = createVariablesMixin;
|
|
581
|
-
//# sourceMappingURL=variables.js.map
|
|
@@ -38,4 +38,3 @@ export type EvaluatorConstructor<TBase extends EvaluatorBase = EvaluatorBase> =
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
export type Mixin<TBase extends EvaluatorBase = EvaluatorBase, TExtension extends TBase = TBase> = (Base: EvaluatorConstructor<TBase>) => EvaluatorConstructor<TExtension>;
|
|
41
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -23,4 +23,3 @@ export declare function execute(script: ScriptNode, context: RuntimeContext): Pr
|
|
|
23
23
|
* @returns A stepper for step-by-step execution
|
|
24
24
|
*/
|
|
25
25
|
export declare function createStepper(script: ScriptNode, context: RuntimeContext): ExecutionStepper;
|
|
26
|
-
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
import type { SourceLocation } from '../../types.js';
|
|
11
|
-
import type {
|
|
11
|
+
import type { RillFieldDef, RillType } from './values.js';
|
|
12
12
|
/**
|
|
13
13
|
* Field descriptor — carries field name and structural type when accessing a
|
|
14
14
|
* dict-kind RillType field.
|
|
@@ -16,7 +16,7 @@ import type { RillFieldType, RillType } from './values.js';
|
|
|
16
16
|
export interface RillFieldDescriptor {
|
|
17
17
|
readonly __rill_field_descriptor: true;
|
|
18
18
|
readonly fieldName: string;
|
|
19
|
-
readonly fieldType:
|
|
19
|
+
readonly fieldType: RillFieldDef;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Build a frozen RillFieldDescriptor for the given field in a structural dict type.
|
|
@@ -26,4 +26,3 @@ export interface RillFieldDescriptor {
|
|
|
26
26
|
export declare function buildFieldDescriptor(structuralType: RillType & {
|
|
27
27
|
type: 'dict';
|
|
28
28
|
}, fieldName: string, location: SourceLocation): RillFieldDescriptor;
|
|
29
|
-
//# sourceMappingURL=field-descriptor.d.ts.map
|
|
@@ -26,10 +26,12 @@ export interface RillTuple {
|
|
|
26
26
|
/**
|
|
27
27
|
* Ordered type - represents named key-value pairs with preserved insertion order.
|
|
28
28
|
* Created by the * (spread) operator from dicts.
|
|
29
|
+
* Entries may carry an optional third element (default value) when representing
|
|
30
|
+
* closure parameter reflection via `.^input`.
|
|
29
31
|
*/
|
|
30
32
|
export interface RillOrdered {
|
|
31
33
|
readonly __rill_ordered: true;
|
|
32
|
-
readonly entries: [string, RillValue][];
|
|
34
|
+
readonly entries: [string, RillValue, RillValue?][];
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Vector type - represents dense numeric embeddings.
|
|
@@ -40,6 +42,16 @@ export interface RillVector {
|
|
|
40
42
|
readonly data: Float32Array;
|
|
41
43
|
readonly model: string;
|
|
42
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Field definition - describes a single field in a structural type.
|
|
47
|
+
* Used by dict, tuple, ordered, and closure type descriptors.
|
|
48
|
+
* Default detection: `field.defaultValue !== undefined`.
|
|
49
|
+
*/
|
|
50
|
+
export interface RillFieldDef {
|
|
51
|
+
name?: string;
|
|
52
|
+
type: RillType;
|
|
53
|
+
defaultValue?: RillValue;
|
|
54
|
+
}
|
|
43
55
|
/**
|
|
44
56
|
* Structural type descriptor - describes the shape of a value in the type system.
|
|
45
57
|
* Used by RillTypeValue to carry type structure information at runtime.
|
|
@@ -58,40 +70,27 @@ export type RillType = {
|
|
|
58
70
|
type: 'any';
|
|
59
71
|
} | {
|
|
60
72
|
type: 'dict';
|
|
61
|
-
fields?: Record<string,
|
|
73
|
+
fields?: Record<string, RillFieldDef>;
|
|
74
|
+
valueType?: RillType;
|
|
62
75
|
} | {
|
|
63
76
|
type: 'list';
|
|
64
77
|
element?: RillType;
|
|
65
78
|
} | {
|
|
66
79
|
type: 'closure';
|
|
67
|
-
params?: [
|
|
80
|
+
params?: RillFieldDef[];
|
|
68
81
|
ret?: RillType;
|
|
69
82
|
} | {
|
|
70
83
|
type: 'tuple';
|
|
71
|
-
elements?: [
|
|
84
|
+
elements?: RillFieldDef[];
|
|
85
|
+
valueType?: RillType;
|
|
72
86
|
} | {
|
|
73
87
|
type: 'ordered';
|
|
74
|
-
fields?: [
|
|
88
|
+
fields?: RillFieldDef[];
|
|
89
|
+
valueType?: RillType;
|
|
75
90
|
} | {
|
|
76
91
|
type: 'union';
|
|
77
92
|
members: RillType[];
|
|
78
93
|
};
|
|
79
|
-
/**
|
|
80
|
-
* Dict field type - either a plain RillType or a RillType paired with a default value.
|
|
81
|
-
* Used in dict structural types to carry optional default values per field.
|
|
82
|
-
*/
|
|
83
|
-
export type RillFieldType = RillType | {
|
|
84
|
-
type: RillType;
|
|
85
|
-
defaultValue: RillValue;
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Type guard to distinguish the `{ type, defaultValue }` form of RillFieldType
|
|
89
|
-
* from a plain RillType.
|
|
90
|
-
*/
|
|
91
|
-
export declare function isFieldTypeWithDefault(fieldType: RillFieldType): fieldType is {
|
|
92
|
-
type: RillType;
|
|
93
|
-
defaultValue: RillValue;
|
|
94
|
-
};
|
|
95
94
|
/**
|
|
96
95
|
* @deprecated Use RillType instead. Will be removed in the next major version.
|
|
97
96
|
*/
|
|
@@ -117,8 +116,12 @@ export declare function isVector(value: RillValue): value is RillVector;
|
|
|
117
116
|
export declare function isOrdered(value: RillValue): value is RillOrdered;
|
|
118
117
|
/** Type guard for RillTypeValue */
|
|
119
118
|
export declare function isTypeValue(value: RillValue): value is RillTypeValue;
|
|
120
|
-
/**
|
|
121
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Create ordered from entries array (named, preserves insertion order).
|
|
121
|
+
* Entries may be 2-element [name, value] or 3-element [name, value, default]
|
|
122
|
+
* tuples; the third element carries a default value for `.^input` reflection.
|
|
123
|
+
*/
|
|
124
|
+
export declare function createOrdered(entries: [string, RillValue, RillValue?][]): RillOrdered;
|
|
122
125
|
/** Create tuple from entries array (positional, preserves order) */
|
|
123
126
|
export declare function createTuple(entries: RillValue[]): RillTuple;
|
|
124
127
|
/**
|
|
@@ -134,6 +137,19 @@ export declare function inferType(value: RillValue): RillTypeName;
|
|
|
134
137
|
* Mixed types throw RILL-R002.
|
|
135
138
|
*/
|
|
136
139
|
export declare function inferElementType(elements: RillValue[]): RillType;
|
|
140
|
+
/**
|
|
141
|
+
* Return the most specific shared type for two RillType values.
|
|
142
|
+
* Returns null when types are incompatible at the top level.
|
|
143
|
+
*
|
|
144
|
+
* Cascade priority:
|
|
145
|
+
* 1. Any-narrowing: if either side is `any`, return the other
|
|
146
|
+
* 2. Structural match: delegate to structuralTypeEquals; on true, return a
|
|
147
|
+
* 3. Recursive list: merge inner element types
|
|
148
|
+
* 3b. Uniform valueType: merge dict/tuple/ordered value types
|
|
149
|
+
* 4. Bare type fallback: same compound type but structural mismatch
|
|
150
|
+
* 5. Incompatible: different top-level types return null
|
|
151
|
+
*/
|
|
152
|
+
export declare function commonType(a: RillType, b: RillType): RillType | null;
|
|
137
153
|
/** Compare two structural types for equality. */
|
|
138
154
|
export declare function structuralTypeEquals(a: RillType, b: RillType): boolean;
|
|
139
155
|
/** Infer the structural type descriptor for any Rill value. */
|
|
@@ -143,8 +159,8 @@ export declare function inferStructuralType(value: RillValue): RillType;
|
|
|
143
159
|
* Used for runtime type checking (`:?` operator).
|
|
144
160
|
*/
|
|
145
161
|
export declare function structuralTypeMatches(value: RillValue, type: RillType): boolean;
|
|
146
|
-
/** Build a closure param
|
|
147
|
-
export declare function
|
|
162
|
+
/** Build a closure param field definition from name, type, and optional default. */
|
|
163
|
+
export declare function paramToFieldDef(name: string, type: RillType, defaultValue: RillValue | undefined): RillFieldDef;
|
|
148
164
|
/** Format a structural type descriptor as a human-readable string. */
|
|
149
165
|
export declare function formatStructuralType(type: RillType): string;
|
|
150
166
|
/**
|
|
@@ -209,6 +225,17 @@ export declare const anyTypeValue: RillTypeValue;
|
|
|
209
225
|
* Falls back to 'any' for compound types that lack a direct RillTypeName mapping.
|
|
210
226
|
*/
|
|
211
227
|
export declare function rillTypeToTypeValue(type: RillType): RillTypeValue;
|
|
228
|
+
/**
|
|
229
|
+
* Check if a type is a collection (dict, ordered, tuple) with defined
|
|
230
|
+
* fields or elements. Used to decide if an empty collection can be
|
|
231
|
+
* synthesized and hydrated.
|
|
232
|
+
*/
|
|
233
|
+
export declare function hasCollectionFields(type: RillType): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Create an empty collection value matching the given RillType.
|
|
236
|
+
* Assumes the type is dict, ordered, or tuple.
|
|
237
|
+
*/
|
|
238
|
+
export declare function emptyForType(type: RillType): RillValue;
|
|
212
239
|
/** Check if a key name is reserved */
|
|
213
240
|
export declare function isReservedMethod(name: string): boolean;
|
|
214
241
|
/**
|
|
@@ -231,5 +258,11 @@ export interface RillIterator extends Record<string, RillValue> {
|
|
|
231
258
|
* - value: any (only required when not done) - current element
|
|
232
259
|
*/
|
|
233
260
|
export declare function isRillIterator(value: RillValue): value is RillIterator;
|
|
261
|
+
/**
|
|
262
|
+
* Deep copy a RillValue, producing a new independent value.
|
|
263
|
+
* Handles primitives, arrays, plain dicts, and null.
|
|
264
|
+
* Special markers (closures, tuples, ordered, vectors, type values) are returned
|
|
265
|
+
* as-is since they are immutable by contract.
|
|
266
|
+
*/
|
|
267
|
+
export declare function deepCopyRillValue(value: RillValue): RillValue;
|
|
234
268
|
export {};
|
|
235
|
-
//# sourceMappingURL=values.d.ts.map
|