@cruba/crubal 0.0.0-stage → 0.2.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 (99) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +97 -2
  3. package/dist/bin/crubal.d.ts +2 -0
  4. package/dist/bin/crubal.js +103 -0
  5. package/dist/bin/crubal.js.map +1 -0
  6. package/dist/src/access.d.ts +126 -0
  7. package/dist/src/access.js +517 -0
  8. package/dist/src/access.js.map +1 -0
  9. package/dist/src/arrival.d.ts +55 -0
  10. package/dist/src/arrival.js +124 -0
  11. package/dist/src/arrival.js.map +1 -0
  12. package/dist/src/browser.d.ts +10 -0
  13. package/dist/src/browser.js +13 -0
  14. package/dist/src/browser.js.map +1 -0
  15. package/dist/src/bundle.d.ts +66 -0
  16. package/dist/src/bundle.js +753 -0
  17. package/dist/src/bundle.js.map +1 -0
  18. package/dist/src/canonical.d.ts +6 -0
  19. package/dist/src/canonical.js +47 -0
  20. package/dist/src/canonical.js.map +1 -0
  21. package/dist/src/conditions.d.ts +28 -0
  22. package/dist/src/conditions.js +216 -0
  23. package/dist/src/conditions.js.map +1 -0
  24. package/dist/src/corpus.d.ts +8 -0
  25. package/dist/src/corpus.js +1207 -0
  26. package/dist/src/corpus.js.map +1 -0
  27. package/dist/src/defs.d.ts +151 -0
  28. package/dist/src/defs.js +611 -0
  29. package/dist/src/defs.js.map +1 -0
  30. package/dist/src/dictionary.d.ts +65 -0
  31. package/dist/src/dictionary.js +557 -0
  32. package/dist/src/dictionary.js.map +1 -0
  33. package/dist/src/exchange.d.ts +236 -0
  34. package/dist/src/exchange.js +1035 -0
  35. package/dist/src/exchange.js.map +1 -0
  36. package/dist/src/forms.d.ts +16 -0
  37. package/dist/src/forms.js +169 -0
  38. package/dist/src/forms.js.map +1 -0
  39. package/dist/src/index.d.ts +27 -0
  40. package/dist/src/index.js +29 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/src/lex.d.ts +21 -0
  43. package/dist/src/lex.js +142 -0
  44. package/dist/src/lex.js.map +1 -0
  45. package/dist/src/lifecycle.d.ts +84 -0
  46. package/dist/src/lifecycle.js +415 -0
  47. package/dist/src/lifecycle.js.map +1 -0
  48. package/dist/src/log.d.ts +78 -0
  49. package/dist/src/log.js +506 -0
  50. package/dist/src/log.js.map +1 -0
  51. package/dist/src/migrate.d.ts +111 -0
  52. package/dist/src/migrate.js +286 -0
  53. package/dist/src/migrate.js.map +1 -0
  54. package/dist/src/model.d.ts +68 -0
  55. package/dist/src/model.js +188 -0
  56. package/dist/src/model.js.map +1 -0
  57. package/dist/src/packages.d.ts +69 -0
  58. package/dist/src/packages.js +232 -0
  59. package/dist/src/packages.js.map +1 -0
  60. package/dist/src/print-text.d.ts +7 -0
  61. package/dist/src/print-text.js +216 -0
  62. package/dist/src/print-text.js.map +1 -0
  63. package/dist/src/publish.d.ts +27 -0
  64. package/dist/src/publish.js +275 -0
  65. package/dist/src/publish.js.map +1 -0
  66. package/dist/src/read-text.d.ts +10 -0
  67. package/dist/src/read-text.js +385 -0
  68. package/dist/src/read-text.js.map +1 -0
  69. package/dist/src/records.d.ts +31 -0
  70. package/dist/src/records.js +72 -0
  71. package/dist/src/records.js.map +1 -0
  72. package/dist/src/review.d.ts +22 -0
  73. package/dist/src/review.js +198 -0
  74. package/dist/src/review.js.map +1 -0
  75. package/dist/src/rules.d.ts +96 -0
  76. package/dist/src/rules.js +611 -0
  77. package/dist/src/rules.js.map +1 -0
  78. package/dist/src/schedule.d.ts +24 -0
  79. package/dist/src/schedule.js +126 -0
  80. package/dist/src/schedule.js.map +1 -0
  81. package/dist/src/std-packages.d.ts +9 -0
  82. package/dist/src/std-packages.js +268 -0
  83. package/dist/src/std-packages.js.map +1 -0
  84. package/dist/src/store.d.ts +164 -0
  85. package/dist/src/store.js +538 -0
  86. package/dist/src/store.js.map +1 -0
  87. package/dist/src/tree.d.ts +35 -0
  88. package/dist/src/tree.js +159 -0
  89. package/dist/src/tree.js.map +1 -0
  90. package/dist/src/units-table.d.ts +1 -0
  91. package/dist/src/units-table.js +200 -0
  92. package/dist/src/units-table.js.map +1 -0
  93. package/dist/src/units.d.ts +42 -0
  94. package/dist/src/units.js +98 -0
  95. package/dist/src/units.js.map +1 -0
  96. package/dist/src/views.d.ts +216 -0
  97. package/dist/src/views.js +761 -0
  98. package/dist/src/views.js.map +1 -0
  99. package/package.json +60 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type Schedule = {
2
+ text: string;
3
+ /** `minutes`, `hours`, `day`, `week` or `month`. */
4
+ unit: "minutes" | "hours" | "day" | "week" | "month";
5
+ /** For minutes and hours. */
6
+ every: number;
7
+ /** For day, week and month: the time of day, as minutes from midnight. */
8
+ minute: number;
9
+ /** For week: 0 (Sunday) to 6. */
10
+ weekday?: number;
11
+ /** For month: 1 to 28. */
12
+ monthday?: number;
13
+ /** An IANA zone for the time of day; UTC when absent. */
14
+ zone?: string;
15
+ };
16
+ export declare function isSchedule(when: string | undefined): boolean;
17
+ /** Read a schedule, or refuse it in plain words. */
18
+ export declare function readSchedule(text: string, line?: number): Schedule;
19
+ export declare function moment(ms: number): string;
20
+ export declare function instant(s: string): number;
21
+ /** The first tick strictly after `after` (a moment). */
22
+ export declare function nextTick(sch: Schedule, after: string): string;
23
+ /** Every tick after `after` and at or before `now`, in order. With no `after` the schedule hasn't begun: none. */
24
+ export declare function ticksDue(sch: Schedule, after: string | undefined, now: string): string[];
@@ -0,0 +1,126 @@
1
+ // schedule.ts: scheduled triggers (spec 7.11). A schedule is a contract's `when`: `every day at 03:00`,
2
+ // `every hour`, `every 15 minutes`, `every monday at 09:00`, `every month on 1 at 00:00`, with an optional
3
+ // zone on the time of day. Ticks are computed from the schedule and the caller's `now`, never remembered by
4
+ // a clock, so every store agrees on them.
5
+ import { CrubalError } from "./tree.js";
6
+ const WEEKDAYS = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
7
+ export function isSchedule(when) {
8
+ return !!when && /^every /.test(when.trim());
9
+ }
10
+ /** Read a schedule, or refuse it in plain words. */
11
+ export function readSchedule(text, line) {
12
+ let s = text.trim();
13
+ let zone;
14
+ const z = s.match(/\s*\[zone: ([^\]]+)\]$/);
15
+ if (z) {
16
+ zone = z[1].trim();
17
+ s = s.slice(0, z.index).trim();
18
+ }
19
+ const base = { text: text.trim(), ...(zone ? { zone } : {}) };
20
+ let m = s.match(/^every (\d+) (minutes?|hours?)$/);
21
+ if (m) {
22
+ const every = Number(m[1]);
23
+ if (every < 1)
24
+ throw new CrubalError(`a schedule repeats at least every 1: ${text}`, line);
25
+ return { ...base, unit: m[2].startsWith("minute") ? "minutes" : "hours", every, minute: 0 };
26
+ }
27
+ m = s.match(/^every (minute|hour)$/);
28
+ if (m)
29
+ return { ...base, unit: m[1] === "minute" ? "minutes" : "hours", every: 1, minute: 0 };
30
+ const time = (t) => {
31
+ const tm = (t ?? "00:00").match(/^(\d{2}):(\d{2})$/);
32
+ if (!tm || Number(tm[1]) > 23 || Number(tm[2]) > 59)
33
+ throw new CrubalError(`a time of day is hh:mm: ${text}`, line);
34
+ return Number(tm[1]) * 60 + Number(tm[2]);
35
+ };
36
+ m = s.match(/^every day(?: at (\S+))?$/);
37
+ if (m)
38
+ return { ...base, unit: "day", every: 1, minute: time(m[1]) };
39
+ m = s.match(/^every (sunday|monday|tuesday|wednesday|thursday|friday|saturday)(?: at (\S+))?$/);
40
+ if (m)
41
+ return { ...base, unit: "week", every: 1, minute: time(m[2]), weekday: WEEKDAYS.indexOf(m[1]) };
42
+ m = s.match(/^every month on (\d{1,2})(?: at (\S+))?$/);
43
+ if (m) {
44
+ const d = Number(m[1]);
45
+ if (d < 1 || d > 28)
46
+ throw new CrubalError(`a monthly schedule names a day from 1 to 28, so every month has it: ${text}`, line);
47
+ return { ...base, unit: "month", every: 1, minute: time(m[2]), monthday: d };
48
+ }
49
+ throw new CrubalError(`can't read the schedule "${text}": every N minutes|hours, every day at hh:mm, every <weekday> at hh:mm, every month on D at hh:mm`, line);
50
+ }
51
+ const MIN = 60_000;
52
+ /** The wall-clock parts of an instant in a zone. */
53
+ function partsIn(ms, zone) {
54
+ const dt = new Date(ms);
55
+ if (!zone)
56
+ return { y: dt.getUTCFullYear(), mo: dt.getUTCMonth() + 1, d: dt.getUTCDate(), h: dt.getUTCHours(), mi: dt.getUTCMinutes(), wd: dt.getUTCDay() };
57
+ const f = new Intl.DateTimeFormat("en-US", { timeZone: zone, hourCycle: "h23", year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", weekday: "short" });
58
+ const p = {};
59
+ for (const x of f.formatToParts(dt))
60
+ p[x.type] = x.value;
61
+ return { y: Number(p.year), mo: Number(p.month), d: Number(p.day), h: Number(p.hour), mi: Number(p.minute), wd: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"].indexOf(p.weekday ?? "Sun") };
62
+ }
63
+ /** The instant of a wall-clock date and minute in a zone (UTC when none). */
64
+ function instantOf(y, mo, d, minute, zone) {
65
+ const guess = Date.UTC(y, mo - 1, d, Math.floor(minute / 60), minute % 60);
66
+ if (!zone)
67
+ return guess;
68
+ // Correct the UTC guess by the zone's offset at that moment (one more pass settles a DST edge).
69
+ let ms = guess;
70
+ for (let i = 0; i < 2; i++) {
71
+ const p = partsIn(ms, zone);
72
+ const local = Date.UTC(p.y, p.mo - 1, p.d, p.h, p.mi);
73
+ ms += guess - local;
74
+ }
75
+ return ms;
76
+ }
77
+ export function moment(ms) {
78
+ return new Date(ms).toISOString().replace(/:00\.000Z$/, "Z").replace(/\.000Z$/, "Z");
79
+ }
80
+ export function instant(s) {
81
+ const ms = Date.parse(s);
82
+ if (Number.isNaN(ms))
83
+ throw new CrubalError(`not a moment: ${s}`);
84
+ return ms;
85
+ }
86
+ /** The first tick strictly after `after` (a moment). */
87
+ export function nextTick(sch, after) {
88
+ const a = instant(after);
89
+ if (sch.unit === "minutes" || sch.unit === "hours") {
90
+ const step = sch.every * (sch.unit === "minutes" ? MIN : 60 * MIN);
91
+ return moment((Math.floor(a / step) + 1) * step);
92
+ }
93
+ const p = partsIn(a, sch.zone);
94
+ for (let i = 0; i < 400; i++) {
95
+ const day = new Date(Date.UTC(p.y, p.mo - 1, p.d + i));
96
+ const y = day.getUTCFullYear();
97
+ const mo = day.getUTCMonth() + 1;
98
+ const d = day.getUTCDate();
99
+ const wd = day.getUTCDay();
100
+ if (sch.unit === "week" && wd !== sch.weekday)
101
+ continue;
102
+ if (sch.unit === "month" && d !== sch.monthday)
103
+ continue;
104
+ const t = instantOf(y, mo, d, sch.minute, sch.zone);
105
+ if (t > a)
106
+ return moment(t);
107
+ }
108
+ throw new CrubalError(`no tick of "${sch.text}" within 400 days of ${after}`);
109
+ }
110
+ /** Every tick after `after` and at or before `now`, in order. With no `after` the schedule hasn't begun: none. */
111
+ export function ticksDue(sch, after, now) {
112
+ const out = [];
113
+ if (after === undefined)
114
+ return out;
115
+ let cur = after;
116
+ const end = instant(now);
117
+ for (let i = 0; i < 100_000; i++) {
118
+ const t = nextTick(sch, cur);
119
+ if (instant(t) > end)
120
+ break;
121
+ out.push(t);
122
+ cur = t;
123
+ }
124
+ return out;
125
+ }
126
+ //# sourceMappingURL=schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/schedule.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,2GAA2G;AAC3G,4GAA4G;AAC5G,0CAA0C;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAkBxC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAEhG,MAAM,UAAU,UAAU,CAAC,IAAwB;IACjD,OAAO,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAa;IACtD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,IAAI,IAAwB,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,CAAC;QACN,IAAI,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9D,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,wCAAwC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3F,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAG,CAAC,CAAC,CAAC,CAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1G,CAAC;IACD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrC,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9F,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAU,EAAE;QAC7C,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,2BAA2B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACpH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzC,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;IAChG,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,EAAE,CAAC;IACjH,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC,uEAAuE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,4BAA4B,IAAI,mGAAmG,EAAE,IAAI,CAAC,CAAC;AACnK,CAAC;AAED,MAAM,GAAG,GAAG,MAAM,CAAC;AAEnB,oDAAoD;AACpD,SAAS,OAAO,CAAC,EAAU,EAAE,IAAwB;IACnD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;IAC5J,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1L,MAAM,CAAC,GAA4B,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IACzD,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;AAClM,CAAC;AAED,6EAA6E;AAC7E,SAAS,SAAS,CAAC,CAAS,EAAE,EAAU,EAAE,CAAS,EAAE,MAAc,EAAE,IAAwB;IAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,gGAAgG;IAChG,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACtD,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,GAAa,EAAE,KAAa;IACnD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO;YAAE,SAAS;QACxD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ;YAAE,SAAS;QACzD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,eAAe,GAAG,CAAC,IAAI,wBAAwB,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,QAAQ,CAAC,GAAa,EAAE,KAAyB,EAAE,GAAW;IAC5E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;YAAE,MAAM;QAC5B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,GAAG,GAAG,CAAC,CAAC;IACV,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Dictionary } from "./defs.ts";
2
+ /** The standard packages' text, by name: core, units and party. */
3
+ export declare const STANDARD_PACKAGES: {
4
+ readonly core: string;
5
+ readonly units: string;
6
+ readonly party: string;
7
+ };
8
+ /** A dictionary holding the three standard packages' definitions, to read an adopter's packages onto. */
9
+ export declare function standardDefinitions(into?: Dictionary): Dictionary;
@@ -0,0 +1,268 @@
1
+ // std-packages.ts: the text of the standard packages (spec 11.7), as published in std/. Generated by
2
+ // `npm run embed` in packages/crubal; a test refuses a copy that has drifted from the files. An adopter reads
3
+ // these into a dictionary before its own packages, as a publish does (11.4).
4
+ import { emptyDictionary, readDefinitions } from "./defs.js";
5
+ /** The standard packages' text, by name: core, units and party. */
6
+ export const STANDARD_PACKAGES = {
7
+ core: `// crubal.com/core: the core's own names (chapter 11.7). The envelope lines, origins and audiences are fixed
8
+ // by the specification; the facets below are the core facets every package may use as crubal:<name>.
9
+ package: core /2026-10-14
10
+ owner: crubal.com
11
+ label: CRUBAL core
12
+ crubal: 2
13
+ licence: CC-BY-4.0
14
+
15
+ facet: notables
16
+ type: compound
17
+ pick: any
18
+ label: Notables
19
+ describe: Facts true of this one record that no class asks for: signed, misprint, edition number. A key that recurs across enough records is proposed as a facet (chapter 9.5).
20
+ facets:
21
+ key$80
22
+ value$
23
+
24
+ facet: count
25
+ type: number
26
+ label: Count
27
+ describe: How many identical things a fungible part holds (chapter 5.6).
28
+
29
+ facet: items
30
+ type: link
31
+ pick: any
32
+ ordered: yes
33
+ label: Items
34
+ describe: The records a hand-made list holds, in its order (chapter 12.2). A view shows the list with select: list.
35
+
36
+ facet: clonedFrom
37
+ type: link
38
+ label: Cloned from
39
+ describe: The record this one was adopted from, when a whole record was made one's own (chapter 8.2).
40
+ `,
41
+ units: `// crubal.com/units: the units table (chapter 1.4.3, 11.9). Units are reference records of the kind "measure";
42
+ // currencies are records of the kind "currency". Readers fold the spellings and convert within a dimension.
43
+ package: units /2026-10-15
44
+ owner: crubal.com
45
+ label: Units and currencies
46
+ crubal: 2
47
+ licence: CC-BY-4.0
48
+
49
+ kind: measure
50
+ levels: measure
51
+ base: Measure
52
+
53
+ kind: currency
54
+ levels: currency
55
+ base: Currency
56
+
57
+ facet: dimension
58
+ type: choice
59
+ values: time, length, mass, volume, area, temperature, data, count
60
+ describe: The dimension a unit measures; units convert only within one. The list grows by versions of this package.
61
+
62
+ facet: factor
63
+ type: number
64
+ describe: How many of the dimension's base unit one of this unit is (s, m, kg, L, m2, K, B, each).
65
+
66
+ facet: offset
67
+ type: number
68
+ describe: For a unit whose zero isn't the base's (°C, °F): the base-unit amount at this unit's zero. An amount in base units is amount × factor + offset.
69
+
70
+ facet: spellings
71
+ type: text
72
+ pick: any
73
+ describe: Other ways intake may write this unit; folded case-insensitively.
74
+
75
+ facet: uncefact
76
+ type: text
77
+ label: UN/CEFACT code
78
+ describe: The unit's UN/CEFACT Recommendation 20 code, for borders that use it. Never a spelling.
79
+
80
+ facet: rounding
81
+ type: number
82
+ describe: On a dimension's base unit record: the decimal places a conversion keeps when the facet states none.
83
+
84
+ facet: places
85
+ type: number
86
+ describe: A currency's decimal places (ISO 4217 minor units).
87
+
88
+ facet: name
89
+ type: text
90
+
91
+ class: Measure
92
+ for: measure
93
+ facets:
94
+ !dimension
95
+ !factor
96
+ offset
97
+ rounding
98
+ spellings
99
+ uncefact
100
+
101
+ class: Currency
102
+ for: currency
103
+ facets:
104
+ !name
105
+ !places
106
+ `,
107
+ party: `// crubal.com/party: who acts. The three caller kinds, what any adopter needs of them, and the facets that
108
+ // access reads. Authentication stays in the host; roles and presets stay in the adopter's package.
109
+ package: party /2026-10-16
110
+ owner: crubal.com
111
+ label: Parties
112
+ crubal: 2
113
+ licence: CC-BY-4.0
114
+ prefixes:
115
+ schema: https://schema.org/
116
+
117
+ kind: person
118
+ levels: person
119
+ base: Person
120
+ schema:
121
+ person: schema:Person
122
+ kind: organization
123
+ levels: organization
124
+ base: Organization
125
+ schema:
126
+ organization: schema:Organization
127
+ kind: system
128
+ levels: system
129
+ base: System
130
+ schema:
131
+ system: schema:SoftwareApplication
132
+
133
+ // Any party
134
+ !name$200 =schema:name
135
+ image^ =schema:image
136
+ url$ =schema:url
137
+ email$ =schema:email
138
+ phone$ =schema:telephone
139
+ description$ =schema:description
140
+ roles&role*
141
+ memberOf&organization* =schema:memberOf
142
+
143
+ // People
144
+ givenName$ =schema:givenName
145
+ familyName$ =schema:familyName
146
+ locale$ // BCP 47: en-GB
147
+ timezone$ // IANA: Europe/London
148
+ signedUp@ymdhm
149
+
150
+ // Organizations
151
+ legalName$ =schema:legalName
152
+ domain$ unique // the owner domain when the organization is one
153
+ taxId$ =schema:taxID
154
+ facet: address
155
+ type: compound
156
+ same-as: schema:address
157
+ facets:
158
+ street$ =schema:streetAddress
159
+ locality$ =schema:addressLocality
160
+ region$ =schema:addressRegion
161
+ postalCode$ =schema:postalCode
162
+ country$ =schema:addressCountry // ISO 3166-1 alpha-2
163
+
164
+ // Systems
165
+ operator&organization // who runs it
166
+ systemKind{utility|partner|agent}
167
+ scheme{oauth2|apikey|basic|none}
168
+ scopes$* // what was granted
169
+ requests$* // the menu items it asked for (14.9)
170
+ connection{connected|expired|revoked}
171
+ connectedAt@ymdhm
172
+ version$
173
+
174
+ class: Person
175
+ for: person
176
+ facets:
177
+ !name
178
+ givenName
179
+ familyName
180
+ image
181
+ email
182
+ phone
183
+ locale
184
+ timezone
185
+ roles
186
+ memberOf
187
+ signedUp
188
+ class: Organization
189
+ for: organization
190
+ facets:
191
+ !name
192
+ legalName
193
+ domain
194
+ url
195
+ email
196
+ phone
197
+ address
198
+ image
199
+ description
200
+ taxId
201
+ class: System
202
+ for: system
203
+ facets:
204
+ !name
205
+ operator
206
+ systemKind
207
+ url
208
+ scheme
209
+ scopes
210
+ requests
211
+ connection
212
+ connectedAt
213
+ version
214
+ roles
215
+
216
+ // Contact details and tax identity are for the owner's people, never for the public or other members.
217
+ rule: emailIsPrivate
218
+ for: everywhere
219
+ strength: must
220
+ then: email shown to staff
221
+ rule: phoneIsPrivate
222
+ for: everywhere
223
+ strength: must
224
+ then: phone shown to staff
225
+ rule: addressIsPrivate
226
+ for: everywhere
227
+ strength: must
228
+ then: address shown to staff
229
+ rule: taxIdIsPrivate
230
+ for: everywhere
231
+ strength: must
232
+ then: taxId shown to staff
233
+
234
+ // The host writes the connection through this form (host.md). The form is the party package's so every host
235
+ // writes the same record; the edge that grants what the system asked for is the adopter's (14.9).
236
+ contract: connect
237
+ kind: form
238
+ origin: observed
239
+ needs:
240
+ !name
241
+ scheme
242
+ scopes
243
+ requests
244
+ connection
245
+ connectedAt
246
+
247
+ // A person keeps their own details. Who may run it is the adopter's edge (consume on their own record).
248
+ contract: profile
249
+ kind: form
250
+ origin: declared
251
+ needs:
252
+ !name
253
+ givenName
254
+ familyName
255
+ image
256
+ email
257
+ phone
258
+ locale
259
+ timezone
260
+ `,
261
+ };
262
+ /** A dictionary holding the three standard packages' definitions, to read an adopter's packages onto. */
263
+ export function standardDefinitions(into = emptyDictionary()) {
264
+ for (const text of [STANDARD_PACKAGES.core, STANDARD_PACKAGES.units, STANDARD_PACKAGES.party])
265
+ readDefinitions(text, into);
266
+ return into;
267
+ }
268
+ //# sourceMappingURL=std-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"std-packages.js","sourceRoot":"","sources":["../../src/std-packages.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,8GAA8G;AAC9G,6EAA6E;AAE7E,OAAO,EAAmB,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE9E,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAA8E;IAC1G,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCP;IACC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiER;IACC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJR;CACA,CAAC;AAEF,yGAAyG;AACzG,MAAM,UAAU,mBAAmB,CAAC,OAAmB,eAAe,EAAE;IACtE,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3H,OAAO,IAAI,CAAC;AACd,CAAC"}