@inf-monkeys-tech/monkeys 1.1.24 → 1.1.25
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 +25 -0
- package/lib/contracts/declarative-control-http.d.ts +148 -0
- package/lib/contracts/declarative-control-http.d.ts.map +1 -1
- package/lib/contracts/declarative-control.d.ts +31 -0
- package/lib/contracts/declarative-control.d.ts.map +1 -1
- package/lib/contracts/declarative-control.js +6 -0
- package/lib/contracts/declarative-control.js.map +1 -1
- package/lib/contracts/declarative-document-import.d.ts +25 -0
- package/lib/contracts/declarative-document-import.d.ts.map +1 -1
- package/lib/contracts/declarative-publication-job.d.ts +16 -0
- package/lib/contracts/declarative-publication-job.d.ts.map +1 -1
- package/lib/esm/chunk-4H5MD2LH.mjs +7280 -0
- package/lib/esm/chunk-4H5MD2LH.mjs.map +1 -0
- package/lib/esm/chunk-4ZSCTEY6.mjs +1009 -0
- package/lib/esm/chunk-4ZSCTEY6.mjs.map +1 -0
- package/lib/esm/chunk-H7J4XGXK.mjs +159 -0
- package/lib/esm/chunk-H7J4XGXK.mjs.map +1 -0
- package/lib/esm/chunk-KRIKORSN.mjs +20328 -0
- package/lib/esm/chunk-KRIKORSN.mjs.map +1 -0
- package/lib/esm/chunk-X4YQITI2.mjs +205 -0
- package/lib/esm/chunk-X4YQITI2.mjs.map +1 -0
- package/lib/esm/chunk-YKM3R2KZ.mjs +78 -0
- package/lib/esm/chunk-YKM3R2KZ.mjs.map +1 -0
- package/lib/esm/contracts/index.mjs +585 -20882
- package/lib/esm/contracts/index.mjs.map +1 -1
- package/lib/esm/index.mjs +765 -27904
- package/lib/esm/index.mjs.map +1 -1
- package/lib/esm/runtime/index.mjs +144 -26592
- package/lib/esm/runtime/index.mjs.map +1 -1
- package/lib/esm/schemas/index.mjs +352 -20670
- package/lib/esm/schemas/index.mjs.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/json-schema/page-runtime-bundle.schema.json +15 -0
- package/lib/json-schema/page.schema.json +15 -0
- package/lib/runtime/declarative-control-compiler.d.ts.map +1 -1
- package/lib/runtime/declarative-control-compiler.js +2 -0
- package/lib/runtime/declarative-control-compiler.js.map +1 -1
- package/lib/runtime/index.d.ts +2 -0
- package/lib/runtime/index.d.ts.map +1 -1
- package/lib/runtime/index.js +2 -0
- package/lib/runtime/index.js.map +1 -1
- package/lib/runtime/page-composition.d.ts +35 -0
- package/lib/runtime/page-composition.d.ts.map +1 -0
- package/lib/runtime/page-composition.js +107 -0
- package/lib/runtime/page-composition.js.map +1 -0
- package/lib/runtime/runtime-definition-wire.d.ts +8275 -0
- package/lib/runtime/runtime-definition-wire.d.ts.map +1 -0
- package/lib/runtime/runtime-definition-wire.js +111 -0
- package/lib/runtime/runtime-definition-wire.js.map +1 -0
- package/lib/schemas/index.d.ts +14 -0
- package/lib/schemas/index.d.ts.map +1 -1
- package/lib/theme-tokens/core.d.ts.map +1 -1
- package/lib/theme-tokens/core.js +16 -8
- package/lib/theme-tokens/core.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compilePageComposition = exports.PageCompositionSchema = exports.PageComponentDefinitionSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const declarative_control_1 = require("../contracts/declarative-control");
|
|
6
|
+
const common_1 = require("../contracts/common");
|
|
7
|
+
/** Source-level components expand at publication, so existing hosts keep the same Page contract. */
|
|
8
|
+
const Name = zod_1.z.string().regex(/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/);
|
|
9
|
+
const Path = zod_1.z.array(zod_1.z.union([Name, zod_1.z.number().int().min(0).max(4095)])).min(1).max(32);
|
|
10
|
+
exports.PageComponentDefinitionSchema = zod_1.z.object({
|
|
11
|
+
root: declarative_control_1.PageNodeSchema,
|
|
12
|
+
inputs: zod_1.z.record(Name, zod_1.z.object({ path: Path, default: common_1.JsonValueSchema.optional() }).strict()).optional(),
|
|
13
|
+
/** A slot names the local node whose children are supplied by the instance. */
|
|
14
|
+
slots: zod_1.z.record(Name, Name).optional(),
|
|
15
|
+
}).strict();
|
|
16
|
+
const SourceNode = zod_1.z.lazy(() => zod_1.z.union([
|
|
17
|
+
zod_1.z.object({ id: Name, use: Name, inputs: zod_1.z.record(Name, common_1.JsonValueSchema).optional(), slots: zod_1.z.record(Name, zod_1.z.array(SourceNode)).optional() }).strict(),
|
|
18
|
+
zod_1.z.object({ children: zod_1.z.array(SourceNode).optional() }).passthrough(),
|
|
19
|
+
]));
|
|
20
|
+
exports.PageCompositionSchema = zod_1.z.object({
|
|
21
|
+
contract: zod_1.z.literal('PageComposition'),
|
|
22
|
+
schemaVersion: zod_1.z.literal(1),
|
|
23
|
+
/** Page header and state declarations; body is supplied separately. */
|
|
24
|
+
page: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
|
|
25
|
+
components: zod_1.z.record(Name, exports.PageComponentDefinitionSchema),
|
|
26
|
+
body: SourceNode,
|
|
27
|
+
}).strict();
|
|
28
|
+
const forbidden = new Set(['__proto__', 'prototype', 'constructor']);
|
|
29
|
+
function assign(root, path, value) {
|
|
30
|
+
let target = root;
|
|
31
|
+
for (const [index, key] of path.entries()) {
|
|
32
|
+
if (forbidden.has(String(key)) || ['id', 'children', 'data', 'actions', 'programActions', 'on', 'effects'].includes(String(path[0])))
|
|
33
|
+
throw new TypeError('A component input must target presentation fields, not identities or executable declarations.');
|
|
34
|
+
if (index === path.length - 1) {
|
|
35
|
+
target[key] = structuredClone(value);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (target[key] === null || typeof target[key] !== 'object')
|
|
39
|
+
throw new TypeError('Component input path does not exist.');
|
|
40
|
+
target = target[key];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Reusable presentation trees with explicit inputs/slots; business state and operations stay in Page. */
|
|
44
|
+
function compilePageComposition(input) {
|
|
45
|
+
const source = exports.PageCompositionSchema.parse(input);
|
|
46
|
+
let count = 0;
|
|
47
|
+
const ids = new Set();
|
|
48
|
+
const expand = (value, depth) => {
|
|
49
|
+
if (++count > 4096 || depth > 64)
|
|
50
|
+
throw new RangeError('Page composition exceeds its node budget.');
|
|
51
|
+
if ('use' in value) {
|
|
52
|
+
const definition = source.components[value.use];
|
|
53
|
+
if (!definition)
|
|
54
|
+
throw new TypeError(`Unknown Page component ${value.use}.`);
|
|
55
|
+
const root = structuredClone(definition.root);
|
|
56
|
+
const localNodes = new Map();
|
|
57
|
+
const namespace = (node, isRoot = false) => {
|
|
58
|
+
if (localNodes.has(node.id))
|
|
59
|
+
throw new TypeError('Duplicate component-local node id.');
|
|
60
|
+
localNodes.set(node.id, node);
|
|
61
|
+
// Operations and scoped state belong to the instance's supplied slots, not a shared template.
|
|
62
|
+
if (node.data?.length || node.actions?.length || node.programActions?.length || node.on?.length || node.effects?.length)
|
|
63
|
+
throw new TypeError('Component templates contain presentation only; supply business operations through slots.');
|
|
64
|
+
node.id = isRoot ? value.id : `${value.id}.${node.id}`;
|
|
65
|
+
node.children?.forEach(child => namespace(child));
|
|
66
|
+
};
|
|
67
|
+
namespace(root, true);
|
|
68
|
+
for (const node of localNodes.values()) {
|
|
69
|
+
if (node.slot && localNodes.has(node.slot))
|
|
70
|
+
node.slot = localNodes.get(node.slot).id;
|
|
71
|
+
const slots = node.model?.slots;
|
|
72
|
+
if (slots && typeof slots === 'object' && !Array.isArray(slots)) {
|
|
73
|
+
node.model.slots = Object.fromEntries(Object.entries(slots).map(([name, target]) => [
|
|
74
|
+
name, typeof target === 'string' && localNodes.has(target) ? localNodes.get(target).id : target,
|
|
75
|
+
]));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
for (const name of Object.keys(value.inputs ?? {}))
|
|
79
|
+
if (!definition.inputs?.[name])
|
|
80
|
+
throw new TypeError(`Unknown component input ${name}.`);
|
|
81
|
+
for (const [name, binding] of Object.entries(definition.inputs ?? {})) {
|
|
82
|
+
const supplied = Object.prototype.hasOwnProperty.call(value.inputs ?? {}, name) ? value.inputs[name] : binding.default;
|
|
83
|
+
if (supplied === undefined)
|
|
84
|
+
throw new TypeError(`Missing component input ${name}.`);
|
|
85
|
+
assign(root, binding.path, supplied);
|
|
86
|
+
}
|
|
87
|
+
for (const name of Object.keys(value.slots ?? {}))
|
|
88
|
+
if (!definition.slots?.[name])
|
|
89
|
+
throw new TypeError(`Unknown component slot ${name}.`);
|
|
90
|
+
for (const [name, localId] of Object.entries(definition.slots ?? {})) {
|
|
91
|
+
const node = localNodes.get(localId);
|
|
92
|
+
if (!node)
|
|
93
|
+
throw new TypeError(`Unknown component slot target ${localId}.`);
|
|
94
|
+
if (value.slots?.[name])
|
|
95
|
+
node.children = value.slots[name];
|
|
96
|
+
}
|
|
97
|
+
return expand(root, depth + 1);
|
|
98
|
+
}
|
|
99
|
+
if (ids.has(value.id))
|
|
100
|
+
throw new TypeError(`Duplicate Page node ${value.id}.`);
|
|
101
|
+
ids.add(value.id);
|
|
102
|
+
return { ...value, ...(value.children ? { children: value.children.map((child) => expand(child, depth + 1)) } : {}) };
|
|
103
|
+
};
|
|
104
|
+
return declarative_control_1.PageSchema.parse({ ...source.page, contract: 'Page', schemaVersion: 1, body: expand(source.body, 0) });
|
|
105
|
+
}
|
|
106
|
+
exports.compilePageComposition = compilePageComposition;
|
|
107
|
+
//# sourceMappingURL=page-composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-composition.js","sourceRoot":"","sources":["../../src/runtime/page-composition.ts"],"names":[],"mappings":"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"}
|