aontu 0.30.1 → 0.31.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/dist/ctx.d.ts +51 -0
- package/dist/ctx.js +105 -0
- package/dist/ctx.js.map +1 -0
- package/dist/err.d.ts +12 -0
- package/dist/err.js +123 -0
- package/dist/err.js.map +1 -0
- package/dist/hints.d.ts +8 -0
- package/dist/hints.js +90 -0
- package/dist/hints.js.map +1 -0
- package/dist/lang.d.ts +11 -0
- package/dist/lang.js +569 -0
- package/dist/lang.js.map +1 -0
- package/dist/site.d.ts +12 -0
- package/dist/site.js +27 -0
- package/dist/site.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/type.d.ts +32 -0
- package/dist/type.js +16 -0
- package/dist/type.js.map +1 -0
- package/dist/unify.d.ts +14 -0
- package/dist/unify.js +162 -0
- package/dist/unify.js.map +1 -0
- package/dist/utility.d.ts +14 -0
- package/dist/utility.js +128 -0
- package/dist/utility.js.map +1 -0
- package/dist/val/BagVal.d.ts +10 -0
- package/dist/val/BagVal.js +15 -0
- package/dist/val/BagVal.js.map +1 -0
- package/dist/val/BooleanVal.d.ts +9 -0
- package/dist/val/BooleanVal.js +16 -0
- package/dist/val/BooleanVal.js.map +1 -0
- package/dist/val/CloseFuncVal.d.ts +11 -0
- package/dist/val/CloseFuncVal.js +32 -0
- package/dist/val/CloseFuncVal.js.map +1 -0
- package/dist/val/ConjunctVal.d.ts +14 -0
- package/dist/val/ConjunctVal.js +187 -0
- package/dist/val/ConjunctVal.js.map +1 -0
- package/dist/val/CopyFuncVal.d.ts +14 -0
- package/dist/val/CopyFuncVal.js +43 -0
- package/dist/val/CopyFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.d.ts +19 -0
- package/dist/val/DisjunctVal.js +194 -0
- package/dist/val/DisjunctVal.js.map +1 -0
- package/dist/val/FeatureVal.d.ts +10 -0
- package/dist/val/FeatureVal.js +29 -0
- package/dist/val/FeatureVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +15 -0
- package/dist/val/FuncBaseVal.js +131 -0
- package/dist/val/FuncBaseVal.js.map +1 -0
- package/dist/val/HideFuncVal.d.ts +12 -0
- package/dist/val/HideFuncVal.js +48 -0
- package/dist/val/HideFuncVal.js.map +1 -0
- package/dist/val/IntegerVal.d.ts +9 -0
- package/dist/val/IntegerVal.js +46 -0
- package/dist/val/IntegerVal.js.map +1 -0
- package/dist/val/JunctionVal.d.ts +12 -0
- package/dist/val/JunctionVal.js +31 -0
- package/dist/val/JunctionVal.js.map +1 -0
- package/dist/val/KeyFuncVal.d.ts +13 -0
- package/dist/val/KeyFuncVal.js +64 -0
- package/dist/val/KeyFuncVal.js.map +1 -0
- package/dist/val/ListVal.d.ts +17 -0
- package/dist/val/ListVal.js +186 -0
- package/dist/val/ListVal.js.map +1 -0
- package/dist/val/LowerFuncVal.d.ts +12 -0
- package/dist/val/LowerFuncVal.js +40 -0
- package/dist/val/LowerFuncVal.js.map +1 -0
- package/dist/val/MapVal.d.ts +16 -0
- package/dist/val/MapVal.js +233 -0
- package/dist/val/MapVal.js.map +1 -0
- package/dist/val/MoveFuncVal.d.ts +12 -0
- package/dist/val/MoveFuncVal.js +44 -0
- package/dist/val/MoveFuncVal.js.map +1 -0
- package/dist/val/NilVal.d.ts +25 -0
- package/dist/val/NilVal.js +92 -0
- package/dist/val/NilVal.js.map +1 -0
- package/dist/val/NullVal.d.ts +9 -0
- package/dist/val/NullVal.js +18 -0
- package/dist/val/NullVal.js.map +1 -0
- package/dist/val/NumberVal.d.ts +9 -0
- package/dist/val/NumberVal.js +44 -0
- package/dist/val/NumberVal.js.map +1 -0
- package/dist/val/OpBaseVal.d.ts +18 -0
- package/dist/val/OpBaseVal.js +152 -0
- package/dist/val/OpBaseVal.js.map +1 -0
- package/dist/val/OpenFuncVal.d.ts +11 -0
- package/dist/val/OpenFuncVal.js +30 -0
- package/dist/val/OpenFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.d.ts +13 -0
- package/dist/val/PathFuncVal.js +42 -0
- package/dist/val/PathFuncVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +16 -0
- package/dist/val/PlusOpVal.js +59 -0
- package/dist/val/PlusOpVal.js.map +1 -0
- package/dist/val/PrefFuncVal.d.ts +11 -0
- package/dist/val/PrefFuncVal.js +39 -0
- package/dist/val/PrefFuncVal.js.map +1 -0
- package/dist/val/PrefVal.d.ts +15 -0
- package/dist/val/PrefVal.js +112 -0
- package/dist/val/PrefVal.js.map +1 -0
- package/dist/val/RefVal.d.ts +22 -0
- package/dist/val/RefVal.js +310 -0
- package/dist/val/RefVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +16 -0
- package/dist/val/ScalarKindVal.js +76 -0
- package/dist/val/ScalarKindVal.js.map +1 -0
- package/dist/val/ScalarVal.d.ts +16 -0
- package/dist/val/ScalarVal.js +62 -0
- package/dist/val/ScalarVal.js.map +1 -0
- package/dist/val/StringVal.d.ts +10 -0
- package/dist/val/StringVal.js +19 -0
- package/dist/val/StringVal.js.map +1 -0
- package/dist/val/SuperFuncVal.d.ts +11 -0
- package/dist/val/SuperFuncVal.js +22 -0
- package/dist/val/SuperFuncVal.js.map +1 -0
- package/dist/val/TopVal.d.ts +16 -0
- package/dist/val/TopVal.js +38 -0
- package/dist/val/TopVal.js.map +1 -0
- package/dist/val/TypeFuncVal.d.ts +12 -0
- package/dist/val/TypeFuncVal.js +35 -0
- package/dist/val/TypeFuncVal.js.map +1 -0
- package/dist/val/UpperFuncVal.d.ts +12 -0
- package/dist/val/UpperFuncVal.js +40 -0
- package/dist/val/UpperFuncVal.js.map +1 -0
- package/dist/val/Val.d.ts +90 -0
- package/dist/val/Val.js +205 -0
- package/dist/val/Val.js.map +1 -0
- package/dist/val/VarVal.d.ts +13 -0
- package/dist/val/VarVal.js +109 -0
- package/dist/val/VarVal.js.map +1 -0
- package/dist/val/top.d.ts +2 -0
- package/dist/val/top.js +10 -0
- package/dist/val/top.js.map +1 -0
- package/dist/val/valutil.d.ts +2 -0
- package/dist/val/valutil.js +30 -0
- package/dist/val/valutil.js.map +1 -0
- package/package.json +3 -5
- package/src/aontu.ts +218 -0
- package/src/ctx.ts +201 -0
- package/src/err.ts +172 -0
- package/src/hints.ts +129 -0
- package/src/lang.ts +782 -0
- package/src/site.ts +34 -0
- package/src/tsconfig.json +16 -0
- package/src/type.ts +72 -0
- package/src/unify.ts +233 -0
- package/src/utility.ts +185 -0
- package/src/val/BagVal.ts +33 -0
- package/src/val/BooleanVal.ts +32 -0
- package/src/val/CloseFuncVal.ts +61 -0
- package/src/val/ConjunctVal.ts +285 -0
- package/src/val/CopyFuncVal.ts +82 -0
- package/src/val/DisjunctVal.ts +288 -0
- package/src/val/FeatureVal.ts +56 -0
- package/src/val/FuncBaseVal.ts +204 -0
- package/src/val/HideFuncVal.ts +85 -0
- package/src/val/IntegerVal.ts +75 -0
- package/src/val/JunctionVal.ts +54 -0
- package/src/val/KeyFuncVal.ts +103 -0
- package/src/val/ListVal.ts +286 -0
- package/src/val/LowerFuncVal.ts +73 -0
- package/src/val/MapVal.ts +349 -0
- package/src/val/MoveFuncVal.ts +83 -0
- package/src/val/NilVal.ts +156 -0
- package/src/val/NullVal.ts +38 -0
- package/src/val/NumberVal.ts +75 -0
- package/src/val/OpBaseVal.ts +231 -0
- package/src/val/OpenFuncVal.ts +60 -0
- package/src/val/PathFuncVal.ts +75 -0
- package/src/val/PlusOpVal.ts +92 -0
- package/src/val/PrefFuncVal.ts +73 -0
- package/src/val/PrefVal.ts +170 -0
- package/src/val/RefVal.ts +436 -0
- package/src/val/ScalarKindVal.ts +125 -0
- package/src/val/ScalarVal.ts +107 -0
- package/src/val/StringVal.ts +37 -0
- package/src/val/SuperFuncVal.ts +46 -0
- package/src/val/TopVal.ts +69 -0
- package/src/val/TypeFuncVal.ts +69 -0
- package/src/val/UpperFuncVal.ts +72 -0
- package/src/val/Val.ts +318 -0
- package/src/val/VarVal.ts +171 -0
- package/src/val/top.ts +12 -0
- package/src/val/valutil.ts +31 -0
package/dist/ctx.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Val, FST, AontuOptions } from './type';
|
|
2
|
+
import { NilVal } from './val/NilVal';
|
|
3
|
+
type AontuContextConfig = {
|
|
4
|
+
cc?: number;
|
|
5
|
+
err?: any[];
|
|
6
|
+
explain?: any[] | boolean | null;
|
|
7
|
+
fs?: any;
|
|
8
|
+
path?: string[];
|
|
9
|
+
root?: Val;
|
|
10
|
+
seen?: Record<string, number>;
|
|
11
|
+
seenI?: number;
|
|
12
|
+
src?: string;
|
|
13
|
+
srcpath?: string;
|
|
14
|
+
vars?: Record<string, Val>;
|
|
15
|
+
vc?: number;
|
|
16
|
+
collect?: boolean;
|
|
17
|
+
opts?: AontuOptions;
|
|
18
|
+
deps?: Record<string, any>;
|
|
19
|
+
};
|
|
20
|
+
declare class AontuContext {
|
|
21
|
+
root?: Val;
|
|
22
|
+
path: string[];
|
|
23
|
+
vc: number;
|
|
24
|
+
cc: number;
|
|
25
|
+
vars: Record<string, Val>;
|
|
26
|
+
src?: string;
|
|
27
|
+
fs?: FST;
|
|
28
|
+
seenI: number;
|
|
29
|
+
seen: Record<string, number>;
|
|
30
|
+
collect: boolean;
|
|
31
|
+
err: any[];
|
|
32
|
+
explain: any[] | null;
|
|
33
|
+
srcpath?: string;
|
|
34
|
+
deps: Record<string, any>;
|
|
35
|
+
opts: AontuOptions;
|
|
36
|
+
_pathstr: string | undefined;
|
|
37
|
+
constructor(cfg: AontuContextConfig);
|
|
38
|
+
clone(cfg: {
|
|
39
|
+
root?: Val;
|
|
40
|
+
path?: string[];
|
|
41
|
+
err?: any[];
|
|
42
|
+
explain?: any[] | boolean | null;
|
|
43
|
+
}): AontuContext;
|
|
44
|
+
descend(key: string): AontuContext;
|
|
45
|
+
addopts(opts?: AontuOptions): void;
|
|
46
|
+
adderr(err: NilVal): void;
|
|
47
|
+
errmsg(): string;
|
|
48
|
+
find(path: string[]): Val | undefined;
|
|
49
|
+
get pathstr(): string;
|
|
50
|
+
}
|
|
51
|
+
export { AontuContext, AontuContextConfig };
|
package/dist/ctx.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AontuContext = void 0;
|
|
5
|
+
const type_1 = require("./type");
|
|
6
|
+
const MapVal_1 = require("./val/MapVal");
|
|
7
|
+
const ListVal_1 = require("./val/ListVal");
|
|
8
|
+
const err_1 = require("./err");
|
|
9
|
+
class AontuContext {
|
|
10
|
+
constructor(cfg) {
|
|
11
|
+
this.cc = -1;
|
|
12
|
+
this.vars = {};
|
|
13
|
+
this.root = cfg.root;
|
|
14
|
+
this.path = [...(cfg.path ?? [])];
|
|
15
|
+
this.src = cfg.src;
|
|
16
|
+
this.collect = cfg.collect ?? null != cfg.err;
|
|
17
|
+
this.err = cfg.err ?? [];
|
|
18
|
+
this.explain = Array.isArray(cfg.explain) ? cfg.explain : null;
|
|
19
|
+
this.fs = cfg.fs ?? null;
|
|
20
|
+
// Multiple unify passes will keep incrementing Val counter.
|
|
21
|
+
this.vc = null == cfg.vc ? 1_000_000_000 : cfg.vc;
|
|
22
|
+
this.cc = null == cfg.cc ? this.cc : cfg.cc;
|
|
23
|
+
this.vars = cfg.vars ?? this.vars;
|
|
24
|
+
this.seenI = cfg.seenI ?? 0;
|
|
25
|
+
this.seen = cfg.seen ?? {};
|
|
26
|
+
this.srcpath = cfg.srcpath ?? undefined;
|
|
27
|
+
this.deps = cfg.deps ?? {};
|
|
28
|
+
this.opts = (0, type_1.DEFAULT_OPTS)();
|
|
29
|
+
this.addopts(cfg.opts);
|
|
30
|
+
}
|
|
31
|
+
clone(cfg) {
|
|
32
|
+
const ctx = Object.create(this);
|
|
33
|
+
ctx.path = cfg.path ?? this.path;
|
|
34
|
+
ctx.root = cfg.root ?? this.root;
|
|
35
|
+
ctx.var = Object.create(this.vars);
|
|
36
|
+
ctx.err = cfg.err ?? ctx.err;
|
|
37
|
+
ctx.explain = Array.isArray(cfg.explain) ? cfg.explain : ctx.explain;
|
|
38
|
+
ctx._pathstr = undefined;
|
|
39
|
+
return ctx;
|
|
40
|
+
}
|
|
41
|
+
descend(key) {
|
|
42
|
+
return this.clone({
|
|
43
|
+
root: this.root,
|
|
44
|
+
path: this.path.concat(key),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
addopts(opts) {
|
|
48
|
+
if (null != opts) {
|
|
49
|
+
Object.assign(this.opts, opts);
|
|
50
|
+
}
|
|
51
|
+
this.collect = (this.opts.collect ?? null != this.opts.err) ?? this.collect;
|
|
52
|
+
this.err = this.opts.err ?? this.err;
|
|
53
|
+
this.fs = this.opts.fs ?? this.fs;
|
|
54
|
+
this.explain = this.opts.explain ?? this.explain;
|
|
55
|
+
this.src = ('string' === typeof this.opts.src ? this.opts.src : undefined) ?? this.src;
|
|
56
|
+
// TODO: rename srcpath to file
|
|
57
|
+
this.srcpath = this.opts.path ?? this.srcpath;
|
|
58
|
+
}
|
|
59
|
+
adderr(err) {
|
|
60
|
+
if (null != err && err.isNil) {
|
|
61
|
+
if (null == err.primary) {
|
|
62
|
+
err.primary = err;
|
|
63
|
+
}
|
|
64
|
+
if (!this.err.includes(err)) {
|
|
65
|
+
this.err.push(err);
|
|
66
|
+
}
|
|
67
|
+
if (null == err.msg || '' == err.msg) {
|
|
68
|
+
(0, err_1.descErr)(err, this);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
errmsg() {
|
|
73
|
+
// return this.errlist
|
|
74
|
+
return this.err
|
|
75
|
+
.map((err) => err?.msg)
|
|
76
|
+
.filter(msg => null != msg)
|
|
77
|
+
.join('\n------\n');
|
|
78
|
+
}
|
|
79
|
+
find(path) {
|
|
80
|
+
let node = this.root;
|
|
81
|
+
let pI = 0;
|
|
82
|
+
for (; pI < path.length; pI++) {
|
|
83
|
+
let part = path[pI];
|
|
84
|
+
if (node instanceof MapVal_1.MapVal) {
|
|
85
|
+
node = node.peg[part];
|
|
86
|
+
}
|
|
87
|
+
else if (node instanceof ListVal_1.ListVal) {
|
|
88
|
+
node = node.peg[part];
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (pI < path.length) {
|
|
95
|
+
node = undefined;
|
|
96
|
+
}
|
|
97
|
+
return node;
|
|
98
|
+
}
|
|
99
|
+
get pathstr() {
|
|
100
|
+
return this._pathstr ??
|
|
101
|
+
(this._pathstr = this.path.map(p => p.replaceAll('.', '\\.')).join('.'));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.AontuContext = AontuContext;
|
|
105
|
+
//# sourceMappingURL=ctx.js.map
|
package/dist/ctx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
|
package/dist/err.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Val, ErrContext } from './type';
|
|
2
|
+
import { AontuContext } from './ctx';
|
|
3
|
+
import { NilVal } from './val/NilVal';
|
|
4
|
+
declare function getHint(why: any): string | undefined;
|
|
5
|
+
declare function makeNilErr(ctx?: AontuContext, why?: any, av?: Val, bv?: Val, attempt?: string): NilVal;
|
|
6
|
+
declare function descErr<NILS extends NilVal | NilVal[]>(err: NILS | any, errctx?: ErrContext): any;
|
|
7
|
+
declare class AontuError extends Error {
|
|
8
|
+
aontu: boolean;
|
|
9
|
+
constructor(msg: string, errs?: NilVal[]);
|
|
10
|
+
errs: () => NilVal[];
|
|
11
|
+
}
|
|
12
|
+
export { getHint, makeNilErr, descErr, AontuError, };
|
package/dist/err.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AontuError = void 0;
|
|
5
|
+
exports.getHint = getHint;
|
|
6
|
+
exports.makeNilErr = makeNilErr;
|
|
7
|
+
exports.descErr = descErr;
|
|
8
|
+
const jsonic_1 = require("jsonic");
|
|
9
|
+
const NilVal_1 = require("./val/NilVal");
|
|
10
|
+
const hints_1 = require("./hints");
|
|
11
|
+
const { errmsg } = jsonic_1.util;
|
|
12
|
+
function getHint(why) {
|
|
13
|
+
if (hints_1.hints[why]) {
|
|
14
|
+
return hints_1.hints[why];
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
function makeNilErr(ctx, why, av, bv, attempt) {
|
|
19
|
+
const nilval = NilVal_1.NilVal.make(ctx, why, av, bv, attempt);
|
|
20
|
+
return nilval;
|
|
21
|
+
}
|
|
22
|
+
// TODO: move to utility?
|
|
23
|
+
function descErr(err, errctx) {
|
|
24
|
+
if (err?.isNil) {
|
|
25
|
+
if (null == err.msg || '' === err.msg) {
|
|
26
|
+
let v1 = err.primary;
|
|
27
|
+
let v2 = err.secondary;
|
|
28
|
+
let v1src = resolveSrc(v1, errctx);
|
|
29
|
+
let v2src = resolveSrc(v2, errctx);
|
|
30
|
+
let path = ['$', ...err.path].filter((p) => null != p && '' != p);
|
|
31
|
+
let valpath = (0 < path.length ? path.join('.') : '');
|
|
32
|
+
let attempt = null != err.attempt ? err.attempt : (null == v2 ? 'resolve' : 'unify');
|
|
33
|
+
err.msg = [
|
|
34
|
+
errmsg({
|
|
35
|
+
color: { active: true },
|
|
36
|
+
name: 'aontu',
|
|
37
|
+
code: err.why,
|
|
38
|
+
txts: {
|
|
39
|
+
msg: 'Cannot ' +
|
|
40
|
+
attempt +
|
|
41
|
+
' value' + (null == v2 ? '' : 's') +
|
|
42
|
+
' at path ' + valpath,
|
|
43
|
+
hint: getHint(err.why)
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
'\n',
|
|
47
|
+
(null != v1 && errmsg({
|
|
48
|
+
// TODO: color should come from jsonic config
|
|
49
|
+
color: { active: true, line: '\x1b[34m' },
|
|
50
|
+
txts: {
|
|
51
|
+
msg: 'Cannot ' + attempt + ' value: ' + v1.canon +
|
|
52
|
+
(null == v2 ? '' : ' with value: ' + v2.canon), // + ' #' + err.id,
|
|
53
|
+
site: ''
|
|
54
|
+
},
|
|
55
|
+
smsg: 'value was: ' + v1.canon,
|
|
56
|
+
file: resolveFile(v1.site.url),
|
|
57
|
+
src: v1src,
|
|
58
|
+
row: v1.site.row,
|
|
59
|
+
col: v1.site.col,
|
|
60
|
+
})),
|
|
61
|
+
(null != v2 && errmsg({
|
|
62
|
+
// TODO: color should come from jsonic config
|
|
63
|
+
color: { active: true, line: '\x1b[34m' },
|
|
64
|
+
txts: {
|
|
65
|
+
msg: 'Cannot ' + attempt + ' value: ' + v2.canon +
|
|
66
|
+
' with value: ' + v1.canon, // + ' #' + err.id,
|
|
67
|
+
site: ''
|
|
68
|
+
},
|
|
69
|
+
smsg: 'value was: ' + v2.canon,
|
|
70
|
+
file: resolveFile(v2.site.url),
|
|
71
|
+
src: v2src,
|
|
72
|
+
row: v2.site.row,
|
|
73
|
+
col: v2.site.col,
|
|
74
|
+
})),
|
|
75
|
+
]
|
|
76
|
+
.filter((n) => null != n && false !== n)
|
|
77
|
+
.join('\n')
|
|
78
|
+
// TODO: update jsonic errmsg to avoid multiple empty lines
|
|
79
|
+
.replace(/\n\n/g, '\n');
|
|
80
|
+
}
|
|
81
|
+
return err;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return err.map((n) => descErr(n, errctx));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function resolveFile(url) {
|
|
88
|
+
const cwd = process.cwd();
|
|
89
|
+
let out = url?.replace(cwd + '/', '') ?? '<no-file>';
|
|
90
|
+
out = out === cwd || '' === out ? '<no-file>' : out;
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
function resolveSrc(v, errctx) {
|
|
94
|
+
let src = undefined;
|
|
95
|
+
if (null != v?.site.url) {
|
|
96
|
+
try {
|
|
97
|
+
const fileExists = errctx?.fs?.existsSync(v.site.url);
|
|
98
|
+
if (fileExists) {
|
|
99
|
+
src = errctx?.fs?.readFileSync(v.site.url, 'utf8') ?? undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (fe) {
|
|
103
|
+
// ignore as more important to report original error
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (errctx && (undefined == src || '' === src)) {
|
|
107
|
+
src = errctx.src ?? '';
|
|
108
|
+
}
|
|
109
|
+
return src;
|
|
110
|
+
}
|
|
111
|
+
class AontuError extends Error {
|
|
112
|
+
constructor(msg, errs) {
|
|
113
|
+
super(msg);
|
|
114
|
+
this.aontu = true;
|
|
115
|
+
this.name = this.constructor.name;
|
|
116
|
+
this.errs = () => errs ?? [];
|
|
117
|
+
this.stack = this.stack?.split('\n')
|
|
118
|
+
.filter(line => !line.match(/aontu\/(src|dist)\//))
|
|
119
|
+
.join('\n');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.AontuError = AontuError;
|
|
123
|
+
//# sourceMappingURL=err.js.map
|
package/dist/err.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"err.js","sourceRoot":"","sources":["../src/err.ts"],"names":[],"mappings":"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"}
|
package/dist/hints.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error code hints for Aontu unification errors.
|
|
3
|
+
*
|
|
4
|
+
* Each key is an error code that can be passed to makeNilErr.
|
|
5
|
+
* Each value is a human-readable explanation of what the error means.
|
|
6
|
+
*/
|
|
7
|
+
declare const hints: Record<string, string>;
|
|
8
|
+
export { hints, };
|
package/dist/hints.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.hints = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Error code hints for Aontu unification errors.
|
|
7
|
+
*
|
|
8
|
+
* Each key is an error code that can be passed to makeNilErr.
|
|
9
|
+
* Each value is a human-readable explanation of what the error means.
|
|
10
|
+
*/
|
|
11
|
+
const hints = {
|
|
12
|
+
scalar_value: 'Literal scalar values of the same kind can only unify if they are\n' +
|
|
13
|
+
'exactly equal.' +
|
|
14
|
+
'\n \nExamples:\n' +
|
|
15
|
+
' 1 & 1 -> 1 # Does unify (equal Integers);\n' +
|
|
16
|
+
' a & a -> a # Does unify (equal Strings);\n' +
|
|
17
|
+
' 1 & 2 -> nil # Does not unify (unequal Integers);\n' +
|
|
18
|
+
' 1 & 1.0 -> nil # Does not unify (kinds: Integer & Number).',
|
|
19
|
+
scalar_kind: 'Literal scalar values of different kinds cannot unify.' +
|
|
20
|
+
'\n \nExamples:\n' +
|
|
21
|
+
' 1 & 1 -> 1 # Does unify (equal Integers);\n' +
|
|
22
|
+
' 1 & a -> nil # Does not unify (Kinds: Integer & String);\n' +
|
|
23
|
+
' 1 & 1.0 -> nil # Does not unify (kinds: Integer & Number).',
|
|
24
|
+
nil_gen: 'The nil value was present after unification, and nil cannot be\n' +
|
|
25
|
+
'generated because nil is not a literal value.',
|
|
26
|
+
no_gen: 'This value was present after unification, and cannot be generated\n' +
|
|
27
|
+
'because it is not a literal value.',
|
|
28
|
+
// TODO: extend errors to have details so we can name the key
|
|
29
|
+
mapval_required: 'This map value is required.',
|
|
30
|
+
mapval_no_gen: 'This value was present after unification, and cannot be generated\n' +
|
|
31
|
+
'because it is not a literal value.',
|
|
32
|
+
listval_required: 'This list element is required.',
|
|
33
|
+
listval_no_gen: 'This list element was present after unification, and cannot be generated\n' +
|
|
34
|
+
'because it is not a literal value.',
|
|
35
|
+
unknown_function: 'This function name is not recognized.',
|
|
36
|
+
literal_nil: 'A literal nil cannot unify with any other value.',
|
|
37
|
+
unify_cycle: 'Circular reference detected during unification.',
|
|
38
|
+
conjunct: 'This conjunction (& operator) could not be completed as some terms\n' +
|
|
39
|
+
'could not be resolved.',
|
|
40
|
+
no_path: 'The path reference could not be found.' +
|
|
41
|
+
'\n \nExamples:\n' +
|
|
42
|
+
' a:1 b:$.a -> a:1,b:1 # $.a is a valid path reference as a is a key of root ($).\n' +
|
|
43
|
+
' a:$.b -> nil # $.b is not a valid path reference as there is no key b in root ($).\n',
|
|
44
|
+
// Parsing errors
|
|
45
|
+
'parse_bad_src': 'Invalid source provided for parsing. The source must be a non-empty string.',
|
|
46
|
+
// Unification errors
|
|
47
|
+
'unify_no_src': 'No source provided for unification. Cannot unify without source values.',
|
|
48
|
+
'unify_no_res': 'Unification produced no result. The values could not be unified.',
|
|
49
|
+
'unite': 'Failed to unite two values. The values are incompatible and cannot be unified.',
|
|
50
|
+
'internal': 'Internal error during unification. This indicates an unexpected error in the unification process.',
|
|
51
|
+
// Type mismatch errors
|
|
52
|
+
'scalar-type': 'Scalar type mismatch. The scalar types are incompatible.',
|
|
53
|
+
'no-scalar-unify': 'Cannot unify scalar values. The scalar values have incompatible types.',
|
|
54
|
+
'not-scalar-type': 'Expected a scalar type but got a non-scalar type.',
|
|
55
|
+
'map': 'Type mismatch: expected a map value but got a different type.',
|
|
56
|
+
'list': 'Type mismatch: expected a list value but got a different type.',
|
|
57
|
+
// Argument errors
|
|
58
|
+
'arg': 'Missing required argument. A function requires an argument but none was provided.',
|
|
59
|
+
'invalid-arg': 'Invalid argument provided. The argument does not match the expected type or format.',
|
|
60
|
+
'no_first_arg': 'Missing first argument. The function requires a first argument but none was provided.',
|
|
61
|
+
// Variable errors
|
|
62
|
+
'unknown_var': 'Unknown variable reference. The variable has not been defined.',
|
|
63
|
+
'invalid_var_kind': 'Invalid variable kind. The variable type does not match the expected kind.',
|
|
64
|
+
// Path and reference errors
|
|
65
|
+
path_cycle: 'Path cycle detected. The path contains a circular reference.',
|
|
66
|
+
'ref': 'Reference resolution failed. Unable to resolve the reference to a value.',
|
|
67
|
+
// Closure and state errors
|
|
68
|
+
'closed': 'Cannot add to closed structure. The map or list is closed and does not accept new keys/elements.',
|
|
69
|
+
'required_listelem': 'Required list element is missing. A non-optional list element has no value.',
|
|
70
|
+
// Junction errors (disjunction/conjection)
|
|
71
|
+
'|:empty': 'Empty disjunction. The disjunction has no valid alternatives.',
|
|
72
|
+
'|:empty-dist': 'Empty disjunction distribution. All alternatives in the disjunction are invalid.',
|
|
73
|
+
// Function errors (dynamic patterns)
|
|
74
|
+
'func': 'Function operation failed. See the specific function name for details.',
|
|
75
|
+
'make': 'Failed to create a new value. The make operation could not construct the value.',
|
|
76
|
+
'resolve': 'Failed to resolve a value. The resolution process could not find or compute the value.',
|
|
77
|
+
'operate': 'Operation failed. The operation could not be performed on the given values.',
|
|
78
|
+
// Operator errors (dynamic patterns)
|
|
79
|
+
'op': 'Operator operation failed. See the specific operator name for details.',
|
|
80
|
+
// Close operation
|
|
81
|
+
'close': 'Failed to close structure. The structure could not be closed.',
|
|
82
|
+
// Dynamic patterns (these serve as prefixes)
|
|
83
|
+
'func:': 'Function error: ',
|
|
84
|
+
'op:': 'Operator error: ',
|
|
85
|
+
'var[': 'Variable type error: ',
|
|
86
|
+
'ref[': 'Reference error: ',
|
|
87
|
+
'op[': 'Operator value error: ',
|
|
88
|
+
};
|
|
89
|
+
exports.hints = hints;
|
|
90
|
+
//# sourceMappingURL=hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hints.js","sourceRoot":"","sources":["../src/hints.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD;;;;;GAKG;AAEH,MAAM,KAAK,GAA2B;IAEpC,YAAY,EACV,qEAAqE;QACrE,gBAAgB;QAChB,kBAAkB;QAClB,oDAAoD;QACpD,mDAAmD;QACnD,0DAA0D;QAC1D,+DAA+D;IAEjE,WAAW,EACT,wDAAwD;QACxD,kBAAkB;QAClB,oDAAoD;QACpD,iEAAiE;QACjE,+DAA+D;IAEjE,OAAO,EACL,kEAAkE;QAClE,+CAA+C;IAEjD,MAAM,EACJ,qEAAqE;QACrE,oCAAoC;IAGtC,6DAA6D;IAC7D,eAAe,EAAE,6BAA6B;IAE9C,aAAa,EACX,qEAAqE;QACrE,oCAAoC;IAEtC,gBAAgB,EAAE,gCAAgC;IAElD,cAAc,EACZ,4EAA4E;QAC5E,oCAAoC;IAEtC,gBAAgB,EACd,uCAAuC;IAEzC,WAAW,EACT,kDAAkD;IAEpD,WAAW,EAAE,iDAAiD;IAE9D,QAAQ,EACN,sEAAsE;QACtE,wBAAwB;IAE1B,OAAO,EAAE,wCAAwC;QAC/C,kBAAkB;QAClB,uFAAuF;QACvF,kGAAkG;IAEpG,iBAAiB;IACjB,eAAe,EAAE,6EAA6E;IAE9F,qBAAqB;IACrB,cAAc,EAAE,yEAAyE;IACzF,cAAc,EAAE,kEAAkE;IAClF,OAAO,EAAE,gFAAgF;IAEzF,UAAU,EAAE,mGAAmG;IAE/G,uBAAuB;IAEvB,aAAa,EAAE,0DAA0D;IACzE,iBAAiB,EAAE,wEAAwE;IAC3F,iBAAiB,EAAE,mDAAmD;IACtE,KAAK,EAAE,+DAA+D;IACtE,MAAM,EAAE,gEAAgE;IAExE,kBAAkB;IAClB,KAAK,EAAE,mFAAmF;IAC1F,aAAa,EAAE,qFAAqF;IACpG,cAAc,EAAE,uFAAuF;IAEvG,kBAAkB;IAClB,aAAa,EAAE,gEAAgE;IAC/E,kBAAkB,EAAE,4EAA4E;IAEhG,4BAA4B;IAC5B,UAAU,EAAE,8DAA8D;IAC1E,KAAK,EAAE,0EAA0E;IAEjF,2BAA2B;IAC3B,QAAQ,EAAE,kGAAkG;IAC5G,mBAAmB,EAAE,6EAA6E;IAElG,2CAA2C;IAC3C,SAAS,EAAE,+DAA+D;IAC1E,cAAc,EAAE,kFAAkF;IAElG,qCAAqC;IACrC,MAAM,EAAE,wEAAwE;IAChF,MAAM,EAAE,iFAAiF;IACzF,SAAS,EAAE,wFAAwF;IACnG,SAAS,EAAE,6EAA6E;IAExF,qCAAqC;IACrC,IAAI,EAAE,wEAAwE;IAE9E,kBAAkB;IAClB,OAAO,EAAE,+DAA+D;IAExE,6CAA6C;IAC7C,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,wBAAwB;CAChC,CAAA;AAIC,sBAAK"}
|
package/dist/lang.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Jsonic } from 'jsonic';
|
|
2
|
+
import type { Val, AontuOptions } from './type';
|
|
3
|
+
import { Site } from './site';
|
|
4
|
+
declare class Lang {
|
|
5
|
+
jsonic: Jsonic;
|
|
6
|
+
opts: AontuOptions;
|
|
7
|
+
idcount: number | undefined;
|
|
8
|
+
constructor(options?: Partial<AontuOptions>);
|
|
9
|
+
parse(src: string, opts?: Partial<AontuOptions>): Val;
|
|
10
|
+
}
|
|
11
|
+
export { Lang, Site, };
|