@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
@@ -0,0 +1,322 @@
1
+ /**
2
+ * THE PRICE QUESTION.
3
+ *
4
+ * An order's price may be lowered by an add-on that keeps offers, discount
5
+ * codes and vouchers. The host says where the question is asked and where
6
+ * the answer goes — `adjust`, on the order's table: which rows are its lines,
7
+ * which columns hold a line's price, quantity and discount, who the customer
8
+ * is, which codes were typed. The add-on says what it reads to answer —
9
+ * `addOn.adjuster`: its offers, its codes, the rows it keeps of what was
10
+ * applied.
11
+ *
12
+ * Adminium asks, checks the answer and writes it: every discount column is
13
+ * Adminium's own, and no browser ever sets one.
14
+ *
15
+ * This file holds the words and what one manifest can check of them. Pure,
16
+ * and nothing imported from the manifest's own schema file.
17
+ */
18
+ import { z } from 'zod';
19
+ import { type Posting } from './ledgers.js';
20
+ import { type ReferenceIssue } from './refs.js';
21
+ /** The most line parts one price rule reads. */
22
+ export declare const ADJUST_PARTS_MAX = 3;
23
+ export declare const adjustPartSchema: z.ZodUnion<readonly [z.ZodObject<{
24
+ table: z.ZodString;
25
+ via: z.ZodString;
26
+ price: z.ZodString;
27
+ quantity: z.ZodOptional<z.ZodString>;
28
+ discount: z.ZodString;
29
+ what: z.ZodArray<z.ZodObject<{
30
+ column: z.ZodString;
31
+ as: z.ZodEnum<{
32
+ type: "type";
33
+ item: "item";
34
+ category: "category";
35
+ tag: "tag";
36
+ }>;
37
+ }, z.core.$strict>>;
38
+ excludes: z.ZodOptional<z.ZodObject<{
39
+ column: z.ZodString;
40
+ set: z.ZodLiteral<true>;
41
+ }, z.core.$strict>>;
42
+ paidBy: z.ZodOptional<z.ZodObject<{
43
+ column: z.ZodString;
44
+ }, z.core.$strict>>;
45
+ only: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
46
+ column: z.ZodString;
47
+ eq: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
48
+ }, z.core.$strict>, z.ZodObject<{
49
+ column: z.ZodString;
50
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
51
+ }, z.core.$strict>]>>;
52
+ unlessSet: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>, z.ZodObject<{
54
+ self: z.ZodLiteral<true>;
55
+ price: z.ZodString;
56
+ quantity: z.ZodOptional<z.ZodString>;
57
+ discount: z.ZodString;
58
+ what: z.ZodArray<z.ZodObject<{
59
+ column: z.ZodString;
60
+ as: z.ZodEnum<{
61
+ type: "type";
62
+ item: "item";
63
+ category: "category";
64
+ tag: "tag";
65
+ }>;
66
+ }, z.core.$strict>>;
67
+ nights: z.ZodOptional<z.ZodObject<{
68
+ from: z.ZodString;
69
+ to: z.ZodString;
70
+ rate: z.ZodString;
71
+ }, z.core.$strict>>;
72
+ }, z.core.$strict>]>;
73
+ export type AdjustPart = z.infer<typeof adjustPartSchema>;
74
+ export declare const adjustSchema: z.ZodObject<{
75
+ by: z.ZodObject<{
76
+ addOn: z.ZodString;
77
+ }, z.core.$strict>;
78
+ needs: z.ZodOptional<z.ZodString>;
79
+ lines: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
80
+ table: z.ZodString;
81
+ via: z.ZodString;
82
+ price: z.ZodString;
83
+ quantity: z.ZodOptional<z.ZodString>;
84
+ discount: z.ZodString;
85
+ what: z.ZodArray<z.ZodObject<{
86
+ column: z.ZodString;
87
+ as: z.ZodEnum<{
88
+ type: "type";
89
+ item: "item";
90
+ category: "category";
91
+ tag: "tag";
92
+ }>;
93
+ }, z.core.$strict>>;
94
+ excludes: z.ZodOptional<z.ZodObject<{
95
+ column: z.ZodString;
96
+ set: z.ZodLiteral<true>;
97
+ }, z.core.$strict>>;
98
+ paidBy: z.ZodOptional<z.ZodObject<{
99
+ column: z.ZodString;
100
+ }, z.core.$strict>>;
101
+ only: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
102
+ column: z.ZodString;
103
+ eq: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
104
+ }, z.core.$strict>, z.ZodObject<{
105
+ column: z.ZodString;
106
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
107
+ }, z.core.$strict>]>>;
108
+ unlessSet: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ self: z.ZodLiteral<true>;
111
+ price: z.ZodString;
112
+ quantity: z.ZodOptional<z.ZodString>;
113
+ discount: z.ZodString;
114
+ what: z.ZodArray<z.ZodObject<{
115
+ column: z.ZodString;
116
+ as: z.ZodEnum<{
117
+ type: "type";
118
+ item: "item";
119
+ category: "category";
120
+ tag: "tag";
121
+ }>;
122
+ }, z.core.$strict>>;
123
+ nights: z.ZodOptional<z.ZodObject<{
124
+ from: z.ZodString;
125
+ to: z.ZodString;
126
+ rate: z.ZodString;
127
+ }, z.core.$strict>>;
128
+ }, z.core.$strict>]>>;
129
+ order: z.ZodObject<{
130
+ discount: z.ZodString;
131
+ customer: z.ZodOptional<z.ZodObject<{
132
+ link: z.ZodString;
133
+ address: z.ZodString;
134
+ proved: z.ZodString;
135
+ counts: z.ZodOptional<z.ZodObject<{
136
+ column: z.ZodString;
137
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
138
+ }, z.core.$strict>>;
139
+ }, z.core.$strict>>;
140
+ staff: z.ZodOptional<z.ZodObject<{
141
+ kind: z.ZodString;
142
+ value: z.ZodString;
143
+ reason: z.ZodString;
144
+ by: z.ZodString;
145
+ }, z.core.$strict>>;
146
+ currency: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
147
+ row: z.ZodLiteral<true>;
148
+ }, z.core.$strict>, z.ZodObject<{
149
+ parent: z.ZodString;
150
+ }, z.core.$strict>, z.ZodObject<{
151
+ setting: z.ZodString;
152
+ }, z.core.$strict>, z.ZodObject<{
153
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
154
+ }, z.core.$strict>]>>;
155
+ }, z.core.$strict>;
156
+ codes: z.ZodOptional<z.ZodObject<{
157
+ table: z.ZodString;
158
+ via: z.ZodString;
159
+ typed: z.ZodString;
160
+ code: z.ZodString;
161
+ voucher: z.ZodString;
162
+ removed: z.ZodOptional<z.ZodString>;
163
+ }, z.core.$strict>>;
164
+ uses: z.ZodOptional<z.ZodString>;
165
+ frozen: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
166
+ to: z.ZodArray<z.ZodString>;
167
+ }, z.core.$strict>, z.ZodObject<{
168
+ column: z.ZodString;
169
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
170
+ }, z.core.$strict>, z.ZodObject<{
171
+ column: z.ZodString;
172
+ set: z.ZodLiteral<true>;
173
+ }, z.core.$strict>]>>;
174
+ expect: z.ZodOptional<z.ZodString>;
175
+ refunds: z.ZodOptional<z.ZodObject<{
176
+ table: z.ZodString;
177
+ via: z.ZodString;
178
+ amount: z.ZodString;
179
+ tax: z.ZodOptional<z.ZodString>;
180
+ of: z.ZodString;
181
+ taxOf: z.ZodOptional<z.ZodString>;
182
+ against: z.ZodOptional<z.ZodString>;
183
+ lines: z.ZodOptional<z.ZodObject<{
184
+ table: z.ZodString;
185
+ via: z.ZodString;
186
+ line: z.ZodString;
187
+ quantity: z.ZodString;
188
+ }, z.core.$strict>>;
189
+ }, z.core.$strict>>;
190
+ }, z.core.$strict>;
191
+ export type Adjust = z.infer<typeof adjustSchema>;
192
+ /** A read of the adjuster's own tables: a ledger read, whose keys may also be the moment (`now`) or the typed codes (`input.codes`). */
193
+ export declare const adjusterReadSchema: z.ZodObject<{
194
+ table: z.ZodString;
195
+ as: z.ZodString;
196
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
197
+ column: z.ZodString;
198
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
199
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
200
+ }, z.core.$strict>>>;
201
+ limit: z.ZodOptional<z.ZodNumber>;
202
+ by: z.ZodArray<z.ZodObject<{
203
+ column: z.ZodString;
204
+ from: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"now">, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"now">]>>]>;
205
+ }, z.core.$strict>>;
206
+ }, z.core.$strict>;
207
+ export declare const adjusterSchema: z.ZodObject<{
208
+ offers: z.ZodArray<z.ZodObject<{
209
+ table: z.ZodString;
210
+ as: z.ZodString;
211
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
212
+ column: z.ZodString;
213
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
214
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
215
+ }, z.core.$strict>>>;
216
+ limit: z.ZodOptional<z.ZodNumber>;
217
+ by: z.ZodArray<z.ZodObject<{
218
+ column: z.ZodString;
219
+ from: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"now">, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"now">]>>]>;
220
+ }, z.core.$strict>>;
221
+ }, z.core.$strict>>;
222
+ codes: z.ZodObject<{
223
+ table: z.ZodString;
224
+ column: z.ZodString;
225
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
226
+ column: z.ZodString;
227
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
228
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
229
+ }, z.core.$strict>>>;
230
+ reserved: z.ZodOptional<z.ZodArray<z.ZodString>>;
231
+ }, z.core.$strict>;
232
+ vouchers: z.ZodObject<{
233
+ table: z.ZodString;
234
+ column: z.ZodString;
235
+ prefixes: z.ZodArray<z.ZodString>;
236
+ }, z.core.$strict>;
237
+ applied: z.ZodObject<{
238
+ table: z.ZodString;
239
+ source: z.ZodObject<{
240
+ table: z.ZodString;
241
+ row: z.ZodString;
242
+ line: z.ZodString;
243
+ }, z.core.$strict>;
244
+ columns: z.ZodObject<{
245
+ offer: z.ZodString;
246
+ code: z.ZodString;
247
+ voucher: z.ZodString;
248
+ name: z.ZodString;
249
+ kind: z.ZodString;
250
+ amount: z.ZodString;
251
+ reason: z.ZodString;
252
+ typed: z.ZodString;
253
+ at: z.ZodString;
254
+ }, z.core.$strict>;
255
+ }, z.core.$strict>;
256
+ person: z.ZodOptional<z.ZodObject<{
257
+ groups: z.ZodObject<{
258
+ table: z.ZodString;
259
+ member: z.ZodString;
260
+ group: z.ZodString;
261
+ }, z.core.$strict>;
262
+ uses: z.ZodObject<{
263
+ table: z.ZodString;
264
+ customer: z.ZodString;
265
+ offer: z.ZodString;
266
+ state: z.ZodString;
267
+ counted: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
268
+ }, z.core.$strict>;
269
+ orders: z.ZodOptional<z.ZodLiteral<true>>;
270
+ }, z.core.$strict>>;
271
+ ceilings: z.ZodOptional<z.ZodObject<{
272
+ table: z.ZodString;
273
+ role: z.ZodString;
274
+ maxPercent: z.ZodString;
275
+ maxAmount: z.ZodString;
276
+ comp: z.ZodOptional<z.ZodString>;
277
+ }, z.core.$strict>>;
278
+ customerKey: z.ZodLiteral<"hash">;
279
+ }, z.core.$strict>;
280
+ export type Adjuster = z.infer<typeof adjusterSchema>;
281
+ /** What the checks read of a table. */
282
+ export interface AdjustTableShape {
283
+ ref: string;
284
+ columns: readonly {
285
+ ref: string;
286
+ type: string;
287
+ role?: string | undefined;
288
+ nullable?: boolean | undefined;
289
+ enum?: readonly string[] | undefined;
290
+ references?: string | undefined;
291
+ maxLength?: number | undefined;
292
+ scale?: number | 'currency' | undefined;
293
+ default?: unknown;
294
+ rules?: Readonly<Record<string, unknown>> | undefined;
295
+ }[];
296
+ states?: unknown;
297
+ capacity?: unknown;
298
+ postings?: readonly Posting[] | undefined;
299
+ adjust?: Adjust | undefined;
300
+ }
301
+ /**
302
+ * The columns a price rule makes Adminium's own, by table: the order's
303
+ * discount, who gave a staff reduction, whether the customer was proved;
304
+ * each line's discount; the links a typed code fills; a refund's amount and
305
+ * tax.
306
+ */
307
+ export declare function adjustDecidedColumns(table: string, adjust: Adjust): Map<string, string[]>;
308
+ /** Everything wrong with a table's price rule that this manifest can see. */
309
+ export declare function adjustIssues(table: AdjustTableShape, adjust: Adjust, ctx: {
310
+ key: string;
311
+ kind: 'app' | 'add-on';
312
+ tables: ReadonlyMap<string, AdjustTableShape>;
313
+ named: ReadonlySet<string>;
314
+ features: ReadonlyMap<string, readonly string[]>;
315
+ /** The columns of a table a formula column reads, by column. */
316
+ formulaReads: (table: string, column: string) => readonly string[] | null;
317
+ /** The public entries' writable columns, by table. */
318
+ publicWritable: (table: string) => ReadonlySet<string>;
319
+ }, at: (...rest: (string | number)[]) => (string | number)[]): ReferenceIssue[];
320
+ /** Everything wrong with an add-on's `adjuster` that its own manifest can see. */
321
+ export declare function adjusterIssues(adjuster: Adjuster, tables: ReadonlyMap<string, AdjustTableShape>): ReferenceIssue[];
322
+ //# sourceMappingURL=adjust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust.d.ts","sourceRoot":"","sources":["../src/adjust.ts"],"names":[],"mappings":"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"}