behavior-contracts 0.1.3 → 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/README.md +8 -2
- package/dist/authoring.d.ts +202 -0
- package/dist/authoring.d.ts.map +1 -0
- package/dist/authoring.js +787 -0
- package/dist/authoring.js.map +1 -0
- package/dist/behavior.d.ts +248 -0
- package/dist/behavior.d.ts.map +1 -0
- package/dist/behavior.js +373 -0
- package/dist/behavior.js.map +1 -0
- package/dist/builder.d.ts +154 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +574 -0
- package/dist/builder.js.map +1 -0
- package/dist/generator/core.d.ts +89 -0
- package/dist/generator/core.d.ts.map +1 -0
- package/dist/generator/core.js +124 -0
- package/dist/generator/core.js.map +1 -0
- package/dist/generator/emit-go.d.ts +19 -0
- package/dist/generator/emit-go.d.ts.map +1 -0
- package/dist/generator/emit-go.js +79 -0
- package/dist/generator/emit-go.js.map +1 -0
- package/dist/generator/emit-php.d.ts +20 -0
- package/dist/generator/emit-php.d.ts.map +1 -0
- package/dist/generator/emit-php.js +76 -0
- package/dist/generator/emit-php.js.map +1 -0
- package/dist/generator/emit-python.d.ts +10 -0
- package/dist/generator/emit-python.d.ts.map +1 -0
- package/dist/generator/emit-python.js +75 -0
- package/dist/generator/emit-python.js.map +1 -0
- package/dist/generator/emit-rust.d.ts +25 -0
- package/dist/generator/emit-rust.d.ts.map +1 -0
- package/dist/generator/emit-rust.js +125 -0
- package/dist/generator/emit-rust.js.map +1 -0
- 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/emit-typescript.d.ts +11 -0
- package/dist/generator/emit-typescript.d.ts.map +1 -0
- package/dist/generator/emit-typescript.js +68 -0
- package/dist/generator/emit-typescript.js.map +1 -0
- package/dist/generator/fingerprint.d.ts +14 -0
- package/dist/generator/fingerprint.d.ts.map +1 -0
- package/dist/generator/fingerprint.js +74 -0
- package/dist/generator/fingerprint.js.map +1 -0
- package/dist/generator/index.d.ts +22 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +64 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/literal.d.ts +15 -0
- package/dist/generator/literal.d.ts.map +1 -0
- package/dist/generator/literal.js +232 -0
- package/dist/generator/literal.js.map +1 -0
- 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 +36 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +186 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +17 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -2
- package/dist/index.js.map +1 -1
- package/dist/plan.d.ts +36 -0
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +152 -14
- package/dist/plan.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 +4 -1
|
@@ -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.1
|
|
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",
|
|
@@ -28,6 +28,9 @@
|
|
|
28
28
|
"template": 1,
|
|
29
29
|
"plan": 1,
|
|
30
30
|
"canonical": 2,
|
|
31
|
+
"behavior": 2,
|
|
32
|
+
"guard": 1,
|
|
33
|
+
"c2": 1,
|
|
31
34
|
"envelope": "1.1"
|
|
32
35
|
},
|
|
33
36
|
"keywords": [
|