@adminiumjs/manifest 0.3.16 → 0.3.18-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/adjust.d.ts +322 -0
  2. package/dist/adjust.d.ts.map +1 -0
  3. package/dist/adjust.js +512 -0
  4. package/dist/adjust.js.map +1 -0
  5. package/dist/automations.d.ts +2309 -0
  6. package/dist/automations.d.ts.map +1 -0
  7. package/dist/automations.js +384 -0
  8. package/dist/automations.js.map +1 -0
  9. package/dist/compose.d.ts.map +1 -1
  10. package/dist/compose.js +1 -0
  11. package/dist/compose.js.map +1 -1
  12. package/dist/documents.d.ts +82 -1
  13. package/dist/documents.d.ts.map +1 -1
  14. package/dist/documents.js +36 -6
  15. package/dist/documents.js.map +1 -1
  16. package/dist/index.d.ts +15 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +15 -6
  19. package/dist/index.js.map +1 -1
  20. package/dist/key-bytes.d.ts +27 -0
  21. package/dist/key-bytes.d.ts.map +1 -0
  22. package/dist/key-bytes.js +48 -0
  23. package/dist/key-bytes.js.map +1 -0
  24. package/dist/ledger-indexes.d.ts +19 -0
  25. package/dist/ledger-indexes.d.ts.map +1 -0
  26. package/dist/ledger-indexes.js +74 -0
  27. package/dist/ledger-indexes.js.map +1 -0
  28. package/dist/ledgers.d.ts +691 -0
  29. package/dist/ledgers.d.ts.map +1 -0
  30. package/dist/ledgers.js +778 -0
  31. package/dist/ledgers.js.map +1 -0
  32. package/dist/look-up.d.ts +73 -0
  33. package/dist/look-up.d.ts.map +1 -0
  34. package/dist/look-up.js +140 -0
  35. package/dist/look-up.js.map +1 -0
  36. package/dist/marketplace-wire.d.ts +2 -2
  37. package/dist/outbox.d.ts +29 -3
  38. package/dist/outbox.d.ts.map +1 -1
  39. package/dist/outbox.js +94 -15
  40. package/dist/outbox.js.map +1 -1
  41. package/dist/page-config.d.ts +99 -0
  42. package/dist/page-config.d.ts.map +1 -0
  43. package/dist/page-config.js +197 -0
  44. package/dist/page-config.js.map +1 -0
  45. package/dist/plan-context.d.ts +8 -18
  46. package/dist/plan-context.d.ts.map +1 -1
  47. package/dist/plan-context.js +53 -51
  48. package/dist/plan-context.js.map +1 -1
  49. package/dist/plan-model.d.ts +8 -1
  50. package/dist/plan-model.d.ts.map +1 -1
  51. package/dist/plan.d.ts +1 -1
  52. package/dist/plan.d.ts.map +1 -1
  53. package/dist/plan.js +6 -3
  54. package/dist/plan.js.map +1 -1
  55. package/dist/public-access.d.ts +33 -5
  56. package/dist/public-access.d.ts.map +1 -1
  57. package/dist/public-access.js +82 -4
  58. package/dist/public-access.js.map +1 -1
  59. package/dist/refs.d.ts +2 -0
  60. package/dist/refs.d.ts.map +1 -1
  61. package/dist/refs.js +5 -0
  62. package/dist/refs.js.map +1 -1
  63. package/dist/roles.d.ts +46 -0
  64. package/dist/roles.d.ts.map +1 -1
  65. package/dist/roles.js +50 -0
  66. package/dist/roles.js.map +1 -1
  67. package/dist/sample.d.ts +70 -1
  68. package/dist/sample.d.ts.map +1 -1
  69. package/dist/sample.js +208 -5
  70. package/dist/sample.js.map +1 -1
  71. package/dist/schema.d.ts +9657 -2440
  72. package/dist/schema.d.ts.map +1 -1
  73. package/dist/schema.js +751 -52
  74. package/dist/schema.js.map +1 -1
  75. package/dist/state-actions.d.ts +185 -0
  76. package/dist/state-actions.d.ts.map +1 -0
  77. package/dist/state-actions.js +223 -0
  78. package/dist/state-actions.js.map +1 -0
  79. package/dist/states.d.ts +66 -0
  80. package/dist/states.d.ts.map +1 -1
  81. package/dist/states.js +31 -0
  82. package/dist/states.js.map +1 -1
  83. package/dist/validate.d.ts.map +1 -1
  84. package/dist/validate.js +22 -6
  85. package/dist/validate.js.map +1 -1
  86. package/dist/words.d.ts +33 -0
  87. package/dist/words.d.ts.map +1 -0
  88. package/dist/words.js +208 -0
  89. package/dist/words.js.map +1 -0
  90. package/package.json +2 -2
