@cruba/crubal 0.1.0 → 0.3.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/README.md +30 -2
- package/dist/bin/crubal.js +70 -4
- package/dist/bin/crubal.js.map +1 -1
- package/dist/src/access.d.ts +126 -0
- package/dist/src/access.js +517 -0
- package/dist/src/access.js.map +1 -0
- package/dist/src/address.d.ts +29 -0
- package/dist/src/address.js +59 -0
- package/dist/src/address.js.map +1 -0
- package/dist/src/arrival.d.ts +55 -0
- package/dist/src/arrival.js +124 -0
- package/dist/src/arrival.js.map +1 -0
- package/dist/src/bundle.d.ts +66 -0
- package/dist/src/bundle.js +753 -0
- package/dist/src/bundle.js.map +1 -0
- package/dist/src/conditions.d.ts +7 -1
- package/dist/src/conditions.js +52 -11
- package/dist/src/conditions.js.map +1 -1
- package/dist/src/corpus.js +568 -34
- package/dist/src/corpus.js.map +1 -1
- package/dist/src/defs.d.ts +37 -2
- package/dist/src/defs.js +95 -14
- package/dist/src/defs.js.map +1 -1
- package/dist/src/dictionary.d.ts +15 -0
- package/dist/src/dictionary.js +72 -13
- package/dist/src/dictionary.js.map +1 -1
- package/dist/src/exchange.d.ts +204 -11
- package/dist/src/exchange.js +762 -45
- package/dist/src/exchange.js.map +1 -1
- package/dist/src/forms.d.ts +16 -0
- package/dist/src/forms.js +169 -0
- package/dist/src/forms.js.map +1 -0
- package/dist/src/index.d.ts +19 -6
- package/dist/src/index.js +18 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle.d.ts +84 -0
- package/dist/src/lifecycle.js +415 -0
- package/dist/src/lifecycle.js.map +1 -0
- package/dist/src/log.d.ts +78 -0
- package/dist/src/log.js +506 -0
- package/dist/src/log.js.map +1 -0
- package/dist/src/migrate.d.ts +24 -1
- package/dist/src/migrate.js +104 -9
- package/dist/src/migrate.js.map +1 -1
- package/dist/src/model.d.ts +33 -1
- package/dist/src/model.js +158 -2
- package/dist/src/model.js.map +1 -1
- package/dist/src/packages.d.ts +44 -0
- package/dist/src/packages.js +137 -3
- package/dist/src/packages.js.map +1 -1
- package/dist/src/print-text.js +22 -0
- package/dist/src/print-text.js.map +1 -1
- package/dist/src/publish.d.ts +27 -0
- package/dist/src/publish.js +275 -0
- package/dist/src/publish.js.map +1 -0
- package/dist/src/read-text.d.ts +2 -0
- package/dist/src/read-text.js +72 -4
- package/dist/src/read-text.js.map +1 -1
- package/dist/src/records.d.ts +32 -0
- package/dist/src/records.js +104 -0
- package/dist/src/records.js.map +1 -0
- package/dist/src/review.d.ts +22 -0
- package/dist/src/review.js +198 -0
- package/dist/src/review.js.map +1 -0
- package/dist/src/rules.d.ts +38 -3
- package/dist/src/rules.js +184 -30
- package/dist/src/rules.js.map +1 -1
- package/dist/src/schedule.d.ts +24 -0
- package/dist/src/schedule.js +126 -0
- package/dist/src/schedule.js.map +1 -0
- package/dist/src/std-packages.d.ts +9 -0
- package/dist/src/std-packages.js +268 -0
- package/dist/src/std-packages.js.map +1 -0
- package/dist/src/store.d.ts +38 -7
- package/dist/src/store.js +166 -24
- package/dist/src/store.js.map +1 -1
- package/dist/src/tree.d.ts +3 -0
- package/dist/src/tree.js +36 -0
- package/dist/src/tree.js.map +1 -1
- package/dist/src/units-table.d.ts +1 -0
- package/dist/src/units-table.js +200 -0
- package/dist/src/units-table.js.map +1 -0
- package/dist/src/units.d.ts +42 -4
- package/dist/src/units.js +91 -30
- package/dist/src/units.js.map +1 -1
- package/dist/src/views.d.ts +116 -6
- package/dist/src/views.js +484 -74
- package/dist/src/views.js.map +1 -1
- package/package.json +5 -3
package/dist/src/migrate.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// migrate.ts: migration recipes (spec chapter 10). A recipe names the version it leaves and the version it
|
|
2
2
|
// reaches, then steps grouped by facet, run in the order written. Restamping applies it to every record;
|
|
3
3
|
// steps that need a person send items to the review queue and hold the value. Nothing is dropped.
|
|
4
|
+
import { serialize } from "./canonical.js";
|
|
4
5
|
import { evaluate, parseCondition } from "./conditions.js";
|
|
6
|
+
import { checkScalar } from "./dictionary.js";
|
|
7
|
+
import { readUnder } from "./read-text.js";
|
|
5
8
|
import { splitTop } from "./lex.js";
|
|
6
9
|
import { CrubalError, readTree } from "./tree.js";
|
|
7
10
|
import { convert, unitOf } from "./units.js";
|
|
@@ -81,6 +84,20 @@ export function readRecipes(source) {
|
|
|
81
84
|
case "review":
|
|
82
85
|
recipe.steps.push({ verb: "review", cond: s.value, ...base });
|
|
83
86
|
break;
|
|
87
|
+
case "fill": {
|
|
88
|
+
let level;
|
|
89
|
+
let when;
|
|
90
|
+
for (const b of s.children) {
|
|
91
|
+
if (b.key === "for")
|
|
92
|
+
level = b.value.trim().replace(/::$/, "");
|
|
93
|
+
else if (b.key === "when")
|
|
94
|
+
when = b.value.trim();
|
|
95
|
+
else
|
|
96
|
+
throw new CrubalError(`a fill takes "for:" and "when:" beneath it, not ${b.key}`, b.line);
|
|
97
|
+
}
|
|
98
|
+
recipe.steps.push({ verb: "fill", value: unq(s.value), ...(level ? { level } : {}), ...(when ? { when } : {}), ...base });
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
84
101
|
default:
|
|
85
102
|
throw new CrubalError(`unknown recipe step: ${s.text}`, s.line);
|
|
86
103
|
}
|
|
@@ -109,6 +126,17 @@ export function checkRecipe(r, dict) {
|
|
|
109
126
|
}
|
|
110
127
|
if (s.verb === "convert" && convert("1", s.from, s.to) === null)
|
|
111
128
|
throw new CrubalError(`can't convert ${s.from} to ${s.to}`, s.line);
|
|
129
|
+
if (s.verb === "fill") {
|
|
130
|
+
if (!f)
|
|
131
|
+
throw new CrubalError(`${s.facet} is not a facet of ${r.to}`, s.line);
|
|
132
|
+
const v = readUnder(f, s.value, dict, s.line);
|
|
133
|
+
if (v === undefined || checkScalar(f, v).outcome !== "absorbed")
|
|
134
|
+
throw new CrubalError(`${s.value} is not a value ${s.facet} takes`, s.line);
|
|
135
|
+
if (s.level && !dict.levels.has(s.level))
|
|
136
|
+
throw new CrubalError(`${s.level} is not a level of ${r.to}`, s.line);
|
|
137
|
+
if (s.when)
|
|
138
|
+
parseCondition(s.when, s.line);
|
|
139
|
+
}
|
|
112
140
|
}
|
|
113
141
|
}
|
|
114
142
|
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
@@ -119,15 +147,37 @@ function mapScalars(v, fn) {
|
|
|
119
147
|
return { ...v, $value: fn(v.$value) };
|
|
120
148
|
return fn(v);
|
|
121
149
|
}
|
|
122
|
-
/**
|
|
123
|
-
|
|
150
|
+
/** A value's text as the text form writes it, for a retype to re-read (10.3). */
|
|
151
|
+
function textOf(v) {
|
|
152
|
+
if (typeof v === "string")
|
|
153
|
+
return v;
|
|
154
|
+
if (typeof v === "number" || typeof v === "boolean")
|
|
155
|
+
return String(v);
|
|
156
|
+
if (isObj(v) && "$qty" in v)
|
|
157
|
+
return `${v.$qty}${v.unit}`;
|
|
158
|
+
if (isObj(v) && "$money" in v)
|
|
159
|
+
return `${v.$money}${v.currency}`;
|
|
160
|
+
if (isObj(v) && "$link" in v)
|
|
161
|
+
return `&${v.$link}`;
|
|
162
|
+
if (isObj(v) && "$value" in v)
|
|
163
|
+
return textOf(v.$value);
|
|
164
|
+
return JSON.stringify(v);
|
|
165
|
+
}
|
|
166
|
+
export function restamp(records, recipe, dict, stats) {
|
|
124
167
|
const review = [];
|
|
168
|
+
if (stats)
|
|
169
|
+
for (const s of recipe.steps)
|
|
170
|
+
stats.push({ step: s.text, facet: s.facet, verb: s.verb, changed: 0, review: 0 });
|
|
125
171
|
const out = records.map((rec) => {
|
|
126
172
|
const values = { ...rec.values };
|
|
127
|
-
|
|
173
|
+
// A moved value keeps its source under its new address (10.4): the record's own, else its default.
|
|
174
|
+
const sources = { ...(rec.sources ?? {}) };
|
|
175
|
+
recipe.steps.forEach((s, si) => {
|
|
128
176
|
const v = values[s.facet];
|
|
129
|
-
if (v === undefined && s.verb !== "review")
|
|
130
|
-
|
|
177
|
+
if (v === undefined && s.verb !== "review" && s.verb !== "fill")
|
|
178
|
+
return;
|
|
179
|
+
const before = serialize((values[s.facet] ?? null));
|
|
180
|
+
const reviewsBefore = review.length;
|
|
131
181
|
switch (s.verb) {
|
|
132
182
|
case "rename":
|
|
133
183
|
values[s.facet] = mapScalars(v, (x) => (x === s.from ? s.to : x));
|
|
@@ -174,18 +224,63 @@ export function restamp(records, recipe, dict) {
|
|
|
174
224
|
}
|
|
175
225
|
values[s.to] = v;
|
|
176
226
|
delete values[s.facet];
|
|
227
|
+
{
|
|
228
|
+
const src = sources[s.facet] ?? sources["*"];
|
|
229
|
+
if (src)
|
|
230
|
+
sources[s.to] = src;
|
|
231
|
+
delete sources[s.facet];
|
|
232
|
+
}
|
|
177
233
|
break;
|
|
178
234
|
case "review":
|
|
179
235
|
if (evaluate(parseCondition(s.cond, s.line), values) === true)
|
|
180
236
|
review.push({ record: rec.id, address: s.facet, step: s.text, held: true });
|
|
181
237
|
break;
|
|
238
|
+
case "retype": {
|
|
239
|
+
// Each value is read again under the facet's new type (10.3): what fits lands, the rest goes to review.
|
|
240
|
+
const f = dict.facets.get(s.facet);
|
|
241
|
+
if (!f)
|
|
242
|
+
break;
|
|
243
|
+
const again = readUnder(f, textOf(v), dict);
|
|
244
|
+
const ok = again !== undefined && checkScalar(f, again).outcome === "absorbed";
|
|
245
|
+
if (ok)
|
|
246
|
+
values[s.facet] = again;
|
|
247
|
+
else
|
|
248
|
+
review.push({ record: rec.id, address: s.facet, step: s.text, held: true });
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
182
251
|
case "recompute":
|
|
183
|
-
|
|
184
|
-
|
|
252
|
+
break; // the rules rebuild produced values
|
|
253
|
+
case "fill": {
|
|
254
|
+
// A backfill (10.3): a record lacking the key, at the level named, where the condition holds, gets the
|
|
255
|
+
// value read under the facet; a record that has one is left alone.
|
|
256
|
+
if (v !== undefined)
|
|
257
|
+
break;
|
|
258
|
+
if (s.level && rec.level !== s.level)
|
|
259
|
+
break;
|
|
260
|
+
if (s.when && evaluate(parseCondition(s.when, s.line), values) !== true)
|
|
261
|
+
break;
|
|
262
|
+
const f = dict.facets.get(s.facet);
|
|
263
|
+
const filled = f ? readUnder(f, s.value, dict) : undefined;
|
|
264
|
+
if (filled !== undefined)
|
|
265
|
+
values[s.facet] = filled;
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
185
268
|
}
|
|
186
|
-
|
|
187
|
-
|
|
269
|
+
if (stats) {
|
|
270
|
+
const st = stats[si];
|
|
271
|
+
if (serialize((values[s.facet] ?? null)) !== before)
|
|
272
|
+
st.changed += 1;
|
|
273
|
+
st.review += review.length - reviewsBefore;
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
return { ...rec, values, ...(Object.keys(sources).length ? { sources } : {}) };
|
|
188
277
|
});
|
|
189
278
|
return { records: out, review };
|
|
190
279
|
}
|
|
280
|
+
/** What a restamp would do, without doing it (10.4): per step, how many values change and how many go to review. */
|
|
281
|
+
export function dryRun(records, recipe, dict) {
|
|
282
|
+
const stats = [];
|
|
283
|
+
const { review } = restamp(structuredClone(records), recipe, dict, stats);
|
|
284
|
+
return { steps: stats, records: records.length, review: review.length };
|
|
285
|
+
}
|
|
191
286
|
//# sourceMappingURL=migrate.js.map
|
package/dist/src/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,yGAAyG;AACzG,kGAAkG;AAElG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAe7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAEpG,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,WAAW,CAAC,0BAA0B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,WAAW;YAAE,SAAS;QAC/D,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAW,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;gBAAE,MAAM,IAAI,WAAW,CAAC,8CAA8C,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7G,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;gBAC3C,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;oBAClD,SAAS;gBACX,CAAC;gBACD,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;oBACd,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBACzE,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBACnG,MAAM;oBACR,CAAC;oBACD,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;wBACnE,IAAI,IAAI,EAAE,GAAG,KAAK,UAAU;4BAAE,CAAC,EAAE,CAAC;wBAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC1E,MAAM;oBACR,CAAC;oBACD,KAAK,WAAW,CAAC;oBACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC5D,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,IAAI,GAAmC,EAAE,CAAC;wBAChD,IAAI,SAA6B,CAAC;wBAClC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gCACrB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gCAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACnC,CAAC;iCAAM,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gCAAE,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACxD,CAAC;wBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAClI,MAAM;oBACR,CAAC;oBACD,KAAK,MAAM;wBACT,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC5E,MAAM;oBACR,KAAK,QAAQ;wBACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC9D,MAAM;oBACR;wBACE,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,IAAgB;IACrD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;YACzB,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1H,CAAC,CAAC;QACF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvI,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjH,SAAS,UAAU,CAAC,CAAO,EAAE,EAAqB;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAID,yFAAyF;AACzF,MAAM,UAAU,OAAO,CAAC,OAAiB,EAAE,MAAc,EAAE,IAAgB;IACzE,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACrD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,QAAQ;oBACX,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzG,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtD,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI;4BAAE,OAAO,CAAC,CAAC;wBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;wBACrD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,KAAK,GAAG,EAAE,IAAI,MAAM,CAAC;wBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;wBAChG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBACpE,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChH,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO;oBACV,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;4BAAE,OAAO,CAAC,CAAC;wBAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;4BAAE,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI;gCAAE,OAAO,CAAC,CAAC,EAAE,CAAC;wBACnG,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,CAAC,CAAC,IAAI,CAAC;wBACxC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;wBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,MAAM;oBACR,CAAC;oBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAS,CAAC;oBACzB,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACvB,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI;wBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3I,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,QAAQ;oBACX,MAAM,CAAC,oFAAoF;YAC/F,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,yGAAyG;AACzG,kGAAkG;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAiB7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAEpG,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,WAAW,CAAC,0BAA0B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,WAAW;YAAE,SAAS;QAC/D,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAW,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;gBAAE,MAAM,IAAI,WAAW,CAAC,8CAA8C,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7G,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;gBAC3C,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;oBAClD,SAAS;gBACX,CAAC;gBACD,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;oBACd,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBACzE,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBACnG,MAAM;oBACR,CAAC;oBACD,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACzB,MAAM,QAAQ,GAAG,IAAI,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;wBACnE,IAAI,IAAI,EAAE,GAAG,KAAK,UAAU;4BAAE,CAAC,EAAE,CAAC;wBAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC1E,MAAM;oBACR,CAAC;oBACD,KAAK,WAAW,CAAC;oBACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC5D,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,IAAI,GAAmC,EAAE,CAAC;wBAChD,IAAI,SAA6B,CAAC;wBAClC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gCACrB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gCAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACnC,CAAC;iCAAM,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gCAAE,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACxD,CAAC;wBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAClI,MAAM;oBACR,CAAC;oBACD,KAAK,MAAM;wBACT,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC5E,MAAM;oBACR,KAAK,QAAQ;wBACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC9D,MAAM;oBACR,KAAK,MAAM,CAAC,CAAC,CAAC;wBACZ,IAAI,KAAyB,CAAC;wBAC9B,IAAI,IAAwB,CAAC;wBAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;gCAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;iCAC1D,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gCAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;gCAC5C,MAAM,IAAI,WAAW,CAAC,mDAAmD,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjG,CAAC;wBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;wBAC1H,MAAM;oBACR,CAAC;oBACD;wBACE,MAAM,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,IAAgB;IACrD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;YACzB,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1H,CAAC,CAAC;QACF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;gBAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACrI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7I,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAChH,IAAI,CAAC,CAAC,IAAI;gBAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjH,SAAS,UAAU,CAAC,CAAO,EAAE,EAAqB;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAOD,iFAAiF;AACjF,SAAS,MAAM,CAAC,CAAO;IACrB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACnD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAc,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAiB,EAAE,MAAc,EAAE,IAAgB,EAAE,KAAmB;IAC9F,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK;QAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3H,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7C,mGAAmG;QACnG,MAAM,OAAO,GAAkC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO;YACxE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAS,CAAC,CAAC;YAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,QAAQ;oBACX,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzG,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACtD,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI;4BAAE,OAAO,CAAC,CAAC;wBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;wBACrD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,KAAK,GAAG,EAAE,IAAI,MAAM,CAAC;wBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;wBAChG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBACpE,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChH,MAAM;gBACR,CAAC;gBACD,KAAK,OAAO;oBACV,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;4BAAE,OAAO,CAAC,CAAC;wBAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;4BAAE,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI;gCAAE,OAAO,CAAC,CAAC,EAAE,CAAC;wBACnG,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,CAAC,CAAC,IAAI,CAAC;wBACxC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;wBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,MAAM;oBACR,CAAC;oBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAS,CAAC;oBACzB,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;wBACC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7C,IAAI,GAAG;4BAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;wBAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1B,CAAC;oBACD,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI;wBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3I,MAAM;gBACR,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,wGAAwG;oBACxG,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACnC,IAAI,CAAC,CAAC;wBAAE,MAAM;oBACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAS,CAAC,EAAE,IAAI,CAAC,CAAC;oBACpD,MAAM,EAAE,GAAG,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC;oBAC/E,IAAI,EAAE;wBAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAa,CAAC;;wBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjF,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW;oBACd,MAAM,CAAC,oCAAoC;gBAC7C,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,uGAAuG;oBACvG,mEAAmE;oBACnE,IAAI,CAAC,KAAK,SAAS;wBAAE,MAAM;oBAC3B,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;wBAAE,MAAM;oBAC5C,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI;wBAAE,MAAM;oBAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3D,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAc,CAAC;oBAC3D,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAc,CAAC;gBAClC,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAS,CAAC,KAAK,MAAM;oBAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC7E,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,MAAM,CAAC,OAAiB,EAAE,MAAc,EAAE,IAAgB;IACxE,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC1E,CAAC"}
|
package/dist/src/model.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Dictionary } from "./defs.ts";
|
|
1
2
|
export type Json = string | number | boolean | Json[] | JsonObject;
|
|
2
3
|
export type JsonObject = {
|
|
3
4
|
[key: string]: Json;
|
|
@@ -7,13 +8,31 @@ export type Source = {
|
|
|
7
8
|
via: string;
|
|
8
9
|
owner?: string;
|
|
9
10
|
adopted?: boolean;
|
|
11
|
+
/** Taken under terms (7.8): when the value lapses, whether it may flow on, whether the presenter may withdraw it. */
|
|
12
|
+
until?: string;
|
|
13
|
+
reshare?: boolean;
|
|
14
|
+
revocable?: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** A record's status (1.12): absent means active. */
|
|
17
|
+
export type Status = {
|
|
18
|
+
state: "active" | "archived";
|
|
19
|
+
reason?: string;
|
|
20
|
+
into?: string;
|
|
10
21
|
};
|
|
11
22
|
export type Record = {
|
|
12
23
|
id: string;
|
|
13
24
|
kind: string;
|
|
14
25
|
level: string;
|
|
26
|
+
/** Optional at every level (1.2): absent when the record stands alone. */
|
|
15
27
|
of?: string;
|
|
16
28
|
owner: string;
|
|
29
|
+
/** The record this one belongs to for access (14.2). */
|
|
30
|
+
within?: string;
|
|
31
|
+
status?: Status;
|
|
32
|
+
/** Per issuer of instructions, the last one applied (10.7). */
|
|
33
|
+
applied?: {
|
|
34
|
+
[issuer: string]: number;
|
|
35
|
+
};
|
|
17
36
|
wears?: string[];
|
|
18
37
|
created?: string;
|
|
19
38
|
updated?: string;
|
|
@@ -31,6 +50,19 @@ export type Wrapper = {
|
|
|
31
50
|
};
|
|
32
51
|
records: Record[];
|
|
33
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Parse CRUBAL JSON text (chapter 3): RFC 8259, with a member named twice in one object refused. JSON.parse
|
|
55
|
+
* keeps the last of two equal names, so the text is scanned for them first; the scan follows strings and
|
|
56
|
+
* brackets only and leaves everything else to JSON.parse.
|
|
57
|
+
*/
|
|
58
|
+
export declare function parseJson(text: string): Json;
|
|
59
|
+
/** Whether an address names a place in the record's values or parts (3.7). `*` is the record itself. */
|
|
60
|
+
export declare function addressNames(r: Record, address: string, dict?: Dictionary): boolean;
|
|
34
61
|
/** Refuse JSON the spec forbids: `null` anywhere (chapter 3), unknown record members (3.2). */
|
|
35
62
|
export declare function checkJson(doc: unknown, path?: string): void;
|
|
36
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Check a wrapper read from JSON: no null, the members 3.2 lists, and every source address naming a place in
|
|
65
|
+
* the record (3.7). With the dictionary, a quoted list selector is matched by the item's text form; without
|
|
66
|
+
* it, by the item's core value.
|
|
67
|
+
*/
|
|
68
|
+
export declare function checkWrapper(w: Wrapper, dict?: Dictionary): void;
|
package/dist/src/model.js
CHANGED
|
@@ -1,6 +1,151 @@
|
|
|
1
1
|
// model.ts: the JSON form's shapes (spec chapter 3). The JSON is the model: readers produce it, printers
|
|
2
2
|
// consume it, and canonical.ts hashes it.
|
|
3
|
-
|
|
3
|
+
import { itemText } from "./print-text.js";
|
|
4
|
+
const RECORD_MEMBERS = new Set(["id", "kind", "level", "of", "owner", "within", "status", "applied", "wears", "created", "updated", "values", "parts", "sources", "alternatives", "suggestions", "held"]);
|
|
5
|
+
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
6
|
+
/**
|
|
7
|
+
* Parse CRUBAL JSON text (chapter 3): RFC 8259, with a member named twice in one object refused. JSON.parse
|
|
8
|
+
* keeps the last of two equal names, so the text is scanned for them first; the scan follows strings and
|
|
9
|
+
* brackets only and leaves everything else to JSON.parse.
|
|
10
|
+
*/
|
|
11
|
+
export function parseJson(text) {
|
|
12
|
+
const stack = [];
|
|
13
|
+
let i = 0;
|
|
14
|
+
scan: while (i < text.length) {
|
|
15
|
+
const c = text[i];
|
|
16
|
+
if (c === '"') {
|
|
17
|
+
let j = i + 1;
|
|
18
|
+
while (j < text.length && text[j] !== '"')
|
|
19
|
+
j += text[j] === "\\" ? 2 : 1;
|
|
20
|
+
const raw = text.slice(i, j + 1);
|
|
21
|
+
i = j + 1;
|
|
22
|
+
const top = stack.at(-1);
|
|
23
|
+
if (top?.keys && top.expectKey) {
|
|
24
|
+
let key;
|
|
25
|
+
try {
|
|
26
|
+
key = JSON.parse(raw);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
break scan; // malformed: JSON.parse below says where
|
|
30
|
+
}
|
|
31
|
+
if (top.keys.has(key))
|
|
32
|
+
throw new Error(`member ${key} twice in the object at $${stack.slice(0, -1).map((f) => f.at).join("")}: a document never names a member twice`);
|
|
33
|
+
top.keys.add(key);
|
|
34
|
+
top.expectKey = false;
|
|
35
|
+
top.at = `.${key}`;
|
|
36
|
+
}
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (c === "{")
|
|
40
|
+
stack.push({ keys: new Set(), expectKey: true, at: "" });
|
|
41
|
+
else if (c === "[")
|
|
42
|
+
stack.push({ keys: null, expectKey: false, at: "[0]" });
|
|
43
|
+
else if (c === "}" || c === "]")
|
|
44
|
+
stack.pop();
|
|
45
|
+
else if (c === ",") {
|
|
46
|
+
const top = stack.at(-1);
|
|
47
|
+
if (top?.keys)
|
|
48
|
+
top.expectKey = true;
|
|
49
|
+
else if (top)
|
|
50
|
+
top.at = `[${Number(top.at.slice(1, -1)) + 1}]`;
|
|
51
|
+
}
|
|
52
|
+
i++;
|
|
53
|
+
}
|
|
54
|
+
return JSON.parse(text);
|
|
55
|
+
}
|
|
56
|
+
/** An address's steps (1.10): `key` or `key[selector]`, `.`-separated outside brackets and quotes; undefined when malformed. */
|
|
57
|
+
function steps(address) {
|
|
58
|
+
const out = [];
|
|
59
|
+
let i = 0;
|
|
60
|
+
for (;;) {
|
|
61
|
+
let key = "";
|
|
62
|
+
while (i < address.length && address[i] !== "." && address[i] !== "[")
|
|
63
|
+
key += address[i++];
|
|
64
|
+
if (!key)
|
|
65
|
+
return undefined;
|
|
66
|
+
const step = { key };
|
|
67
|
+
if (address[i] === "[") {
|
|
68
|
+
i++;
|
|
69
|
+
if (address[i] === '"') {
|
|
70
|
+
let j = i + 1;
|
|
71
|
+
while (j < address.length && address[j] !== '"')
|
|
72
|
+
j += address[j] === "\\" ? 2 : 1;
|
|
73
|
+
if (j >= address.length)
|
|
74
|
+
return undefined;
|
|
75
|
+
try {
|
|
76
|
+
step.selector = JSON.parse(address.slice(i, j + 1));
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
step.quoted = true;
|
|
82
|
+
i = j + 1;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const end = address.indexOf("]", i);
|
|
86
|
+
if (end <= i)
|
|
87
|
+
return undefined;
|
|
88
|
+
step.selector = address.slice(i, end);
|
|
89
|
+
i = end;
|
|
90
|
+
}
|
|
91
|
+
if (address[i] !== "]")
|
|
92
|
+
return undefined;
|
|
93
|
+
i++;
|
|
94
|
+
}
|
|
95
|
+
out.push(step);
|
|
96
|
+
if (i === address.length)
|
|
97
|
+
return out;
|
|
98
|
+
if (address[i] !== ".")
|
|
99
|
+
return undefined;
|
|
100
|
+
i++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Whether an address names a place in the record's values or parts (3.7). `*` is the record itself. */
|
|
104
|
+
export function addressNames(r, address, dict) {
|
|
105
|
+
if (address === "*")
|
|
106
|
+
return true;
|
|
107
|
+
const st = steps(address);
|
|
108
|
+
if (!st?.length)
|
|
109
|
+
return false;
|
|
110
|
+
const [first, ...rest] = st;
|
|
111
|
+
if (first.key === "parts") {
|
|
112
|
+
if (first.selector === undefined || first.quoted)
|
|
113
|
+
return false;
|
|
114
|
+
const part = (r.parts ?? []).find((p) => isObj(p) && String(p.$row) === first.selector);
|
|
115
|
+
if (!isObj(part))
|
|
116
|
+
return false;
|
|
117
|
+
return rest.length ? walk(isObj(part.values) ? part.values : {}, rest, dict) : true;
|
|
118
|
+
}
|
|
119
|
+
return walk(r.values, st, dict);
|
|
120
|
+
}
|
|
121
|
+
function walk(values, st, dict) {
|
|
122
|
+
let cur = values;
|
|
123
|
+
for (const s of st) {
|
|
124
|
+
if (!isObj(cur))
|
|
125
|
+
return false;
|
|
126
|
+
let v = cur[s.key];
|
|
127
|
+
if (v === undefined)
|
|
128
|
+
return false;
|
|
129
|
+
if (s.selector !== undefined) {
|
|
130
|
+
if (!Array.isArray(v))
|
|
131
|
+
return false;
|
|
132
|
+
const sel = s.selector;
|
|
133
|
+
const facet = dict?.facets.get(s.key);
|
|
134
|
+
const hit = v.find((item) => {
|
|
135
|
+
// A plain list item by its text form (1.10); without the dictionary, by its core value.
|
|
136
|
+
if (s.quoted)
|
|
137
|
+
return facet ? itemText(facet, item) === sel : String(isObj(item) ? (item.$value ?? item.$qty ?? item.$money ?? item.$link ?? "") : item) === sel.replace(/ \[.*\]$/, "");
|
|
138
|
+
// A row by its key: written as `$row`, or derived from the identity child, which is a link (1.6).
|
|
139
|
+
return isObj(item) && (String(item.$row) === sel || Object.values(item).some((x) => isObj(x) && x.$link === sel));
|
|
140
|
+
});
|
|
141
|
+
if (hit === undefined)
|
|
142
|
+
return false;
|
|
143
|
+
v = hit;
|
|
144
|
+
}
|
|
145
|
+
cur = v;
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
4
149
|
/** Refuse JSON the spec forbids: `null` anywhere (chapter 3), unknown record members (3.2). */
|
|
5
150
|
export function checkJson(doc, path = "$") {
|
|
6
151
|
if (doc === null)
|
|
@@ -14,8 +159,15 @@ export function checkJson(doc, path = "$") {
|
|
|
14
159
|
checkJson(v, `${path}.${k}`);
|
|
15
160
|
}
|
|
16
161
|
}
|
|
17
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Check a wrapper read from JSON: no null, the members 3.2 lists, and every source address naming a place in
|
|
164
|
+
* the record (3.7). With the dictionary, a quoted list selector is matched by the item's text form; without
|
|
165
|
+
* it, by the item's core value.
|
|
166
|
+
*/
|
|
167
|
+
export function checkWrapper(w, dict) {
|
|
18
168
|
checkJson(w);
|
|
169
|
+
if (!/^\d+$/.test(String(w.crubal)) || Number(w.crubal) > 2)
|
|
170
|
+
throw new Error(`written in CRUBAL ${w.crubal}; this reader knows 2`);
|
|
19
171
|
if (!Array.isArray(w.records))
|
|
20
172
|
throw new Error("a wrapper needs records");
|
|
21
173
|
w.records.forEach((r, i) => {
|
|
@@ -27,6 +179,10 @@ export function checkWrapper(w) {
|
|
|
27
179
|
if (r[k] === undefined)
|
|
28
180
|
throw new Error(`records[${i}] needs ${k}`);
|
|
29
181
|
}
|
|
182
|
+
for (const address of Object.keys(r.sources ?? {})) {
|
|
183
|
+
if (!addressNames(r, address, dict))
|
|
184
|
+
throw new Error(`records[${i}].sources: ${address} names nothing in values or parts`);
|
|
185
|
+
}
|
|
30
186
|
});
|
|
31
187
|
}
|
|
32
188
|
//# sourceMappingURL=model.js.map
|
package/dist/src/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,0CAA0C;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/src/packages.d.ts
CHANGED
|
@@ -4,9 +4,13 @@ export type PackageInfo = {
|
|
|
4
4
|
version: string;
|
|
5
5
|
owner: string;
|
|
6
6
|
line: number;
|
|
7
|
+
/** The language version it is written in (11.8), and the line that says so. */
|
|
8
|
+
crubal: number;
|
|
9
|
+
crubalLine: number;
|
|
7
10
|
extends: {
|
|
8
11
|
name: string;
|
|
9
12
|
version: string;
|
|
13
|
+
line: number;
|
|
10
14
|
}[];
|
|
11
15
|
prefixes: Map<string, {
|
|
12
16
|
target: string;
|
|
@@ -18,6 +22,46 @@ export type PackageInfo = {
|
|
|
18
22
|
}[];
|
|
19
23
|
dict: Dictionary;
|
|
20
24
|
contracts: string[];
|
|
25
|
+
/** The rest of the header (11.1), as written. */
|
|
26
|
+
header: {
|
|
27
|
+
[key: string]: string;
|
|
28
|
+
};
|
|
29
|
+
terms: {
|
|
30
|
+
[audience: string]: string;
|
|
31
|
+
};
|
|
32
|
+
/** The utilities the package declares (11.1, `utility:` blocks). */
|
|
33
|
+
utilities: Utility[];
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* A utility block (11.1): a named, versioned tool a platform mounts for the presets, relations or audiences
|
|
37
|
+
* it `serves`, the packages and utilities it `needs`, and the connections and settings a deployment must
|
|
38
|
+
* provide in `setup`. Read like any block; a reader that doesn't know it carries it unchanged (13.5).
|
|
39
|
+
*/
|
|
40
|
+
export type Utility = {
|
|
41
|
+
name: string;
|
|
42
|
+
version: string;
|
|
43
|
+
label?: string;
|
|
44
|
+
describe?: string;
|
|
45
|
+
/** `curator(ship, returns)` → `{ as: "curator", items: ["ship", "returns"] }`; `controller` → no items. */
|
|
46
|
+
serves: {
|
|
47
|
+
as: string;
|
|
48
|
+
items?: string[];
|
|
49
|
+
line: number;
|
|
50
|
+
}[];
|
|
51
|
+
/** Package identities (`domain/name`, optionally ` /version`) and bare utility names. */
|
|
52
|
+
needs: {
|
|
53
|
+
name: string;
|
|
54
|
+
version?: string;
|
|
55
|
+
line: number;
|
|
56
|
+
}[];
|
|
57
|
+
setup: ({
|
|
58
|
+
connection: string;
|
|
59
|
+
line: number;
|
|
60
|
+
} | {
|
|
61
|
+
setting: string;
|
|
62
|
+
line: number;
|
|
63
|
+
})[];
|
|
64
|
+
line: number;
|
|
21
65
|
};
|
|
22
66
|
/** Split a file into its packages, keeping line numbers true. */
|
|
23
67
|
export declare function readPackages(source: string): PackageInfo[];
|