@bitspark/horos 0.0.0-stage → 0.6.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.
- package/LICENSE +202 -0
- package/LICENSE-MIT +21 -0
- package/NOTICE +6 -0
- package/README.md +10 -2
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +26 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core.d.ts +77 -0
- package/dist/src/core.js +936 -0
- package/dist/src/core.js.map +1 -0
- package/dist/src/diagnose.d.ts +56 -0
- package/dist/src/diagnose.js +399 -0
- package/dist/src/diagnose.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -0
- package/package.json +55 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Value } from "@bitspark/ontos-core";
|
|
2
|
+
/** The declared bound an `exhausted` outcome reached. */
|
|
3
|
+
export type Limit = "recursion_depth";
|
|
4
|
+
/** The effective value of a limit in this build. */
|
|
5
|
+
export declare function limitValue(l: Limit): number;
|
|
6
|
+
/** The completed/incomplete classification of a checking attempt. */
|
|
7
|
+
export type Verdict = "conforms" | "mismatch" | "not_well_formed" | "exhausted";
|
|
8
|
+
/**
|
|
9
|
+
* A checking outcome that distinguishes a completed decision from a reached bound.
|
|
10
|
+
*
|
|
11
|
+
* `exhausted` is INCOMPLETE: a statement about THIS bounded attempt, never a claim that the
|
|
12
|
+
* value does or does not have the form, and never a refutation.
|
|
13
|
+
*/
|
|
14
|
+
export type Diagnosis = {
|
|
15
|
+
readonly verdict: "conforms";
|
|
16
|
+
} | {
|
|
17
|
+
readonly verdict: "mismatch";
|
|
18
|
+
} | {
|
|
19
|
+
readonly verdict: "not_well_formed";
|
|
20
|
+
} | {
|
|
21
|
+
readonly verdict: "exhausted";
|
|
22
|
+
readonly limit: Limit;
|
|
23
|
+
};
|
|
24
|
+
/** Whether this outcome is a completed decision. */
|
|
25
|
+
export declare function isComplete(d: Diagnosis): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The legacy boolean this outcome corresponds to WHERE ONE IS DETERMINED (ADR 0008 D4):
|
|
28
|
+
* `true` for conforms, `false` for mismatch/not_well_formed, and **`undefined` for exhausted**
|
|
29
|
+
* — the boolean is unconstrained there, and collapsing the outcome into it is exactly what
|
|
30
|
+
* horos-internal#211 asks not to do.
|
|
31
|
+
*/
|
|
32
|
+
export declare function completedBool(d: Diagnosis): boolean | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The checking profile a Diagnosis is stated under. A completed negative is completed UNDER
|
|
35
|
+
* THIS PROFILE, never absolutely — so the profile travels with the verdict.
|
|
36
|
+
*/
|
|
37
|
+
export interface Profile {
|
|
38
|
+
readonly maxRecursionDepth: number;
|
|
39
|
+
readonly atomLenBoundMin: bigint;
|
|
40
|
+
readonly atomLenBoundMax: bigint;
|
|
41
|
+
}
|
|
42
|
+
/** The profile this build decides under. */
|
|
43
|
+
export declare function checkingProfile(): Profile;
|
|
44
|
+
/**
|
|
45
|
+
* Diagnose `wf(T)`: `conforms` when T is a well-formed descriptor, `not_well_formed` when it is
|
|
46
|
+
* conclusively not, and `exhausted` when the well-formedness traversal itself could not finish
|
|
47
|
+
* — the distinction horos-internal#211 asks for by name.
|
|
48
|
+
*/
|
|
49
|
+
export declare function diagnoseWf(t: Value): Diagnosis;
|
|
50
|
+
/**
|
|
51
|
+
* Diagnose `v : T`. Mirrors `conforms`: the `wf(T)` soundness gate runs first (spec §3 MUST),
|
|
52
|
+
* so a descriptor that is not well-formed yields `not_well_formed` and one whose
|
|
53
|
+
* well-formedness could not be decided yields `exhausted` — neither is reported as a mismatch
|
|
54
|
+
* of the value.
|
|
55
|
+
*/
|
|
56
|
+
export declare function diagnose(v: Value, t: Value): Diagnosis;
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Diagnostic checking outcomes (horos-internal#211, docs/architecture/decisions/0008-diagnostic-outcomes-kleene.md).
|
|
3
|
+
*
|
|
4
|
+
* A byte-for-byte port of core/rs/src/diagnose.rs (and core/go/diagnose.go). An ADDITIVE
|
|
5
|
+
* companion to the frozen boolean surface: `wf` and `conforms` are unchanged,
|
|
6
|
+
* vectors/conformance.json is unchanged, and nothing here reinterprets what today's `false`
|
|
7
|
+
* means.
|
|
8
|
+
*
|
|
9
|
+
* What it adds is the distinction the boolean cannot carry: a completed structural MISMATCH, a
|
|
10
|
+
* MALFORMED descriptor, and a computation that reached the declared MAX_RECURSION_DEPTH bound
|
|
11
|
+
* are three different pieces of evidence, and the boolean renders all three as `false`.
|
|
12
|
+
*
|
|
13
|
+
* The composition rules are the content (ADR 0008 D2/D3), not the extra enum:
|
|
14
|
+
*
|
|
15
|
+
* - Complement PRESERVES exhaustion: not(Exhausted) = Exhausted, never Conforms. The frozen
|
|
16
|
+
* recognizer computes !conformsIn(…), so an inner descent that trips the cap yields false and
|
|
17
|
+
* `not` reports an unqualified `true` — a completed positive out of a computation that never
|
|
18
|
+
* finished. That is the defect this module exists to name.
|
|
19
|
+
* - union/and are KLEENE: a DECISIVE alternative beats an exhausted sibling, so the evaluator
|
|
20
|
+
* short-circuits on a decisive result but NEVER on an Exhausted. The answer is a function of
|
|
21
|
+
* the SET of sub-outcomes, never of traversal order.
|
|
22
|
+
*/
|
|
23
|
+
import { readList, readMap, readSet, readText } from "@bitspark/ontos-data";
|
|
24
|
+
import { ATOM_LEN_BOUND_MAX, ATOM_LEN_BOUND_MIN, isLeafCtor, leafClassifies, leafWellFormed, MAX_RECURSION_DEPTH, NAMESPACE, readFieldDescriptor, } from "./core.js";
|
|
25
|
+
/** The effective value of a limit in this build. */
|
|
26
|
+
export function limitValue(l) {
|
|
27
|
+
return l === "recursion_depth" ? MAX_RECURSION_DEPTH : 0;
|
|
28
|
+
}
|
|
29
|
+
const CONFORMS = { verdict: "conforms" };
|
|
30
|
+
const MISMATCH = { verdict: "mismatch" };
|
|
31
|
+
const NOT_WF = { verdict: "not_well_formed" };
|
|
32
|
+
const exhausted = (limit) => ({ verdict: "exhausted", limit });
|
|
33
|
+
/** Whether this outcome is a completed decision. */
|
|
34
|
+
export function isComplete(d) {
|
|
35
|
+
return d.verdict !== "exhausted";
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The legacy boolean this outcome corresponds to WHERE ONE IS DETERMINED (ADR 0008 D4):
|
|
39
|
+
* `true` for conforms, `false` for mismatch/not_well_formed, and **`undefined` for exhausted**
|
|
40
|
+
* — the boolean is unconstrained there, and collapsing the outcome into it is exactly what
|
|
41
|
+
* horos-internal#211 asks not to do.
|
|
42
|
+
*/
|
|
43
|
+
export function completedBool(d) {
|
|
44
|
+
switch (d.verdict) {
|
|
45
|
+
case "conforms":
|
|
46
|
+
return true;
|
|
47
|
+
case "mismatch":
|
|
48
|
+
case "not_well_formed":
|
|
49
|
+
return false;
|
|
50
|
+
default:
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** The profile this build decides under. */
|
|
55
|
+
export function checkingProfile() {
|
|
56
|
+
return {
|
|
57
|
+
maxRecursionDepth: MAX_RECURSION_DEPTH,
|
|
58
|
+
atomLenBoundMin: ATOM_LEN_BOUND_MIN,
|
|
59
|
+
atomLenBoundMax: ATOM_LEN_BOUND_MAX,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// ----- the Kleene folds (ADR 0008 D2/D3) -----
|
|
63
|
+
/**
|
|
64
|
+
* `not`: swap the completed verdicts, PRESERVE exhaustion. Never completes an incomplete
|
|
65
|
+
* subdecision — the rule this module exists for.
|
|
66
|
+
*/
|
|
67
|
+
function kleeneNot(inner) {
|
|
68
|
+
switch (inner.verdict) {
|
|
69
|
+
case "conforms":
|
|
70
|
+
return MISMATCH;
|
|
71
|
+
case "mismatch":
|
|
72
|
+
return CONFORMS;
|
|
73
|
+
default:
|
|
74
|
+
// not_well_formed cannot arise below the entry wf gate; exhausted is preserved.
|
|
75
|
+
return inner;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Kleene disjunction: a decisive `conforms` wins over an exhausted sibling. */
|
|
79
|
+
function kleeneAny(outcomes) {
|
|
80
|
+
let limit;
|
|
81
|
+
let notWF = false;
|
|
82
|
+
for (const o of outcomes) {
|
|
83
|
+
if (o.verdict === "conforms")
|
|
84
|
+
return CONFORMS; // decisive — stop here
|
|
85
|
+
if (o.verdict === "not_well_formed")
|
|
86
|
+
notWF = true;
|
|
87
|
+
else if (o.verdict === "exhausted" && limit === undefined)
|
|
88
|
+
limit = o.limit;
|
|
89
|
+
}
|
|
90
|
+
if (limit !== undefined)
|
|
91
|
+
return exhausted(limit);
|
|
92
|
+
return notWF ? NOT_WF : MISMATCH;
|
|
93
|
+
}
|
|
94
|
+
/** Kleene conjunction: a decisive `mismatch` wins over an exhausted sibling. */
|
|
95
|
+
function kleeneAll(outcomes) {
|
|
96
|
+
let limit;
|
|
97
|
+
let notWF = false;
|
|
98
|
+
for (const o of outcomes) {
|
|
99
|
+
if (o.verdict === "mismatch")
|
|
100
|
+
return MISMATCH; // decisive — stop here
|
|
101
|
+
if (o.verdict === "not_well_formed")
|
|
102
|
+
notWF = true;
|
|
103
|
+
else if (o.verdict === "exhausted" && limit === undefined)
|
|
104
|
+
limit = o.limit;
|
|
105
|
+
}
|
|
106
|
+
if (limit !== undefined)
|
|
107
|
+
return exhausted(limit);
|
|
108
|
+
return notWF ? NOT_WF : CONFORMS;
|
|
109
|
+
}
|
|
110
|
+
// ----- the public entry points -----
|
|
111
|
+
/**
|
|
112
|
+
* Diagnose `wf(T)`: `conforms` when T is a well-formed descriptor, `not_well_formed` when it is
|
|
113
|
+
* conclusively not, and `exhausted` when the well-formedness traversal itself could not finish
|
|
114
|
+
* — the distinction horos-internal#211 asks for by name.
|
|
115
|
+
*/
|
|
116
|
+
export function diagnoseWf(t) {
|
|
117
|
+
return diagnoseWfIn(t, [], [], 0);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Diagnose `v : T`. Mirrors `conforms`: the `wf(T)` soundness gate runs first (spec §3 MUST),
|
|
121
|
+
* so a descriptor that is not well-formed yields `not_well_formed` and one whose
|
|
122
|
+
* well-formedness could not be decided yields `exhausted` — neither is reported as a mismatch
|
|
123
|
+
* of the value.
|
|
124
|
+
*/
|
|
125
|
+
export function diagnose(v, t) {
|
|
126
|
+
const w = diagnoseWf(t);
|
|
127
|
+
if (w.verdict === "conforms")
|
|
128
|
+
return diagnoseIn(v, t, [], [], 0);
|
|
129
|
+
if (w.verdict === "exhausted")
|
|
130
|
+
return w;
|
|
131
|
+
return NOT_WF;
|
|
132
|
+
}
|
|
133
|
+
function head(t) {
|
|
134
|
+
if (t.kind !== "tuple")
|
|
135
|
+
return undefined;
|
|
136
|
+
const items = t.items();
|
|
137
|
+
const first = items[0];
|
|
138
|
+
if (first === undefined || first.kind !== "atom")
|
|
139
|
+
return undefined;
|
|
140
|
+
let s;
|
|
141
|
+
try {
|
|
142
|
+
s = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(first.bytes());
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
if (!s.startsWith(NAMESPACE))
|
|
148
|
+
return undefined;
|
|
149
|
+
return { ctor: s.slice(NAMESPACE.length), args: items.slice(1) };
|
|
150
|
+
}
|
|
151
|
+
function atomBytesOf(v) {
|
|
152
|
+
return v.kind === "atom" ? v.bytes() : undefined;
|
|
153
|
+
}
|
|
154
|
+
function atomStringOf(v) {
|
|
155
|
+
const b = atomBytesOf(v);
|
|
156
|
+
if (b === undefined)
|
|
157
|
+
return undefined;
|
|
158
|
+
// One code point per byte: arbitrary atom names must never alias through UTF-8 replacement.
|
|
159
|
+
let key = "";
|
|
160
|
+
for (const byte of b)
|
|
161
|
+
key += String.fromCharCode(byte);
|
|
162
|
+
return key;
|
|
163
|
+
}
|
|
164
|
+
function diagnoseIn(v, t, env, pending, depth) {
|
|
165
|
+
if (depth > MAX_RECURSION_DEPTH)
|
|
166
|
+
return exhausted("recursion_depth");
|
|
167
|
+
const h = head(t);
|
|
168
|
+
if (h === undefined)
|
|
169
|
+
return MISMATCH; // not a horos descriptor
|
|
170
|
+
const { ctor, args } = h;
|
|
171
|
+
// Leaves never recurse into a value position, so they are always decisive here.
|
|
172
|
+
if (isLeafCtor(ctor))
|
|
173
|
+
return leafClassifies(v, t) ? CONFORMS : MISMATCH;
|
|
174
|
+
switch (ctor) {
|
|
175
|
+
// Composition on the SAME v — pending threads through unchanged.
|
|
176
|
+
case "union":
|
|
177
|
+
return kleeneAny(args.map((ct) => diagnoseIn(v, ct, env, pending, depth + 1)));
|
|
178
|
+
case "and":
|
|
179
|
+
return kleeneAll(args.map((ct) => diagnoseIn(v, ct, env, pending, depth + 1)));
|
|
180
|
+
case "not": {
|
|
181
|
+
if (args.length !== 1)
|
|
182
|
+
return MISMATCH;
|
|
183
|
+
return kleeneNot(diagnoseIn(v, args[0], env, pending, depth + 1));
|
|
184
|
+
}
|
|
185
|
+
// Recursion — mirrors the recognizer's guard exactly.
|
|
186
|
+
case "rec": {
|
|
187
|
+
if (args.length !== 2)
|
|
188
|
+
return MISMATCH;
|
|
189
|
+
const name = atomStringOf(args[0]);
|
|
190
|
+
if (name === undefined)
|
|
191
|
+
return MISMATCH;
|
|
192
|
+
const body = args[1];
|
|
193
|
+
return diagnoseIn(v, body, [...env, { name, body }], [...pending, name], depth + 1);
|
|
194
|
+
}
|
|
195
|
+
case "ref": {
|
|
196
|
+
if (args.length !== 1)
|
|
197
|
+
return MISMATCH;
|
|
198
|
+
const name = atomStringOf(args[0]);
|
|
199
|
+
if (name === undefined)
|
|
200
|
+
return MISMATCH;
|
|
201
|
+
if (pending.includes(name))
|
|
202
|
+
return MISMATCH; // unguarded — the recognizer's false
|
|
203
|
+
for (let i = env.length - 1; i >= 0; i -= 1) {
|
|
204
|
+
if (env[i].name === name) {
|
|
205
|
+
return diagnoseIn(v, env[i].body, env, [...pending, name], depth + 1);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return MISMATCH; // unbound
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Structural arms: the gate is decisive, and a descent into a CHILD VALUE clears pending.
|
|
212
|
+
const children = structuralChildren(v, ctor, args);
|
|
213
|
+
if (children === undefined)
|
|
214
|
+
return MISMATCH;
|
|
215
|
+
return kleeneAll(children.map(([cv, ct]) => diagnoseIn(cv, ct, env, [], depth + 1)));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The structural gate plus the ordered child sub-judgments, for the arms that descend into a
|
|
219
|
+
* child VALUE. Mirrors the recognizer's recursive arms; `undefined` means the gate failed, so
|
|
220
|
+
* `v` cannot conform regardless of any child.
|
|
221
|
+
*/
|
|
222
|
+
function structuralChildren(v, ctor, args) {
|
|
223
|
+
switch (ctor) {
|
|
224
|
+
case "tuple": {
|
|
225
|
+
if (v.kind !== "tuple")
|
|
226
|
+
return undefined;
|
|
227
|
+
const items = v.items();
|
|
228
|
+
if (items.length !== args.length)
|
|
229
|
+
return undefined;
|
|
230
|
+
return items.map((c, i) => [c, args[i]]);
|
|
231
|
+
}
|
|
232
|
+
case "seq": {
|
|
233
|
+
if (args.length !== 1 || v.kind !== "tuple")
|
|
234
|
+
return undefined;
|
|
235
|
+
return v.items().map((c) => [c, args[0]]);
|
|
236
|
+
}
|
|
237
|
+
case "compound": {
|
|
238
|
+
if (args.length < 1 || v.kind !== "tuple")
|
|
239
|
+
return undefined;
|
|
240
|
+
const label = atomBytesOf(args[0]);
|
|
241
|
+
const items = v.items();
|
|
242
|
+
if (label === undefined || items.length !== args.length)
|
|
243
|
+
return undefined;
|
|
244
|
+
const got = atomBytesOf(items[0]);
|
|
245
|
+
if (got === undefined ||
|
|
246
|
+
got.length !== label.length ||
|
|
247
|
+
got.some((b, i) => b !== label[i]))
|
|
248
|
+
return undefined;
|
|
249
|
+
return args.slice(1).map((ct, i) => [items[i + 1], ct]);
|
|
250
|
+
}
|
|
251
|
+
case "list-of":
|
|
252
|
+
case "set-of": {
|
|
253
|
+
if (args.length !== 1)
|
|
254
|
+
return undefined;
|
|
255
|
+
try {
|
|
256
|
+
const elems = ctor === "list-of" ? readList(v) : readSet(v);
|
|
257
|
+
return elems.map((e) => [e, args[0]]);
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
case "map-of": {
|
|
264
|
+
if (args.length !== 2)
|
|
265
|
+
return undefined;
|
|
266
|
+
try {
|
|
267
|
+
const out = [];
|
|
268
|
+
for (const [k, val] of readMap(v)) {
|
|
269
|
+
out.push([k, args[0]], [val, args[1]]);
|
|
270
|
+
}
|
|
271
|
+
return out;
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
case "record":
|
|
278
|
+
return args.length < 1 ? undefined : recordChildren(v, args[0], args.slice(1));
|
|
279
|
+
}
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
/** Mirrors the recognizer's record gate and present-field worklist. */
|
|
283
|
+
function recordChildren(v, mode, fields) {
|
|
284
|
+
const m = atomStringOf(mode);
|
|
285
|
+
if (m !== "open" && m !== "closed")
|
|
286
|
+
return undefined;
|
|
287
|
+
const closed = m === "closed";
|
|
288
|
+
let entries;
|
|
289
|
+
try {
|
|
290
|
+
entries = readMap(v);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return undefined;
|
|
294
|
+
}
|
|
295
|
+
const keyed = new Map();
|
|
296
|
+
for (const [k, val] of entries) {
|
|
297
|
+
try {
|
|
298
|
+
keyed.set(readText(k), val);
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
const out = [];
|
|
305
|
+
const declared = new Set();
|
|
306
|
+
for (const f of fields) {
|
|
307
|
+
const fd = readFieldDescriptor(f);
|
|
308
|
+
if (fd === undefined)
|
|
309
|
+
return undefined;
|
|
310
|
+
declared.add(fd.name);
|
|
311
|
+
const val = keyed.get(fd.name);
|
|
312
|
+
if (val === undefined) {
|
|
313
|
+
if (fd.required)
|
|
314
|
+
return undefined; // a missing required field is decisive
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
out.push([val, fd.ty]);
|
|
318
|
+
}
|
|
319
|
+
if (closed) {
|
|
320
|
+
for (const k of keyed.keys()) {
|
|
321
|
+
if (!declared.has(k))
|
|
322
|
+
return undefined; // an extra key in a closed record is decisive
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return out;
|
|
326
|
+
}
|
|
327
|
+
function diagnoseWfIn(t, bound, pending, depth) {
|
|
328
|
+
if (depth > MAX_RECURSION_DEPTH)
|
|
329
|
+
return exhausted("recursion_depth");
|
|
330
|
+
const h = head(t);
|
|
331
|
+
if (h === undefined)
|
|
332
|
+
return NOT_WF;
|
|
333
|
+
const { ctor, args } = h;
|
|
334
|
+
if (isLeafCtor(ctor))
|
|
335
|
+
return leafWellFormed(t) ? CONFORMS : NOT_WF;
|
|
336
|
+
const wfAll = (ts, p) => kleeneAll(ts.map((ct) => diagnoseWfIn(ct, bound, p, depth + 1)));
|
|
337
|
+
switch (ctor) {
|
|
338
|
+
case "tuple":
|
|
339
|
+
return wfAll(args, []);
|
|
340
|
+
case "seq":
|
|
341
|
+
return args.length !== 1 ? NOT_WF : diagnoseWfIn(args[0], bound, [], depth + 1);
|
|
342
|
+
case "compound":
|
|
343
|
+
if (args.length < 1 || atomBytesOf(args[0]) === undefined)
|
|
344
|
+
return NOT_WF;
|
|
345
|
+
return wfAll(args.slice(1), []);
|
|
346
|
+
case "list-of":
|
|
347
|
+
case "set-of":
|
|
348
|
+
return args.length !== 1 ? NOT_WF : diagnoseWfIn(args[0], bound, [], depth + 1);
|
|
349
|
+
case "map-of":
|
|
350
|
+
if (args.length !== 2)
|
|
351
|
+
return NOT_WF;
|
|
352
|
+
return kleeneAll([
|
|
353
|
+
diagnoseWfIn(args[0], bound, [], depth + 1),
|
|
354
|
+
diagnoseWfIn(args[1], bound, [], depth + 1),
|
|
355
|
+
]);
|
|
356
|
+
case "union":
|
|
357
|
+
case "and":
|
|
358
|
+
return wfAll(args, pending);
|
|
359
|
+
case "not":
|
|
360
|
+
return args.length !== 1
|
|
361
|
+
? NOT_WF
|
|
362
|
+
: diagnoseWfIn(args[0], bound, pending, depth + 1);
|
|
363
|
+
case "rec": {
|
|
364
|
+
if (args.length !== 2)
|
|
365
|
+
return NOT_WF;
|
|
366
|
+
const name = atomStringOf(args[0]);
|
|
367
|
+
if (name === undefined)
|
|
368
|
+
return NOT_WF;
|
|
369
|
+
return diagnoseWfIn(args[1], [...bound, name], [...pending, name], depth + 1);
|
|
370
|
+
}
|
|
371
|
+
case "ref": {
|
|
372
|
+
if (args.length !== 1)
|
|
373
|
+
return NOT_WF;
|
|
374
|
+
const name = atomStringOf(args[0]);
|
|
375
|
+
return name !== undefined && bound.includes(name) && !pending.includes(name)
|
|
376
|
+
? CONFORMS
|
|
377
|
+
: NOT_WF;
|
|
378
|
+
}
|
|
379
|
+
case "record": {
|
|
380
|
+
if (args.length < 1)
|
|
381
|
+
return NOT_WF;
|
|
382
|
+
const mode = atomStringOf(args[0]);
|
|
383
|
+
if (mode !== "open" && mode !== "closed")
|
|
384
|
+
return NOT_WF;
|
|
385
|
+
const names = new Set();
|
|
386
|
+
const outcomes = [];
|
|
387
|
+
for (const field of args.slice(1)) {
|
|
388
|
+
const fd = readFieldDescriptor(field);
|
|
389
|
+
if (fd === undefined || names.has(fd.name))
|
|
390
|
+
return NOT_WF;
|
|
391
|
+
names.add(fd.name);
|
|
392
|
+
outcomes.push(diagnoseWfIn(fd.ty, bound, [], depth + 1));
|
|
393
|
+
}
|
|
394
|
+
return kleeneAll(outcomes);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return NOT_WF;
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=diagnose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/diagnose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,EAAE,EACF,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,57 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitspark/horos",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Types and schemas over ontos values: descriptor well-formedness, conformance and diagnostics.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Bitspark/horos.git",
|
|
10
|
+
"directory": "core/ts"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"registry": "https://registry.npmjs.org/",
|
|
14
|
+
"access": "public",
|
|
15
|
+
"provenance": true
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist/src",
|
|
19
|
+
"LICENSE",
|
|
20
|
+
"LICENSE-MIT",
|
|
21
|
+
"NOTICE"
|
|
22
|
+
],
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/src/index.d.ts",
|
|
26
|
+
"import": "./dist/src/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./diagnose": {
|
|
29
|
+
"types": "./dist/src/diagnose.d.ts",
|
|
30
|
+
"import": "./dist/src/diagnose.js"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
33
|
+
},
|
|
34
|
+
"bin": {
|
|
35
|
+
"horos-conform": "./dist/src/cli.js"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc -p tsconfig.json",
|
|
39
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
40
|
+
"lint": "eslint . && prettier --check .",
|
|
41
|
+
"test": "npm run build && node --test dist/test/*.test.js"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@bitspark/ontos-core": "0.15.0",
|
|
45
|
+
"@bitspark/ontos-codec": "0.15.0",
|
|
46
|
+
"@bitspark/ontos-data": "0.15.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"typescript": "^5.7",
|
|
50
|
+
"@types/node": "^22",
|
|
51
|
+
"eslint": "9.39.4",
|
|
52
|
+
"@eslint/js": "9.39.4",
|
|
53
|
+
"@typescript-eslint/parser": "8.60.1",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "8.60.1",
|
|
55
|
+
"prettier": "3.8.3"
|
|
56
|
+
}
|
|
57
|
+
}
|