@dsh-cc/tools 0.5.0

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.
Files changed (121) hide show
  1. package/LICENSE +201 -0
  2. package/README.i18n.yaml +6 -0
  3. package/README.md +209 -0
  4. package/README.zh.md +200 -0
  5. package/lib/abort-utils.d.ts +80 -0
  6. package/lib/abort-utils.d.ts.map +1 -0
  7. package/lib/abort-utils.js +186 -0
  8. package/lib/abort-utils.js.map +1 -0
  9. package/lib/cc-names.d.ts +100 -0
  10. package/lib/cc-names.d.ts.map +1 -0
  11. package/lib/cc-names.js +197 -0
  12. package/lib/cc-names.js.map +1 -0
  13. package/lib/code-mode.d.ts +46 -0
  14. package/lib/code-mode.d.ts.map +1 -0
  15. package/lib/code-mode.js +380 -0
  16. package/lib/code-mode.js.map +1 -0
  17. package/lib/define-tool.d.ts +103 -0
  18. package/lib/define-tool.d.ts.map +1 -0
  19. package/lib/define-tool.js +354 -0
  20. package/lib/define-tool.js.map +1 -0
  21. package/lib/index.d.ts +348 -0
  22. package/lib/index.d.ts.map +1 -0
  23. package/lib/index.js +289 -0
  24. package/lib/index.js.map +1 -0
  25. package/lib/invariant.d.ts +13 -0
  26. package/lib/invariant.d.ts.map +1 -0
  27. package/lib/invariant.js +123 -0
  28. package/lib/invariant.js.map +1 -0
  29. package/lib/json-render.d.ts +18 -0
  30. package/lib/json-render.d.ts.map +1 -0
  31. package/lib/json-render.js +111 -0
  32. package/lib/json-render.js.map +1 -0
  33. package/lib/json-schema-value.d.ts +18 -0
  34. package/lib/json-schema-value.d.ts.map +1 -0
  35. package/lib/json-schema-value.js +238 -0
  36. package/lib/json-schema-value.js.map +1 -0
  37. package/lib/json-schema.d.ts +101 -0
  38. package/lib/json-schema.d.ts.map +1 -0
  39. package/lib/json-schema.js +351 -0
  40. package/lib/json-schema.js.map +1 -0
  41. package/lib/presentation.d.ts +367 -0
  42. package/lib/presentation.d.ts.map +1 -0
  43. package/lib/presentation.js +8 -0
  44. package/lib/presentation.js.map +1 -0
  45. package/lib/py-names.d.ts +163 -0
  46. package/lib/py-names.d.ts.map +1 -0
  47. package/lib/py-names.js +236 -0
  48. package/lib/py-names.js.map +1 -0
  49. package/lib/py-render.d.ts +23 -0
  50. package/lib/py-render.d.ts.map +1 -0
  51. package/lib/py-render.js +434 -0
  52. package/lib/py-render.js.map +1 -0
  53. package/lib/py-sdk-doc.d.ts +29 -0
  54. package/lib/py-sdk-doc.d.ts.map +1 -0
  55. package/lib/py-sdk-doc.js +114 -0
  56. package/lib/py-sdk-doc.js.map +1 -0
  57. package/lib/py-types.d.ts +34 -0
  58. package/lib/py-types.d.ts.map +1 -0
  59. package/lib/py-types.js +40 -0
  60. package/lib/py-types.js.map +1 -0
  61. package/lib/run-code-defs.d.ts +77 -0
  62. package/lib/run-code-defs.d.ts.map +1 -0
  63. package/lib/run-code-defs.js +98 -0
  64. package/lib/run-code-defs.js.map +1 -0
  65. package/lib/runtime-code.d.ts +65 -0
  66. package/lib/runtime-code.d.ts.map +1 -0
  67. package/lib/runtime-code.js +129 -0
  68. package/lib/runtime-code.js.map +1 -0
  69. package/lib/runtime-core.d.ts +130 -0
  70. package/lib/runtime-core.d.ts.map +1 -0
  71. package/lib/runtime-core.js +33 -0
  72. package/lib/runtime-core.js.map +1 -0
  73. package/lib/runtime-execute.d.ts +82 -0
  74. package/lib/runtime-execute.d.ts.map +1 -0
  75. package/lib/runtime-execute.js +333 -0
  76. package/lib/runtime-execute.js.map +1 -0
  77. package/lib/runtime-registry.d.ts +131 -0
  78. package/lib/runtime-registry.d.ts.map +1 -0
  79. package/lib/runtime-registry.js +269 -0
  80. package/lib/runtime-registry.js.map +1 -0
  81. package/lib/runtime-results.d.ts +32 -0
  82. package/lib/runtime-results.d.ts.map +1 -0
  83. package/lib/runtime-results.js +163 -0
  84. package/lib/runtime-results.js.map +1 -0
  85. package/lib/runtime-schemas.d.ts +112 -0
  86. package/lib/runtime-schemas.d.ts.map +1 -0
  87. package/lib/runtime-schemas.js +222 -0
  88. package/lib/runtime-schemas.js.map +1 -0
  89. package/lib/scheduler.d.ts +22 -0
  90. package/lib/scheduler.d.ts.map +1 -0
  91. package/lib/scheduler.js +21 -0
  92. package/lib/scheduler.js.map +1 -0
  93. package/lib/schema-spec.d.ts +154 -0
  94. package/lib/schema-spec.d.ts.map +1 -0
  95. package/lib/schema-spec.js +9 -0
  96. package/lib/schema-spec.js.map +1 -0
  97. package/lib/schema.d.ts +5 -0
  98. package/lib/schema.d.ts.map +1 -0
  99. package/lib/schema.js +3 -0
  100. package/lib/schema.js.map +1 -0
  101. package/lib/testing.d.ts +25 -0
  102. package/lib/testing.d.ts.map +1 -0
  103. package/lib/testing.js +25 -0
  104. package/lib/testing.js.map +1 -0
  105. package/lib/tool-layer.d.ts +49 -0
  106. package/lib/tool-layer.d.ts.map +1 -0
  107. package/lib/tool-layer.js +57 -0
  108. package/lib/tool-layer.js.map +1 -0
  109. package/lib/tool-types.d.ts +385 -0
  110. package/lib/tool-types.d.ts.map +1 -0
  111. package/lib/tool-types.js +11 -0
  112. package/lib/tool-types.js.map +1 -0
  113. package/lib/ts-types.d.ts +37 -0
  114. package/lib/ts-types.d.ts.map +1 -0
  115. package/lib/ts-types.js +265 -0
  116. package/lib/ts-types.js.map +1 -0
  117. package/lib/types.d.ts +55 -0
  118. package/lib/types.d.ts.map +1 -0
  119. package/lib/types.js +7 -0
  120. package/lib/types.js.map +1 -0
  121. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Package-owned tool-pipeline invariants. @module @dsh-cc/tools/invariant */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ /** Cordis companion plugin name. */
