@inf-monkeys-tech/monkeys 1.1.25 → 1.1.26
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 -0
- package/lib/contracts/page-expression.d.ts.map +1 -1
- package/lib/contracts/page-expression.js +7 -0
- package/lib/contracts/page-expression.js.map +1 -1
- package/lib/esm/{chunk-YKM3R2KZ.mjs → chunk-4UVW5LEP.mjs} +2 -2
- package/lib/esm/{chunk-4H5MD2LH.mjs → chunk-6BWJ6PMM.mjs} +46 -12
- package/lib/esm/{chunk-4H5MD2LH.mjs.map → chunk-6BWJ6PMM.mjs.map} +1 -1
- package/lib/esm/{chunk-KRIKORSN.mjs → chunk-J7I5CBDN.mjs} +5 -1
- package/lib/esm/chunk-J7I5CBDN.mjs.map +1 -0
- package/lib/esm/{chunk-X4YQITI2.mjs → chunk-NNHXKONM.mjs} +3 -3
- package/lib/esm/{chunk-4ZSCTEY6.mjs → chunk-QLAQOBO2.mjs} +2 -2
- package/lib/esm/{chunk-H7J4XGXK.mjs → chunk-VY4ZEIL3.mjs} +2 -2
- package/lib/esm/contracts/index.mjs +4 -4
- package/lib/esm/index.mjs +10 -6
- package/lib/esm/index.mjs.map +1 -1
- package/lib/esm/runtime/index.mjs +7 -3
- package/lib/esm/schemas/index.mjs +3 -3
- package/lib/runtime/page-expression.d.ts +10 -0
- package/lib/runtime/page-expression.d.ts.map +1 -1
- package/lib/runtime/page-expression.js +63 -11
- package/lib/runtime/page-expression.js.map +1 -1
- package/package.json +1 -1
- package/lib/esm/chunk-KRIKORSN.mjs.map +0 -1
- /package/lib/esm/{chunk-YKM3R2KZ.mjs.map → chunk-4UVW5LEP.mjs.map} +0 -0
- /package/lib/esm/{chunk-X4YQITI2.mjs.map → chunk-NNHXKONM.mjs.map} +0 -0
- /package/lib/esm/{chunk-4ZSCTEY6.mjs.map → chunk-QLAQOBO2.mjs.map} +0 -0
- /package/lib/esm/{chunk-H7J4XGXK.mjs.map → chunk-VY4ZEIL3.mjs.map} +0 -0
package/README.md
CHANGED
|
@@ -105,6 +105,14 @@ sourceHash. No generated artifacts authorize registration, publication or calls.
|
|
|
105
105
|
|
|
106
106
|
This contract does not expose localStorage keys or execute scripts. The host must resolve exactly one supported provider/version, validate its slot and persistence requirements, enforce identity lifecycle guards, and grant writes only through the declared mappings. Missing providers must fail explicitly. Provider-specific semantics and shared namespaces remain host responsibilities. Deployments must upgrade SDK readers/compilers and the host provider together before publishing Pages using this field.
|
|
107
107
|
|
|
108
|
+
### Prepared property projections
|
|
109
|
+
|
|
110
|
+
`preparePagePropertyProjection(bindings)` from `@inf-monkeys-tech/monkeys/runtime` validates and snapshots a binding list once, returning `(base, context) => projectedModel`. Share this function across repeated rows with the same declaration; pass each row's current context on every call. Declaration shape, target-path overlap and expression arity are checked at preparation. Dynamic property types, destination shapes, value limits and the shared operation budget are still checked during every evaluation.
|
|
111
|
+
|
|
112
|
+
`preparePageExpression(expression)` similarly returns `(context) => value` for an immutable standalone expression, such as a repeated collection source. Preparation snapshots the declaration and checks its shape and arity once. Each evaluation reads the supplied context and resets its operation budget, while retaining dynamic value/type guards. Mutable literal outputs cannot alter the private snapshot. Replace the prepared function when the declaration changes; use `evaluatePageExpression` when intentionally editing a declaration in place between calls.
|
|
113
|
+
|
|
114
|
+
The plan retains no row contexts or results. Source declaration edits do not change an existing plan: prepare a new one when the Page revision changes. Literal objects in returned models are isolated from the private snapshot. `projectPageProperties(base, bindings, context)` remains available for one-shot calls and observes declaration edits on each invocation. Hosts using older SDK releases can keep that path until the prepared API is installed.
|
|
115
|
+
|
|
108
116
|
### Stable runtime contracts
|
|
109
117
|
|
|
110
118
|
`runtimeContractVersion` is a provider-owned public contract identifier, independent of implementation revisions. `resolvePage` and `compileWorkbenchRuntimeBundle` derive it from exact governed registrations. The Page compiler rejects user-supplied contract labels that disagree with those registrations. A compatible implementation can serve a previously compiled RenderNode without changing the published definition or its dependency hashes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-expression.d.ts","sourceRoot":"","sources":["../../src/contracts/page-expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3D,eAAO,MAAM,gBAAgB,aAG5B,CAAC;AACF,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AACrE,eAAO,MAAM,wBAAwB;;;;;;;;;EAA4F,CAAC;AAClI,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAYtF,eAAO,MAAM,sBAAsB;;;;;;EAAiG,CAAC;AAErI,eAAO,MAAM,qBAAqB,UAAW,OAAO,KAAG,
|
|
1
|
+
{"version":3,"file":"page-expression.d.ts","sourceRoot":"","sources":["../../src/contracts/page-expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3D,eAAO,MAAM,gBAAgB,aAG5B,CAAC;AACF,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AACrE,eAAO,MAAM,wBAAwB;;;;;;;;;EAA4F,CAAC;AAClI,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAYtF,eAAO,MAAM,sBAAsB;;;;;;EAAiG,CAAC;AAErI,eAAO,MAAM,qBAAqB,UAAW,OAAO,KAAG,IAwBtD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,gHAGK,CAAC;AAEvC,eAAO,MAAM,yBAAyB;;;;;;;;;;;kBAI3B,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,mBAAmB,eAAgB,cAAc,SAAS,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,KAAG,IAUvG,CAAC;AAEF,eAAO,MAAM,0BAA0B,eAAgB,cAAc,KAAG,QAAQ,cAAc,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAIhH,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kCAAkC,eAAgB,cAAc,KAAG,QAAQ,cAAc,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAqBxH,CAAC"}
|
|
@@ -23,6 +23,13 @@ const RecursivePageExpressionSchema = zod_1.z.lazy(() => zod_1.z.discriminatedUn
|
|
|
23
23
|
]));
|
|
24
24
|
exports.PAGE_EXPRESSION_LIMITS = Object.freeze({ depth: 32, nodes: 4096, operations: 20000, collection: 1000, bytes: 1048576 });
|
|
25
25
|
const assertPageValueBudget = (value) => {
|
|
26
|
+
// Scalar values cannot exceed node/depth limits. Avoid allocating a traversal
|
|
27
|
+
// stack for every scalar expression read/result; strings still have a byte cap.
|
|
28
|
+
if (value === null || typeof value !== 'object') {
|
|
29
|
+
if (typeof value === 'string' && value.length * 2 > exports.PAGE_EXPRESSION_LIMITS.bytes)
|
|
30
|
+
throw new Error('PAGE_EXPRESSION_BUDGET');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
26
33
|
const queue = [{ value, depth: 0 }];
|
|
27
34
|
let nodes = 0;
|
|
28
35
|
let bytes = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-expression.js","sourceRoot":"","sources":["../../src/contracts/page-expression.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"page-expression.js","sourceRoot":"","sources":["../../src/contracts/page-expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DECLARATIVE_CONTROL_API_PREFIX,
|
|
3
3
|
IsoDateTimeSchema,
|
|
4
4
|
JsonObjectSchema
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-J7I5CBDN.mjs";
|
|
6
6
|
|
|
7
7
|
// src/contracts/page-stream.ts
|
|
8
8
|
import { z } from "zod";
|
|
@@ -75,4 +75,4 @@ export {
|
|
|
75
75
|
pageStreamRoutes,
|
|
76
76
|
PageStreamControlResultSchema
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-4UVW5LEP.mjs.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
PAGE_STREAM_MAX_FRAME_BYTES,
|
|
5
5
|
PageStreamDescriptorSchema,
|
|
6
6
|
PageStreamEventSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4UVW5LEP.mjs";
|
|
8
8
|
import {
|
|
9
9
|
AccessPolicySchema,
|
|
10
10
|
ActionProgramDefinitionSchema,
|
|
@@ -110,7 +110,7 @@ import {
|
|
|
110
110
|
require_validation,
|
|
111
111
|
require_validation_error,
|
|
112
112
|
resolveThemeTokens
|
|
113
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-J7I5CBDN.mjs";
|
|
114
114
|
|
|
115
115
|
// node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js
|
|
116
116
|
var require_dynamicAnchor = __commonJS({
|
|
@@ -6409,9 +6409,7 @@ var readPageValue = (value, path) => {
|
|
|
6409
6409
|
};
|
|
6410
6410
|
var unary = /* @__PURE__ */ new Set(["not", "string", "number", "length", "round", "entries", "from-entries", "trim", "encode-uri-component"]);
|
|
6411
6411
|
var binary = /* @__PURE__ */ new Set(["subtract", "divide", "equals", "not-equals", "less-than", "less-or-equal", "greater-than", "greater-or-equal", "includes", "get", "fixed"]);
|
|
6412
|
-
var
|
|
6413
|
-
assertBudget(input);
|
|
6414
|
-
const expression = PageExpressionSchema.parse(input);
|
|
6412
|
+
var assertExpressionArity = (expression) => {
|
|
6415
6413
|
const check = (node) => {
|
|
6416
6414
|
if (node.kind === "operator") {
|
|
6417
6415
|
if (unary.has(node.operator) && node.arguments.length !== 1 || binary.has(node.operator) && node.arguments.length !== 2 || ["set-path", "slice"].includes(node.operator) && node.arguments.length !== 3 || node.operator === "number-format" && node.arguments.length !== 5) fail("PAGE_EXPRESSION_ARITY");
|
|
@@ -6428,6 +6426,11 @@ var compilePageExpression = (input) => {
|
|
|
6428
6426
|
}
|
|
6429
6427
|
};
|
|
6430
6428
|
check(expression);
|
|
6429
|
+
};
|
|
6430
|
+
var compilePageExpression = (input) => {
|
|
6431
|
+
assertBudget(input);
|
|
6432
|
+
const expression = PageExpressionSchema.parse(input);
|
|
6433
|
+
assertExpressionArity(expression);
|
|
6431
6434
|
return expression;
|
|
6432
6435
|
};
|
|
6433
6436
|
var number = (value) => typeof value === "number" && Number.isFinite(value) ? value : fail("PAGE_EXPRESSION_TYPE_NUMBER");
|
|
@@ -6458,7 +6461,11 @@ var same = (a, b) => {
|
|
|
6458
6461
|
var evaluateCompiled = (expression, context, budget) => {
|
|
6459
6462
|
const run = (node, current) => {
|
|
6460
6463
|
if (++budget.operations > PAGE_EXPRESSION_LIMITS.operations) fail("PAGE_EXPRESSION_BUDGET");
|
|
6461
|
-
if (node.kind === "literal")
|
|
6464
|
+
if (node.kind === "literal") {
|
|
6465
|
+
if (!budget.literals || node.value === null || typeof node.value !== "object") return node.value;
|
|
6466
|
+
if (!budget.literals.has(node)) budget.literals.set(node, structuredClone(node.value));
|
|
6467
|
+
return budget.literals.get(node);
|
|
6468
|
+
}
|
|
6462
6469
|
if (node.kind === "read") {
|
|
6463
6470
|
const value = readPageValue(current[node.root], node.path) ?? null;
|
|
6464
6471
|
assertBudget(value);
|
|
@@ -6602,6 +6609,10 @@ var evaluateCompiled = (expression, context, budget) => {
|
|
|
6602
6609
|
return result;
|
|
6603
6610
|
};
|
|
6604
6611
|
var evaluatePageExpression = (expression, context) => evaluateCompiled(compilePageExpression(expression), context, { operations: 0 });
|
|
6612
|
+
var preparePageExpression = (input) => {
|
|
6613
|
+
const expression = compilePageExpression(input);
|
|
6614
|
+
return (context) => evaluateCompiled(expression, context, { operations: 0, literals: /* @__PURE__ */ new Map() });
|
|
6615
|
+
};
|
|
6605
6616
|
var write = (input, path, value) => {
|
|
6606
6617
|
const [key, ...rest] = path;
|
|
6607
6618
|
if (!key || unsafe.has(key)) return fail("PAGE_EXPRESSION_UNSAFE_PATH");
|
|
@@ -6610,7 +6621,7 @@ var write = (input, path, value) => {
|
|
|
6610
6621
|
if (child !== void 0 && (child === null || typeof child !== "object" || Array.isArray(child))) fail("PAGE_PROPERTY_PATH_TYPE");
|
|
6611
6622
|
return { ...input, [key]: write(child ?? {}, rest, value) };
|
|
6612
6623
|
};
|
|
6613
|
-
var
|
|
6624
|
+
var parsePropertyBindings = (bindings) => {
|
|
6614
6625
|
assertBudget(bindings);
|
|
6615
6626
|
const parsed = bindings.map((binding) => PagePropertyBindingSchema.parse(binding));
|
|
6616
6627
|
const paths = [];
|
|
@@ -6618,14 +6629,35 @@ var projectPageProperties = (base, bindings, context) => {
|
|
|
6618
6629
|
if (paths.some((path) => path.slice(0, Math.min(path.length, binding.targetPath.length)).every((key, i) => key === binding.targetPath[i]))) fail("PAGE_PROPERTY_OVERLAP");
|
|
6619
6630
|
paths.push(binding.targetPath);
|
|
6620
6631
|
}
|
|
6621
|
-
|
|
6622
|
-
|
|
6623
|
-
|
|
6632
|
+
return parsed;
|
|
6633
|
+
};
|
|
6634
|
+
var preparePropertyWriter = (path, index = 0) => {
|
|
6635
|
+
const key = path[index];
|
|
6636
|
+
if (index === path.length - 1) return (input, value) => ({ ...input, [key]: value });
|
|
6637
|
+
const childWriter = preparePropertyWriter(path, index + 1);
|
|
6638
|
+
return (input, value) => {
|
|
6639
|
+
const child = input[key];
|
|
6640
|
+
if (child !== void 0 && (child === null || typeof child !== "object" || Array.isArray(child))) fail("PAGE_PROPERTY_PATH_TYPE");
|
|
6641
|
+
return { ...input, [key]: childWriter(child ?? {}, value) };
|
|
6642
|
+
};
|
|
6643
|
+
};
|
|
6644
|
+
var projectParsedProperties = (base, parsed, context, writers) => {
|
|
6645
|
+
const budget = { operations: 0, ...writers ? { literals: /* @__PURE__ */ new Map() } : {} };
|
|
6646
|
+
return parsed.reduce((model, binding, index) => {
|
|
6647
|
+
if (!writers) assertExpressionArity(binding.expression);
|
|
6648
|
+
const value = evaluateCompiled(binding.expression, context, budget);
|
|
6624
6649
|
const type = value === null ? "null" : Array.isArray(value) ? "array" : typeof value;
|
|
6625
6650
|
if (binding.valueType && type !== binding.valueType) fail("PAGE_PROPERTY_TYPE");
|
|
6626
|
-
return write(model, binding.targetPath, value);
|
|
6651
|
+
return writers ? writers[index](model, value) : write(model, binding.targetPath, value);
|
|
6627
6652
|
}, base);
|
|
6628
6653
|
};
|
|
6654
|
+
var preparePagePropertyProjection = (bindings) => {
|
|
6655
|
+
const parsed = parsePropertyBindings(bindings);
|
|
6656
|
+
parsed.forEach((binding) => assertExpressionArity(binding.expression));
|
|
6657
|
+
const writers = parsed.map((binding) => preparePropertyWriter(binding.targetPath));
|
|
6658
|
+
return (base, context) => projectParsedProperties(base, parsed, context, writers);
|
|
6659
|
+
};
|
|
6660
|
+
var projectPageProperties = (base, bindings, context) => projectParsedProperties(base, parsePropertyBindings(bindings), context);
|
|
6629
6661
|
|
|
6630
6662
|
// src/runtime/record-editor-draft.ts
|
|
6631
6663
|
var own = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
|
|
@@ -7250,6 +7282,8 @@ export {
|
|
|
7250
7282
|
compilePageExpression,
|
|
7251
7283
|
writePageDraftPath,
|
|
7252
7284
|
evaluatePageExpression,
|
|
7285
|
+
preparePageExpression,
|
|
7286
|
+
preparePagePropertyProjection,
|
|
7253
7287
|
projectPageProperties,
|
|
7254
7288
|
recordEditorValuesEqual,
|
|
7255
7289
|
recordEditorPathKey,
|
|
@@ -7277,4 +7311,4 @@ export {
|
|
|
7277
7311
|
PageCompositionSchema,
|
|
7278
7312
|
compilePageComposition
|
|
7279
7313
|
};
|
|
7280
|
-
//# sourceMappingURL=chunk-
|
|
7314
|
+
//# sourceMappingURL=chunk-6BWJ6PMM.mjs.map
|