package/dist/sample.js CHANGED
@@ -7,6 +7,8 @@
7
7
  * removed in reverse. A value is a plain JSON value or one of these directives:
8
8
  *
9
9
  * `{"@ref": "<label>"}` the key of an earlier row with that `@label`
10
+ * (or of a labelled starting row of the manifest's
11
+ * own `seeds`: see `seedLabelsOf`)
10
12
  * `{"@ago": "PT19M"}` an ISO-8601 duration before now
11
13
  * `{"@in": "PT20M", "@grid": 15}` an ISO-8601 duration after now; with
12
14
  * `@grid`, rounded up to the next time on that
@@ -17,6 +19,9 @@
17
19
  * `{"@day": 3}` a date in the venue's own zone
18
20
  * `{"@t": {"en-US": "…"}}` the adding person's language
19
21
  * `{"@asset": "<label>"}` a file from `assets`, added to the Files library
22
+ * `{"@table": "<table>"}` that table's stored name, for a column that
23
+ * holds one (`rules.tableRef`): the name it has
24
+ * on this install, whichever app made the table
20
25
  *
21
26
  * A `@day` may add `"@workdays": true`: its days count Monday to Friday, and
22
27
  * day 0 on a weekend is the Monday after — so "today's" busy day is never a
@@ -58,9 +63,17 @@
58
63
  * settings: the row is added only when the table has none, and otherwise its
59
64
  * `@label` names the row already there — the operator's own settings stay.
60
65
  *
66
+ * AN APP'S ROWS FOR AN ADD-ON. An app that names an add-on may ship a second
67
+ * file of the same format with a top-level `addOn`: rows of that add-on's
68
+ * tables (its items, its recipes — never its history), and rows of the app's
69
+ * own tables that link into them, each marked `"own": true`. It is named by
70
+ * the manifest's `sampleData.addOns.<key>.file` and loaded only while the
71
+ * add-on is there. `sampleSectionIssues` checks one.
72
+ *
61
73
  * Pure: a format and its checks, no I/O. The server resolves the directives.
62
74
  */
63
75
  import { z } from 'zod';
76
+ import { ledgersOf } from './schema.js';
64
77
  export const SAMPLE_FORMAT = 'adminium.sample/1';
65
78
  const label = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9:._-]{0,95}$/, 'a label of letters, digits and : . _ -');
66
79
  /** `P[nW][nD][T[nH][nM][nS]]`, with at least one part. */
@@ -98,6 +111,7 @@ const directive = z.union([
98
111
  .strict(),
99
112
  z.object({ '@t': z.record(z.string().regex(/^[a-z]{2}(-[A-Z]{2})?$/), z.string()).refine((m) => Object.keys(m).length > 0) }).strict(),
100
113
  z.object({ '@asset': label }).strict(),
114
+ z.object({ '@table': z.string().regex(/^[a-z][a-z0-9_]*$/, 'a table') }).strict(),
101
115
  ]);
102
116
  const plain = z.union([z.string(), z.number(), z.boolean(), z.null()]);
103
117
  /** A column's value: a plain value, a directive, or (for a json column) any object or array. */
