behavior-contracts 0.1.2 → 0.1.3
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/canonical.d.ts +1 -1
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +13 -1
- package/dist/canonical.js.map +1 -1
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +7 -1
- package/dist/codec.js.map +1 -1
- package/dist/expr-eval.d.ts +9 -1
- package/dist/expr-eval.d.ts.map +1 -1
- package/dist/expr-eval.js +21 -3
- package/dist/expr-eval.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/canonical.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* canonical-serialization.md §4.1 の CPython format_float_short('r') を移植する。
|
|
17
17
|
*/
|
|
18
18
|
import type { Value } from "./expr-eval.js";
|
|
19
|
-
export type CanonicalFailureCode = "NAN_OR_INF" | "INVALID_VALUE";
|
|
19
|
+
export type CanonicalFailureCode = "NAN_OR_INF" | "INVALID_VALUE" | "FORBIDDEN_KEY";
|
|
20
20
|
export declare class CanonicalFailure extends Error {
|
|
21
21
|
code: CanonicalFailureCode;
|
|
22
22
|
constructor(code: CanonicalFailureCode, message: string);
|
package/dist/canonical.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,eAAe,CAAC;AAEpB,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,EAAE,oBAAoB,CAAC;gBACf,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB7C;AA+ED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,eAAe,GACf,eAAe,CAAC;AAEpB,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,EAAE,oBAAoB,CAAC;gBACf,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAKxD;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmB7C;AA+ED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAQ/C;AAGD,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAS9C"}
|
package/dist/canonical.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cmpCodePoints } from "./expr-eval.js";
|
|
1
|
+
import { cmpCodePoints, FORBIDDEN_OBJECT_KEY } from "./expr-eval.js";
|
|
2
2
|
export class CanonicalFailure extends Error {
|
|
3
3
|
code;
|
|
4
4
|
constructor(code, message) {
|
|
@@ -124,6 +124,7 @@ function formatScientific(digits, decpt) {
|
|
|
124
124
|
*/
|
|
125
125
|
export function canonicalValue(v) {
|
|
126
126
|
if (isPlainObject(v)) {
|
|
127
|
+
guardKeys(Object.keys(v));
|
|
127
128
|
const keys = Object.keys(v).sort(cmpCodePoints); // トップレベルのみソート(code-point 順)
|
|
128
129
|
const parts = keys.map((k) => `${jsonString(k)}:${encodeNested(v[k])}`);
|
|
129
130
|
return `{${parts.join(",")}}`;
|
|
@@ -134,6 +135,7 @@ export function canonicalValue(v) {
|
|
|
134
135
|
/** canonicalJson — fingerprint 用。全 object 階層のキーを昇順ソート(配列は順序保持)。 */
|
|
135
136
|
export function canonicalJson(v) {
|
|
136
137
|
if (isPlainObject(v)) {
|
|
138
|
+
guardKeys(Object.keys(v));
|
|
137
139
|
const keys = Object.keys(v).sort(cmpCodePoints);
|
|
138
140
|
const parts = keys.map((k) => `${jsonString(k)}:${canonicalJson(v[k])}`);
|
|
139
141
|
return `{${parts.join(",")}}`;
|
|
@@ -145,6 +147,7 @@ export function canonicalJson(v) {
|
|
|
145
147
|
// ── 内部: ネスト値の直列化(canonicalValue 用。ネスト object は挿入順)──────────────
|
|
146
148
|
function encodeNested(v) {
|
|
147
149
|
if (isPlainObject(v)) {
|
|
150
|
+
guardKeys(Object.keys(v));
|
|
148
151
|
const parts = Object.keys(v).map((k) => `${jsonString(k)}:${encodeNested(v[k])}`);
|
|
149
152
|
return `{${parts.join(",")}}`;
|
|
150
153
|
}
|
|
@@ -179,4 +182,13 @@ function jsonString(s) {
|
|
|
179
182
|
function isPlainObject(v) {
|
|
180
183
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
181
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* guardKeys — obj 値の own key に `"__proto__"` があれば fail-closed(FORBIDDEN_KEY)。
|
|
187
|
+
* canonicalValue/canonicalJson/encodeNested の全経路で適用し、expression の obj ノードと
|
|
188
|
+
* 同一の禁止キー規律を持つ(expression-ir.md §2.3/§8)。
|
|
189
|
+
*/
|
|
190
|
+
function guardKeys(keys) {
|
|
191
|
+
if (keys.includes(FORBIDDEN_OBJECT_KEY))
|
|
192
|
+
fail("FORBIDDEN_KEY", `object key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed)`);
|
|
193
|
+
}
|
|
182
194
|
//# sourceMappingURL=canonical.js.map
|
package/dist/canonical.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
|
package/dist/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CA2B7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CActD"}
|
package/dist/codec.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ExprFailure, FORBIDDEN_OBJECT_KEY } from "./expr-eval.js";
|
|
1
2
|
/**
|
|
2
3
|
* decodeValue — golden vector の JSON 値表現を runtime {@link Value} へ復元する。
|
|
3
4
|
* expression-ir.md §2.3 の逆写像:
|
|
@@ -30,8 +31,13 @@ export function decodeValue(x) {
|
|
|
30
31
|
return o.inf < 0 ? -Infinity : Infinity;
|
|
31
32
|
}
|
|
32
33
|
const out = {};
|
|
33
|
-
for (const k of keys)
|
|
34
|
+
for (const k of keys) {
|
|
35
|
+
// fail-closed: own key "__proto__" は言語間で発散する(TS では prototype セッタで
|
|
36
|
+
// 消え、他言語は保持)。全経路で拒否する(expression-ir.md §2.3/§8)。
|
|
37
|
+
if (k === FORBIDDEN_OBJECT_KEY)
|
|
38
|
+
throw new ExprFailure("FORBIDDEN_KEY", `object key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed)`);
|
|
34
39
|
out[k] = decodeValue(o[k]);
|
|
40
|
+
}
|
|
35
41
|
return out;
|
|
36
42
|
}
|
|
37
43
|
throw new Error(`cannot decode value: ${String(x)}`);
|
package/dist/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
|
package/dist/expr-eval.d.ts
CHANGED
|
@@ -17,12 +17,20 @@ export type Value = bigint | number | string | boolean | null | Value[] | {
|
|
|
17
17
|
[k: string]: Value;
|
|
18
18
|
};
|
|
19
19
|
export type Scope = Record<string, Value>;
|
|
20
|
-
export type FailureCode = "INT_OVERFLOW" | "NAN_OR_INF" | "MOD_ZERO" | "PRECISION_LOSS" | "TYPE_MISMATCH" | "NULL_REF" | "MISSING_PROP" | "UNKNOWN_BINDING" | "UNKNOWN_OP" | "INVALID_NODE" | "INVALID_LITERAL";
|
|
20
|
+
export type FailureCode = "INT_OVERFLOW" | "NAN_OR_INF" | "MOD_ZERO" | "PRECISION_LOSS" | "TYPE_MISMATCH" | "NULL_REF" | "MISSING_PROP" | "UNKNOWN_BINDING" | "UNKNOWN_OP" | "INVALID_NODE" | "INVALID_LITERAL" | "FORBIDDEN_KEY";
|
|
21
21
|
export declare class ExprFailure extends Error {
|
|
22
22
|
code: FailureCode;
|
|
23
23
|
constructor(code: FailureCode, message: string);
|
|
24
24
|
}
|
|
25
25
|
export declare function cmpCodePoints(a: string, b: string): -1 | 0 | 1;
|
|
26
|
+
/**
|
|
27
|
+
* 禁止キー(expression-ir.md §2.3/§8)。IR/JSON 由来の任意文字列キーからオブジェクトを
|
|
28
|
+
* 構築するすべての経路で own key `"__proto__"` を fail-closed で拒否する。JS では
|
|
29
|
+
* `out["__proto__"] = v` が prototype セッタを叩きキーが値として保持されない(TS では消える)
|
|
30
|
+
* 一方、Python/Rust/Go は素直に保持するため、同一 IR が言語間で発散する(prototype
|
|
31
|
+
* pollution の温床でもある)。全言語で `FORBIDDEN_KEY` に倒して一致させる。
|
|
32
|
+
*/
|
|
33
|
+
export declare const FORBIDDEN_OBJECT_KEY = "__proto__";
|
|
26
34
|
export declare function evaluate(node: unknown, scope?: Scope): Value;
|
|
27
35
|
export declare function encodeValue(v: Value): unknown;
|
|
28
36
|
//# sourceMappingURL=expr-eval.d.ts.map
|
package/dist/expr-eval.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-eval.d.ts","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,EAAE,GACP;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC;AAE3B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG1C,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"expr-eval.d.ts","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,EAAE,GACP;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC;AAE3B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG1C,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,eAAe,CAAC;AAEpB,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,WAAW,CAAC;gBACN,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;CAK/C;AAgCD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAa9D;AAqBD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAGhD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,KAAU,GAAG,KAAK,CA6LhE;AAoCD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAa7C"}
|
package/dist/expr-eval.js
CHANGED
|
@@ -87,6 +87,14 @@ function requireBool(v, ctx) {
|
|
|
87
87
|
function isPlainObject(v) {
|
|
88
88
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* 禁止キー(expression-ir.md §2.3/§8)。IR/JSON 由来の任意文字列キーからオブジェクトを
|
|
92
|
+
* 構築するすべての経路で own key `"__proto__"` を fail-closed で拒否する。JS では
|
|
93
|
+
* `out["__proto__"] = v` が prototype セッタを叩きキーが値として保持されない(TS では消える)
|
|
94
|
+
* 一方、Python/Rust/Go は素直に保持するため、同一 IR が言語間で発散する(prototype
|
|
95
|
+
* pollution の温床でもある)。全言語で `FORBIDDEN_KEY` に倒して一致させる。
|
|
96
|
+
*/
|
|
97
|
+
export const FORBIDDEN_OBJECT_KEY = "__proto__";
|
|
90
98
|
// ── 評価器本体 ───────────────────────────────────────────────────────────────
|
|
91
99
|
export function evaluate(node, scope = {}) {
|
|
92
100
|
// リテラル
|
|
@@ -161,8 +169,14 @@ export function evaluate(node, scope = {}) {
|
|
|
161
169
|
if (!isPlainObject(arg))
|
|
162
170
|
fail("INVALID_NODE", "{obj: ...} expects an object");
|
|
163
171
|
const out = {};
|
|
164
|
-
|
|
165
|
-
|
|
172
|
+
// own key の走査は Object.keys(JSON.parse は "__proto__" を own enumerable として作る)。
|
|
173
|
+
for (const k of Object.keys(arg)) {
|
|
174
|
+
if (k === FORBIDDEN_OBJECT_KEY)
|
|
175
|
+
fail("FORBIDDEN_KEY", `obj key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed)`);
|
|
176
|
+
// 代入も明示 own property に(prototype セッタを踏まないよう defineProperty ではなく
|
|
177
|
+
// 事前 reject で担保。ここに来る時点で k は __proto__ ではない)。
|
|
178
|
+
out[k] = evaluate(arg[k], scope);
|
|
179
|
+
}
|
|
166
180
|
return out;
|
|
167
181
|
}
|
|
168
182
|
case "arr":
|
|
@@ -209,7 +223,11 @@ export function evaluate(node, scope = {}) {
|
|
|
209
223
|
}
|
|
210
224
|
// ── 文字列 ──
|
|
211
225
|
case "concat": {
|
|
212
|
-
const
|
|
226
|
+
const rawParts = argArray(op, arg);
|
|
227
|
+
// n-ary(min 2 args)。arity<2 は不正 IR(expression-ir.md §2.1/§3/§6)。
|
|
228
|
+
if (rawParts.length < 2)
|
|
229
|
+
fail("INVALID_NODE", `concat expects >= 2 args, got ${rawParts.length}`);
|
|
230
|
+
const parts = rawParts.map((e) => evaluate(e, scope));
|
|
213
231
|
for (const p of parts)
|
|
214
232
|
if (typeof p !== "string")
|
|
215
233
|
fail("TYPE_MISMATCH", `concat: string のみ(got ${typeName(p)}。数値の暗黙 toString は存在しない)`);
|
package/dist/expr-eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
* consumer レベル API のため **含めない**(examples/src/core.ts に残置)。
|
|
21
21
|
*/
|
|
22
22
|
export declare const SPEC_VERSIONS: {
|
|
23
|
-
readonly expression:
|
|
23
|
+
readonly expression: 2;
|
|
24
24
|
readonly template: 1;
|
|
25
25
|
readonly plan: 1;
|
|
26
|
-
readonly canonical:
|
|
26
|
+
readonly canonical: 2;
|
|
27
27
|
};
|
|
28
28
|
/** validateEnvelope に渡す graphddb 形式の既定 supported 版(`"<major>.<minor>"`)。 */
|
|
29
29
|
export declare const ENVELOPE_SPEC_VERSION: "1.1";
|
|
30
30
|
export type { Value, Scope } from "./expr-eval.js";
|
|
31
|
-
export { evaluate as evaluateExpression, encodeValue, cmpCodePoints, ExprFailure } from "./expr-eval.js";
|
|
31
|
+
export { evaluate as evaluateExpression, encodeValue, cmpCodePoints, ExprFailure, FORBIDDEN_OBJECT_KEY } from "./expr-eval.js";
|
|
32
32
|
export type { FailureCode as ExprFailureCode } from "./expr-eval.js";
|
|
33
33
|
export { renderTemplate, resolvePartial, TemplateFailure } from "./template.js";
|
|
34
34
|
export type { TemplateFailureCode } from "./template.js";
|
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;;;;;CAKhB,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,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,eAAO,MAAM,aAAa;;;;;CAKhB,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,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,MAAM,EACN,IAAI,EACJ,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,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
// ── 対応する仕様バージョン(IR/vector の spec version。ライブラリ semver とは別管理)──
|
|
23
23
|
// runtime-plan.md §3: 各ライブラリは対応 spec version を宣言し、範囲外は fail-closed。
|
|
24
24
|
export const SPEC_VERSIONS = {
|
|
25
|
-
expression:
|
|
25
|
+
expression: 2, // v2: obj の __proto__ own key を FORBIDDEN_KEY に(fail-closed)
|
|
26
26
|
template: 1,
|
|
27
27
|
plan: 1,
|
|
28
|
-
canonical:
|
|
28
|
+
canonical: 2, // v2: obj 値の __proto__ own key を FORBIDDEN_KEY に(fail-closed)
|
|
29
29
|
};
|
|
30
30
|
/** validateEnvelope に渡す graphddb 形式の既定 supported 版(`"<major>.<minor>"`)。 */
|
|
31
31
|
export const ENVELOPE_SPEC_VERSION = "1.1";
|
|
32
32
|
// ── expression(evaluateExpression) ──────────────────────────────────────────
|
|
33
|
-
export { evaluate as evaluateExpression, encodeValue, cmpCodePoints, ExprFailure } from "./expr-eval.js";
|
|
33
|
+
export { evaluate as evaluateExpression, encodeValue, cmpCodePoints, ExprFailure, FORBIDDEN_OBJECT_KEY } from "./expr-eval.js";
|
|
34
34
|
// ── template(renderTemplate) ────────────────────────────────────────────────
|
|
35
35
|
export { renderTemplate, resolvePartial, TemplateFailure } from "./template.js";
|
|
36
36
|
// ── plan(runPlan) ───────────────────────────────────────────────────────────
|
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;
|
|
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;CACpE,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,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAY5D,+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,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "behavior-contracts",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
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",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json"
|
|
25
25
|
},
|
|
26
26
|
"specVersions": {
|
|
27
|
-
"expression":
|
|
27
|
+
"expression": 2,
|
|
28
28
|
"template": 1,
|
|
29
29
|
"plan": 1,
|
|
30
|
-
"canonical":
|
|
30
|
+
"canonical": 2,
|
|
31
31
|
"envelope": "1.1"
|
|
32
32
|
},
|
|
33
33
|
"keywords": [
|