@adminiumjs/manifest 0.3.47 → 0.3.49

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 (71) hide show
  1. package/dist/app-requires.d.ts +66 -0
  2. package/dist/app-requires.d.ts.map +1 -0
  3. package/dist/app-requires.js +98 -0
  4. package/dist/app-requires.js.map +1 -0
  5. package/dist/automations.d.ts +346 -2
  6. package/dist/automations.d.ts.map +1 -1
  7. package/dist/automations.js +64 -7
  8. package/dist/automations.js.map +1 -1
  9. package/dist/compose.d.ts.map +1 -1
  10. package/dist/compose.js +5 -0
  11. package/dist/compose.js.map +1 -1
  12. package/dist/documents.d.ts +49 -0
  13. package/dist/documents.d.ts.map +1 -1
  14. package/dist/documents.js +41 -1
  15. package/dist/documents.js.map +1 -1
  16. package/dist/formula.js +1 -1
  17. package/dist/formula.js.map +1 -1
  18. package/dist/index.d.ts +11 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +11 -4
  21. package/dist/index.js.map +1 -1
  22. package/dist/instance.d.ts +133 -0
  23. package/dist/instance.d.ts.map +1 -0
  24. package/dist/instance.js +157 -0
  25. package/dist/instance.js.map +1 -0
  26. package/dist/outbox.d.ts +79 -0
  27. package/dist/outbox.d.ts.map +1 -1
  28. package/dist/outbox.js +37 -2
  29. package/dist/outbox.js.map +1 -1
  30. package/dist/plan-context.d.ts +9 -0
  31. package/dist/plan-context.d.ts.map +1 -1
  32. package/dist/plan-context.js +74 -9
  33. package/dist/plan-context.js.map +1 -1
  34. package/dist/plan-model.d.ts +9 -2
  35. package/dist/plan-model.d.ts.map +1 -1
  36. package/dist/plan-types.d.ts.map +1 -1
  37. package/dist/plan-types.js +2 -0
  38. package/dist/plan-types.js.map +1 -1
  39. package/dist/public-access.d.ts +23 -0
  40. package/dist/public-access.d.ts.map +1 -1
  41. package/dist/public-access.js +51 -5
  42. package/dist/public-access.js.map +1 -1
  43. package/dist/refs.d.ts +12 -1
  44. package/dist/refs.d.ts.map +1 -1
  45. package/dist/refs.js +23 -2
  46. package/dist/refs.js.map +1 -1
  47. package/dist/saved-apps.d.ts +132 -0
  48. package/dist/saved-apps.d.ts.map +1 -0
  49. package/dist/saved-apps.js +215 -0
  50. package/dist/saved-apps.js.map +1 -0
  51. package/dist/saved-parts.d.ts +368 -0
  52. package/dist/saved-parts.d.ts.map +1 -0
  53. package/dist/saved-parts.js +232 -0
  54. package/dist/saved-parts.js.map +1 -0
  55. package/dist/schema.d.ts +1395 -52
  56. package/dist/schema.d.ts.map +1 -1
  57. package/dist/schema.js +131 -5
  58. package/dist/schema.js.map +1 -1
  59. package/dist/table-names.d.ts +82 -0
  60. package/dist/table-names.d.ts.map +1 -0
  61. package/dist/table-names.js +145 -0
  62. package/dist/table-names.js.map +1 -0
  63. package/dist/words.d.ts +1 -1
  64. package/dist/words.d.ts.map +1 -1
  65. package/dist/words.js +206 -0
  66. package/dist/words.js.map +1 -1
  67. package/dist/workspace-file.d.ts +115 -0
  68. package/dist/workspace-file.d.ts.map +1 -0
  69. package/dist/workspace-file.js +130 -0
  70. package/dist/workspace-file.js.map +1 -0
  71. package/package.json +2 -2
package/dist/refs.d.ts CHANGED
@@ -8,8 +8,19 @@
8
8
  * without importing each other.
9
9
  */
10
10
  import { z } from 'zod';
