@adminiumjs/manifest 0.3.48 → 0.3.50

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 (81) 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 +12 -5
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +12 -5
  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/roles.d.ts +1 -0
  48. package/dist/roles.d.ts.map +1 -1
  49. package/dist/roles.js +3 -0
  50. package/dist/roles.js.map +1 -1
  51. package/dist/saved-apps.d.ts +132 -0
  52. package/dist/saved-apps.d.ts.map +1 -0
  53. package/dist/saved-apps.js +215 -0
  54. package/dist/saved-apps.js.map +1 -0
  55. package/dist/saved-parts.d.ts +368 -0
  56. package/dist/saved-parts.d.ts.map +1 -0
  57. package/dist/saved-parts.js +232 -0
  58. package/dist/saved-parts.js.map +1 -0
  59. package/dist/schema.d.ts +1433 -50
  60. package/dist/schema.d.ts.map +1 -1
  61. package/dist/schema.js +131 -5
  62. package/dist/schema.js.map +1 -1
  63. package/dist/shapes.js +2 -1
  64. package/dist/shapes.js.map +1 -1
  65. package/dist/states.d.ts +49 -0
  66. package/dist/states.d.ts.map +1 -1
  67. package/dist/states.js +101 -0
  68. package/dist/states.js.map +1 -1
  69. package/dist/table-names.d.ts +82 -0
  70. package/dist/table-names.d.ts.map +1 -0
  71. package/dist/table-names.js +145 -0
  72. package/dist/table-names.js.map +1 -0
  73. package/dist/words.d.ts +1 -1
  74. package/dist/words.d.ts.map +1 -1
  75. package/dist/words.js +212 -0
  76. package/dist/words.js.map +1 -1
  77. package/dist/workspace-file.d.ts +115 -0
  78. package/dist/workspace-file.d.ts.map +1 -0
  79. package/dist/workspace-file.js +130 -0
  80. package/dist/workspace-file.js.map +1 -0
  81. package/package.json +2 -2
