behavior-contracts 0.2.0 → 0.2.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/dist/behavior.d.ts +47 -0
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js.map +1 -1
- package/dist/generator/core.d.ts +1 -1
- package/dist/generator/core.d.ts.map +1 -1
- package/dist/generator/core.js.map +1 -1
- package/dist/generator/emit-straightline-go.d.ts +77 -0
- package/dist/generator/emit-straightline-go.d.ts.map +1 -0
- package/dist/generator/emit-straightline-go.js +592 -0
- package/dist/generator/emit-straightline-go.js.map +1 -0
- package/dist/generator/emit-straightline-php.d.ts +46 -0
- package/dist/generator/emit-straightline-php.d.ts.map +1 -0
- package/dist/generator/emit-straightline-php.js +501 -0
- package/dist/generator/emit-straightline-php.js.map +1 -0
- package/dist/generator/emit-straightline-python.d.ts +36 -0
- package/dist/generator/emit-straightline-python.d.ts.map +1 -0
- package/dist/generator/emit-straightline-python.js +441 -0
- package/dist/generator/emit-straightline-python.js.map +1 -0
- package/dist/generator/emit-straightline-rust.d.ts +78 -0
- package/dist/generator/emit-straightline-rust.d.ts.map +1 -0
- package/dist/generator/emit-straightline-rust.js +615 -0
- package/dist/generator/emit-straightline-rust.js.map +1 -0
- package/dist/generator/emit-straightline-typed-go.d.ts +39 -0
- package/dist/generator/emit-straightline-typed-go.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-go.js +828 -0
- package/dist/generator/emit-straightline-typed-go.js.map +1 -0
- package/dist/generator/emit-straightline-typed-rust.d.ts +48 -0
- package/dist/generator/emit-straightline-typed-rust.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-rust.js +823 -0
- package/dist/generator/emit-straightline-typed-rust.js.map +1 -0
- package/dist/generator/emit-straightline-typed-typescript.d.ts +49 -0
- package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typed-typescript.js +314 -0
- package/dist/generator/emit-straightline-typed-typescript.js.map +1 -0
- package/dist/generator/emit-straightline-typescript.d.ts +36 -0
- package/dist/generator/emit-straightline-typescript.d.ts.map +1 -0
- package/dist/generator/emit-straightline-typescript.js +397 -0
- package/dist/generator/emit-straightline-typescript.js.map +1 -0
- package/dist/generator/index.d.ts +13 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +39 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/literal.d.ts +7 -0
- package/dist/generator/literal.d.ts.map +1 -1
- package/dist/generator/literal.js +41 -0
- package/dist/generator/literal.js.map +1 -1
- package/dist/generator/straightline.d.ts +147 -0
- package/dist/generator/straightline.d.ts.map +1 -0
- package/dist/generator/straightline.js +122 -0
- package/dist/generator/straightline.js.map +1 -0
- package/dist/generator/typed.d.ts +156 -0
- package/dist/generator/typed.d.ts.map +1 -0
- package/dist/generator/typed.js +108 -0
- package/dist/generator/typed.js.map +1 -0
- package/dist/guard.d.ts +18 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +56 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/primitives.d.ts +112 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +206 -0
- package/dist/primitives.js.map +1 -0
- package/package.json +1 -1
package/dist/guard.js
CHANGED
|
@@ -52,6 +52,55 @@ export const PORTABLE_EXPR_OPERATORS = /* @__PURE__ */ new Set([
|
|
|
52
52
|
"concat", "eq", "ne", "lt", "le", "gt", "ge",
|
|
53
53
|
"and", "or", "not", "coalesce", "cond", "len",
|
|
54
54
|
]);
|
|
55
|
+
/**
|
|
56
|
+
* 可搬型記法(Portable Type Notation, B0 / bc#44)のスカラ閉集合
|
|
57
|
+
* (scp-ir-architecture.md §5.2)。複合型は `{opt|arr|obj: …}` の単一キー object のみ。
|
|
58
|
+
* `assertPortableTypeNotation` はこの閉集合外の型ノード(未知スカラ・未知複合キー・
|
|
59
|
+
* 0/複数キー object・obj field の `__proto__`)を fail-closed で拒否する(`"any"` エスケープ無し)。
|
|
60
|
+
*/
|
|
61
|
+
export const PORTABLE_SCALAR_TYPES = /* @__PURE__ */ new Set([
|
|
62
|
+
"string", "int", "float", "bool", "null",
|
|
63
|
+
]);
|
|
64
|
+
/**
|
|
65
|
+
* assertPortableTypeNotation — 可搬型記法(§5.2)を Expression IR と同じ強度で検証する。
|
|
66
|
+
* 型注記フィールド(body ノード `outType` / Component `outputType` / catalog `elemType`)に
|
|
67
|
+
* 使う。閉集合:
|
|
68
|
+
* - スカラ: 5 種の文字列リテラル(PORTABLE_SCALAR_TYPES)のみ。
|
|
69
|
+
* - `{opt: T}` / `{arr: T}`: 単一キー object・値は型 T(再帰)。
|
|
70
|
+
* - `{obj: {field: T, …}}`: 単一キー object・値は field→型の object(`__proto__` キー禁止)。
|
|
71
|
+
*
|
|
72
|
+
* @throws {PortabilityError} 閉集合外の型記法を検出したとき(fail-closed)。
|
|
73
|
+
*/
|
|
74
|
+
export function assertPortableTypeNotation(node, path) {
|
|
75
|
+
if (typeof node === "string") {
|
|
76
|
+
if (!PORTABLE_SCALAR_TYPES.has(node))
|
|
77
|
+
throw new PortabilityError(path, `Portability Guard: unknown scalar type '${node}' — portable type notation allows only ${[...PORTABLE_SCALAR_TYPES].join("/")} (fail-closed) at ${path}`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (node === null || typeof node !== "object" || Array.isArray(node))
|
|
81
|
+
throw new PortabilityError(path, `Portability Guard: type notation must be a scalar-type string or a single-key {opt|arr|obj} object (fail-closed) at ${path}`);
|
|
82
|
+
const keys = Object.keys(node);
|
|
83
|
+
if (keys.length !== 1)
|
|
84
|
+
throw new PortabilityError(path, `Portability Guard: compound type must be a single-key object (opt|arr|obj), got ${keys.length} keys (fail-closed) at ${path}`);
|
|
85
|
+
const kind = keys[0];
|
|
86
|
+
const arg = node[kind];
|
|
87
|
+
if (kind === "opt" || kind === "arr") {
|
|
88
|
+
assertPortableTypeNotation(arg, `${path}.${kind}`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (kind === "obj") {
|
|
92
|
+
if (!arg || typeof arg !== "object" || Array.isArray(arg))
|
|
93
|
+
throw new PortabilityError(`${path}.obj`, `Portability Guard: {obj: ...} type expects a field→type object (fail-closed) at ${path}.obj`);
|
|
94
|
+
for (const [k, v] of Object.entries(arg)) {
|
|
95
|
+
// prototype pollution 規律(expression-ir.md §2.3/§8)を型記法の obj field キーにも踏襲。
|
|
96
|
+
if (k === FORBIDDEN_OBJECT_KEY)
|
|
97
|
+
throw new PortabilityError(`${path}.obj`, `Portability Guard: object type key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed) at ${path}.obj`);
|
|
98
|
+
assertPortableTypeNotation(v, `${path}.obj.${k}`);
|
|
99
|
+
}
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
throw new PortabilityError(path, `Portability Guard: unknown compound type kind '${kind}' — portable type notation allows only opt/arr/obj (fail-closed) at ${path}`);
|
|
103
|
+
}
|
|
55
104
|
/**
|
|
56
105
|
* assertPortableComponentGraph — component-graph IR(scp-ir-architecture.md §5)の
|
|
57
106
|
* 可搬性 Guard(P0-2)。generic な {@link assertPortable}(関数/Date/Promise 残存禁止)に加え、
|
|
@@ -82,6 +131,9 @@ function assertPortableComponent(c, path) {
|
|
|
82
131
|
throw new PortabilityError(`${path}.body`, `Portability Guard: component.body must be an array`);
|
|
83
132
|
comp.body.forEach((n, ni) => assertPortableBodyNode(n, `${path}.body[${ni}]`));
|
|
84
133
|
assertPortableExpr(comp.output, `${path}.output`);
|
|
134
|
+
// 可搬型記法(B0 / bc#44・§5.2): additive・省略可。存在時のみ閉集合を fail-closed 検証。
|
|
135
|
+
if (comp.outputType !== undefined)
|
|
136
|
+
assertPortableTypeNotation(comp.outputType, `${path}.outputType`);
|
|
85
137
|
}
|
|
86
138
|
function assertPortableBodyNode(n, path) {
|
|
87
139
|
if (!n || typeof n !== "object")
|
|
@@ -113,6 +165,10 @@ function assertPortableBodyNode(n, path) {
|
|
|
113
165
|
else {
|
|
114
166
|
throw new PortabilityError(path, `Portability Guard: unknown body node kind (not componentRef/map/cond) at ${path}`);
|
|
115
167
|
}
|
|
168
|
+
// 可搬型記法(B0 / bc#44・§5.2): node の `outType` は additive・省略可。全ノード種で
|
|
169
|
+
// 共通に、存在時のみ閉集合を fail-closed 検証する(emitter 消費は B2)。
|
|
170
|
+
if (node.outType !== undefined)
|
|
171
|
+
assertPortableTypeNotation(node.outType, `${path}.outType`);
|
|
116
172
|
}
|
|
117
173
|
function requireStringComponent(v, path) {
|
|
118
174
|
if (typeof v !== "string")
|
package/dist/guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,IAAI,CAAS;IACb,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,IAAI,GAAG,GAAG;IACvD,IAAI,OAAO,KAAK,KAAK,UAAU;QAC7B,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,2DAA2D,IAAI,GAAG,CAAC,CAAC;IACvG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,OAAO;QACnD,MAAM,IAAI,gBAAgB,CACxB,IAAI,EACJ,sBAAsB,KAAK,CAAC,WAAW,CAAC,IAAI,+BAA+B,IAAI,GAAG,CACnF,CAAC;IACJ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,cAAc,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,eAAe,CAAC,IAAI,GAAG,CAAC;IAClF,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK;IAC7C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACxC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5C,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK;CAC9C,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,EAAW,EAAE,IAAI,GAAG,GAAG;IAClE,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,iCAAiC;IAC3D,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAC/B,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,oDAAoD,IAAI,GAAG,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,EAA8B,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACjC,MAAM,IAAI,gBAAgB,CAAC,GAAG,IAAI,aAAa,EAAE,mDAAmD,CAAC,CAAC;IACxG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,GAAG,IAAI,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAU,EAAE,IAAY;IACvD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAC7B,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,sDAAsD,IAAI,GAAG,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -41,14 +41,17 @@ export { canonicalValue, canonicalJson, pyFloatRepr, CanonicalFailure } from "./
|
|
|
41
41
|
export type { CanonicalFailureCode } from "./canonical.js";
|
|
42
42
|
export { validateEnvelope, EnvelopeFailure } from "./envelope.js";
|
|
43
43
|
export type { EnvelopeFailureCode } from "./envelope.js";
|
|
44
|
-
export { assertPortable, assertPortableComponentGraph, PORTABLE_EXPR_OPERATORS, PortabilityError } from "./guard.js";
|
|
44
|
+
export { assertPortable, assertPortableComponentGraph, assertPortableTypeNotation, PORTABLE_EXPR_OPERATORS, PORTABLE_SCALAR_TYPES, PortabilityError, } from "./guard.js";
|
|
45
45
|
export { runBehavior, runBehaviorAsync, BehaviorFailure } from "./behavior.js";
|
|
46
|
-
export type { ComponentGraphIR, Component, BodyNode, ComponentRefNode, MapNode, CondNode, PortSchema, CatalogEntry, CatalogOutput, Catalog, Handler, HandlerCtx, Handlers, AsyncHandler, AsyncHandlers, BehaviorFailureCode, } from "./behavior.js";
|
|
46
|
+
export type { ComponentGraphIR, Component, BodyNode, ComponentRefNode, MapNode, CondNode, PortSchema, PortableType, PortableScalarType, CatalogEntry, CatalogOutput, Catalog, Handler, HandlerCtx, Handlers, AsyncHandler, AsyncHandlers, BehaviorFailureCode, } from "./behavior.js";
|
|
47
47
|
export { buildComponentDefinition, BuilderFailure } from "./builder.js";
|
|
48
48
|
export type { ComponentDefinitionData, BuildComponentDefinitionOptions, BuilderFailureCode, } from "./builder.js";
|
|
49
49
|
export { SemanticBehavior, behavior, compileBehaviors, catalogComponents, when, concat, add, sub, mul, div, mod, neg, eq, ne, lt, le, gt, ge, and, or, not, coalesce, len, opt, referencedComponents, classifyBehaviorEffect, AuthoringFailure, } from "./authoring.js";
|
|
50
50
|
export type { In, Recorded, BehaviorClass, CompileBehaviorsOptions, BehaviorEffect, AuthoringFailureCode, } from "./authoring.js";
|
|
51
51
|
export { decodeValue, deepEquals } from "./codec.js";
|
|
52
|
-
export
|
|
53
|
-
export
|
|
52
|
+
export * as codegenPrimitives from "./primitives.js";
|
|
53
|
+
export { mapWithConcurrency, unproducedValue, skipSingle, skipConnection, hydrateInto, evalExpr, } from "./primitives.js";
|
|
54
|
+
export type { Expr } from "./primitives.js";
|
|
55
|
+
export { generateModule, registerEmitter, registeredLanguages, GeneratorFailure, fingerprintComponentGraph, FingerprintFailure, typescriptEmitter, pythonEmitter, typescriptStraightlineEmitter, rustStraightlineEmitter, phpStraightlineEmitter, pythonStraightlineEmitter, typescriptTypedEmitter, tsTypedMaterializer, assertStraightlineSupported, isStraightlineNode, buildTypePlan, deriveTypeRef, } from "./generator/index.js";
|
|
56
|
+
export type { GenerateOptions, GeneratedModule, EmitContext, EmitterPlugin, GeneratorFailureCode, StraightlineDialect, StraightlineOp, ComponentPlan, OpLiteral, TypePlan, TypeRef, TypeDecl, TypedMaterializer, } from "./generator/index.js";
|
|
54
57
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,EAAG,KAAc,CAAC;AAGpD,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC/H,YAAY,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1E,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ export { canonicalValue, canonicalJson, pyFloatRepr, CanonicalFailure } from "./
|
|
|
43
43
|
// ── envelope(validateEnvelope) ──────────────────────────────────────────────
|
|
44
44
|
export { validateEnvelope, EnvelopeFailure } from "./envelope.js";
|
|
45
45
|
// ── guard(Portability Guard) ────────────────────────────────────────────────
|
|
46
|
-
export { assertPortable, assertPortableComponentGraph, PORTABLE_EXPR_OPERATORS, PortabilityError } from "./guard.js";
|
|
46
|
+
export { assertPortable, assertPortableComponentGraph, assertPortableTypeNotation, PORTABLE_EXPR_OPERATORS, PORTABLE_SCALAR_TYPES, PortabilityError, } from "./guard.js";
|
|
47
47
|
// ── behavior(component-graph IR + runBehavior) ──────────────────────────────
|
|
48
48
|
export { runBehavior, runBehaviorAsync, BehaviorFailure } from "./behavior.js";
|
|
49
49
|
// ── builder(データ登録 IF — model-driven consumer 向け, bc#26)───────────────
|
|
@@ -52,8 +52,16 @@ export { buildComponentDefinition, BuilderFailure } from "./builder.js";
|
|
|
52
52
|
export { SemanticBehavior, behavior, compileBehaviors, catalogComponents, when, concat, add, sub, mul, div, mod, neg, eq, ne, lt, le, gt, ge, and, or, not, coalesce, len, opt, referencedComponents, classifyBehaviorEffect, AuthoringFailure, } from "./authoring.js";
|
|
53
53
|
// ── conformance runner adapter 共通部 ─────────────────────────────────────────
|
|
54
54
|
export { decodeValue, deepEquals } from "./codec.js";
|
|
55
|
+
// ── codegen primitive surface(bc#36 / typed-codegen.md §3.4)──────────────────
|
|
56
|
+
// 生成コードが直呼びできる安定 primitive 公開面。式演算子は個別関数として公開するが、
|
|
57
|
+
// 意味論は SSoT `evaluateExpression`(expr-eval.ts)へ委譲する薄いラッパ(再実装しない)。
|
|
58
|
+
// 名前衝突を避けるため、個別関数は `codegenPrimitives` namespace として束ねて公開する
|
|
59
|
+
// (authoring.ts の同名 IR ビルダ `add`/`concat`/… とは別物)。runPlan / bounded 並行 /
|
|
60
|
+
// skip・unproduced / hydration helper も同 namespace に含める。
|
|
61
|
+
export * as codegenPrimitives from "./primitives.js";
|
|
62
|
+
export { mapWithConcurrency, unproducedValue, skipSingle, skipConnection, hydrateInto, evalExpr, } from "./primitives.js";
|
|
55
63
|
// ── generator(SCP Runtime Code Generation Layer — 共通 Generator, bc#13)─────
|
|
56
64
|
// 可搬 IR のみを入力とする DSL 非依存の多言語 codegen(scp-ir-architecture.md §7.2–§7.4)。
|
|
57
65
|
// 生成コードは既存 runtime-core API を呼ぶ薄い束ね(実行ロジックは生成しない)。
|
|
58
|
-
export { generateModule, registerEmitter, registeredLanguages, GeneratorFailure, fingerprintComponentGraph, FingerprintFailure, typescriptEmitter, pythonEmitter, } from "./generator/index.js";
|
|
66
|
+
export { generateModule, registerEmitter, registeredLanguages, GeneratorFailure, fingerprintComponentGraph, FingerprintFailure, typescriptEmitter, pythonEmitter, typescriptStraightlineEmitter, rustStraightlineEmitter, phpStraightlineEmitter, pythonStraightlineEmitter, typescriptTypedEmitter, tsTypedMaterializer, assertStraightlineSupported, isStraightlineNode, buildTypePlan, deriveTypeRef, } from "./generator/index.js";
|
|
59
67
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,gEAAgE;AAChE,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,CAAC,EAAE,6DAA6D;IAC5E,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,CAAC,EAAE,8DAA8D;IAC5E,QAAQ,EAAE,CAAC,EAAE,2EAA2E;IACxF,KAAK,EAAE,CAAC,EAAE,uEAAuE;IACjF,EAAE,EAAE,CAAC,EAAE,mEAAmE;CAClE,CAAC;AAEX,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAc,CAAC;AAKpD,+EAA+E;AAC/E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG/H,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAa1E,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9F,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGlE,+EAA+E;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,gEAAgE;AAChE,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,CAAC,EAAE,6DAA6D;IAC5E,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,CAAC,EAAE,8DAA8D;IAC5E,QAAQ,EAAE,CAAC,EAAE,2EAA2E;IACxF,KAAK,EAAE,CAAC,EAAE,uEAAuE;IACjF,EAAE,EAAE,CAAC,EAAE,mEAAmE;CAClE,CAAC;AAEX,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAc,CAAC;AAKpD,+EAA+E;AAC/E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG/H,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhF,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAa1E,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG9F,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGlE,+EAA+E;AAC/E,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAsB/E,wEAAwE;AACxE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAOxE,iFAAiF;AACjF,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,IAAI,EACJ,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,QAAQ,EACR,GAAG,EACH,GAAG,EACH,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAUxB,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,gFAAgF;AAChF,kDAAkD;AAClD,kEAAkE;AAClE,4DAA4D;AAC5D,yEAAyE;AACzE,wDAAwD;AACxD,OAAO,KAAK,iBAAiB,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,cAAc,EACd,WAAW,EACX,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAGzB,6EAA6E;AAC7E,wEAAwE;AACxE,mDAAmD;AACnD,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* primitives.ts — codegen が直呼びできる安定 primitive 公開面(bc#36 / typed-codegen.md §3.4)。
|
|
3
|
+
*
|
|
4
|
+
* これは **A0 = 公開面の確定**(emitter 生成ロジックは A1/#37)。生成コードが
|
|
5
|
+
* 「細粒度 primitive を呼ぶ」ための callable surface を additive に切り出す。
|
|
6
|
+
*
|
|
7
|
+
* 最重要規律(AC 7): **演算子意味論は再実装しない。** 各 primitive は Expression IR の
|
|
8
|
+
* 単一キーノードを組んで既存 SSoT `evaluate`(expr-eval.ts)へ委譲するだけの薄いラッパ。
|
|
9
|
+
* よって意味論(INT_OVERFLOW / PRECISION_LOSS / MOD_ZERO / NULL_REF / TYPE_MISMATCH /
|
|
10
|
+
* 短絡未評価 / code-point 順 / CPython float repr 等)は `evaluate` と**完全一致**する
|
|
11
|
+
* ——別実装が存在しないため発散のしようがない。
|
|
12
|
+
*
|
|
13
|
+
* 短絡の保存: `and`/`or`/`cond`/`coalesce` は **未評価の IR ノード**(`Expr`)を引数に取り、
|
|
14
|
+
* 内部で `evaluate` が短絡する。値を先に評価して渡す API にすると短絡が壊れるため採らない。
|
|
15
|
+
*
|
|
16
|
+
* これに加えて runPlan / bounded 並行 / skip・unproduced / hydration helper を再エクスポート
|
|
17
|
+
* または薄く公開する(いずれも既存実装を SSoT として共有)。
|
|
18
|
+
*/
|
|
19
|
+
import { type Value, type Scope } from "./expr-eval.js";
|
|
20
|
+
import { type RelationKind } from "./plan.js";
|
|
21
|
+
/** 未評価の Expression IR ノード(primitive の被演算子)。`evaluate` がそのまま解釈する。 */
|
|
22
|
+
export type Expr = unknown;
|
|
23
|
+
/** 参照。`ref(["a","b"], scope)` = `{ref:["a","b"]}`(中間 null は NULL_REF)。 */
|
|
24
|
+
export declare function ref(path: string[], scope: Scope): Value;
|
|
25
|
+
/** null 安全参照。中間 null は null 伝播(NULL_REF を投げない)。 */
|
|
26
|
+
export declare function refOpt(path: string[], scope: Scope): Value;
|
|
27
|
+
/** `{int:"..."}` リテラル(i64 checked)。 */
|
|
28
|
+
export declare function intLit(literal: string, scope?: Scope): Value;
|
|
29
|
+
/** `{float:n}` リテラル(NaN/Inf は NAN_OR_INF)。 */
|
|
30
|
+
export declare function floatLit(n: number, scope?: Scope): Value;
|
|
31
|
+
/** object 構築(own key `__proto__` は FORBIDDEN_KEY)。値は Expression IR。 */
|
|
32
|
+
export declare function obj(fields: Record<string, Expr>, scope: Scope): Value;
|
|
33
|
+
/** array 構築。要素は Expression IR。 */
|
|
34
|
+
export declare function arr(elems: Expr[], scope: Scope): Value;
|
|
35
|
+
/** 加算(int×int checked / float×float checked。混在は TYPE_MISMATCH)。 */
|
|
36
|
+
export declare function add(a: Expr, b: Expr, scope: Scope): Value;
|
|
37
|
+
/** 減算。 */
|
|
38
|
+
export declare function sub(a: Expr, b: Expr, scope: Scope): Value;
|
|
39
|
+
/** 乗算。 */
|
|
40
|
+
export declare function mul(a: Expr, b: Expr, scope: Scope): Value;
|
|
41
|
+
/** 単項マイナス。 */
|
|
42
|
+
export declare function neg(a: Expr, scope: Scope): Value;
|
|
43
|
+
/** 除算(常に float。widening で |int|>2^53 は PRECISION_LOSS、0除算は NAN_OR_INF)。 */
|
|
44
|
+
export declare function div(a: Expr, b: Expr, scope: Scope): Value;
|
|
45
|
+
/** 剰余(truncated、符号は被除数。int の 0 剰余は MOD_ZERO)。 */
|
|
46
|
+
export declare function mod(a: Expr, b: Expr, scope: Scope): Value;
|
|
47
|
+
/** 文字列連結(n-ary, min 2。string のみ。暗黙 toString なし)。 */
|
|
48
|
+
export declare function concat(parts: Expr[], scope: Scope): Value;
|
|
49
|
+
/** 等価(同一スカラ型のみ。null==null 可。obj/arr は未定義)。 */
|
|
50
|
+
export declare function eq(a: Expr, b: Expr, scope: Scope): Value;
|
|
51
|
+
/** 非等価。 */
|
|
52
|
+
export declare function ne(a: Expr, b: Expr, scope: Scope): Value;
|
|
53
|
+
/** 小なり(同一型 int/float/string。string は code-point 順)。 */
|
|
54
|
+
export declare function lt(a: Expr, b: Expr, scope: Scope): Value;
|
|
55
|
+
/** 以下。 */
|
|
56
|
+
export declare function le(a: Expr, b: Expr, scope: Scope): Value;
|
|
57
|
+
/** 大なり。 */
|
|
58
|
+
export declare function gt(a: Expr, b: Expr, scope: Scope): Value;
|
|
59
|
+
/** 以上。 */
|
|
60
|
+
export declare function ge(a: Expr, b: Expr, scope: Scope): Value;
|
|
61
|
+
/** 論理積(短絡: a=false なら b は評価されない)。b は未評価 IR で渡す。 */
|
|
62
|
+
export declare function and(a: Expr, b: Expr, scope: Scope): Value;
|
|
63
|
+
/** 論理和(短絡: a=true なら b は評価されない)。 */
|
|
64
|
+
export declare function or(a: Expr, b: Expr, scope: Scope): Value;
|
|
65
|
+
/** 論理否定(strict bool。truthiness なし)。 */
|
|
66
|
+
export declare function not(a: Expr, scope: Scope): Value;
|
|
67
|
+
/** null 合体(左が null のときだけ右を評価)。右は未評価 IR で渡す。 */
|
|
68
|
+
export declare function coalesce(a: Expr, b: Expr, scope: Scope): Value;
|
|
69
|
+
/** 条件(strict bool。採用側のみ評価)。then/else は未評価 IR で渡す。 */
|
|
70
|
+
export declare function cond(c: Expr, then: Expr, els: Expr, scope: Scope): Value;
|
|
71
|
+
/** 配列長(配列のみ。string length は v1 に無い)。 */
|
|
72
|
+
export declare function len(a: Expr, scope: Scope): Value;
|
|
73
|
+
/**
|
|
74
|
+
* 生の Expression IR を直接評価する汎用 primitive(emitter が単一キーラッパを介さず
|
|
75
|
+
* 任意の式ノードを評価したい場合の逃げ道。意味論は上記個別 primitive と同一 SSoT)。
|
|
76
|
+
*/
|
|
77
|
+
export declare function evalExpr(node: Expr, scope?: Scope): Value;
|
|
78
|
+
/**
|
|
79
|
+
* mapWithConcurrency — 入力順を保存し、in-flight を `concurrency` で上限する bounded 並行 map。
|
|
80
|
+
* execution-plan.md §4 の determinism 規律(output[i]=worker(items[i]) / 完了順非依存 /
|
|
81
|
+
* FIFO dispatch)を単体 primitive として公開する。runPlanAsync 内の同名機構と同一規律。
|
|
82
|
+
*
|
|
83
|
+
* @param items 入力(順序保存の基準)。
|
|
84
|
+
* @param concurrency 同時 in-flight 上限(<=1 で逐次)。
|
|
85
|
+
* @param worker 各要素の非同期処理(`worker(item, index)`)。
|
|
86
|
+
* @returns `items` と同じ長さ・順序の結果配列。
|
|
87
|
+
*/
|
|
88
|
+
export declare function mapWithConcurrency<T, R>(items: readonly T[], concurrency: number, worker: (item: T, index: number) => R | Promise<R>): Promise<R[]>;
|
|
89
|
+
/**
|
|
90
|
+
* 未生成 Port(Skip)の表現値を返す。single→null / connection→空 connection。
|
|
91
|
+
* plan.ts / behavior.ts の内部 unproducedValue と同一規律を公開面として切り出す
|
|
92
|
+
* (生成コードが Skip 節点の穴埋めに直呼びできるように)。
|
|
93
|
+
*/
|
|
94
|
+
export declare function unproducedValue(kind: RelationKind | undefined): Value;
|
|
95
|
+
/** single relation の未生成 = null(unproducedValue("single") の明示版)。 */
|
|
96
|
+
export declare function skipSingle(): Value;
|
|
97
|
+
/** connection relation の未生成 = {items:[],cursor:null}(明示版)。 */
|
|
98
|
+
export declare function skipConnection(): Value;
|
|
99
|
+
/**
|
|
100
|
+
* hydrateInto — map.into(behavior.ts の applyInto)と同一規律の zip-attach helper。
|
|
101
|
+
* `over` の各要素へ `key` で `values[k]` を書き戻した augment 済みリストを返す
|
|
102
|
+
* (over と同じ長さ・順序、親 results 不変=コピー、guard skip 要素は無変更で pass-through)。
|
|
103
|
+
* read が relation を hydrate するときに codegen から直呼びできる面。
|
|
104
|
+
*
|
|
105
|
+
* @param over 元の要素列(object 要素のみ augment 可)。
|
|
106
|
+
* @param key 書き戻すフィールド名。
|
|
107
|
+
* @param keptIdx augment 対象の over index(昇順。guard 通過要素)。
|
|
108
|
+
* @param values keptIdx と同じ長さ・順序の書き戻し値。
|
|
109
|
+
* @throws Error augment 対象が object でない場合(MAP_INTO_ELEMENT_NOT_OBJECT 相当)。
|
|
110
|
+
*/
|
|
111
|
+
export declare function hydrateInto(over: Value[], key: string, keptIdx: number[], values: Value[]): Value[];
|
|
112
|
+
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* primitives.ts — codegen が直呼びできる安定 primitive 公開面(bc#36 / typed-codegen.md §3.4)。
|
|
3
|
+
*
|
|
4
|
+
* これは **A0 = 公開面の確定**(emitter 生成ロジックは A1/#37)。生成コードが
|
|
5
|
+
* 「細粒度 primitive を呼ぶ」ための callable surface を additive に切り出す。
|
|
6
|
+
*
|
|
7
|
+
* 最重要規律(AC 7): **演算子意味論は再実装しない。** 各 primitive は Expression IR の
|
|
8
|
+
* 単一キーノードを組んで既存 SSoT `evaluate`(expr-eval.ts)へ委譲するだけの薄いラッパ。
|
|
9
|
+
* よって意味論(INT_OVERFLOW / PRECISION_LOSS / MOD_ZERO / NULL_REF / TYPE_MISMATCH /
|
|
10
|
+
* 短絡未評価 / code-point 順 / CPython float repr 等)は `evaluate` と**完全一致**する
|
|
11
|
+
* ——別実装が存在しないため発散のしようがない。
|
|
12
|
+
*
|
|
13
|
+
* 短絡の保存: `and`/`or`/`cond`/`coalesce` は **未評価の IR ノード**(`Expr`)を引数に取り、
|
|
14
|
+
* 内部で `evaluate` が短絡する。値を先に評価して渡す API にすると短絡が壊れるため採らない。
|
|
15
|
+
*
|
|
16
|
+
* これに加えて runPlan / bounded 並行 / skip・unproduced / hydration helper を再エクスポート
|
|
17
|
+
* または薄く公開する(いずれも既存実装を SSoT として共有)。
|
|
18
|
+
*/
|
|
19
|
+
import { evaluate } from "./expr-eval.js";
|
|
20
|
+
import {} from "./plan.js";
|
|
21
|
+
// ── (a) Expression IR 全演算子の個別 primitive ────────────────────────────────
|
|
22
|
+
// 各関数は単一キーの IR ノードを組んで evaluate に委譲する(意味論 SSoT は evaluate 一本)。
|
|
23
|
+
/** 参照。`ref(["a","b"], scope)` = `{ref:["a","b"]}`(中間 null は NULL_REF)。 */
|
|
24
|
+
export function ref(path, scope) {
|
|
25
|
+
return evaluate({ ref: path }, scope);
|
|
26
|
+
}
|
|
27
|
+
/** null 安全参照。中間 null は null 伝播(NULL_REF を投げない)。 */
|
|
28
|
+
export function refOpt(path, scope) {
|
|
29
|
+
return evaluate({ refOpt: path }, scope);
|
|
30
|
+
}
|
|
31
|
+
/** `{int:"..."}` リテラル(i64 checked)。 */
|
|
32
|
+
export function intLit(literal, scope = {}) {
|
|
33
|
+
return evaluate({ int: literal }, scope);
|
|
34
|
+
}
|
|
35
|
+
/** `{float:n}` リテラル(NaN/Inf は NAN_OR_INF)。 */
|
|
36
|
+
export function floatLit(n, scope = {}) {
|
|
37
|
+
return evaluate({ float: n }, scope);
|
|
38
|
+
}
|
|
39
|
+
/** object 構築(own key `__proto__` は FORBIDDEN_KEY)。値は Expression IR。 */
|
|
40
|
+
export function obj(fields, scope) {
|
|
41
|
+
return evaluate({ obj: fields }, scope);
|
|
42
|
+
}
|
|
43
|
+
/** array 構築。要素は Expression IR。 */
|
|
44
|
+
export function arr(elems, scope) {
|
|
45
|
+
return evaluate({ arr: elems }, scope);
|
|
46
|
+
}
|
|
47
|
+
/** 加算(int×int checked / float×float checked。混在は TYPE_MISMATCH)。 */
|
|
48
|
+
export function add(a, b, scope) {
|
|
49
|
+
return evaluate({ add: [a, b] }, scope);
|
|
50
|
+
}
|
|
51
|
+
/** 減算。 */
|
|
52
|
+
export function sub(a, b, scope) {
|
|
53
|
+
return evaluate({ sub: [a, b] }, scope);
|
|
54
|
+
}
|
|
55
|
+
/** 乗算。 */
|
|
56
|
+
export function mul(a, b, scope) {
|
|
57
|
+
return evaluate({ mul: [a, b] }, scope);
|
|
58
|
+
}
|
|
59
|
+
/** 単項マイナス。 */
|
|
60
|
+
export function neg(a, scope) {
|
|
61
|
+
return evaluate({ neg: [a] }, scope);
|
|
62
|
+
}
|
|
63
|
+
/** 除算(常に float。widening で |int|>2^53 は PRECISION_LOSS、0除算は NAN_OR_INF)。 */
|
|
64
|
+
export function div(a, b, scope) {
|
|
65
|
+
return evaluate({ div: [a, b] }, scope);
|
|
66
|
+
}
|
|
67
|
+
/** 剰余(truncated、符号は被除数。int の 0 剰余は MOD_ZERO)。 */
|
|
68
|
+
export function mod(a, b, scope) {
|
|
69
|
+
return evaluate({ mod: [a, b] }, scope);
|
|
70
|
+
}
|
|
71
|
+
/** 文字列連結(n-ary, min 2。string のみ。暗黙 toString なし)。 */
|
|
72
|
+
export function concat(parts, scope) {
|
|
73
|
+
return evaluate({ concat: parts }, scope);
|
|
74
|
+
}
|
|
75
|
+
/** 等価(同一スカラ型のみ。null==null 可。obj/arr は未定義)。 */
|
|
76
|
+
export function eq(a, b, scope) {
|
|
77
|
+
return evaluate({ eq: [a, b] }, scope);
|
|
78
|
+
}
|
|
79
|
+
/** 非等価。 */
|
|
80
|
+
export function ne(a, b, scope) {
|
|
81
|
+
return evaluate({ ne: [a, b] }, scope);
|
|
82
|
+
}
|
|
83
|
+
/** 小なり(同一型 int/float/string。string は code-point 順)。 */
|
|
84
|
+
export function lt(a, b, scope) {
|
|
85
|
+
return evaluate({ lt: [a, b] }, scope);
|
|
86
|
+
}
|
|
87
|
+
/** 以下。 */
|
|
88
|
+
export function le(a, b, scope) {
|
|
89
|
+
return evaluate({ le: [a, b] }, scope);
|
|
90
|
+
}
|
|
91
|
+
/** 大なり。 */
|
|
92
|
+
export function gt(a, b, scope) {
|
|
93
|
+
return evaluate({ gt: [a, b] }, scope);
|
|
94
|
+
}
|
|
95
|
+
/** 以上。 */
|
|
96
|
+
export function ge(a, b, scope) {
|
|
97
|
+
return evaluate({ ge: [a, b] }, scope);
|
|
98
|
+
}
|
|
99
|
+
/** 論理積(短絡: a=false なら b は評価されない)。b は未評価 IR で渡す。 */
|
|
100
|
+
export function and(a, b, scope) {
|
|
101
|
+
return evaluate({ and: [a, b] }, scope);
|
|
102
|
+
}
|
|
103
|
+
/** 論理和(短絡: a=true なら b は評価されない)。 */
|
|
104
|
+
export function or(a, b, scope) {
|
|
105
|
+
return evaluate({ or: [a, b] }, scope);
|
|
106
|
+
}
|
|
107
|
+
/** 論理否定(strict bool。truthiness なし)。 */
|
|
108
|
+
export function not(a, scope) {
|
|
109
|
+
return evaluate({ not: [a] }, scope);
|
|
110
|
+
}
|
|
111
|
+
/** null 合体(左が null のときだけ右を評価)。右は未評価 IR で渡す。 */
|
|
112
|
+
export function coalesce(a, b, scope) {
|
|
113
|
+
return evaluate({ coalesce: [a, b] }, scope);
|
|
114
|
+
}
|
|
115
|
+
/** 条件(strict bool。採用側のみ評価)。then/else は未評価 IR で渡す。 */
|
|
116
|
+
export function cond(c, then, els, scope) {
|
|
117
|
+
return evaluate({ cond: [c, then, els] }, scope);
|
|
118
|
+
}
|
|
119
|
+
/** 配列長(配列のみ。string length は v1 に無い)。 */
|
|
120
|
+
export function len(a, scope) {
|
|
121
|
+
return evaluate({ len: [a] }, scope);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 生の Expression IR を直接評価する汎用 primitive(emitter が単一キーラッパを介さず
|
|
125
|
+
* 任意の式ノードを評価したい場合の逃げ道。意味論は上記個別 primitive と同一 SSoT)。
|
|
126
|
+
*/
|
|
127
|
+
export function evalExpr(node, scope = {}) {
|
|
128
|
+
return evaluate(node, scope);
|
|
129
|
+
}
|
|
130
|
+
// ── (c) bounded 並行プリミティブ(順序保存)─────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* mapWithConcurrency — 入力順を保存し、in-flight を `concurrency` で上限する bounded 並行 map。
|
|
133
|
+
* execution-plan.md §4 の determinism 規律(output[i]=worker(items[i]) / 完了順非依存 /
|
|
134
|
+
* FIFO dispatch)を単体 primitive として公開する。runPlanAsync 内の同名機構と同一規律。
|
|
135
|
+
*
|
|
136
|
+
* @param items 入力(順序保存の基準)。
|
|
137
|
+
* @param concurrency 同時 in-flight 上限(<=1 で逐次)。
|
|
138
|
+
* @param worker 各要素の非同期処理(`worker(item, index)`)。
|
|
139
|
+
* @returns `items` と同じ長さ・順序の結果配列。
|
|
140
|
+
*/
|
|
141
|
+
export async function mapWithConcurrency(items, concurrency, worker) {
|
|
142
|
+
const out = new Array(items.length);
|
|
143
|
+
const limit = Math.max(1, Math.floor(concurrency));
|
|
144
|
+
let next = 0;
|
|
145
|
+
const runners = [];
|
|
146
|
+
const runner = async () => {
|
|
147
|
+
for (;;) {
|
|
148
|
+
const i = next++;
|
|
149
|
+
if (i >= items.length)
|
|
150
|
+
return;
|
|
151
|
+
out[i] = await worker(items[i], i); // 完了順非依存: 書き込み先は index 固定
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
for (let k = 0; k < Math.min(limit, items.length); k++)
|
|
155
|
+
runners.push(runner());
|
|
156
|
+
await Promise.all(runners);
|
|
157
|
+
return out;
|
|
158
|
+
}
|
|
159
|
+
// ── (d) skip / unproduced-value helper ────────────────────────────────────────
|
|
160
|
+
/**
|
|
161
|
+
* 未生成 Port(Skip)の表現値を返す。single→null / connection→空 connection。
|
|
162
|
+
* plan.ts / behavior.ts の内部 unproducedValue と同一規律を公開面として切り出す
|
|
163
|
+
* (生成コードが Skip 節点の穴埋めに直呼びできるように)。
|
|
164
|
+
*/
|
|
165
|
+
export function unproducedValue(kind) {
|
|
166
|
+
return kind === "connection" ? { items: [], cursor: null } : null;
|
|
167
|
+
}
|
|
168
|
+
/** single relation の未生成 = null(unproducedValue("single") の明示版)。 */
|
|
169
|
+
export function skipSingle() {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
/** connection relation の未生成 = {items:[],cursor:null}(明示版)。 */
|
|
173
|
+
export function skipConnection() {
|
|
174
|
+
return { items: [], cursor: null };
|
|
175
|
+
}
|
|
176
|
+
// ── (e) hydration / relation helper ───────────────────────────────────────────
|
|
177
|
+
/**
|
|
178
|
+
* hydrateInto — map.into(behavior.ts の applyInto)と同一規律の zip-attach helper。
|
|
179
|
+
* `over` の各要素へ `key` で `values[k]` を書き戻した augment 済みリストを返す
|
|
180
|
+
* (over と同じ長さ・順序、親 results 不変=コピー、guard skip 要素は無変更で pass-through)。
|
|
181
|
+
* read が relation を hydrate するときに codegen から直呼びできる面。
|
|
182
|
+
*
|
|
183
|
+
* @param over 元の要素列(object 要素のみ augment 可)。
|
|
184
|
+
* @param key 書き戻すフィールド名。
|
|
185
|
+
* @param keptIdx augment 対象の over index(昇順。guard 通過要素)。
|
|
186
|
+
* @param values keptIdx と同じ長さ・順序の書き戻し値。
|
|
187
|
+
* @throws Error augment 対象が object でない場合(MAP_INTO_ELEMENT_NOT_OBJECT 相当)。
|
|
188
|
+
*/
|
|
189
|
+
export function hydrateInto(over, key, keptIdx, values) {
|
|
190
|
+
const augmented = [];
|
|
191
|
+
let k = 0;
|
|
192
|
+
for (let i = 0; i < over.length; i++) {
|
|
193
|
+
const el = over[i];
|
|
194
|
+
if (k < keptIdx.length && keptIdx[k] === i) {
|
|
195
|
+
if (el === null || typeof el !== "object" || Array.isArray(el))
|
|
196
|
+
throw new Error(`hydrateInto: element ${i} is not an object (into requires object elements)`);
|
|
197
|
+
augmented.push({ ...el, [key]: values[k] });
|
|
198
|
+
k++;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
augmented.push(el);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return augmented;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "behavior-contracts",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Language-agnostic runtime core for behavior contracts (dsl-contracts): validateEnvelope / evaluateExpression / renderTemplate / runPlan / canonical serialization. Single source of truth for the shared DSL runtime primitives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|