11
- /** A snake_case identifier: a table or column ref. */
11
+ /** A snake_case identifier. */
12
+ export declare const SNAKE_REF: RegExp;
13
+ /**
14
+ * A table or column ref: snake_case, or the name a column of a self-made app
15
+ * has in its own database (`orderDate`). Only a self-made app may declare such
16
+ * a column (`columnRefIssues`); anywhere else the name matches no column, and
17
+ * the cross-reference checks refuse it.
18
+ */
19
+ export declare function isRef(value: string): boolean;
20
+ /** A table or column ref (see `isRef`). */
12
21
  export declare const refSchema: z.ZodString;
22
+ /** A column of the row, or one link further (`deal_id.owner_id`, `dealId.ownerId`): names without spaces. */
23
+ export declare const COLUMN_PATH: RegExp;
13
24
  /** A BCP 47 tag, the way every label map in a manifest is keyed (`de-DE`). */
14
25
  export declare const bcp47TagSchema: z.ZodString;
15
26
  /** A label in several languages. US English is the one every reader falls back to. */
@@ -1 +1 @@
1
- {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
package/dist/refs.js CHANGED
@@ -9,8 +9,29 @@
9
9
  * without importing each other.
10
10
  */
11
11
  import { z } from 'zod';
12
- /** A snake_case identifier: a table or column ref. */
13
- export const refSchema = z.string().regex(/^[a-z][a-z0-9_]*$/, 'must be a snake_case identifier');
12
+ import { columnNameIssue } from './table-names.js';
13
+ /** A snake_case identifier. */
14
+ export const SNAKE_REF = /^[a-z][a-z0-9_]*$/;
15
+ /**
16
+ * A table or column ref: snake_case, or the name a column of a self-made app
17
+ * has in its own database (`orderDate`). Only a self-made app may declare such
18
+ * a column (`columnRefIssues`); anywhere else the name matches no column, and
19
+ * the cross-reference checks refuse it.
20
+ */
21
+ export function isRef(value) {
22
+ return SNAKE_REF.test(value) || (COLUMN_NAME.test(value) && columnNameIssue(value) === null);
23
+ }
24
+ /**
25
+ * The names a self-made app's column may keep: a letter or `_` first, then
26
+ * letters, digits, `_`, `$`, `-` and spaces. Never a time, a number or a path
27
+ * (`24:00`, `2pm`, `a.b`), so a field that takes a column or a value still
28
+ * reads a value as a value.
29
+ */
30
+ const COLUMN_NAME = /^[A-Za-z_][A-Za-z0-9_ $-]*$/;
31
+ /** A table or column ref (see `isRef`). */
32
+ export const refSchema = z.string().refine(isRef, 'must be a snake_case identifier');
33
+ /** A column of the row, or one link further (`deal_id.owner_id`, `dealId.ownerId`): names without spaces. */
34
+ export const COLUMN_PATH = /^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?$/;
14
35
  /** A BCP 47 tag, the way every label map in a manifest is keyed (`de-DE`). */
15
36
  export const bcp47TagSchema = z.string().regex(/^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$/, 'keyed by BCP 47 tag');
16
37
  /** A label in several languages. US English is the one every reader falls back to. */
package/dist/refs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../src/refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * WHAT A FILE MADE FROM A DASHBOARD CARRIES BESIDE AN ORDINARY APP.
3
+ *
4
+ * Three words only a self-made app (`publisher: local`) may use: a page's
5
+ * whole `envelope` (what a person arranged on a page the generator would not
6
+ * make again), its shared `views`, and the file's `provenance` (where and when
7
+ * it was saved). The published catalogue never carries them. Nor a table's
8
+ * real `name` and `schema` (`table-names.ts`), which only such an app gives.
9
+ *
10
+ * The envelope is typed loosely here — its version, kind, template and body —
11
+ * because the engine's own page schema judges it on the server, at plan, where
12
+ * the template registry is. What a target must make its own (the page's id,
13
+ * its source, its access and its address) is not in it: the install makes them.
14
+ *
15
+ * And the checks that read more than one block: a table's switch names its
16
+ * own postings, a left-out table has no page, an existing-customers mark sits
17
+ * on a people table, a campaign is never what an outbox or a rule sends.
18
+ */
19
+ import { z } from 'zod';
20
+ /** A page's envelope as the dashboard keeps it, without what the target makes its own. */
21
+ export declare const pageEnvelopeFieldSchema: z.ZodObject<{
22
+ v: z.ZodNumber;
23
+ kind: z.ZodString;
24
+ template: z.ZodString;
25
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
26
+ padding: z.ZodOptional<z.ZodUnknown>;
27
+ width: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strict>;
29
+ export type PageEnvelopeField = z.infer<typeof pageEnvelopeFieldSchema>;
30
+ /** The most shared views one page carries. */
31
+ export declare const PAGE_VIEWS_MAX = 24;
32
+ /** A shared view of a page, its stored config as is. */
33
+ export declare const pageViewSchema: z.ZodObject<{
34
+ v: z.ZodNumber;
35
+ kind: z.ZodEnum<{
36
+ layout: "layout";
37
+ filters: "filters";
38
+ }>;
39
+ name: z.ZodString;
40
+ isDefault: z.ZodOptional<z.ZodBoolean>;
41
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
42
+ }, z.core.$strict>;
43
+ export type PageView = z.infer<typeof pageViewSchema>;
44
+ export declare const pageViewsSchema: z.ZodArray<z.ZodObject<{
45
+ v: z.ZodNumber;
46
+ kind: z.ZodEnum<{
47
+ layout: "layout";
48
+ filters: "filters";
49
+ }>;
50
+ name: z.ZodString;
51
+ isDefault: z.ZodOptional<z.ZodBoolean>;
52
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
53
+ }, z.core.$strict>>;
54
+ /**
55
+ * Where a self-made app came from: the dashboard's lineage (a random id drawn
56
+ * at its first save, never an id of the instance), when and on which Adminium
57
+ * it was saved, the save's label, and the names of the workspaces its database
58
+ * was in — offered on the target as names, nothing more.
59
+ */
60
+ export declare const provenanceSchema: z.ZodObject<{
61
+ lineage: z.ZodString;
62
+ savedAt: z.ZodISODateTime;
63
+ adminiumVersion: z.ZodString;
64
+ label: z.ZodOptional<z.ZodString>;
65
+ workspaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ }, z.core.$strict>;
67
+ export type Provenance = z.infer<typeof provenanceSchema>;
68
+ /**
69
+ * A self-made app's icon: a lucide icon's name, as the product's icon set
70
+ * names it (`coffee`, `shopping-bag`). Where it is installed, the app is shown
71
+ * with it; a name the target's set does not hold falls back to its default.
72
+ */
73
+ export declare const APP_ICON_PATTERN: RegExp;
74
+ export declare const appIconSchema: z.ZodString;
75
+ interface Issue {
76
+ path: (string | number)[];
77
+ message: string;
78
+ }
79
+ interface SavedAppShape {
80
+ kind: string;
81
+ publisher: {
82
+ id: string;
83
+ };
84
+ provenance?: unknown;
85
+ icon?: unknown;
86
+ pages?: readonly {
87
+ ref: string;
88
+ template: string;
89
+ config?: unknown;
90
+ bindings?: Readonly<Record<string, string>> | undefined;
91
+ envelope?: {
92
+ template: string;
93
+ } | undefined;
94
+ views?: unknown;
95
+ }[] | undefined;
96
+ requiredSchema?: {
97
+ prefixed?: true | undefined;
98
+ tables: readonly {
99
+ ref: string;
100
+ name?: string | undefined;
101
+ schema?: string | undefined;
102
+ columns?: readonly {
103
+ ref: string;
104
+ }[] | undefined;
105
+ exclude?: true | undefined;
106
+ existingCustomers?: true | undefined;
107
+ switchedOff?: {
108
+ postings?: readonly string[] | undefined;
109
+ adjust?: true | undefined;
110
+ } | undefined;
111
+ postings?: readonly {
112
+ id: string;
113
+ }[] | undefined;
114
+ adjust?: unknown;
115
+ }[];
116
+ } | undefined;
117
+ people?: readonly {
118
+ table: string;
119
+ }[] | undefined;
120
+ emailTemplates?: readonly {
121
+ key: string;
122
+ kind?: 'template' | 'campaign' | undefined;
123
+ }[] | undefined;
124
+ outbox?: {
125
+ kinds?: Readonly<Record<string, unknown>> | undefined;
126
+ } | undefined;
127
+ automations?: unknown;
128
+ }
129
+ /** Everything wrong with the saved-app words that one block alone cannot see. */
130
+ export declare function savedAppIssues(m: SavedAppShape): Issue[];
131
+ export {};
132
+ //# sourceMappingURL=saved-apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-apps.d.ts","sourceRoot":"","sources":["../src/saved-apps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ /**
3
+ * WHAT A FILE MADE FROM A DASHBOARD CARRIES BESIDE AN ORDINARY APP.
4
+ *
5
+ * Three words only a self-made app (`publisher: local`) may use: a page's
6
+ * whole `envelope` (what a person arranged on a page the generator would not
7
+ * make again), its shared `views`, and the file's `provenance` (where and when
8
+ * it was saved). The published catalogue never carries them. Nor a table's
9
+ * real `name` and `schema` (`table-names.ts`), which only such an app gives.
10
+ *
11
+ * The envelope is typed loosely here — its version, kind, template and body —
12
+ * because the engine's own page schema judges it on the server, at plan, where
13
+ * the template registry is. What a target must make its own (the page's id,
14
+ * its source, its access and its address) is not in it: the install makes them.
15
+ *
16
+ * And the checks that read more than one block: a table's switch names its
17
+ * own postings, a left-out table has no page, an existing-customers mark sits
18
+ * on a people table, a campaign is never what an outbox or a rule sends.
19
+ */
20
+ import { z } from 'zod';
21
+ import { SNAKE_REF } from './refs.js';
22
+ /** The publisher of an app made on an install (`LOCAL_PUBLISHER_ID` in `schema.ts`, which reads this file). */
23
+ const LOCAL_PUBLISHER_ID = 'local';
24
+ /** A page's envelope as the dashboard keeps it, without what the target makes its own. */
25
+ export const pageEnvelopeFieldSchema = z
26
+ .object({
27
+ v: z.number().int().min(1).max(99),
28
+ kind: z.string().regex(/^[a-z][a-z0-9-]*$/, 'a page kind').max(40),
29
+ template: z.string().min(1).max(80),
30
+ config: z.record(z.string(), z.unknown()),
31
+ /** Page chrome: the gutter and the content column, as the engine spells them. */
32
+ padding: z.unknown().optional(),
33
+ width: z.string().min(1).max(20).optional(),
34
+ })
35
+ .strict();
36
+ /** The most shared views one page carries. */
37
+ export const PAGE_VIEWS_MAX = 24;
38
+ /** A shared view of a page, its stored config as is. */
39
+ export const pageViewSchema = z
40
+ .object({
41
+ v: z.number().int().min(1).max(99),
42
+ /** `filters` (a list's saved state) or `layout` (a dashboard's arrangement). */
43
+ kind: z.enum(['filters', 'layout']),
44
+ name: z.string().min(1).max(120),
45
+ isDefault: z.boolean().optional(),
46
+ config: z.record(z.string(), z.unknown()),
47
+ })
48
+ .strict();
49
+ export const pageViewsSchema = z
50
+ .array(pageViewSchema)
51
+ .min(1)
52
+ .max(PAGE_VIEWS_MAX)
53
+ .refine((views) => new Set(views.map((view) => `${view.kind}:${view.name}`)).size === views.length, { message: 'a page names each view once' })
54
+ .refine((views) => ['filters', 'layout'].every((kind) => views.filter((view) => view.kind === kind && view.isDefault === true).length <= 1), {
55
+ message: 'a page has one default view of each kind at most',
56
+ });
57
+ /**
58
+ * Where a self-made app came from: the dashboard's lineage (a random id drawn
59
+ * at its first save, never an id of the instance), when and on which Adminium
60
+ * it was saved, the save's label, and the names of the workspaces its database
61
+ * was in — offered on the target as names, nothing more.
62
+ */
63
+ export const provenanceSchema = z
64
+ .object({
65
+ lineage: z.string().regex(/^[A-Za-z0-9_-]{8,64}$/, 'a lineage is 8 to 64 letters, digits, - or _'),
66
+ savedAt: z.iso.datetime({ offset: true }),
67
+ adminiumVersion: z.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/, 'an Adminium version'),
68
+ label: z.string().min(1).max(120).optional(),
69
+ workspaces: z.array(z.string().min(1).max(80)).max(32).optional(),
70
+ })
71
+ .strict();
72
+ /**
73
+ * A self-made app's icon: a lucide icon's name, as the product's icon set
74
+ * names it (`coffee`, `shopping-bag`). Where it is installed, the app is shown
75
+ * with it; a name the target's set does not hold falls back to its default.
76
+ */
77
+ export const APP_ICON_PATTERN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
78
+ export const appIconSchema = z.string().max(60).regex(APP_ICON_PATTERN, 'an icon is a lucide icon name in kebab case, such as "coffee"');
79
+ /** The template keys a rule's steps send, at any depth. */
80
+ function ruleTemplateKeys(node, out) {
81
+ if (Array.isArray(node)) {
82
+ for (const item of node)
83
+ ruleTemplateKeys(item, out);
84
+ return;
85
+ }
86
+ if (typeof node !== 'object' || node === null)
87
+ return;
88
+ for (const [key, value] of Object.entries(node)) {
89
+ if (key === 'templateKey' && typeof value === 'string')
90
+ out.add(value);
91
+ else
92
+ ruleTemplateKeys(value, out);
93
+ }
94
+ }
95
+ /**
96
+ * A table's real `name` and `schema`: a self-made app's only, never beside a
97
+ * prefix (which names every table itself), and no two tables under one name
98
+ * once letters are folded — MySQL (`lower_case_table_names`) and SQLite take
99
+ * `Orders` and `orders` for one table.
100
+ */
101
+ function tableNameIssues(m, local, onlyLocal) {
102
+ const out = [];
103
+ const tables = m.requiredSchema?.tables ?? [];
104
+ const seen = new Map();
105
+ tables.forEach((table, t) => {
106
+ for (const word of ['name', 'schema']) {
107
+ if (table[word] === undefined)
108
+ continue;
109
+ if (!local || m.kind !== 'app')
110
+ onlyLocal(['requiredSchema', 'tables', t, word], word);
111
+ if (m.requiredSchema?.prefixed === true) {
112
+ out.push({ path: ['requiredSchema', 'tables', t, word], message: `a prefixed app names its tables itself: "${table.ref}" gives no ${word}` });
113
+ }
114
+ }
115
+ const real = `${(table.schema ?? '').toLowerCase()}\u0000${(table.name ?? table.ref).toLowerCase()}`;
116
+ const held = seen.get(real);
117
+ if (held !== undefined) {
118
+ out.push({ path: ['requiredSchema', 'tables', t, table.name === undefined ? 'ref' : 'name'], message: `"${table.ref}" and "${held}" are one table to a database that ignores case: name them apart` });
119
+ }
120
+ else
121
+ seen.set(real, table.ref);
122
+ });
123
+ return out;
124
+ }
125
+ /**
126
+ * A column's ref is snake_case, except in a self-made app, where a column
127
+ * keeps the name it has in its own database (`orderDate`, `Order Date`): the
128
+ * file names it the same way everywhere. Two columns of a table may not differ
129
+ * by case alone, since MySQL and SQLite read them as one.
130
+ */
131
+ function columnRefIssues(m, local) {
132
+ const out = [];
133
+ (m.requiredSchema?.tables ?? []).forEach((table, t) => {
134
+ const seen = new Map();
135
+ (table.columns ?? []).forEach((column, c) => {
136
+ const at = ['requiredSchema', 'tables', t, 'columns', c, 'ref'];
137
+ if (!SNAKE_REF.test(column.ref) && (!local || m.kind !== 'app')) {
138
+ out.push({ path: at, message: `column ref must be a snake_case identifier ("${column.ref}" is a name only a self-made app may keep)` });
139
+ }
140
+ const folded = column.ref.toLowerCase();
141
+ const held = seen.get(folded);
142
+ if (held !== undefined && held !== column.ref)
143
+ out.push({ path: at, message: `"${column.ref}" and "${held}" are one column to a database that ignores case: name them apart` });
144
+ else
145
+ seen.set(folded, column.ref);
146
+ });
147
+ });
148
+ return out;
149
+ }
150
+ /** Everything wrong with the saved-app words that one block alone cannot see. */
151
+ export function savedAppIssues(m) {
152
+ const out = [];
153
+ const local = m.publisher.id === LOCAL_PUBLISHER_ID;
154
+ const onlyLocal = (path, word) => out.push({ path, message: `"${word}" is carried only by a self-made app (publisher "${LOCAL_PUBLISHER_ID}")` });
155
+ if (m.provenance !== undefined && !local)
156
+ onlyLocal(['provenance'], 'provenance');
157
+ if (m.icon !== undefined && !local)
158
+ onlyLocal(['icon'], 'icon');
159
+ (m.pages ?? []).forEach((page, p) => {
160
+ if (page.envelope !== undefined) {
161
+ if (!local)
162
+ onlyLocal(['pages', p, 'envelope'], 'envelope');
163
+ if (page.envelope.template !== page.template) {
164
+ out.push({ path: ['pages', p, 'envelope', 'template'], message: `the envelope's template is the page's own ("${page.template}")` });
165
+ }
166
+ if (page.config !== undefined) {
167
+ out.push({ path: ['pages', p, 'config'], message: 'a page with an envelope carries its config there, not beside it' });
168
+ }
169
+ }
170
+ if (page.views !== undefined && !local)
171
+ onlyLocal(['pages', p, 'views'], 'views');
172
+ });
173
+ const tables = m.requiredSchema?.tables ?? [];
174
+ out.push(...tableNameIssues(m, local, onlyLocal));
175
+ out.push(...columnRefIssues(m, local));
176
+ const excluded = new Set(tables.filter((table) => table.exclude === true).map((table) => table.ref));
177
+ (m.pages ?? []).forEach((page, p) => {
178
+ for (const [slot, ref] of Object.entries(page.bindings ?? {})) {
179
+ if (excluded.has(ref))
180
+ out.push({ path: ['pages', p, 'bindings', slot], message: `"${ref}" is left out of Adminium (exclude): no page is bound to it` });
181
+ }
182
+ });
183
+ const people = new Set((m.people ?? []).map((entry) => entry.table));
184
+ tables.forEach((table, t) => {
185
+ if (table.existingCustomers === true && !people.has(table.ref)) {
186
+ out.push({ path: ['requiredSchema', 'tables', t, 'existingCustomers'], message: `existing customers are a people table's: list "${table.ref}" in people` });
187
+ }
188
+ const off = table.switchedOff;
189
+ if (off === undefined)
190
+ return;
191
+ const own = new Set((table.postings ?? []).map((posting) => posting.id));
192
+ for (const id of off.postings ?? []) {
193
+ if (!own.has(id))
194
+ out.push({ path: ['requiredSchema', 'tables', t, 'switchedOff', 'postings'], message: `"${id}" is not a posting of "${table.ref}"` });
195
+ }
196
+ if (off.adjust === true && table.adjust === undefined) {
197
+ out.push({ path: ['requiredSchema', 'tables', t, 'switchedOff', 'adjust'], message: `"${table.ref}" has no price rule (adjust) to switch off` });
198
+ }
199
+ });
200
+ const campaigns = new Set((m.emailTemplates ?? []).filter((template) => template.kind === 'campaign').map((template) => template.key));
201
+ if (campaigns.size > 0) {
202
+ const sent = new Set();
203
+ for (const key of Object.values(m.outbox?.kinds ?? {}))
204
+ if (typeof key === 'string')
205
+ sent.add(key);
206
+ ruleTemplateKeys(m.automations, sent);
207
+ (m.emailTemplates ?? []).forEach((template, t) => {
208
+ if (campaigns.has(template.key) && sent.has(template.key)) {
209
+ out.push({ path: ['emailTemplates', t, 'kind'], message: `"${template.key}" is sent by the outbox or a rule, so it is a template, not a campaign` });
210
+ }
211
+ });
212
+ }
213
+ return out;
214
+ }
215
+ //# sourceMappingURL=saved-apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-apps.js","sourceRoot":"","sources":["../src/saved-apps.ts"],"names":[],"mappings":"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"}