@@ -0,0 +1,66 @@
1
+ /**
2
+ * `apps.requires` — the other apps a self-made app needs on its database.
3
+ *
4
+ * ```json
5
+ * "apps": {
6
+ * "requires": [{ "publisher": "adminium", "key": "point-of-sale", "range": ">=1.2.0",
7
+ * "tables": ["orders", "order_lines"] }]
8
+ * }
9
+ * ```
10
+ *
11
+ * A dashboard saved with pages on a catalogue app's tables never carries that
12
+ * app: it names it here, and the install needs it already installed on the
13
+ * same database, by the same publisher, at a version in `range` (any version
14
+ * when there is none). Publisher AND key: a key alone is matched by any file
15
+ * that says it is `pos`, a self-made one among them.
16
+ *
17
+ * `tables` names the app's own `requiredSchema.tables` that are the required
18
+ * app's, by the same ref. The install makes none of them: it uses the
19
+ * required app's tables and records its use of them, so the required app's
20
+ * uninstall never drops a table this app still reads.
21
+ *
22
+ * A self-made app (`publisher: local`) is never a requirement: `local` says
23
+ * where a file was made, not which app it is, so it proves nothing.
24
+ *
25
+ * Only a self-made app carries the block; the published catalogue never does.
26
+ */
27
+ import { z } from 'zod';
28
+ /** The most apps one app may require. */
29
+ export declare const REQUIRED_APPS_MAX = 8;
30
+ export declare const requiredAppSchema: z.ZodObject<{
31
+ publisher: z.ZodString;
32
+ key: z.ZodString;
33
+ range: z.ZodOptional<z.ZodString>;
34
+ tables: z.ZodOptional<z.ZodArray<z.ZodString>>;
35
+ }, z.core.$strict>;
36
+ export type RequiredApp = z.infer<typeof requiredAppSchema>;
37
+ export declare const appsBlockSchema: z.ZodObject<{
38
+ requires: z.ZodArray<z.ZodObject<{
39
+ publisher: z.ZodString;
40
+ key: z.ZodString;
41
+ range: z.ZodOptional<z.ZodString>;
42
+ tables: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ }, z.core.$strict>>;
44
+ }, z.core.$strict>;
45
+ export type AppsBlock = z.infer<typeof appsBlockSchema>;
46
+ interface Issue {
47
+ path: (string | number)[];
48
+ message: string;
49
+ }
50
+ /** Everything wrong with an app's `apps` block that its shape alone cannot see. */
51
+ export declare function requiredAppIssues(m: {
52
+ key: string;
53
+ publisher: {
54
+ id: string;
55
+ };
56
+ apps?: AppsBlock | undefined;
57
+ requiredSchema?: {
58
+ tables: readonly {
59
+ ref: string;
60
+ }[];
61
+ } | undefined;
62
+ }): Issue[];
63
+ /** This app's tables that are another app's, by ref, with the app they belong to. */
64
+ export declare function requiredAppTables(apps: AppsBlock | undefined): Map<string, RequiredApp>;
65
+ export {};
66
+ //# sourceMappingURL=app-requires.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-requires.d.ts","sourceRoot":"","sources":["../src/app-requires.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAQnC,eAAO,MAAM,iBAAiB;;;;;kBAUnB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;kBAIjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE;QAAE,MAAM,EAAE,SAAS;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;CACrE,GAAG,KAAK,EAAE,CA4BV;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAIvF"}
@@ -0,0 +1,98 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ /**
3
+ * `apps.requires` — the other apps a self-made app needs on its database.
4
+ *
5
+ * ```json
6
+ * "apps": {
7
+ * "requires": [{ "publisher": "adminium", "key": "point-of-sale", "range": ">=1.2.0",
8
+ * "tables": ["orders", "order_lines"] }]
9
+ * }
10
+ * ```
11
+ *
12
+ * A dashboard saved with pages on a catalogue app's tables never carries that
13
+ * app: it names it here, and the install needs it already installed on the
14
+ * same database, by the same publisher, at a version in `range` (any version
15
+ * when there is none). Publisher AND key: a key alone is matched by any file
16
+ * that says it is `pos`, a self-made one among them.
17
+ *
18
+ * `tables` names the app's own `requiredSchema.tables` that are the required
19
+ * app's, by the same ref. The install makes none of them: it uses the
20
+ * required app's tables and records its use of them, so the required app's
21
+ * uninstall never drops a table this app still reads.
22
+ *
23
+ * A self-made app (`publisher: local`) is never a requirement: `local` says
24
+ * where a file was made, not which app it is, so it proves nothing.
25
+ *
26
+ * Only a self-made app carries the block; the published catalogue never does.
27
+ */
28
+ import { z } from 'zod';
29
+ import { refSchema } from './refs.js';
30
+ import { parseSemverRange } from './semver.js';
31
+ const LOCAL_PUBLISHER_ID = 'local';
32
+ /** The most apps one app may require. */
33
+ export const REQUIRED_APPS_MAX = 8;
34
+ const rangeSchema = z
35
+ .string()
36
+ .min(1)
37
+ .max(120)
38
+ .refine((range) => parseSemverRange(range) !== null, { message: 'a semver range such as ">=1.1.0" or "^1.1.0"' });
39
+ export const requiredAppSchema = z
40
+ .object({
41
+ /** The publisher's id, as the required app's own manifest gives it. */
42
+ publisher: z.string().regex(/^[a-z][a-z0-9-]{1,39}$/, 'a publisher id'),
43
+ key: z.string().regex(/^[a-z][a-z0-9-]{1,79}$/, 'an app key'),
44
+ /** The versions that will do: any, when absent. */
45
+ range: rangeSchema.optional(),
46
+ /** This app's tables that are the required app's own, by the same ref. */
47
+ tables: z.array(refSchema).min(1).max(64).optional(),
48
+ })
49
+ .strict();
50
+ export const appsBlockSchema = z
51
+ .object({
52
+ requires: z.array(requiredAppSchema).min(1).max(REQUIRED_APPS_MAX),
53
+ })
54
+ .strict();
55
+ /** Everything wrong with an app's `apps` block that its shape alone cannot see. */
56
+ export function requiredAppIssues(m) {
57
+ const out = [];
58
+ if (m.apps === undefined)
59
+ return out;
60
+ if (m.publisher.id !== LOCAL_PUBLISHER_ID) {
61
+ out.push({ path: ['apps'], message: `"apps" is carried only by a self-made app (publisher "${LOCAL_PUBLISHER_ID}")` });
62
+ }
63
+ const own = new Set((m.requiredSchema?.tables ?? []).map((table) => table.ref));
64
+ const keys = new Set();
65
+ const named = new Map();
66
+ m.apps.requires.forEach((need, n) => {
67
+ const at = ['apps', 'requires', n];
68
+ if (need.key === m.key)
69
+ out.push({ path: [...at, 'key'], message: 'an app does not require itself' });
70
+ if (keys.has(need.key))
71
+ out.push({ path: [...at, 'key'], message: `"${need.key}" is required twice` });
72
+ keys.add(need.key);
73
+ if (need.publisher === LOCAL_PUBLISHER_ID) {
74
+ out.push({
75
+ path: [...at, 'publisher'],
76
+ message: `a self-made app cannot be required: "${LOCAL_PUBLISHER_ID}" says where a file was made, not which app it is`,
77
+ });
78
+ }
79
+ (need.tables ?? []).forEach((ref, t) => {
80
+ if (!own.has(ref))
81
+ out.push({ path: [...at, 'tables', t], message: `"${ref}" is not one of the app's tables (requiredSchema.tables)` });
82
+ const earlier = named.get(ref);
83
+ if (earlier !== undefined)
84
+ out.push({ path: [...at, 'tables', t], message: `"${ref}" is already "${earlier}"'s table` });
85
+ named.set(ref, need.key);
86
+ });
87
+ });
88
+ return out;
89
+ }
90
+ /** This app's tables that are another app's, by ref, with the app they belong to. */
91
+ export function requiredAppTables(apps) {
92
+ const out = new Map();
93
+ for (const need of apps?.requires ?? [])
94
+ for (const ref of need.tables ?? [])
95
+ out.set(ref, need);
96
+ return out;
97
+ }
98
+ //# sourceMappingURL=app-requires.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-requires.js","sourceRoot":"","sources":["../src/app-requires.ts"],"names":[],"mappings":"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"}