aontu 0.0.8 → 0.1.2
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/aontu.ts +11 -12
- package/dist/aontu.d.ts +3 -3
- package/dist/aontu.js +11 -8
- package/dist/aontu.js.map +1 -1
- package/dist/aontu.min.js +63 -1
- package/dist/lib/lang.d.ts +2 -1
- package/dist/lib/lang.js +276 -212
- package/dist/lib/lang.js.map +1 -1
- package/dist/lib/op/op.d.ts +1 -1
- package/dist/lib/op/unite.js +7 -2
- package/dist/lib/op/unite.js.map +1 -1
- package/dist/lib/unify.d.ts +2 -1
- package/dist/lib/unify.js +4 -5
- package/dist/lib/unify.js.map +1 -1
- package/dist/lib/val.d.ts +4 -3
- package/dist/lib/val.js +47 -34
- package/dist/lib/val.js.map +1 -1
- package/lib/lang.ts +318 -229
- package/lib/op/op.ts +2 -1
- package/lib/op/unite.ts +11 -3
- package/lib/unify.ts +10 -32
- package/lib/val.ts +54 -32
- package/package.json +15 -12
package/aontu.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/* Copyright (c) 2021 Richard Rodger, MIT License */
|
|
2
2
|
|
|
3
|
-
import { Resolver } from '@jsonic/multisource'
|
|
4
|
-
|
|
5
3
|
import { Options } from './lib/common'
|
|
6
|
-
import { Lang } from './lib/lang'
|
|
4
|
+
import { Lang, includeFileResolver } from './lib/lang'
|
|
7
5
|
import { Unify } from './lib/unify'
|
|
8
6
|
import { Val, Nil } from './lib/val'
|
|
9
7
|
|
|
@@ -19,11 +17,14 @@ also trace deps into top val and watch via model
|
|
|
19
17
|
// TODO: debug tracing
|
|
20
18
|
// TODO: providers - e.g source files from paths
|
|
21
19
|
|
|
22
|
-
const NoResolver = () => ({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
// const NoResolver: Resolver = () => ({
|
|
21
|
+
// kind: '<no-kind>',
|
|
22
|
+
// path: '<no-path>',
|
|
23
|
+
// full: '<no-full>',
|
|
24
|
+
// base: '<no-base>',
|
|
25
|
+
// abs: true,
|
|
26
|
+
// found: false,
|
|
27
|
+
// })
|
|
27
28
|
|
|
28
29
|
/* `Aontu('a:1') => opts={src:'a:1',print:0,...}`
|
|
29
30
|
* `Aontu('a:1',{print:1}) => opts={src:'a:1',print:1,...}`
|
|
@@ -32,8 +33,6 @@ const NoResolver = () => ({
|
|
|
32
33
|
function Aontu(src: string | Partial<Options>, popts?: Partial<Options>): Val {
|
|
33
34
|
let opts = util.options(src, popts)
|
|
34
35
|
|
|
35
|
-
// console.log('A opts', opts)
|
|
36
|
-
|
|
37
36
|
let lang = new Lang(opts)
|
|
38
37
|
let deps = {}
|
|
39
38
|
let val = lang.parse(opts.src, { deps: deps })
|
|
@@ -59,7 +58,7 @@ const util = {
|
|
|
59
58
|
...{
|
|
60
59
|
src: '',
|
|
61
60
|
print: 0,
|
|
62
|
-
resolver:
|
|
61
|
+
resolver: includeFileResolver,
|
|
63
62
|
},
|
|
64
63
|
...srcopts,
|
|
65
64
|
...(popts || {}),
|
|
@@ -68,5 +67,5 @@ const util = {
|
|
|
68
67
|
},
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
export { Aontu, Val, Nil,
|
|
70
|
+
export { Aontu, Val, Nil, Lang, util }
|
|
72
71
|
export default Aontu
|
package/dist/aontu.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Resolver } from '@jsonic/multisource';
|
|
2
1
|
import { Options } from './lib/common';
|
|
2
|
+
import { Lang } from './lib/lang';
|
|
3
3
|
import { Val, Nil } from './lib/val';
|
|
4
4
|
declare function Aontu(src: string | Partial<Options>, popts?: Partial<Options>): Val;
|
|
5
5
|
declare const util: {
|
|
6
|
-
options: (src: string | Partial<Options>, popts?: Partial<Options>
|
|
6
|
+
options: (src: string | Partial<Options>, popts?: Partial<Options>) => Options;
|
|
7
7
|
};
|
|
8
|
-
export { Aontu, Val, Nil,
|
|
8
|
+
export { Aontu, Val, Nil, Lang, util };
|
|
9
9
|
export default Aontu;
|
package/dist/aontu.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Copyright (c) 2021 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.util = exports.Nil = exports.Val = exports.Aontu = void 0;
|
|
4
|
+
exports.util = exports.Lang = exports.Nil = exports.Val = exports.Aontu = void 0;
|
|
5
5
|
const lang_1 = require("./lib/lang");
|
|
6
|
+
Object.defineProperty(exports, "Lang", { enumerable: true, get: function () { return lang_1.Lang; } });
|
|
6
7
|
const unify_1 = require("./lib/unify");
|
|
7
8
|
const val_1 = require("./lib/val");
|
|
8
9
|
Object.defineProperty(exports, "Val", { enumerable: true, get: function () { return val_1.Val; } });
|
|
@@ -16,18 +17,20 @@ also trace deps into top val and watch via model
|
|
|
16
17
|
// TODO: error reporting
|
|
17
18
|
// TODO: debug tracing
|
|
18
19
|
// TODO: providers - e.g source files from paths
|
|
19
|
-
const NoResolver = () => ({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
// const NoResolver: Resolver = () => ({
|
|
21
|
+
// kind: '<no-kind>',
|
|
22
|
+
// path: '<no-path>',
|
|
23
|
+
// full: '<no-full>',
|
|
24
|
+
// base: '<no-base>',
|
|
25
|
+
// abs: true,
|
|
26
|
+
// found: false,
|
|
27
|
+
// })
|
|
24
28
|
/* `Aontu('a:1') => opts={src:'a:1',print:0,...}`
|
|
25
29
|
* `Aontu('a:1',{print:1}) => opts={src:'a:1',print:1,...}`
|
|
26
30
|
* `Aontu({src:'a:1'},{src:'a:2'}) => opts={src:'a:2',print:0,...}`
|
|
27
31
|
*/
|
|
28
32
|
function Aontu(src, popts) {
|
|
29
33
|
let opts = util.options(src, popts);
|
|
30
|
-
// console.log('A opts', opts)
|
|
31
34
|
let lang = new lang_1.Lang(opts);
|
|
32
35
|
let deps = {};
|
|
33
36
|
let val = lang.parse(opts.src, { deps: deps });
|
|
@@ -47,7 +50,7 @@ const util = {
|
|
|
47
50
|
...{
|
|
48
51
|
src: '',
|
|
49
52
|
print: 0,
|
|
50
|
-
resolver:
|
|
53
|
+
resolver: lang_1.includeFileResolver,
|
|
51
54
|
},
|
|
52
55
|
...srcopts,
|
|
53
56
|
...(popts || {}),
|
package/dist/aontu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aontu.js","sourceRoot":"","sources":["../aontu.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;
|
|
1
|
+
{"version":3,"file":"aontu.js","sourceRoot":"","sources":["../aontu.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,qCAAsD;AAkE5B,qFAlEjB,WAAI,OAkEiB;AAjE9B,uCAAmC;AACnC,mCAAoC;AAgEpB,oFAhEP,SAAG,OAgEO;AAAE,oFAhEP,SAAG,OAgEO;AA9DxB;;;;;EAKE;AAEF,wBAAwB;AAExB,sBAAsB;AACtB,gDAAgD;AAEhD,wCAAwC;AACxC,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,KAAK;AAEL;;;GAGG;AACH,SAAS,KAAK,CAAC,GAA8B,EAAE,KAAwB;IACrE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnC,IAAI,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACzB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,IAAI,GAAG,GAAG,IAAI,aAAK,CAAC,GAAqB,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IACjB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IAEjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IAEb,OAAO,GAAG,CAAA;AACZ,CAAC;AAuBQ,sBAAK;AArBd,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,CACP,GAA8B,EAC9B,KAAwB,EACf,EAAE;QACX,mDAAmD;QACnD,IAAI,OAAO,GAAqB,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAEvE,IAAI,IAAI,GAAY;YAClB,GAAG;gBACD,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,0BAAmB;aAC9B;YACD,GAAG,OAAO;YACV,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAE+B,oBAAI;AACpC,kBAAe,KAAK,CAAA"}
|
package/dist/aontu.min.js
CHANGED
|
@@ -1 +1,63 @@
|
|
|
1
|
-
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Aontu=e()}}((function(){var e=function(e){var t;return function(n){return t||e(t={exports:{},parent:n},t.exports),t.exports}},t=e((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Site=t.Lang=void 0;const r=n({});class s{constructor(e){this.row=-1,this.col=-1,this.url="",this.row=e.row,this.col=e.col,this.url=e.url}}t.Site=s,s.NONE=new s(r.TOP);let o=function(e){e.options({value:{src:{string:()=>new r.ScalarTypeVal(String),number:()=>new r.ScalarTypeVal(Number),integer:()=>new r.ScalarTypeVal(r.Integer),boolean:()=>new r.ScalarTypeVal(Boolean),nil:()=>new r.Nil("literal"),top:()=>r.TOP}},token:{"#A&":{c:"&"},"#A|":{c:"|"},"#A/":{c:"/"},"#A*":{c:"*"},"#A=":{c:"="}},map:{merge:(e,t)=>{let n=e,s=t;return new r.ConjunctVal([n,s])}}});let t=e.token.NR,n=e.token.TX,s=e.token.ST,o=e.token.VL,i=e.token.OB,c=e.token.OS,a=e.token["#A&"],u=e.token["#A|"],p=e.token["#A/"],f=e.token["#A*"],h=e.token["#A="];e.rule("expr",()=>new l.RuleSpec({open:[{s:[[a,u,f]],p:"disjunct",b:1,n:{expr:1}}],close:[{s:[]}],bo:e=>e.node={t:e.node},ac:e=>{let t=e.child.node.o;if(t instanceof r.PrefVal)return{err:"single-pref"};e.node=t}})),e.rule("disjunct",()=>new l.RuleSpec({open:[{s:[a],p:"conjunct",b:1},{s:[f],p:"pref",b:1},{s:[u,f],p:"pref",b:1,a:e=>{e.node.o=e.node.o instanceof r.DisjunctVal?e.node.o:new r.DisjunctVal([e.node.t])}},{s:[u,[t,n,s,o,i,c]],b:1,p:"val",a:e=>{e.node.o=e.node.o instanceof r.DisjunctVal?e.node.o:new r.DisjunctVal([e.node.t])}}],close:[{s:[u],r:"disjunct",b:1,a:e=>{var t;let n=(null===(t=e.child.node)||void 0===t?void 0:t.o)||e.child.node;e.node.t=n}},{s:[a],r:"disjunct",b:1,a:e=>{var t;let n=(null===(t=e.child.node)||void 0===t?void 0:t.o)||e.child.node;e.node.t=n,e.child.node=null}},{}],ac:e=>{var t;let n=(null===(t=e.child.node)||void 0===t?void 0:t.o)||e.child.node;n&&(e.node.o instanceof r.DisjunctVal?e.node.o.append(n):e.node.o=n)}})),e.rule("conjunct",()=>new l.RuleSpec({open:[{s:[a,[t,n,s,o,i,c,p]],b:1,p:"val",a:e=>{e.node={o:e.node.o instanceof r.ConjunctVal?e.node.o:new r.ConjunctVal([e.node.t])}}}],close:[{s:[a],r:"conjunct",b:1},{}],ac:e=>{var t;let n=(null===(t=e.child.node)||void 0===t?void 0:t.o)||e.child.node;n&&(e.node.o instanceof r.ConjunctVal?e.node.o.append(n):e.node.o=n)}})),e.rule("path",()=>new l.RuleSpec({open:[{s:[p,[n,s,t,o]],p:"part",b:2}],bo:e=>e.node=new r.RefVal("/")})),e.rule("part",()=>new l.RuleSpec({open:[{s:[p,[n,s,t,o]],r:"part",a:e=>{e.node.append(e.open[1].src)}},{}]})),e.rule("pair",e=>{e.def.open.unshift({s:[[a,u],h],p:"val",u:{spread:!0}});let t=e.def.bc;return e.def.bc=function(e,n){let s=t.call(this,e,n);return e.use.spread&&(e.node[r.MapVal.SPREAD]=e.node[r.MapVal.SPREAD]||{o:e.open[0].src,v:[]},e.node[r.MapVal.SPREAD].v.push(e.child.node)),s},e}),e.rule("pref",()=>new l.RuleSpec({open:[{s:[f,[t,n,s,o,i,c,p]],b:1,p:"val"}],close:[{s:[a],e:e=>e.open[1]},{}],ac:e=>{e.node=new r.PrefVal(e.child.node)}})),e.rule("val",e=>{e.def.open.unshift({s:[f,[t,n,s,o,i,c,p]],p:"expr",b:2},{s:[p,[n,s,t,o]],p:"path",b:2}),e.def.close.unshift({s:[[a,u]],p:"expr",b:1,c:e=>null==e.n.expr||0===e.n.expr});let l=e.def.bc;return e.def.bc=function(e,t){let n=l.call(this,e,t),s=e.node,o=typeof s;"string"===o?s=new r.StringVal(e.node):"number"===o?s=Number.isInteger(e.node)?new r.IntegerVal(e.node):new r.NumberVal(e.node):"boolean"===o&&(s=new r.BooleanVal(e.node));let i=e.open[0];return s.row=i.row,s.col=i.col,s.url=t.meta.multisource&&t.meta.multisource.path,e.node=s,n},e}),e.rule("map",e=>{let t=e.def.bc;return e.def.bc=function(e,n){let s=t?t.call(this,e,n):void 0;return e.node=new r.MapVal(e.node),s},e})};t.Lang=class{constructor(e){this.options={src:"",print:-1},this.options=Object.assign({},this.options,e),this.jsonic=l.Jsonic.make().use(o).use(O.MultiSource,{resolver:e?e.resolver:void 0})}parse(e,t){let n={multisource:{path:this.options.base,deps:t&&t.deps||void 0}};return t&&null!=t.log&&Number.isInteger(t.log)&&(n.log=t.log),this.jsonic(e,n)}}})),n=e((function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PrefVal=n.RefVal=n.DisjunctVal=n.ConjunctVal=n.MapVal=n.IntegerVal=n.BooleanVal=n.StringVal=n.NumberVal=n.ScalarTypeVal=n.Nil=n.TOP=n.Val=n.Integer=n.DONE=void 0;const o=r({}),i=t({}),l=s({});n.DONE=-1;const c={id:0,top:!0,peg:void 0,done:-1,path:[],row:-1,col:-1,url:"",unify:(e,t)=>e,get canon(){return"top"},get site(){return new i.Site(this)},same:e=>c===e,gen:e=>{}};n.TOP=c;class a{constructor(e,t){this.done=0,this.row=-1,this.col=-1,this.url="",this.peg=e,this.path=t&&t.path||[],this.id=t&&t.vc++||9e9+Math.floor(1e9*Math.random())}same(e){return this===e}get site(){return new i.Site(this)}}n.Val=a;class u extends a{constructor(e,t){super(null,t),this.nil=!0,this.why=e,this.done=-1}unify(e,t){return this}get canon(){return"nil"}gen(e){}}n.Nil=u,u.make=(e,t,n,r)=>{let s=new u(t,e);return null!=n&&(s.row=n.row,s.col=n.col,s.url=n.url,s.primary=n,null!=r)&&(s.secondary=r,s.url===r.url&&(s.row<r.row||s.row===r.row&&s.col<r.col)&&(s.row=r.row,s.col=r.col,s.url=r.url,s.primary=r,s.secondary=n)),e&&e.err.push(s),s};class p{}n.Integer=p;class f extends a{constructor(e,t){super(e,t),this.done=-1}unify(e,t){if(e instanceof h)return e.type===this.peg||Number===this.peg&&p===e.type?e:u.make(t,"no-scalar-unify",this,e);if(e instanceof f){if(Number===this.peg&&p===e.peg)return e;if(Number===e.peg&&p===this.peg)return this}return u.make(t,"scalar-type",this,e)}get canon(){return this.peg.name.toLowerCase()}same(e){return e instanceof f?this.peg===e.peg:super.same(e)}gen(e){}}n.ScalarTypeVal=f;class h extends a{constructor(e,t,n){super(e,n),this.type=t,this.done=-1}unify(e,t){return e instanceof f?e.unify(this,t):u.make(t,"scalar",this,e)}get canon(){return this.peg.toString()}same(e){return e instanceof h?e.peg===this.peg:super.same(e)}gen(e){return this.peg}}n.NumberVal=class extends h{constructor(e,t){super(e,Number,t)}unify(e,t){return e instanceof h&&e.type===p?e:super.unify(e,t)}},n.IntegerVal=class extends h{constructor(e,t){if(!Number.isInteger(e))throw new Error("not-integer");super(e,p,t)}unify(e,t){return e instanceof f&&e.peg===Number||e instanceof h&&e.type===Number&&this.peg===e.peg?this:super.unify(e,t)}},n.StringVal=class extends h{constructor(e,t){super(e,String,t)}unify(e,t){return super.unify(e,t)}get canon(){return JSON.stringify(this.peg)}};class d extends h{constructor(e,t){super(e,Boolean,t)}unify(e,t){return super.unify(e,t)}}n.BooleanVal=d,d.TRUE=new d(!0,new o.Context({vc:1,root:c})),d.FALSE=new d(!1,new o.Context({vc:2,root:c}));class g extends a{constructor(e,t){super(e,t),this.spread={cj:void 0};let n=this.peg[g.SPREAD];delete this.peg[g.SPREAD],n&&"&"===n.o&&(this.spread.cj=new m(Array.isArray(n.v)?n.v:[n.v],t))}unify(e,t){let n=!0,r=c===e?this:new g({},t);r.spread.cj=this.spread.cj,e instanceof g&&(r.spread.cj=null==r.spread.cj?e.spread.cj:null==e.spread.cj?r.spread.cj:r.spread.cj=new m([r.spread.cj,e.spread.cj],t)),r.done=this.done+1,this.spread.cj&&(r.spread.cj=-1!==this.spread.cj.done?l.unite(t,this.spread.cj):this.spread.cj);let s=r.spread.cj||c;for(let o in this.peg)r.peg[o]=l.unite(t.descend(o),this.peg[o],s),n=n&&-1===r.peg[o].done;if(e instanceof g){let o=l.unite(t,e);for(let e in o.peg){let i=o.peg[e],c=r.peg[e],a=r.peg[e]=void 0===c?i:c instanceof u?c:i instanceof u?i:l.unite(t.descend(e),c,i);this.spread.cj&&(r.peg[e]=l.unite(t,r.peg[e],s)),n=n&&-1===a.done}}else if(c!==e)return u.make(t,"map",this,e);return r.done=n?-1:r.done,r}get canon(){let e=Object.keys(this.peg);return"{"+(this.spread.cj?"&="+this.spread.cj.canon+(0<e.length?",":""):"")+e.map(e=>[JSON.stringify(e)+":"+this.peg[e].canon]).join(",")+"}"}gen(e){let t={};for(let n in this.peg)t[n]=this.peg[n].gen(e);return t}}n.MapVal=g,g.SPREAD=Symbol("spread");class m extends a{constructor(e,t){super(e,t)}append(e){return this.peg.push(e),this}unify(e,t){let n=!0,r=[];for(let c=0;c<this.peg.length;c++)if(r[c]=l.unite(t,this.peg[c],e),n=n&&-1===r[c].done,r[c]instanceof u)return u.make(t,"&peer["+r[c].canon+","+e.canon+"]",this.peg[c],e);let s,o=0<r.length?[r[0]]:[],i=0;for(let c=1;c<r.length;c++)if(o[i]instanceof m)o.splice(i,0,...o[i].peg),i+=o[i].peg.length,n=!1;else if(o[i]=null==o[i]?r[c]:l.unite(t,o[i],r[c]),n=n&&-1===o[i].done,o[i]instanceof u)return o[i];return(s=0===o.length?c:1===o.length?o[0]:new m(o,t)).done=n?-1:this.done+1,s}get canon(){return this.peg.map(e=>e.canon).join("&")}gen(e){if(0<this.peg.length){let t=this.peg[0],n=void 0;return void 0===t||t instanceof u||(n=t.gen(e)),n}}}n.ConjunctVal=m;class b extends a{constructor(e,t,n){super(e,t)}append(e){return this.peg.push(e),this}unify(e,t){let n,r=!0,s=[];for(let o=0;o<this.peg.length;o++)s[o]=l.unite(t,this.peg[o],e),r=r&&-1===s[o].done;if(1<s.length){for(let t=0;t<s.length;t++)s[t]instanceof b&&s.splice(t,1,...s[t].peg);let e=new u;for(let t=0;t<s.length;t++)for(let n=t+1;n<s.length;n++)s[n].same(s[t])&&(s[n]=e);s=s.filter(e=>!(e instanceof u))}if(1==s.length)n=s[0];else{if(0==s.length)return u.make(t,"|:empty",this);n=new b(s,t)}return n.done=r?-1:this.done+1,n}get canon(){return this.peg.map(e=>e.canon).join("|")}gen(e){if(0<this.peg.length){let t=this.peg.filter(e=>e instanceof y),n=(t=0===t.length?this.peg:t)[0];for(let e=1;e<this.peg.length;e++)n=n.unify(this.peg[e]);return n.gen(e)}}}n.DisjunctVal=b;class v extends a{constructor(e,t){super(e,t),this.parts=e.split("/").filter(e=>""!=e),this.absolute=e.startsWith("/")}append(e){this.parts.push(e),this.peg=(this.absolute?"/":"")+this.parts.join("/")}unify(e,t){let n,r=null==t?this:t.find(this);return(r=null==r&&111<this.done?u.make(t,"no-path",this,e):r||this)instanceof v?c===e?n=this:e instanceof u?n=u.make(t,"ref["+this.peg+"]",this,e):(this.done=-1===this.done?-1:this.done+1,n=new m([this,e],t)):n=l.unite(t,r,e),n.done=-1===n.done?-1:this.done+1,n}get canon(){return this.peg}gen(e){}}n.RefVal=v;class y extends a{constructor(e,t,n){super(e,n),this.pref=t||e}unify(e,t){let n,r=!0;return n=e instanceof y?new y(l.unite(t,this.peg,e.peg),l.unite(t,this.pref,e.pref),t):new y(l.unite(t,this.peg,e),l.unite(t,this.pref,e),t),r=r&&-1===n.peg.done&&(null==n.pref||-1===n.pref.done),n.peg instanceof u?n=n.pref:n.pref instanceof u&&(n=n.peg),n.done=r?-1:this.done+1,n}get canon(){return this.pref instanceof u?this.peg.canon:"*"+this.pref.canon}gen(e){let t=this.pref instanceof u?this.peg instanceof u?void 0:this.peg:this.pref;return void 0===t?void 0:t.gen(e)}}n.PrefVal=y})),r=e((function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Unify=r.Context=void 0;const o=n({}),i=t({}),l=s({});class c{constructor(e){this.root=e.root,this.path=[],this.err=e.err||[],this.vc=null==e.vc?1e9:e.vc}clone(e){return new c({root:e.root,err:this.err,vc:this.vc})}descend(e){return this.clone({root:this.root,path:this.path.concat(e)})}find(e){if(this.root instanceof o.MapVal&&e.absolute){let t=this.root,n=0;for(;n<e.parts.length&&t instanceof o.MapVal;n++){let r=e.parts[n];t=t.peg[r]}if(n===e.parts.length)return t}}}r.Context=c,r.Unify=class{constructor(e,t){this.lang=t||new i.Lang,"string"==typeof e&&(e=this.lang.parse(e)),this.root=e,this.res=e,this.err=[];let n=e,r=new c({root:n,err:this.err});for(this.dc=0;this.dc<111&&o.DONE!==n.done;this.dc++)n=l.unite(r,n,o.TOP),r=r.clone({root:n});this.res=n}}})),s=e((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.unite=void 0;const n=i({});Object.defineProperty(t,"disjunct",{enumerable:!0,get:function(){return n.disjunct}});const r=o({});Object.defineProperty(t,"unite",{enumerable:!0,get:function(){return r.unite}})})),o=e((function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.unite=void 0;const r=n({});function s(e,t){return e}t.unite=(e,t,n)=>{let o=t;if(!n||r.TOP!==t&&t)if(!t||r.TOP!==n&&n){if(t&&n&&r.TOP!==n)if(t instanceof r.Nil)o=s(t);else if(n instanceof r.Nil)o=s(n);else{if(n instanceof r.ConjunctVal||n instanceof r.DisjunctVal||n instanceof r.RefVal||n instanceof r.PrefVal)return n.unify(t,e);o=t.constructor===n.constructor&&t.peg===n.peg?s(t):t.unify(n,e)}}else o=t;else o=n;return o||(o=r.Nil.make(e,"unite",t,n)),r.DONE!==o.done&&(o=o.unify(r.TOP,e)),o}})),i=e((function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.disjunct=void 0;const s=t({}),o=n({});function i(e,t){let n=s.Site.NONE;return t instanceof o.DisjunctVal?(e.push(...t.peg),n=t.site):t instanceof o.Val&&e.push(t),n}r.disjunct=(e,t,n)=>{let r=[],s=[];return s.push(i(r,t)),s.push(i(r,n)),new o.DisjunctVal(r,e,s)}})),l={exports:{}};(function(e){(function(){!function(t){"object"==typeof l.exports?l.exports=t():("undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:this).Jsonic=t()}((function(){var e={exports:{}};Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.make=e.exports.util=e.exports.Alt=e.exports.RuleSpec=e.exports.Rule=e.exports.Parser=e.exports.Lexer=e.exports.JsonicError=e.exports.Jsonic=void 0;const t=Object.keys,n=Object.entries,r=Object.assign,s=Object.defineProperty,o="object",i="string",l="function",c="unexpected",a="map",u="list",p="elem",f="pair",h="val",d="block_indent_",g="imp,map",m="imp,list",b="imp,null",v="open",y="close",x="null";class w extends SyntaxError{constructor(e,t,n,s,o){let i=X(e,t=I({},t),n,s,o);super(i.message),r(this,i),B(this)}toJSON(){return{...this,__error:!0,name:this.name,message:this.message,stack:this.stack}}}e.exports.JsonicError=w;class k{constructor(e){this.match={},R("@LTP",e),R("@LTX",e),R("@LCS",e),R("@LML",e),this.end={tin:R("#ZZ",e),loc:0,len:0,row:0,col:0,val:void 0,src:void 0}}start(e){const n=e.opts,r=e.cnfg;let s=e=>R(e,r),o=e=>R(e,r),i=e.F,a=s("@LTP"),u=s("@LTX"),p=s("@LCS"),f=s("@LML"),h=s("#ZZ"),g=s("#SP"),m=s("#CM"),b=s("#NR"),v=s("#ST"),y=s("#TX"),x=s("#VL"),w=s("#LN"),k={tin:h,loc:0,row:0,col:0,len:0,val:void 0,src:void 0},j=0,A=0,S=0,C=a,T=null,N=e.src(),O=N.length,_=null!=e.log?(...t)=>e.log("lex",o(k.tin),i(k.src),j,A+":"+S,o(C),{...k},...t):void 0,V=(t,n,r,s)=>this.bad(e,_,t,k,j,n,A,S,r,r,s),P=t=>{let n=this.match[C];if(null!=n)for(let r of n){let n=r({sI:j,rI:A,cI:S,src:N,token:k,ctx:e,rule:t,bad:V});if(n)return j=n.sI?n.sI:j,A=n.rI?n.rI:A,S=n.cI?n.cI:S,C=null==n.state?C:n.state,T=null==n.state_param?T:n.state_param,_&&_(k,r),k}},E=function(s){k.len=0,k.val=void 0,k.src=void 0,k.row=A,k.use=void 0;let o={},i=0,E=[];e:for(;j<O;){let h=N[j];if(k.loc=j,k.col=S,e.xs=C,a!==C){if(u===C){if(P(s))return k;i=j;let e=N.substring(j).match(r.re.te);if(e){let t=e[0].length;i+=t,S+=t}return k.len=i-j,k.tin=y,k.val=N.substring(j,i),k.src=k.val,j=i,C=a,_&&_(k),k}if(p===C){if(P(s))return k;for(i=j;i<O&&!o[N[i]];)i++,S++;return k.val+=N.substring(j,i),k.src=k.val,k.len=k.val.length,j=i,C=a,_&&_(k),k}if(f===C){if(P(s))return k;i=j;let e=1,o=T[0],l=T[1],c=T[2],u=!!T[3],p="",f=0,h=o.length,g=l.length;if(u){let e=j-1;for(;-1<e&&r.m.SP[N[e]];)e--;0<(f=j-e-1)&&(p=t(r.m.SP)[0].repeat(f))}for(i+=o.length;i<O&&0<e;)l[0]===N[i]&&l===N.substring(i,i+g)?(i+=g,S+=g,e--):c&&o[0]===N[i]&&o===N.substring(i,i+h)?(i+=h,S+=g,e++):(n.line.row===N[i]?(A++,S=0):S++,i++);if(k.val=N.substring(j,i),k.src=k.val,k.len=k.val.length,u){k.val=k.val.substring(h,k.val.length-g),null==r.re.block_prefix&&(r.re.block_prefix=J("","^[",$(n.token["#SP"]),"]*(",n.line.sep,")")),k.val=k.val.replace(r.re.block_prefix,""),null==r.re.block_suffix&&(r.re.block_suffix=J("",n.line.sep,"[",$(n.token["#SP"]),"]*$")),k.val=k.val.replace(r.re.block_suffix,"");let e=r.re[d+p]=r.re[d+p]||J("g","^(",$(p),")|((",n.line.sep,")",$(p),")");k.val=k.val.replace(e,"$3")}return j=i,C=a,_&&_(k),k}return V("invalid_lex_state",j,N[j],{state:C})}if(P(s))return k;if(n.space.lex&&r.m.SP[h]){for(k.tin=g,S++,i=j+1;r.m.SP[N[i]];)S++,i++;return k.len=i-j,k.val=N.substring(j,i),k.src=k.val,j=i,_&&_(k),k}if(n.line.lex&&r.m.LN[h]){for(k.tin=w,i=j,S=0;r.m.LN[N[i]];)A+=n.line.row===N[i]?1:0,i++;return k.len=i-j,k.val=N.substring(j,i),k.src=k.val,j=i,_&&_(k),k}if(n.number.lex&&r.m.NR[h]){let e=N.substring(j).match(r.re.nm);if(null!=e){let t=e[0];if(i=j+t.length,null==N[i]||r.cs.vend[N[i]]){let e=+(r.re.ns?t.replace(r.re.ns,""):t);if(!isNaN(e))return k.tin=b,k.src=t,k.val=e,k.len=t.length,j+=k.len,S+=k.len,_&&_(k),k}}}if(null!=r.sm[h])return k.tin=r.sm[h],k.len=1,k.src=h,j++,S++,_&&_(k),k;if(n.block.lex&&r.cs.bs[h]){let e=N.substring(j,j+r.bmx);for(let t of r.bmk)if(e.startsWith(t)){k.tin=v,C=f,T=[t,n.block.marker[t],null,!0];continue e}}if(n.string.lex&&r.m.ST[h]){k.tin=v,S++;let e=r.cs.mln[h];E=[];let t="";for(i=j+1;i<O;i++)if(S++,h===(t=N[i])){if(!n.string.escapedouble||h!==N[i+1]){i++;break}E.push(N[i]),i++}else if("\\"===t){i++,S++;let e=r.esc[N[i]];if(null!=e)E.push(e);else if("x"===N[i]){i++;let e=parseInt(N.substring(i,i+2),16);if(isNaN(e))return j=i-2,S-=2,V("invalid_ascii",i+2,N.substring(i-2,i+2));let t=String.fromCharCode(e);E.push(t),i+=1,S+=2}else if("u"===N[i]){let e="{"===N[++i]?(i++,1):0,t=e?6:4,n=parseInt(N.substring(i,i+t),16);if(isNaN(n))return j=i-2-e,S-=2,V("invalid_unicode",i+t+1,N.substring(i-2-e,i+t+e));let r=String.fromCodePoint(n);E.push(r),i+=t-1+e,S+=t+e}else E.push(N[i])}else{let s=i,o=h.charCodeAt(0),l="\\".charCodeAt(0),c=N.charCodeAt(i);for(;i<O&&32<=c&&o!==c&&l!==c;)c=N.charCodeAt(++i),S++;if(S--,t=N[i],c<32){if(!e||!r.m.LN[t])return V("unprintable",i,"char-code="+N[i].charCodeAt(0));t===n.line.row&&(A++,S=0),E.push(N.substring(s,i+1))}else E.push(N.substring(s,i)),i--}return h!==t?V("unterminated",i,E.join("")):(k.val=E.join(""),k.src=N.substring(j,i),k.len=i-j,j=i,_&&_(k),k)}if(n.comment.lex&&r.cs.cs[h]){let e=N.substring(j,j+r.cmx);for(let t of r.cmk)if(e.startsWith(t)){if(!0!==r.cm[t]){k.tin=m,k.val="",C=f,T=[t,r.cm[t],n.comment.balance];continue e}break}k.tin=m,k.val="",C=p,o=r.m.LN}else{if(n.value.lex&&r.vs[h]){i=j;do{i++}while(null!=N[i]&&!r.cs.vend[N[i]]);let t=N.substring(j,i),n=r.vm[t];if(void 0!==(n=l===typeof n?n({sI:j,rI:A,cI:S,src:N,token:k,ctx:e,rule:s,bad:V}):n))return k.tin=x,k.val=n,k.src=t,k.len=i-j,S+=k.len,j=i,_&&_(k),k}if(!n.text.lex)return V(c,j,N[j]);C=u}}return k.tin=h,k.loc=O,k.col=S,_&&_(k),k};return E.src=N,E}bad(e,t,n,r,s,o,i,l,c,a,u){return r.why=n,r.tin=R("#BD",e.cnfg),r.loc=s,r.row=i,r.col=l,r.len=o-s,r.val=c,r.src=a,r.use=u,t&&t(R(r.tin,e.cnfg),e.F(r.src),s,i+":"+l,{...r},"error",n),r}lex(e,t){if(null==e)return this.match;let n=this.match[e];return null!=t?(null==n&&(n=this.match[e]=[]),n.push(t)):null===t&&(n=this.match[e],delete this.match[e]),n}clone(e){let t=new k(e);return I(t.match,this.match),t}}var j;e.exports.Lexer=k,function(e){e[e.open=0]="open",e[e.close=1]="close"}(j||(j={}));class A{constructor(e,t,n){this.id=t.uI++,this.name=e.name,this.spec=e,this.node=n,this.state=j.open,this.child=S,this.open=[],this.close=[],this.n={},this.use={},this.bo=!1!==e.bo,this.ao=!1!==e.ao,this.bc=!1!==e.bc,this.ac=!1!==e.ac}process(e){return this.spec.process(this,e,this.state)}}e.exports.Rule=A;const S={name:"none",state:0};class C{constructor(){this.m=[],this.p="",this.r="",this.b=0}}e.exports.Alt=C;const T=new C,N=new C;class O{constructor(e){function t(e){let t=null!=e.c&&e.c.n;t&&(e.c=e=>{let n=!0;for(let r in t)n=n&&(null==e.n[r]||e.n[r]<=t[r]);return n}),i===typeof e.g&&(e.g=e.g.split(/\s*,\s*/))}this.name="-",this.bo=!0,this.ao=!0,this.bc=!0,this.ac=!0,this.def=e||{},this.def.open=this.def.open||[],this.def.close=this.def.close||[];for(let n of[...this.def.open,...this.def.close])t(n)}process(e,t,n){let r,s="",o=t.F,i=n===j.open,l=i?e:S,a=this.def,u=i?a.open:a.close,p=i?e.bo&&a.bo:e.bc&&a.bc;if(p&&(r=p.call(this,e,t))){if(r.err)throw new w(r.err,{...r,state:i?v:y},t.t0,e,t);e.node=r.node||e.node}let f=r&&r.alt?{...N,...r.alt}:0<u.length?this.parse_alts(u,e,t):N;if(f.h&&(f=f.h(e,t,f,l)||f,s+="H"),i?e.open=f.m:e.close=f.m,f.e)throw new w(c,{...f.e.use,state:i?v:y},f.e,e,t);if(f.n)for(let c in f.n)e.n[c]=0===f.n[c]?0:(null==e.n[c]?0:e.n[c])+f.n[c],e.n[c]=0<e.n[c]?e.n[c]:0;f.u&&(e.use=Object.assign(e.use,f.u)),f.a&&(s+="A",f.a.call(this,e,t,f,l)),f.p?(t.rs.push(e),(l=e.child=new A(t.rsm[f.p],t,e.node)).parent=e,l.n={...e.n},s+="U"):f.r?((l=new A(t.rsm[f.r],t,e.node)).parent=e.parent,l.prev=e,l.n={...e.n},s+="R"):(i||(l=t.rs.pop()||S),s+="Z");let h=i?e.ao&&a.ao:e.ac&&a.ac;if(h){let n=h.call(this,e,t,f,l);if(n){if(n.err)throw t.t0.why=s,new w(n.err,{...n,state:i?v:y},t.t0,e,t);l=n.next||l}}l.why=s,t.log&&t.log("node",e.name+"~"+e.id,j[e.state],"w="+s,o(e.node));let d=0,g=f.m.length-(f.b||0);for(;d++<g;)t.next();return j.open===e.state&&(e.state=j.close),l}parse_alts(e,t,r){let s,o=T;o.m=[],o.b=0,o.p="",o.r="",o.n=void 0,o.h=void 0,o.a=void 0,o.u=void 0,o.e=void 0;let i,l=0,c=r.cnfg.t,a=e.length;for(l=0;l<a&&(i=!1,null==(s=e[l]).s||0===s.s.length?i=!0:(s.s[0]===r.t0.tin||s.s[0]===c.AA||Array.isArray(s.s[0])&&s.s[0].includes(r.t0.tin))&&(1===s.s.length?(o.m=[r.t0],i=!0):(s.s[1]===r.t1.tin||s.s[1]===c.AA||Array.isArray(s.s[1])&&s.s[1].includes(r.t1.tin))&&(o.m=[r.t0,r.t1],i=!0)),!(i=(i=i&&(!s.c||s.c(t,r,o)))&&(null==s.d||s.d===r.rs.length)));l++)s=null;return null==s&&c.ZZ!==r.t0.tin&&(o.e=r.t0),null!=s&&(o.e=s.e&&s.e(t,r,o)||void 0,o.b=s.b?s.b:o.b,o.p=s.p?s.p:o.p,o.r=s.r?s.r:o.r,o.n=s.n?s.n:o.n,o.h=s.h?s.h:o.h,o.a=s.a?s.a:o.a,o.u=s.u?s.u:o.u),r.log&&r.log("parse",t.name+"~"+t.id,j[t.state],l<e.length?"alt="+l:"no-alt",l<e.length&&s.s?"["+s.s.map(e=>c[e]).join(" ")+"]":"[]",r.tC,"p="+(o.p||""),"r="+(o.r||""),"b="+(o.b||""),o.m.map(e=>c[e.tin]).join(" "),r.F(o.m.map(e=>e.src)),"c:"+(s&&s.c?i:""),"n:"+n(t.n).join(";"),"u:"+n(t.use).join(";"),o),o}}e.exports.RuleSpec=O;class _{constructor(e,t){this.rsm={},this.options=e,this.config=t}init(){let e=this.config.t,n=e.OB,r=e.CB,s=e.OS,o=e.CS,i=e.CL,l=e.CA,c=e.TX,d=e.NR,v=e.ST,y=e.VL,w=e.AA,k=e.ZZ,j=(e,t)=>{if(!this.options.rule.finish)return t.t0.src="END_OF_SOURCE",t.t0},A={val:{open:[{s:[n,l],p:a,n:{im:0},g:g},{s:[n],p:a,n:{im:0}},{s:[s],p:u},{s:[l],d:0,p:u,b:1,g:m},{s:[l],b:1,g:m},{s:[[c,d,v,y],i],p:a,b:2,n:{im:1},g:g},{s:[[c,d,v,y]]},{s:[r],b:1,g:b},{s:[o],b:1,g:b}],close:[{s:[l],d:0,r:p,a:e=>e.node=[e.node],g:m},{c:(e,t,n)=>(c===t.t0.tin||d===t.t0.tin||v===t.t0.tin||y===t.t0.tin)&&0===t.rs.length,r:p,a:e=>e.node=[e.node],g:m},{s:[w],b:1}],bc:e=>{e.node=void 0===e.child.node?null==e.open[0]?void 0:e.open[0].val:e.child.node}},map:{bo:()=>({node:{}}),open:[{s:[r]},{p:f}],close:[]},list:{bo:()=>({node:[]}),open:[{s:[o]},{p:p}],close:[]},pair:{open:[{s:[[c,d,v,y],i],p:h,u:{key:!0}},{s:[r],b:1}],close:[{s:[r]},{s:[l],c:{n:{im:1}},r:f},{s:[l],b:1},{s:[[c,d,v,y],i],c:{n:{im:1}},r:f,b:2},{s:[[c,d,v,y],i],b:2},{s:[o],b:1},{s:[k],e:j,g:"end"}],bc:(e,t)=>{if(e.use.key){let n=e.open[0],r=v===n.tin?n.val:n.src,s=e.child.node,o=e.node[r];void 0===s&&i===t.v1.tin&&(s=null),e.node[r]=null==o?s:t.opts.map.merge?t.opts.map.merge(o,s):t.opts.map.extend?I(o,s):s}}},elem:{open:[{s:[n],p:a,n:{im:0}},{s:[s],p:u},{s:[l,l],b:2,g:x,a:e=>e.node.push(null)},{s:[l],g:x,a:e=>e.node.push(null)},{p:h,n:{im:1}}],close:[{s:[l,o]},{s:[l],r:p},{s:[o]},{s:[n],p:a,n:{im:0}},{s:[s],p:u},{s:[[c,d,v,y]],r:p,b:1},{s:[k],e:j,g:"end"}],bc:e=>{void 0!==e.child.node&&e.node.push(e.child.node)}}};this.rsm=t(A).reduce((e,t)=>(e[t]=new O(A[t]),e[t].name=t,e),{})}rule(e,t){if(null==e)return this.rsm;let n=this.rsm[e];return null===t?delete this.rsm[e]:void 0!==t&&((n=this.rsm[e]=t(this.rsm[e],this.rsm)||this.rsm[e]).name=e),n}start(e,n,r,s,o){let i,l={uI:1,opts:this.options,cnfg:this.config,meta:s||{},src:()=>n,root:()=>i.node,plgn:()=>r.internal().plugins,rule:S,xs:-1,v2:e.end,v1:e.end,t0:e.end,t1:e.end,tC:-2,next:d,rs:[],rsm:this.rsm,log:s&&s.log||void 0,F:E(this.config),use:{}};null!=o&&(l=I(l,o)),F(l);let a=e=>R(e,this.config),u=U(e.start(l),R("#BD",this.config),l),p=this.rsm[this.options.rule.start];if(null==p)return;let f=new A(p,l);i=f;let h=2*t(this.rsm).length*u.src.length*2*this.options.rule.maxmul;function d(){let e;l.v2=l.v1,l.v1=l.t0,l.t0=l.t1;do{e=u(f),l.tC++}while(l.cnfg.ts.IGNORE[e.tin]);return l.t1={...e},l.t0}d(),d();let g=0;for(;S!==f&&g<h;)l.log&&l.log("rule",f.name+"~"+f.id,j[f.state],l.rs.length,l.tC,"["+a(l.t0.tin)+" "+a(l.t1.tin)+"]","["+l.F(l.t0.src)+" "+l.F(l.t1.src)+"]",f,l),l.rule=f,f=f.process(l),l.log&&l.log("stack",l.rs.length,l.rs.map(e=>e.name+"~"+e.id).join("/"),f,l),g++;if(R("#ZZ",this.config)!==l.t0.tin)throw new w(c,{},l.t0,S,l);return i.node}clone(e,t){let n=new _(e,t);return n.rsm=Object.keys(this.rsm).reduce((e,t)=>(e[t]=M(this.rsm[t]),e),{}),n}}e.exports.Parser=_;let V={tokenize:R,srcfmt:E,deep:I,clone:M,charset:L,longest:D,marr:function(e,t){return e.length===t.length&&e.reduce((e,n,r)=>e&&n===t[r],!0)},trimstk:B,makelog:F,badlex:U,extract:Y,errinject:W,errdesc:X,configure:G,parserwrap:H,regexp:J,mesc:$,ender:Z};function P(e,t){let n,l,c,a,u=I({},t?{...t.options}:{tag:"-",line:{lex:!0,row:"\n",sep:"\r*\n"},comment:{lex:!0,balance:!0,marker:{"#":!0,"//":!0,"/*":"*/"}},space:{lex:!0},number:{lex:!0,hex:!0,oct:!0,bin:!0,digital:"-1023456789._xoeEaAbBcCdDfF+",sep:"_"},block:{lex:!0,marker:{"'''":"'''"}},string:{lex:!0,escape:{b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},multiline:"`",escapedouble:!1},text:{lex:!0},map:{extend:!0,merge:void 0},value:{lex:!0,src:{null:null,true:!0,false:!1}},plugin:{},debug:{get_console:()=>console,maxlen:99,print:{config:!1}},error:{unknown:"unknown error: $code",unexpected:"unexpected character(s): $src",invalid_unicode:"invalid unicode escape: $src",invalid_ascii:"invalid ascii escape: $src",unprintable:"unprintable character: $src",unterminated:"unterminated string: $src"},hint:q,token:{"#OB":{c:"{"},"#CB":{c:"}"},"#OS":{c:"["},"#CS":{c:"]"},"#CL":{c:":"},"#CA":{c:","},"#SP":" \t","#LN":"\n\r","#NR":"-0123456789+","#ST":"\"'`","#TX":!0,"#VL":!0,"#CM":!0,"#BD":!0,"#ZZ":!0,"#UK":!0,"#AA":!0,"#IGNORE":{s:"#SP,#LN,#CM"}},rule:{start:h,finish:!0,maxmul:3},config:{modify:{}},parser:{start:void 0}},e||{}),p=function(e,t,n){if(i===typeof e){let r=p.internal();return(f.parser.start?H(f.parser):r.parser).start(r.lexer,e,p,t,n)}return e},f=e=>{if(null!=e&&o===typeof e){G(c,I(u,e));for(let e in u)p.options[e]=u[e];r(p.token,c.t)}return{...p.options}},d={token:function(e){return R(e,c,p)},options:I(f,u),parse:p,use:function(e,t){return p.options({plugin:{[e.name]:t||{}}}),p.internal().plugins.push(e),e(p)||p},rule:function(e,t){return p.internal().parser.rule(e,t)},lex:function(e,t){return p.internal().lexer.lex(e,t)},make:function(e){return P(e,p)},id:"Jsonic/"+Date.now()+"/"+(""+Math.random()).substring(2,8).padEnd(6,"0")+"/"+f.tag,toString:function(){return this.id}};if(s(d.make,"name",{value:"make"}),t){for(let n in t)p[n]=t[n];p.parent=t;let e=t.internal();G(c=I({},e.config),u),r(p.token,c.t),a=[...e.plugins],n=e.lexer.clone(c),l=e.parser.clone(u,c)}else G(c={tI:1,t:{}},u),a=[],n=new k(c),(l=new _(u,c)).init();return r(p,d),r(p.token,c.t),s(p,"internal",{value:function(){return{lexer:n,parser:l,config:c,plugins:a}}}),p}function E(e){return(t,n)=>null==t?"":(n=JSON.stringify(t)).substring(0,e.d.maxlen)+(e.d.maxlen<n.length?"...":"")}function R(e,t,n){let s=t.t,o=s[e];return null==o&&i===typeof e&&(s[o=t.tI++]=e,s[e]=o,s[e.substring(1)]=o,null!=n&&r(n.token,t.t)),o}function I(e,...t){let n=l===typeof e,r=null!=e&&(o===typeof e||n);for(let s of t){let t=l===typeof s,i=null!=s&&(o===typeof s||t);if(r&&i&&!t&&Array.isArray(e)===Array.isArray(s))for(let n in s)e[n]=I(e[n],s[n]);else e=void 0===s?e:t?s:i?I(Array.isArray(s)?[]:{},s):s,n=l===typeof e,r=null!=e&&(o===typeof e||n)}return e}function M(e){return I(Object.create(Object.getPrototypeOf(e)),e)}function L(...e){return e.filter(e=>!1!==e).map(e=>"object"==typeof e?t(e).join(""):e).join("").split("").reduce((e,t)=>(e[t]=t.charCodeAt(0),e),{})}function D(e){return e.reduce((e,t)=>e<t.length?t.length:e,0)}function B(e){e.stack&&(e.stack=e.stack.split("\n").filter(e=>!e.includes("jsonic/jsonic")).map(e=>e.replace(/ at /,"at ")).join("\n"))}function F(e){if("number"==typeof e.log){let t=!1,n=e.log;-1===n&&(n=1,t=!0),e.log=(...r)=>{if(t){let t=r.filter(e=>o!=typeof e).map(e=>l==typeof e?e.name:e).join("\t");e.opts.debug.get_console().log(t)}else e.opts.debug.get_console().dir(r,{depth:n})}}return e.log}function U(e,t,n){let r=r=>{let s=e(r);if(t===s.tin){let e={};throw null!=s.use&&(e.use=s.use),new w(s.why||c,e,s,r,n)}return s};return r.src=e.src,r}function $(e,t){return(t=new String(e)).esc=!0,t}function J(e,...t){return new RegExp(t.map(e=>e.esc?e.replace(/[-\\|\]{}()[^$+*?.!=]/g,"\\$&"):e).join(""),e)}function Z(e,r,s){let o=t(t(r).reduce((e,t)=>(e[t[0]]=1,e),{...e})).join(""),i=n(t(r).filter(e=>1<e.length&&(!s||!s[e[0]])).reduce((e,t)=>((e[t[0]]=e[t[0]]||[]).push(t.substring(1)),e),{})).reduce((e,t)=>(e.push([t[0],t[1].map(e=>J("",$(e)).source).join("|")]),e),[]).map(e=>["|(",$(e[0]),"(?!(",e[1],")))"]).flat(1);return J("","^(([^",$(o),"]+)",...i,")+")}function W(e,t,n,r,s,o){return e.replace(/\$([\w_]+)/g,(e,i)=>JSON.stringify("code"===i?t:n[i]||(o.meta?o.meta[i]:void 0)||r[i]||s[i]||o[i]||o.opts[i]||o.cnfg[i]||"$"+i))}function Y(e,t,n){let r=0<n.loc?n.loc:0,s=0<n.row?n.row:0,o=0<n.col?n.col:0,i=null==n.src?"":n.src,l=e.substring(Math.max(0,r-333),r).split("\n"),c=e.substring(r,r+333).split("\n"),a=2+(""+(s+2)).length,u=s<2?0:s-2,p=e=>"\x1b[34m"+(""+u++).padStart(a," ")+" | \x1b[0m"+(null==e?"":e),f=l.length;return[2<f?p(l[f-3]):null,1<f?p(l[f-2]):null,p(l[f-1]+c[0])," ".repeat(a)+" "+" ".repeat(o)+"\x1b[31m"+"^".repeat(i.length||1)+" "+t+"\x1b[0m",p(c[1]),p(c[2])].filter(e=>null!=e).join("\n")}function H(e){return{start:function(t,n,r,s,o){try{return e.start(t,n,r,s,o)}catch(i){if("SyntaxError"===i.name){let t=0,o=0,l=0,c="",a=i.message.match(/^Unexpected token (.) .*position\s+(\d+)/i);if(a){c=a[1],t=parseInt(a[2]),o=n.substring(0,t).replace(/[^\n]/g,"").length;let e=t-1;for(;-1<e&&"\n"!==n.charAt(e);)e--;l=Math.max(n.substring(e,t).length,0)}let u=i.token||{tin:r.token.UK,loc:t,len:c.length,row:i.lineNumber||o,col:i.columnNumber||l,val:void 0,src:c};throw new w(i.code||"json",i.details||{msg:i.message},u,{},i.ctx||{uI:-1,opts:r.options,cnfg:{t:{}},token:u,meta:s,src:()=>n,root:()=>{},plgn:()=>r.internal().plugins,rule:S,xs:-1,v2:u,v1:u,t0:u,t1:u,tC:-1,rs:[],next:()=>u,rsm:{},n:{},log:s?s.log:void 0,F:E(r.internal().config),use:{}})}throw i}}}}function X(e,t,n,r,s){n={...n};let o=s.opts,i=s.meta,c=W(o.error[e]||o.error.unknown,e,t,n,r,s);l===typeof o.hint&&(o.hint={...o.hint(),...o.hint});let a=["\x1b[31m[jsonic/"+e+"]:\x1b[0m "+c," \x1b[34m--\x3e\x1b[0m "+(i&&i.fileName||"<no-file>")+":"+n.row+":"+n.col,Y(s.src(),c,n),W((o.hint[e]||o.hint.unknown).replace(/^([^ ])/," $1").split("\n").map((e,t)=>(0===t?" ":" ")+e).join("\n"),e,t,n,r,s)," \x1b[2mhttps://jsonic.richardrodger.com\x1b[0m"," \x1b[2m--internal: rule="+r.name+"~"+j[r.state]+"; token="+s.cnfg.t[n.tin]+(null==n.why?"":"~"+n.why)+"; plugins="+s.plgn().map(e=>e.name).join(",")+"--\x1b[0m\n"].join("\n"),u={internal:{token:n,ctx:s}};return{...Object.create(u),message:a,code:e,details:t,meta:i,fileName:i?i.fileName:void 0,lineNumber:n.row,columnNumber:n.col}}function G(e,n){let r=t(n.token);r.forEach(t=>R(t,e));let s=r.filter(e=>null!=n.token[e].c);e.sm=s.reduce((t,r)=>(t[n.token[r].c]=e.t[r],t),{});let o=r.filter(e=>i===typeof n.token[e]);e.m=o.reduce((t,r)=>(t[r.substring(1)]=n.token[r].split("").reduce((t,n)=>(t[n]=e.t[r],t),{}),t),{});let l=r.filter(e=>null!=n.token[e].s);if(e.ts=l.reduce((t,r)=>(t[r.substring(1)]=n.token[r].s.split(",").reduce((t,n)=>(t[e.t[n]]=n,t),{}),t),{}),e.vm=n.value.src,e.vs=t(n.value.src).reduce((e,t)=>(e[t[0]]=!0,e),{}),e.cs={},e.esc=t(n.string.escape).reduce((e,t)=>(e[t]=n.string.escape[t],e),{}),e.cs.cs={},e.cmk=[],n.comment.lex){e.cm=n.comment.marker;let r=t(e.cm);r.forEach(t=>{1===t.length?e.cs.cs[t]=t.charCodeAt(0):(e.cs.cs[t[0]]=t.charCodeAt(0),e.cmk.push(t))}),e.cmx=D(r)}e.sc=t(e.sm).join(""),e.cs.dig=L(n.number.digital),e.cs.mln=L(n.string.multiline),e.cs.vend=L(n.space.lex&&e.m.SP,n.line.lex&&e.m.LN,e.sc,n.comment.lex&&e.cs.cs,n.block.lex&&e.cs.bs),e.cs.bs={},e.bmk=[];let c=t(n.block.marker);c.forEach(t=>{e.cs.bs[t[0]]=t.charCodeAt(0),e.bmk.push(t)}),e.bmx=D(c);let a=null!=n.number.sep?new RegExp(n.number.sep,"g"):null;e.re={ns:a,te:Z(L(n.space.lex&&e.m.SP,n.line.lex&&e.m.LN,e.sc,n.comment.lex&&e.cs.cs,n.block.lex&&e.cs.bs),{...n.comment.lex?e.cm:{},...n.block.lex?n.block.marker:{}},e.sm),nm:new RegExp(["^[-+]?(0(",[n.number.hex?"x[0-9a-fA-F_]+":null,n.number.oct?"o[0-7_]+":null,n.number.bin?"b[01_]+":null].filter(e=>null!=e).join("|"),")|[0-9]+([0-9_]*[0-9])?)","(\\.[0-9]+([0-9_]*[0-9])?)?","([eE][-+]?[0-9]+([0-9_]*[0-9])?)?"].filter(e=>e.replace(/_/g,null==a?"":n.number.sep)).join(""))},e.d=n.debug,t(n.config.modify).forEach(t=>n.config.modify[t](e,n)),n.debug.print.config&&n.debug.get_console().dir(e,{depth:null})}function q(e=((e,t="replace")=>e[t](/[A-Z]/g,e=>" "+e.toLowerCase())[t](/[~%][a-z]/g,e=>("~"==e[0]?" ":"")+e[1].toUpperCase())),t="~sinceTheErrorIsUnknown,ThisIsProbablyABugInsideJsonic\nitself,OrAPlugin.~pleaseConsiderPostingAGithubIssue -Thanks!|~theCharacter(s) $srcWereNotExpectedAtThisPointAsTheyDoNot\nmatchTheExpectedSyntax,EvenUnderTheRelaxedJsonicRules.~ifIt\nisNotObviouslyWrong,TheActualSyntaxErrorMayBeElsewhere.~try\ncommentingOutLargerAreasAroundThisPointUntilYouGetNoErrors,\nthenRemoveTheCommentsInSmallSectionsUntilYouFindThe\noffendingSyntax.~n%o%t%e:~alsoCheckIfAnyPluginsYouAreUsing\nexpectDifferentSyntaxInThisCase.|~theEscapeSequence $srcDoesNotEncodeAValidUnicodeCodePoint\nnumber.~youMayNeedToValidateYourStringDataManuallyUsingTest\ncodeToSeeHow~javaScriptWillInterpretIt.~alsoConsiderThatYour\ndataMayHaveBecomeCorrupted,OrTheEscapeSequenceHasNotBeen\ngeneratedCorrectly.|~theEscapeSequence $srcDoesNotEncodeAValid~a%s%c%i%iCharacter.~you\nmayNeedToValidateYourStringDataManuallyUsingTestCodeToSee\nhow~javaScriptWillInterpretIt.~alsoConsiderThatYourDataMay\nhaveBecomeCorrupted,OrTheEscapeSequenceHasNotBeenGenerated\ncorrectly.|~stringValuesCannotContainUnprintableCharacters (characterCodes\nbelow 32).~theCharacter $srcIsUnprintable.~youMayNeedToRemove\ntheseCharactersFromYourSourceData.~alsoCheckThatItHasNot\nbecomeCorrupted.|~stringValuesCannotBeMissingTheirFinalQuoteCharacter,Which\nshouldMatchTheirInitialQuoteCharacter.".split("|")){return"unknown|unexpected|invalid_unicode|invalid_ascii|unprintable|unterminated".split("|").reduce((n,r,s)=>(n[r]=e(t[s]),n),{})}e.exports.util=V,e.exports.make=P;let z=P();e.exports.Jsonic=z;let K=z;return delete K.options,delete K.use,delete K.rule,delete K.lex,delete K.token,z.Jsonic=z,z.JsonicError=w,z.Lexer=k,z.Parser=_,z.Rule=A,z.RuleSpec=O,z.Alt=C,z.util=V,z.make=P,e.exports.default=z,e.exports=e.exports.Jsonic,e.exports}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),l=l.exports;var c={};Object.defineProperty(c,"__esModule",{value:!0}),c.makeMemResolver=void 0,c.makeMemResolver=function(e){return function(t,n){let r=n&&n.meta&&n.meta.multisource||{},s=n&&n.opts&&n.opts&&n.opts.plugin&&n.opts.plugin.multisource||{},o=null==r.path?s.path:r.path,i=t.startsWith("/")?t:(null==o?"":o)+"/"+t;return{path:t,full:i,base:o,src:e[i]}}};var a,u,p,f=a={};function h(){throw new Error("setTimeout has not been defined")}function d(){throw new Error("clearTimeout has not been defined")}function g(e){if(u===setTimeout)return setTimeout(e,0);if((u===h||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}!function(){try{u="function"==typeof setTimeout?setTimeout:h}catch(e){u=h}try{p="function"==typeof clearTimeout?clearTimeout:d}catch(e){p=d}}();var m,b=[],v=!1,y=-1;function x(){v&&m&&(v=!1,m.length?b=m.concat(b):y=-1,b.length&&w())}function w(){if(!v){var e=g(x);v=!0;for(var t=b.length;t;){for(m=b,b=[];++y<t;)m&&m[y].run();y=-1,t=b.length}m=null,v=!1,function(e){if(p===clearTimeout)return clearTimeout(e);if((p===d||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}(e)}}function k(e,t){this.fun=e,this.array=t}function j(){}f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];b.push(new k(e,t)),1!==b.length||v||g(w)},k.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=j,f.addListener=j,f.once=j,f.off=j,f.removeListener=j,f.removeAllListeners=j,f.emit=j,f.prependListener=j,f.prependOnceListener=j,f.listeners=function(e){return[]},f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0};var A={};(function(e){(function(){"use strict";function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",s=0,o=-1,i=0,l=0;l<=e.length;++l){if(l<e.length)n=e.charCodeAt(l);else{if(47===n)break;n=47}if(47===n){if(o===l-1||1===i);else if(o!==l-1&&2===i){if(r.length<2||2!==s||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",s=0):s=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),o=l,i=0;continue}}else if(2===r.length||1===r.length){r="",s=0,o=l,i=0;continue}t&&(r.length>0?r+="/..":r="..",s=2)}else r.length>0?r+="/"+e.slice(o+1,l):r=e.slice(o+1,l),s=l-o-1;o=l,i=0}else 46===n&&-1!==i?++i:i=-1}return r}var r={resolve:function(){for(var r,s="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var l;i>=0?l=arguments[i]:(void 0===r&&(r=e.cwd()),l=r),t(l),0!==l.length&&(s=l+"/"+s,o=47===l.charCodeAt(0))}return s=n(s,!o),o?s.length>0?"/"+s:"/":s.length>0?s:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),s=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&s&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var s=arguments[n];t(s),s.length>0&&(void 0===e?e=s:e+="/"+s)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var s=1;s<e.length&&47===e.charCodeAt(s);++s);for(var o=e.length,i=o-s,l=1;l<n.length&&47===n.charCodeAt(l);++l);for(var c=n.length-l,a=i<c?i:c,u=-1,p=0;p<=a;++p){if(p===a){if(c>a){if(47===n.charCodeAt(l+p))return n.slice(l+p+1);if(0===p)return n.slice(l+p)}else i>a&&(47===e.charCodeAt(s+p)?u=p:0===p&&(u=0));break}var f=e.charCodeAt(s+p);if(f!==n.charCodeAt(l+p))break;47===f&&(u=p)}var h="";for(p=s+u+1;p<=o;++p)p!==o&&47!==e.charCodeAt(p)||(0===h.length?h+="..":h+="/..");return h.length>0?h+n.slice(l+u):(l+=u,47===n.charCodeAt(l)&&++l,n.slice(l))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,s=-1,o=!0,i=e.length-1;i>=1;--i)if(47===(n=e.charCodeAt(i))){if(!o){s=i;break}}else o=!1;return-1===s?r?"/":".":r&&1===s?"//":e.slice(0,s)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,s=0,o=-1,i=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var l=n.length-1,c=-1;for(r=e.length-1;r>=0;--r){var a=e.charCodeAt(r);if(47===a){if(!i){s=r+1;break}}else-1===c&&(i=!1,c=r+1),l>=0&&(a===n.charCodeAt(l)?-1==--l&&(o=r):(l=-1,o=c))}return s===o?o=c:-1===o&&(o=e.length),e.slice(s,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!i){s=r+1;break}}else-1===o&&(i=!1,o=r+1);return-1===o?"":e.slice(s,o)},extname:function(e){t(e);for(var n=-1,r=0,s=-1,o=!0,i=0,l=e.length-1;l>=0;--l){var c=e.charCodeAt(l);if(47!==c)-1===s&&(o=!1,s=l+1),46===c?-1===n?n=l:1!==i&&(i=1):-1!==n&&(i=-1);else if(!o){r=l+1;break}}return-1===n||-1===s||0===i||1===i&&n===s-1&&n===r+1?"":e.slice(n,s)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,s=e.charCodeAt(0),o=47===s;o?(n.root="/",r=1):r=0;for(var i=-1,l=0,c=-1,a=!0,u=e.length-1,p=0;u>=r;--u)if(47!==(s=e.charCodeAt(u)))-1===c&&(a=!1,c=u+1),46===s?-1===i?i=u:1!==p&&(p=1):-1!==i&&(p=-1);else if(!a){l=u+1;break}return-1===i||-1===c||0===p||1===p&&i===c-1&&i===l+1?-1!==c&&(n.base=n.name=0===l&&o?e.slice(1,c):e.slice(l,c)):(0===l&&o?(n.name=e.slice(1,i),n.base=e.slice(1,c)):(n.name=e.slice(l,i),n.base=e.slice(l,c)),n.ext=e.slice(i,c)),l>0?n.dir=e.slice(0,l-1):o&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,A=r}).call(this)}).call(this,a);var S={},C=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(S,"__esModule",{value:!0}),S.makeFileResolver=void 0;const T=C({}),N=C(A);S.makeFileResolver=function(){return function(e,t){let n=t&&t.meta&&t.meta.multisource||{},r=t&&t.opts&&t.opts&&t.opts.plugin&&t.opts.plugin.multisource||{},s=null==n.path?null==r.path?e:r.path:n.path,o=s;T.default.statSync(s).isFile()&&(o=N.default.parse(s).dir);let i=N.default.isAbsolute(e)||null==o?e:N.default.resolve(o,e);return{path:e,full:i,base:o,src:T.default.readFileSync(i).toString()}}};var O={};Object.defineProperty(O,"__esModule",{value:!0}),O.MultiSource=void 0,Object.defineProperty(O,"makeMemResolver",{enumerable:!0,get:function(){return c.makeMemResolver}}),Object.defineProperty(O,"makeFileResolver",{enumerable:!0,get:function(){return S.makeFileResolver}});let _={markchar:"@"};const V=Symbol("TOP");O.MultiSource=function(e){let t=l.util.deep({},_,e.options.plugin.multisource),n=t.markchar,r=t.resolver,s="#T<"+n+">";e.options({token:{[s]:{c:n}},error:{multifile_unsupported_file:"unsupported file: $path"},hint:{multifile_unsupported_file:"This file type is not supported and cannot be parsed: $path."}});let o=e.token.ST,i=e.token(s);e.rule("val",t=>{t.def.open.push({s:[i,o]});let n=t.def.bc;return t.def.bc=function(t,s){if(t.open[0]&&i===t.open[0].tin){let n=void 0,o=t.open[1].val,i=r(o,s);if(null!=i.src){let t=s.meta.multisource||{},r={...s.meta,multisource:{...t,path:i.full}};if(n=e(i.src,r),t.deps){let e=t.deps,n=t.path||V;null!=n&&((e[n]=e[n]||{})[i.full]={tar:n,src:i.full,wen:Date.now()})}}t.open[0].val=n}return n(...arguments)},t})};var P={};Object.defineProperty(P,"__esModule",{value:!0}),P.util=P.Nil=P.Val=P.Aontu=void 0;const E=t({}),R=r({}),I=n({});Object.defineProperty(P,"Val",{enumerable:!0,get:function(){return I.Val}}),Object.defineProperty(P,"Nil",{enumerable:!0,get:function(){return I.Nil}});const M=()=>({path:"<no-path>",full:"<no-full>",base:"<no-base>"});function L(e,t){let n=D.options(e,t),r={},s=new E.Lang(n).parse(n.src,{deps:r}),o=new R.Unify(s),i=o.res,l=o.err;return i.deps=r,i.err=l,i}P.Aontu=L;const D={options:(e,t)=>({src:"",print:0,resolver:M,..."string"==typeof e?{src:e}:e,...t||{}})};return P.util=D,P.default=L,P}));
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2021 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.util = exports.Lang = exports.Nil = exports.Val = exports.Aontu = void 0;
|
|
5
|
+
const lang_1 = require("./lib/lang");
|
|
6
|
+
Object.defineProperty(exports, "Lang", { enumerable: true, get: function () { return lang_1.Lang; } });
|
|
7
|
+
const unify_1 = require("./lib/unify");
|
|
8
|
+
const val_1 = require("./lib/val");
|
|
9
|
+
Object.defineProperty(exports, "Val", { enumerable: true, get: function () { return val_1.Val; } });
|
|
10
|
+
Object.defineProperty(exports, "Nil", { enumerable: true, get: function () { return val_1.Nil; } });
|
|
11
|
+
/*
|
|
12
|
+
NEXT:
|
|
13
|
+
inject path from multisource into Vals when created
|
|
14
|
+
report via nil error
|
|
15
|
+
also trace deps into top val and watch via model
|
|
16
|
+
*/
|
|
17
|
+
// TODO: error reporting
|
|
18
|
+
// TODO: debug tracing
|
|
19
|
+
// TODO: providers - e.g source files from paths
|
|
20
|
+
// const NoResolver: Resolver = () => ({
|
|
21
|
+
// kind: '<no-kind>',
|
|
22
|
+
// path: '<no-path>',
|
|
23
|
+
// full: '<no-full>',
|
|
24
|
+
// base: '<no-base>',
|
|
25
|
+
// abs: true,
|
|
26
|
+
// found: false,
|
|
27
|
+
// })
|
|
28
|
+
/* `Aontu('a:1') => opts={src:'a:1',print:0,...}`
|
|
29
|
+
* `Aontu('a:1',{print:1}) => opts={src:'a:1',print:1,...}`
|
|
30
|
+
* `Aontu({src:'a:1'},{src:'a:2'}) => opts={src:'a:2',print:0,...}`
|
|
31
|
+
*/
|
|
32
|
+
function Aontu(src, popts) {
|
|
33
|
+
let opts = util.options(src, popts);
|
|
34
|
+
let lang = new lang_1.Lang(opts);
|
|
35
|
+
let deps = {};
|
|
36
|
+
let val = lang.parse(opts.src, { deps: deps });
|
|
37
|
+
let uni = new unify_1.Unify(val);
|
|
38
|
+
let res = uni.res;
|
|
39
|
+
let err = uni.err;
|
|
40
|
+
res.deps = deps;
|
|
41
|
+
res.err = err;
|
|
42
|
+
return res;
|
|
43
|
+
}
|
|
44
|
+
exports.Aontu = Aontu;
|
|
45
|
+
const util = {
|
|
46
|
+
options: (src, popts) => {
|
|
47
|
+
// Convert convenience first param into Options.src
|
|
48
|
+
let srcopts = 'string' === typeof src ? { src } : src;
|
|
49
|
+
let opts = {
|
|
50
|
+
...{
|
|
51
|
+
src: '',
|
|
52
|
+
print: 0,
|
|
53
|
+
resolver: lang_1.includeFileResolver,
|
|
54
|
+
},
|
|
55
|
+
...srcopts,
|
|
56
|
+
...(popts || {}),
|
|
57
|
+
};
|
|
58
|
+
return opts;
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
exports.util = util;
|
|
62
|
+
exports.default = Aontu;
|
|
63
|
+
//# sourceMappingURL=aontu.js.map
|
package/dist/lib/lang.d.ts
CHANGED
|
@@ -8,10 +8,11 @@ declare class Site {
|
|
|
8
8
|
static NONE: Site;
|
|
9
9
|
constructor(val: Val);
|
|
10
10
|
}
|
|
11
|
+
declare const includeFileResolver: import("@jsonic/multisource").Resolver;
|
|
11
12
|
declare class Lang {
|
|
12
13
|
jsonic: Jsonic;
|
|
13
14
|
options: Options;
|
|
14
15
|
constructor(options?: Partial<Options>);
|
|
15
16
|
parse(src: string, opts?: any): Val;
|
|
16
17
|
}
|
|
17
|
-
export { Lang, Site, };
|
|
18
|
+
export { Lang, Site, includeFileResolver, };
|