4
+ export declare const name = "tools-invariant";
5
+ /** Service required before the companion can reserve package ownership. */
6
+ export declare const inject: string[];
7
+ /**
8
+ * Register the tools invariant companion.
9
+ * @param ctx - Cordis context carrying the invariant service.
10
+ * @returns the installed registration's disposer after setup succeeds.
11
+ */
12
+ export declare const apply: (ctx: Context) => Promise<() => void>;
13
+ //# sourceMappingURL=invariant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../src/invariant.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOlD,oCAAoC;AACpC,eAAO,MAAM,IAAI,oBAAoB,CAAA;AACrC,2EAA2E;AAC3E,eAAO,MAAM,MAAM,UAAiB,CAAA;AA6GpC;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,OAAO,KAAG,OAAO,CAAC,MAAM,IAAI,CACU,CAAA"}
@@ -0,0 +1,123 @@
1
+ /** Package-owned tool-pipeline invariants. @module @dsh-cc/tools/invariant */
2
+ const PACKAGE_NAME = '@dsh-cc/tools';
3
+ /** Cordis companion plugin name. */
4
+ export const name = 'tools-invariant';
5
+ /** Service required before the companion can reserve package ownership. */
6
+ export const inject = ['invariants'];
7
+ /** Validate the immutable final execution/result snapshot. */
8
+ function validateResult(exec, result, fail) {
9
+ if (!Object.isFrozen(exec))
10
+ fail('tools/result execution must be frozen before publication');
11
+ if (!Object.isFrozen(result) || !Object.isFrozen(result.content)) {
12
+ fail('tools/result outcome and content must be frozen before publication');
13
+ }
14
+ if (exec.name.length === 0 || String(exec.callId).length === 0) {
15
+ fail('tools/result execution must carry non-empty name and callId');
16
+ }
17
+ }
18
+ /** Install monotonic pipeline, final-snapshot, and code-dispatch enclosure checks. */
19
+ const install = Object.assign((ctx, fail) => {
20
+ const stages = new WeakMap();
21
+ const openTurns = new WeakMap();
22
+ const dispatchRoots = new WeakMap();
23
+ const validateDispatch = (session, event) => {
24
+ if (event.type !== 'tool/code-dispatch-start' && event.type !== 'tool/code-dispatch')
25
+ return;
26
+ const root = String(event.data.rootCallId);
27
+ const parent = String(event.data.parentCallId);
28
+ const child = String(event.data.subCallId);
29
+ if (root.length === 0 || parent.length === 0 || child.length === 0) {
30
+ fail(`${event.type} must carry non-empty rootCallId, parentCallId, and subCallId`);
31
+ return;
32
+ }
33
+ const roots = dispatchRoots.get(session);
34
+ const known = roots?.get(child);
35
+ if (known !== undefined && known !== root)
36
+ fail(`${event.type} changed rootCallId for subCallId ${child}`);
37
+ if (parent !== root && roots?.get(parent) !== root) {
38
+ fail(`${event.type} parentCallId ${parent} does not belong to rootCallId ${root}`);
39
+ }
40
+ };
41
+ const commitDispatch = (session, event) => {
42
+ if (event.type !== 'tool/code-dispatch-start' && event.type !== 'tool/code-dispatch')
43
+ return;
44
+ const roots = dispatchRoots.get(session);
45
+ roots.set(String(event.data.subCallId), String(event.data.rootCallId));
46
+ };
47
+ const seed = (session) => {
48
+ let openTurn = null;
49
+ dispatchRoots.set(session, new Map());
50
+ for (const event of session.events) {
51
+ validateDispatch(session, event);
52
+ commitDispatch(session, event);
53
+ if (event.type === 'turn/start')
54
+ openTurn = event.data.turn;
55
+ else if (event.type === 'turn/end')
56
+ openTurn = null;
57
+ else if ((event.type === 'tool/code-dispatch-start' || event.type === 'tool/code-dispatch')
58
+ && openTurn === null) {
59
+ fail(`${event.type} appended outside any open turn`);
60
+ }
61
+ }
62
+ openTurns.set(session, openTurn);
63
+ return openTurn;
64
+ };
65
+ const openTurnFor = (session) => openTurns.get(session) ?? seed(session);
66
+ for (const session of ctx.sessions.list())
67
+ seed(session);
68
+ ctx.on('session/created', (session) => { seed(session); }, { global: true });
69
+ ctx.on('session/event', (session, event) => {
70
+ validateDispatch(session, event);
71
+ commitDispatch(session, event);
72
+ if (event.type === 'turn/start')
73
+ openTurns.set(session, event.data.turn);
74
+ else if (event.type === 'turn/end')
75
+ openTurns.set(session, null);
76
+ }, { global: true });
77
+ ctx.on('internal/dispatch', (_mode, eventName, args) => {
78
+ if (eventName === 'session/event') {
79
+ const [session, event] = args;
80
+ validateDispatch(session, event);
81
+ if ((event.type === 'tool/code-dispatch-start' || event.type === 'tool/code-dispatch')
82
+ && openTurnFor(session) === null) {
83
+ fail(`${event.type} appended outside any open turn`);
84
+ }
85
+ return;
86
+ }
87
+ if (eventName === 'tools/pre-execute') {
88
+ const exec = args[0];
89
+ if (stages.has(exec))
90
+ fail('tools/pre-execute repeated for one execution');
91
+ stages.set(exec, 'pre');
92
+ return;
93
+ }
94
+ if (eventName === 'tools/execute') {
95
+ const exec = args[0];
96
+ if (stages.get(exec) !== 'pre')
97
+ fail('tools/execute must follow tools/pre-execute');
98
+ stages.set(exec, 'execute');
99
+ return;
100
+ }
101
+ if (eventName === 'tools/post-execute') {
102
+ const exec = args[0];
103
+ const previous = stages.get(exec);
104
+ if (previous !== 'pre' && previous !== 'execute') {
105
+ fail('tools/post-execute must follow tools/pre-execute or tools/execute');
106
+ }
107
+ stages.set(exec, 'post');
108
+ return;
109
+ }
110
+ if (eventName !== 'tools/result')
111
+ return;
112
+ const [exec, result] = args;
113
+ validateResult(exec, result, fail);
114
+ stages.delete(exec);
115
+ }, { global: true });
116
+ }, { inject: ['sessions'] });
117
+ /**
118
+ * Register the tools invariant companion.
119
+ * @param ctx - Cordis context carrying the invariant service.
120
+ * @returns the installed registration's disposer after setup succeeds.
121
+ */
122
+ export const apply = (ctx) => Promise.resolve(ctx.invariants.register(PACKAGE_NAME, install));
123
+ //# sourceMappingURL=invariant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.js","sourceRoot":"","sources":["../src/invariant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Lossless-JSON argument normalization and bounded-indentation JSON
3
+ * presentation for the Code Mode transport in {@link ./code-mode.ts}.
4
+ * @module dsh-tools/json-render
5
+ */
6
+ import type { JsonValue } from '@deepseek-ai/dsh-session';
7
+ /**
8
+ * Snapshot one binding call's argument as lossless JSON, then snapshot that
9
+ * detached value again so dispatch and logging stay independent without
10
+ * reintroducing structured-clone's platform-specific nesting limit.
11
+ */
12
+ export declare function jsonNormalizeArgs(value: unknown): {
13
+ dispatched: unknown;
14
+ logged: unknown;
15
+ };
16
+ /** Render one present program completion value for the model-facing result text. */
17
+ export declare function renderValue(value: JsonValue): string;
18
+ //# sourceMappingURL=json-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-render.d.ts","sourceRoot":"","sources":["../src/json-render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAgB1F;AAuFD,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Lossless-JSON argument normalization and bounded-indentation JSON
3
+ * presentation for the Code Mode transport in {@link ./code-mode.ts}.
4
+ * @module dsh-tools/json-render
5
+ */
6
+ import { snapshotJsonValue } from '@deepseek-ai/dsh-session';
7
+ /**
8
+ * Snapshot one binding call's argument as lossless JSON, then snapshot that
9
+ * detached value again so dispatch and logging stay independent without
10
+ * reintroducing structured-clone's platform-specific nesting limit.
11
+ */
12
+ export function jsonNormalizeArgs(value) {
13
+ let snapshot;
14
+ try {
15
+ snapshot = snapshotJsonValue(value);
16
+ }
17
+ catch (error) {
18
+ throw new Error(`tool arguments must be lossless JSON: ${error instanceof Error ? error.message : String(error)}`);
19
+ }
20
+ if (snapshot === undefined) {
21
+ throw new Error('tool arguments must be lossless JSON (call the tool with an arguments object, e.g. `{}`)');
22
+ }
23
+ const logged = snapshotJsonValue(snapshot);
24
+ /* v8 ignore next -- snapshot is already a detached lossless JSON value. */
25
+ if (logged === undefined) {
26
+ throw new Error('tool arguments could not be detached for durable logging');
27
+ }
28
+ return { dispatched: snapshot, logged };
29
+ }
30
+ /** Two-space JSON presentation, matching the existing shallow `run_code` text contract. */
31
+ const JSON_INDENT = ' ';
32
+ /**
33
+ * ECMAScript caps `JSON.stringify`'s `space` string at ten characters. The
34
+ * renderer also caps TOTAL indentation there, compacting deeper subtrees, so
35
+ * formatted output remains linear in the canonical JSON size.
36
+ */
37
+ const MAX_JSON_INDENT_CHARS = 10;
38
+ /** Render one non-string JSON root without recursive traversal or unbounded indentation growth. */
39
+ function renderJsonValue(value) {
40
+ const chunks = [];
41
+ const tasks = [{ kind: 'value', value, depth: 0, compact: false }];
42
+ for (let task = tasks.pop(); task !== undefined; task = tasks.pop()) {
43
+ if (task.kind === 'text') {
44
+ chunks.push(task.text);
45
+ continue;
46
+ }
47
+ const current = task.value;
48
+ if (current === null || typeof current === 'boolean' || typeof current === 'number') {
49
+ chunks.push(String(current));
50
+ continue;
51
+ }
52
+ if (typeof current === 'string') {
53
+ chunks.push(JSON.stringify(current));
54
+ continue;
55
+ }
56
+ const compact = task.compact || (task.depth + 1) * JSON_INDENT.length > MAX_JSON_INDENT_CHARS;
57
+ const childDepth = task.depth + 1;
58
+ if (Array.isArray(current)) {
59
+ chunks.push('[');
60
+ if (current.length === 0) {
61
+ chunks.push(']');
62
+ continue;
63
+ }
64
+ tasks.push({ kind: 'text', text: compact ? ']' : `\n${JSON_INDENT.repeat(task.depth)}]` });
65
+ for (let index = current.length - 1; index >= 0; index--) {
66
+ const item = current[index];
67
+ /* v8 ignore next -- canonical JsonValue arrays are dense. */
68
+ if (item === undefined)
69
+ throw new Error('cannot render a sparse JSON array');
70
+ tasks.push({ kind: 'value', value: item, depth: childDepth, compact });
71
+ tasks.push({
72
+ kind: 'text',
73
+ text: compact
74
+ ? index === 0 ? '' : ','
75
+ : `${index === 0 ? '\n' : ',\n'}${JSON_INDENT.repeat(childDepth)}`,
76
+ });
77
+ }
78
+ continue;
79
+ }
80
+ const keys = Object.keys(current);
81
+ chunks.push('{');
82
+ if (keys.length === 0) {
83
+ chunks.push('}');
84
+ continue;
85
+ }
86
+ tasks.push({ kind: 'text', text: compact ? '}' : `\n${JSON_INDENT.repeat(task.depth)}}` });
87
+ for (let index = keys.length - 1; index >= 0; index--) {
88
+ const key = keys[index];
89
+ /* v8 ignore next -- the loop is bounded by the captured key count. */
90
+ if (key === undefined)
91
+ throw new Error('cannot render a missing JSON object key');
92
+ const item = current[key];
93
+ /* v8 ignore next -- canonical JsonValue records contain no undefined properties. */
94
+ if (item === undefined)
95
+ throw new Error('cannot render an undefined JSON object property');
96
+ tasks.push({ kind: 'value', value: item, depth: childDepth, compact });
97
+ tasks.push({
98
+ kind: 'text',
99
+ text: compact
100
+ ? `${index === 0 ? '' : ','}${JSON.stringify(key)}:`
101
+ : `${index === 0 ? '\n' : ',\n'}${JSON_INDENT.repeat(childDepth)}${JSON.stringify(key)}: `,
102
+ });
103
+ }
104
+ }
105
+ return chunks.join('');
106
+ }
107
+ /** Render one present program completion value for the model-facing result text. */
108
+ export function renderValue(value) {
109
+ return typeof value === 'string' ? value : renderJsonValue(value);
110
+ }
111
+ //# sourceMappingURL=json-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-render.js","sourceRoot":"","sources":["../src/json-render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Value-side validation for the enforced JSON Schema subset: validates a
3
+ * candidate value against a schema already accepted by
4
+ * {@link ./json-schema.ts}'s raw-schema assertions and returns
5
+ * path-qualified violations.
6
+ * @module dsh-tools/json-schema-value
7
+ */
8
+ import type { JsonSchemaNode } from './json-schema.ts';
9
+ /**
10
+ * Validate a candidate value against an asserted raw schema. The function is
11
+ * total for arbitrary values and returns path-qualified violations.
12
+ * @param schema - a schema accepted by {@link assertSupportedJsonSchema}.
13
+ * @param value - the candidate JSON value.
14
+ * @param path - root label used in diagnostics.
15
+ * @returns All violations in walk order; empty means valid.
16
+ */
17
+ export declare function validateJsonSchemaValue(schema: JsonSchemaNode, value: unknown, path?: string): string[];
18
+ //# sourceMappingURL=json-schema-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-value.d.ts","sourceRoot":"","sources":["../src/json-schema-value.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAA;AAiPxE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,SAAU,GAAG,MAAM,EAAE,CAExG"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Value-side validation for the enforced JSON Schema subset: validates a
3
+ * candidate value against a schema already accepted by
4
+ * {@link ./json-schema.ts}'s raw-schema assertions and returns
5
+ * path-qualified violations.
6
+ * @module dsh-tools/json-schema-value
7
+ */
8
+ import { assertNever } from '@deepseek-ai/dsh-llm';
9
+ import { isJsonValue } from '@deepseek-ai/dsh-session';
10
+ import { isJsonNumber, isPlainJsonRecord, SCHEMA_TYPES } from "./json-schema.js";
11
+ /** Safely test the lossless JSON boundary when a getter may throw. */
12
+ function safelyIsJsonValue(value) {
13
+ try {
14
+ return isJsonValue(value);
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /** Root-aware diagnostic path for the parameter validator's empty sentinel. */
21
+ function diagnosticPath(path) {
22
+ return path === '' ? 'arguments' : path;
23
+ }
24
+ /** Append one object property without a leading dot at an implicit root. */
25
+ function propertyPath(path, key) {
26
+ return path === '' ? key : `${path}.${key}`;
27
+ }
28
+ /** The generic exception-containment diagnostic owned by one valid schema node. */
29
+ function losslessValueViolation(path) {
30
+ return [`"${diagnosticPath(path)}" must be a lossless JSON value`];
31
+ }
32
+ /** Append diagnostics without spreading a potentially wide child result as call arguments. */
33
+ function appendViolations(target, source) {
34
+ for (const violation of source)
35
+ target.push(violation);
36
+ }
37
+ /** Initialize one validation frame with empty aggregation state. */
38
+ function valueFrame(node, value, path) {
39
+ return {
40
+ node,
41
+ value,
42
+ path,
43
+ catches: false,
44
+ phase: 'start',
45
+ children: [],
46
+ childIndex: 0,
47
+ violations: [],
48
+ tailViolations: [],
49
+ matches: 0,
50
+ };
51
+ }
52
+ /** Validate one scalar node after its primitive type check. */
53
+ function checkScalarValue(node, value, path) {
54
+ const allowed = Object.hasOwn(node, 'enum') ? node.enum : undefined;
55
+ if (allowed !== undefined && !allowed.includes(value)) {
56
+ return [`"${diagnosticPath(path)}" must be one of ${JSON.stringify(allowed)}`];
57
+ }
58
+ if (Object.hasOwn(node, 'const') && value !== node.const) {
59
+ return [`"${diagnosticPath(path)}" must be ${JSON.stringify(node.const)}`];
60
+ }
61
+ return [];
62
+ }
63
+ /** Validate one trusted schema/value pair with explicit frames rather than recursive calls. */
64
+ function checkValue(schema, value, path) {
65
+ const frames = [valueFrame(schema, value, path)];
66
+ let rootResult;
67
+ const receive = (result) => {
68
+ const parent = frames.at(-1);
69
+ if (parent === undefined) {
70
+ rootResult = result;
71
+ return;
72
+ }
73
+ if (parent.kind === 'oneOf') {
74
+ if (result.length === 0)
75
+ parent.matches++;
76
+ }
77
+ else {
78
+ appendViolations(parent.violations, result);
79
+ }
80
+ };
81
+ const finish = (result) => {
82
+ frames.pop();
83
+ receive(result);
84
+ };
85
+ while (frames.length > 0) {
86
+ const frame = frames.at(-1);
87
+ /* v8 ignore next -- the loop condition guarantees a current frame. */
88
+ if (frame === undefined)
89
+ break;
90
+ try {
91
+ if (frame.phase === 'children') {
92
+ if (frame.childIndex < frame.children.length) {
93
+ const child = frame.children[frame.childIndex];
94
+ /* v8 ignore next -- childIndex is bounded by children.length. */
95
+ if (child === undefined)
96
+ throw new Error('missing schema-value child frame');
97
+ frame.childIndex++;
98
+ frames.push(valueFrame(child.node, child.value, child.path));
99
+ continue;
100
+ }
101
+ if (frame.kind === 'oneOf') {
102
+ finish(frame.matches === 1 ? [] : [`"${diagnosticPath(frame.path)}" must match exactly one oneOf branch (matched ${frame.matches})`]);
103
+ continue;
104
+ }
105
+ appendViolations(frame.violations, frame.tailViolations);
106
+ if (frame.violations.length > 0) {
107
+ finish(frame.violations);
108
+ }
109
+ else if (frame.kind === 'object') {
110
+ finish(safelyIsJsonValue(frame.value) ? [] : [`"${diagnosticPath(frame.path)}" must be a lossless JSON object`]);
111
+ }
112
+ else {
113
+ finish(safelyIsJsonValue(frame.value) ? [] : [`"${diagnosticPath(frame.path)}" must be a dense lossless JSON array`]);
114
+ }
115
+ continue;
116
+ }
117
+ const nodeType = Object.hasOwn(frame.node, 'type') ? frame.node.type : undefined;
118
+ frame.catches = !(nodeType !== undefined && !SCHEMA_TYPES.includes(nodeType));
119
+ const oneOf = Object.hasOwn(frame.node, 'oneOf') ? frame.node.oneOf : undefined;
120
+ if (oneOf !== undefined) {
121
+ frame.kind = 'oneOf';
122
+ frame.children = Array.from(oneOf, branch => ({ node: branch, value: frame.value, path: frame.path }));
123
+ frame.childIndex = 0;
124
+ frame.matches = 0;
125
+ frame.phase = 'children';
126
+ continue;
127
+ }
128
+ if (nodeType === undefined) {
129
+ finish(safelyIsJsonValue(frame.value) ? [] : losslessValueViolation(frame.path));
130
+ continue;
131
+ }
132
+ switch (nodeType) {
133
+ case 'object': {
134
+ if (!isPlainJsonRecord(frame.value)) {
135
+ finish([`"${diagnosticPath(frame.path)}" must be an object`]);
136
+ break;
137
+ }
138
+ const properties = Object.hasOwn(frame.node, 'properties') ? frame.node.properties ?? {} : {};
139
+ const violations = [];
140
+ const required = Object.hasOwn(frame.node, 'required') ? frame.node.required ?? [] : [];
141
+ for (const key of required) {
142
+ if (!Object.hasOwn(frame.value, key) || frame.value[key] === undefined) {
143
+ violations.push(`missing required property "${propertyPath(frame.path, key)}"`);
144
+ }
145
+ }
146
+ const children = [];
147
+ for (const [key, child] of Object.entries(properties)) {
148
+ if (!Object.hasOwn(frame.value, key) || frame.value[key] === undefined)
149
+ continue;
150
+ children.push({ node: child, value: frame.value[key], path: propertyPath(frame.path, key) });
151
+ }
152
+ const tailViolations = [];
153
+ if (Object.hasOwn(frame.node, 'additionalProperties') && frame.node.additionalProperties === false) {
154
+ for (const key of Object.keys(frame.value)) {
155
+ if (!Object.hasOwn(properties, key)) {
156
+ tailViolations.push(`"${propertyPath(frame.path, key)}" is not a declared property (additionalProperties: false)`);
157
+ }
158
+ }
159
+ }
160
+ frame.kind = 'object';
161
+ frame.children = children;
162
+ frame.childIndex = 0;
163
+ frame.violations = violations;
164
+ frame.tailViolations = tailViolations;
165
+ frame.phase = 'children';
166
+ break;
167
+ }
168
+ case 'array': {
169
+ if (!Array.isArray(frame.value)) {
170
+ finish([`"${diagnosticPath(frame.path)}" must be an array`]);
171
+ break;
172
+ }
173
+ const items = Object.hasOwn(frame.node, 'items') ? frame.node.items : undefined;
174
+ const children = items === undefined
175
+ ? []
176
+ : frame.value.flatMap((entry, index) => [{ node: items, value: entry, path: `${frame.path}[${index}]` }]);
177
+ frame.kind = 'array';
178
+ frame.children = children;
179
+ frame.childIndex = 0;
180
+ frame.violations = [];
181
+ frame.phase = 'children';
182
+ break;
183
+ }
184
+ case 'string':
185
+ finish(typeof frame.value === 'string'
186
+ ? checkScalarValue(frame.node, frame.value, frame.path)
187
+ : [`"${diagnosticPath(frame.path)}" must be a string`]);
188
+ break;
189
+ case 'number':
190
+ finish(typeof frame.value !== 'number'
191
+ ? [`"${diagnosticPath(frame.path)}" must be a number`]
192
+ : !isJsonNumber(frame.value)
193
+ ? [`"${diagnosticPath(frame.path)}" must be a finite JSON number`]
194
+ : checkScalarValue(frame.node, frame.value, frame.path));
195
+ break;
196
+ case 'integer':
197
+ finish(!isJsonNumber(frame.value) || !Number.isInteger(frame.value)
198
+ ? [`"${diagnosticPath(frame.path)}" must be an integer`]
199
+ : checkScalarValue(frame.node, frame.value, frame.path));
200
+ break;
201
+ case 'boolean':
202
+ finish(typeof frame.value === 'boolean'
203
+ ? checkScalarValue(frame.node, frame.value, frame.path)
204
+ : [`"${diagnosticPath(frame.path)}" must be a boolean`]);
205
+ break;
206
+ case 'null':
207
+ finish(frame.value === null
208
+ ? checkScalarValue(frame.node, frame.value, frame.path)
209
+ : [`"${diagnosticPath(frame.path)}" must be null`]);
210
+ break;
211
+ default:
212
+ finish(assertNever(nodeType, 'JsonSchemaType'));
213
+ }
214
+ }
215
+ catch (error) {
216
+ let failed = frames.pop();
217
+ while (failed !== undefined && !failed.catches)
218
+ failed = frames.pop();
219
+ if (failed === undefined)
220
+ throw error;
221
+ receive(losslessValueViolation(failed.path));
222
+ }
223
+ }
224
+ /* v8 ignore next -- every root frame finishes or throws. */
225
+ return rootResult ?? losslessValueViolation(path);
226
+ }
227
+ /**
228
+ * Validate a candidate value against an asserted raw schema. The function is
229
+ * total for arbitrary values and returns path-qualified violations.
230
+ * @param schema - a schema accepted by {@link assertSupportedJsonSchema}.
231
+ * @param value - the candidate JSON value.
232
+ * @param path - root label used in diagnostics.
233
+ * @returns All violations in walk order; empty means valid.
234
+ */
235
+ export function validateJsonSchemaValue(schema, value, path = 'value') {
236
+ return checkValue(schema, value, path);
237
+ }
238
+ //# sourceMappingURL=json-schema-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-value.js","sourceRoot":"","sources":["../src/json-schema-value.ts"],"names":[],"mappings":"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"}