@@ -137,6 +151,8 @@ export const sampleBundleSchema = z
137
151
  .object({
138
152
  format: z.literal(SAMPLE_FORMAT),
139
153
  app: z.string().min(1),
154
+ /** An app's rows for an add-on it names: the add-on's key. Absent in a manifest's own bundle. */
155
+ addOn: z.string().regex(/^[a-z][a-z0-9-]{1,79}$/, 'an add-on key').optional(),
140
156
  /** The weekday the sample's `@week` days count from (the day it was written for), in the week nearest the adding day. */
141
157
  weekAnchor: z.enum(SAMPLE_WEEKDAYS).optional(),
142
158
  assets: z
@@ -146,6 +162,8 @@ export const sampleBundleSchema = z
146
162
  .array(z
147
163
  .object({
148
164
  ref: z.string().min(1),
165
+ /** In an app's rows for an add-on: a table of the app itself, one that links into the add-on. */
166
+ own: z.literal(true).optional(),
149
167
  /** The table's rows go in only when it holds none (a kitchen's opening hours, set before the sample). */
150
168
  onlyIfEmpty: z.literal(true).optional(),
151
169
  rows: z.array(sampleRowSchema).min(1).max(5000),
@@ -184,6 +202,8 @@ export function sampleDirective(value) {
184
202
  }
185
203
  if (typeof record['@asset'] === 'string')
186
204
  return { kind: 'asset', label: record['@asset'] };
205
+ if (typeof record['@table'] === 'string')
206
+ return { kind: 'table', ref: record['@table'] };
187
207
  return null;
188
208
  }
189
209
  /** An ISO-8601 duration in milliseconds. */
@@ -230,14 +250,190 @@ export function sampleBundleIssues(bundle, manifest) {
230
250
  if (bundle.app !== manifest.key) {
231
251
  issues.push({ path: 'app', message: `The bundle is for "${bundle.app}", not "${manifest.key}".` });
232
252
  }
253
+ if (bundle.addOn !== undefined) {
254
+ issues.push({ path: 'addOn', message: `This file holds rows for the add-on "${bundle.addOn}": name it in sampleData.addOns, not as the manifest's own sample file.` });
255
+ }
256
+ bundle.tables.forEach((table, t) => {
257
+ if (table.own === true)
258
+ issues.push({ path: `tables.${String(t)}.own`, message: '"own" marks a table of the app in its rows for an add-on; a manifest\'s own sample file takes none.' });
259
+ });
233
260
  const declared = new Map((manifest.requiredSchema?.tables ?? []).map((table) => [table.ref, table]));
234
- const seen = new Set();
261
+ issues.push(...rowIssues(bundle, declared, { names: new Set(declared.keys()), what: manifest.kind === 'add-on' ? 'add-on' : 'app', otherLabels: false, known: seedLabelsOf(manifest) }));
262
+ issues.push(...ledgerOrderIssues(bundle, manifest, declared));
263
+ return issues;
264
+ }
265
+ /**
266
+ * The labels a manifest's starting rows carry (`seeds`, rows written in the
267
+ * manifest itself). A sample row may point at one: the starting row is found
268
+ * again by what tells it apart (`seedRowIdentity`), so the sample's items can
269
+ * name the unit an install seeded. A starting row kept in a file carries no
270
+ * label a sample can name.
271
+ */
272
+ export function seedLabelsOf(manifest) {
273
+ const out = new Set();
274
+ for (const seed of manifest.seeds ?? []) {
275
+ for (const row of seed.rows ?? [])
276
+ if (typeof row['@label'] === 'string')
277
+ out.add(row['@label']);
278
+ }
279
+ return out;
280
+ }
281
+ /**
282
+ * What tells a labelled starting row apart once it is in its table: the
283
+ * values it gives its table's one-of-a-kind columns, else the value of the
284
+ * table's key field. A text in several languages (`@t`) is any of them — the
285
+ * row was written in the installing person's. Empty when the row gives
286
+ * neither: such a label cannot be found again.
287
+ */
288
+ export function seedRowIdentity(manifest, table, row) {
289
+ const shape = (manifest.requiredSchema?.tables ?? []).find((candidate) => candidate.ref === table);
290
+ if (shape === undefined)
291
+ return [];
292
+ const valuesOf = (value) => {
293
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
294
+ return [value];
295
+ const found = sampleDirective(value);
296
+ return found?.kind === 't' ? [...new Set(Object.values(found.texts))] : null;
297
+ };
298
+ const told = (columns) => columns.flatMap((column) => {
299
+ const values = valuesOf(row[column]);
300
+ return values === null ? [] : [{ column, values }];
301
+ });
302
+ const unique = told(shape.columns.filter((column) => column.unique === true).map((column) => column.ref));
303
+ if (unique.length > 0)
304
+ return unique;
305
+ return shape.keyField === undefined ? [] : told([shape.keyField]);
306
+ }
307
+ /**
308
+ * An add-on's own sample may hold its ledger's history: rows of its receipt
309
+ * table and of the tables its ledger writes, written as they are (nothing is
310
+ * posted). A table of either kind is listed AFTER every table its rows name,
311
+ * and so a ledger row after the receipt it names — the removal runs in
312
+ * reverse, so it takes them out first, before the rows a foreign key of
313
+ * theirs points at. Once the receipts are listed only the ledger's own tables
314
+ * follow: the history is the last thing a sample adds.
315
+ *
316
+ * "Names" is what the rows of the file give, not what the table could hold:
317
+ * a ledger may also write a table people fill (an item it makes on the way),
318
+ * and a sample's items name no receipt, so they stand where items stand.
319
+ */
320
+ function ledgerOrderIssues(bundle, manifest, declared) {
321
+ const issues = [];
322
+ const position = new Map(bundle.tables.map((table, t) => [table.ref, t]));
323
+ const everyLedger = ledgersOf(manifest);
324
+ for (const ledger of everyLedger) {
325
+ const written = Object.keys(ledger.writes);
326
+ const receipts = position.get(ledger.receipts);
327
+ for (const ref of [ledger.receipts, ...written]) {
328
+ const t = position.get(ref);
329
+ const shape = declared.get(ref);
330
+ if (t === undefined || shape === undefined)
331
+ continue;
332
+ const what = ref === ledger.receipts ? 'the receipt table' : 'a ledger table';
333
+ const rows = bundle.tables[t].rows;
334
+ for (const column of shape.columns) {
335
+ const named = column.type === 'fk' ? column.references : undefined;
336
+ if (named === undefined || named === ref)
337
+ continue;
338
+ // A column no row of the file fills names nothing.
339
+ if (!rows.some((row) => row[column.ref] !== undefined && row[column.ref] !== null))
340
+ continue;
341
+ const listed = position.get(named);
342
+ if (listed === undefined || listed < t)
343
+ continue;
344
+ issues.push(named === ledger.receipts
345
+ ? { path: `tables.${String(t)}.ref`, message: `"${ref}" is a ledger table of "${ledger.id}": list the receipt table "${ledger.receipts}" before it.` }
346
+ : { path: `tables.${String(t)}.ref`, message: `"${ref}" is ${what} of "${ledger.id}": list it after "${named}", which its rows name (${column.ref}).` });
347
+ }
348
+ }
349
+ // Everything else comes first: after the receipts, only what a ledger writes.
350
+ if (receipts === undefined)
351
+ continue;
352
+ bundle.tables.forEach((table, t) => {
353
+ if (t > receipts && !everyLedger.some((other) => other.receipts === table.ref || other.writes[table.ref] !== undefined)) {
354
+ issues.push({ path: `tables.${String(t)}.ref`, message: `"${table.ref}" comes after the history of the ledger "${ledger.id}": list a ledger's receipt and ledger tables last.` });
355
+ }
356
+ });
357
+ }
358
+ return issues;
359
+ }
360
+ /**
361
+ * An app's rows for an add-on it names (`sampleData.addOns.<key>.file`):
362
+ * the file is for this app and that add-on, the app names the add-on, a
363
+ * table marked `own` is the app's and links into the add-on, and — when the
364
+ * add-on's manifest is at hand — every other table is one of the add-on's.
365
+ * A `@ref` may name a row of the app's or the add-on's own sample, so a label
366
+ * this file does not hold is left for the load to find.
367
+ */
368
+ export function sampleSectionIssues(bundle, app, addOn) {
369
+ const issues = [];
370
+ if (bundle.app !== app.key)
371
+ issues.push({ path: 'app', message: `The file is for "${bundle.app}", not "${app.key}".` });
372
+ const key = bundle.addOn;
373
+ if (key === undefined) {
374
+ issues.push({ path: 'addOn', message: 'Rows for an add-on say which: write "addOn": "<its key>" at the top of the file.' });
375
+ return issues;
376
+ }
377
+ if (addOn !== undefined && addOn.key !== key)
378
+ issues.push({ path: 'addOn', message: `The file is for the add-on "${key}", not "${addOn.key}".` });
379
+ const named = [...(app.addOns?.requires ?? []), ...(app.addOns?.suggests ?? [])].some((need) => need.key === key);
380
+ if (!named)
381
+ issues.push({ path: 'addOn', message: `"${key}" is not an add-on this app names: add it to addOns.requires or addOns.suggests.` });
382
+ const own = new Map(app.requiredSchema.tables.map((table) => [table.ref, table]));
383
+ const theirs = addOn === undefined ? null : new Map((addOn.requiredSchema?.tables ?? []).map((table) => [table.ref, table]));
384
+ const declared = new Map();
385
+ bundle.tables.forEach((table, t) => {
386
+ const at = `tables.${String(t)}`;
387
+ if (table.own === true) {
388
+ const shape = own.get(table.ref);
389
+ if (shape === undefined) {
390
+ issues.push({ path: `${at}.ref`, message: `"${table.ref}" is not a table this app declares.` });
391
+ }
392
+ else if (!shape.columns.some((column) => column.rules?.addOnLink?.addOn === key)) {
393
+ issues.push({ path: `${at}.own`, message: `"${table.ref}" has no column that links into "${key}" (rules.addOnLink), so its rows belong in the app's own sample file.` });
394
+ }
395
+ else {
396
+ declared.set(table.ref, shape);
397
+ }
398
+ return;
399
+ }
400
+ if (theirs === null)
401
+ return; // checked when the add-on's manifest is at hand
402
+ const shape = theirs.get(table.ref);
403
+ // An add-on's history is its own to write: an app brings what a ledger counts, never what it counted.
404
+ const ledger = addOn === undefined ? undefined : ledgersOf(addOn).find((candidate) => candidate.receipts === table.ref || candidate.writes[table.ref] !== undefined);
405
+ if (shape === undefined)
406
+ issues.push({ path: `${at}.ref`, message: `"${table.ref}" is not a table of "${key}". A table of the app itself is marked "own": true.` });
407
+ else if (ledger !== undefined)
408
+ issues.push({ path: `${at}.ref`, message: `"${table.ref}" is ${ledger.receipts === table.ref ? 'the receipt table' : 'a table'} of "${key}"'s ledger "${ledger.id}", which only postings write: an app's rows for an add-on hold none of its history.` });
409
+ else
410
+ declared.set(table.ref, shape);
411
+ });
412
+ const twice = bundle.tables.map((table) => table.ref).filter((ref, i, all) => all.indexOf(ref) !== i);
413
+ for (const ref of new Set(twice))
414
+ issues.push({ path: 'tables', message: `"${ref}" is listed twice.` });
415
+ // A `@table` names a table of the app: the add-on's rows say which of the app's rows they belong to.
416
+ issues.push(...rowIssues(bundle, declared, { names: new Set(own.keys()), what: 'app', otherLabels: true }));
417
+ return issues;
418
+ }
419
+ /**
420
+ * The checks every row of a file gets, over the tables `declared` knows. A
421
+ * table it does not know is skipped: the caller has said why, or cannot see it.
422
+ */
423
+ function rowIssues(bundle, declared, opts) {
424
+ const issues = [];
425
+ const seen = new Set(opts.known ?? []);
235
426
  // The labels of a table whose rows may all be left out: nothing may point at them.
236
427
  const mayBeLeftOut = new Set(bundle.tables.filter((table) => table.onlyIfEmpty === true).flatMap((table) => table.rows.map((row) => row['@label']).filter((l) => typeof l === 'string')));
237
428
  for (const [t, table] of bundle.tables.entries()) {
238
429
  const shape = declared.get(table.ref);
239
430
  if (shape === undefined) {
240
- issues.push({ path: `tables.${String(t)}.ref`, message: `"${table.ref}" is not a table this app declares.` });
431
+ if (!opts.otherLabels)
432
+ issues.push({ path: `tables.${String(t)}.ref`, message: `"${table.ref}" is not a table this ${opts.what} declares.` });
433
+ // Its labels still count: a later row may point at one.
434
+ for (const row of table.rows)
435
+ if (typeof row['@label'] === 'string')
436
+ seen.add(row['@label']);
241
437
  continue;
242
438
  }
243
439
  const columns = new Set(shape.columns.map((column) => column.ref));
@@ -313,7 +509,7 @@ export function sampleBundleIssues(bundle, manifest) {
313
509
  if (!columns.has(name))
314
510
  issues.push({ path: `${at}.@byStay.${branch}.${name}`, message: `"${table.ref}" has no column "${name}".` });
315
511
  const found = sampleDirective(part);
316
- if (found?.kind === 'ref' && !seen.has(found.label)) {
512
+ if (found?.kind === 'ref' && !seen.has(found.label) && !opts.otherLabels) {
317
513
  issues.push({ path: `${at}.@byStay.${branch}.${name}`, message: `"${found.label}" is not an earlier row: a referenced row must come first.` });
318
514
  }
319
515
  }
@@ -343,7 +539,7 @@ export function sampleBundleIssues(bundle, manifest) {
343
539
  if (!columns.has(name))
344
540
  issues.push({ path: `${at}.@byClock.${branch}.${name}`, message: `"${table.ref}" has no column "${name}".` });
345
541
  const found = sampleDirective(part);
346
- if (found?.kind === 'ref' && !seen.has(found.label)) {
542
+ if (found?.kind === 'ref' && !seen.has(found.label) && !opts.otherLabels) {
347
543
  issues.push({ path: `${at}.@byClock.${branch}.${name}`, message: `"${found.label}" is not an earlier row: a referenced row must come first.` });
348
544
  }
349
545
  }
@@ -365,7 +561,14 @@ export function sampleBundleIssues(bundle, manifest) {
365
561
  continue;
366
562
  }
367
563
  const found = sampleDirective(value);
368
- if (found?.kind === 'ref' && !seen.has(found.label)) {
564
+ if (found?.kind === 'table') {
565
+ const holds = shape.columns.find((c) => c.ref === column);
566
+ if (!opts.names.has(found.ref))
567
+ issues.push({ path: `${at}.${column}`, message: `"${found.ref}" is not a table this ${opts.what} declares.` });
568
+ else if (holds?.rules?.tableRef !== true)
569
+ issues.push({ path: `${at}.${column}`, message: `"${table.ref}.${column}" does not hold a table's name (rules.tableRef), so it takes no "@table".` });
570
+ }
571
+ if (found?.kind === 'ref' && !seen.has(found.label) && !opts.otherLabels) {
369
572
  issues.push({
370
573
  path: `${at}.${column}`,
371
574
  message: `"${found.label}" is not an earlier row: a referenced row must come first.`,
@@ -1 +1 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/sample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/sample.ts"],"names":[],"mappings":"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"}