@adminiumjs/manifest 0.2.9 → 0.3.0-rc.1

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.
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @adminium/manifest — Micro-SaaS manifest spec v1 (13-marketplace.md §2).
2
+ * @adminium/manifest — Micro-SaaS manifest spec v1.
3
3
  *
4
4
  * The frozen envelope schema + validator (browser-safe, pure Zod), and the
5
5
  * install planner (`requiredSchema` → create-or-map diff, `plan.ts`) that both
6
- * install paths run: add-ons since 26-T01, apps since 47-app-installation.md
7
- * step 2. The DDL that applies a plan lives server-side in
8
- * `apps/server/src/add-ons/install-ddl.ts`; nothing in this package does I/O.
6
+ * install paths run: add-ons since, apps since. The DDL that applies a plan
7
+ * lives server-side in `apps/server/src/add-ons/install-ddl.ts`; nothing in
8
+ * this package does I/O.
9
9
  */
10
10
  export declare const PACKAGE_NAME = "@adminium/manifest";
11
11
  export { MANIFEST_VERSION, MANIFEST_KINDS, MANIFEST_CATEGORIES, MANIFEST_CAPABILITIES, RESERVED_KEYS, COLUMN_TYPES, COLUMN_SEMANTICS, COLUMN_ROLES, FRONTEND_KINDS, FIRST_PARTY_PUBLISHER_ID, manifestSchema, appManifestSchema, addOnManifestSchema, manifestKindSchema, addOnIssues, isAddOnManifest, identitySchema, compatibilitySchema, requiredSchemaSchema, requiredTableSchema, requiredColumnSchema, pageSchema, roleSchema, settingSchema, seedSchema, frontendSchema, capabilitySchema, categorySchema, publisherSchema, i18nMessageSchema, compareSemver, type Manifest, type AppManifest, type AddOnManifest, type ManifestKind, type AddOnBlock, type Capability, type Publisher, type I18nMessage, type RequiredTable, type RequiredColumn, } from './schema.js';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  /**
3
- * @adminium/manifest — Micro-SaaS manifest spec v1 (13-marketplace.md §2).
3
+ * @adminium/manifest — Micro-SaaS manifest spec v1.
4
4
  *
5
5
  * The frozen envelope schema + validator (browser-safe, pure Zod), and the
6
6
  * install planner (`requiredSchema` → create-or-map diff, `plan.ts`) that both
7
- * install paths run: add-ons since 26-T01, apps since 47-app-installation.md
8
- * step 2. The DDL that applies a plan lives server-side in
9
- * `apps/server/src/add-ons/install-ddl.ts`; nothing in this package does I/O.
7
+ * install paths run: add-ons since, apps since. The DDL that applies a plan
8
+ * lives server-side in `apps/server/src/add-ons/install-ddl.ts`; nothing in
9
+ * this package does I/O.
10
10
  */
11
11
  export const PACKAGE_NAME = '@adminium/manifest';
12
12
  export { MANIFEST_VERSION, MANIFEST_KINDS, MANIFEST_CATEGORIES, MANIFEST_CAPABILITIES, RESERVED_KEYS, COLUMN_TYPES, COLUMN_SEMANTICS, COLUMN_ROLES, FRONTEND_KINDS, FIRST_PARTY_PUBLISHER_ID, manifestSchema, appManifestSchema, addOnManifestSchema, manifestKindSchema, addOnIssues, isAddOnManifest, identitySchema, compatibilitySchema, requiredSchemaSchema, requiredTableSchema, requiredColumnSchema, pageSchema, roleSchema, settingSchema, seedSchema, frontendSchema, capabilitySchema, categorySchema, publisherSchema, i18nMessageSchema, compareSemver, } from './schema.js';
package/dist/plan.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * `planInstall` — what installing an add-on would DO to a connected database,
3
- * decided before anything is done (26-add-on-runtime.md §3, D1, 26-T01).
3
+ * decided before anything is done.
4
4
  *
5
5
  * ─── The plan is a user-facing document, not an internal step ───────────────
6
6
  *
7
- * §7's consent dialog is "the security surface, not decoration: it is where a
7
+ * The consent dialog is "the security surface, not decoration: it is where a
8
8
  * user sees what an add-on may reach before it can reach it". The thing it
9
9
  * shows is this plan. So the output is shaped to be READ — every table says
10
10
  * whether it will be created or reused, every reused table says which of its
@@ -14,13 +14,13 @@
14
14
  * That is also why nothing here writes: a plan that could not be computed
15
15
  * without side effects could not be shown before consent.
16
16
  *
17
- * ─── One field, both kinds (47-app-installation.md O2) ─────────────────────
17
+ * ─── One field, both kinds ─────────────────────────────────────────────────
18
18
  *
19
19
  * This planner reads exactly ONE field of a manifest — `requiredSchema` — and
20
20
  * that field is on the shared envelope, so an app's tables diff the same way an
21
21
  * add-on's do. Installing an APP now runs through here too; what stays outside
22
22
  * it is the rest of the app envelope (`pages`, `roles`, `settings`, `seeds`),
23
- * which 13-T03/T04 still own and which no install path creates yet.
23
+ * which still own and which no install path creates yet.
24
24
  *
25
25
  * Three of the six shipped add-ons declare `requiredSchema`; `import-canva`,
26
26
  * `barcode-labels` and `holiday-calendars` declare none and plan to nothing,
package/dist/plan.js CHANGED
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  /**
3
3
  * `planInstall` — what installing an add-on would DO to a connected database,
4
- * decided before anything is done (26-add-on-runtime.md §3, D1, 26-T01).
4
+ * decided before anything is done.
5
5
  *
6
6
  * ─── The plan is a user-facing document, not an internal step ───────────────
7
7
  *
8
- * §7's consent dialog is "the security surface, not decoration: it is where a
8
+ * The consent dialog is "the security surface, not decoration: it is where a
9
9
  * user sees what an add-on may reach before it can reach it". The thing it
10
10
  * shows is this plan. So the output is shaped to be READ — every table says
11
11
  * whether it will be created or reused, every reused table says which of its
@@ -15,13 +15,13 @@
15
15
  * That is also why nothing here writes: a plan that could not be computed
16
16
  * without side effects could not be shown before consent.
17
17
  *
18
- * ─── One field, both kinds (47-app-installation.md O2) ─────────────────────
18
+ * ─── One field, both kinds ─────────────────────────────────────────────────
19
19
  *
20
20
  * This planner reads exactly ONE field of a manifest — `requiredSchema` — and
21
21
  * that field is on the shared envelope, so an app's tables diff the same way an
22
22
  * add-on's do. Installing an APP now runs through here too; what stays outside
23
23
  * it is the rest of the app envelope (`pages`, `roles`, `settings`, `seeds`),
24
- * which 13-T03/T04 still own and which no install path creates yet.
24
+ * which still own and which no install path creates yet.
25
25
  *
26
26
  * Three of the six shipped add-ons declare `requiredSchema`; `import-canva`,
27
27
  * `barcode-labels` and `holiday-calendars` declare none and plan to nothing,
package/dist/schema.d.ts CHANGED
@@ -1,23 +1,23 @@
1
1
  /**
2
- * Manifest spec v1 (13-marketplace.md §2), frozen at `manifestVersion: 1` for
3
- * all of Adminium 1.x. Pure Zod v4 + types — no `node:` imports — so the
4
- * storefront and the Electron shell can validate a manifest in the browser
5
- * (01-architecture.md §3, the `@adminium/manifest` package row).
2
+ * Manifest spec v1, frozen at `manifestVersion: 1` for all of Adminium 1.x.
3
+ * Pure Zod v4 + types — no `node:` imports — so the storefront and the
4
+ * Electron shell can validate a manifest in the browser (the
5
+ * `@adminium/manifest` package row).
6
6
  *
7
7
  * This module is the envelope: every block's shape and the cross-block rules.
8
8
  * The install PLANNER (planInstall / requiredSchema → create-or-map diff) and
9
9
  * the server-side installer are later layers that consume a validated manifest.
10
10
  */
11
- import { type AddOnBlock } from '@adminium/add-on-contracts';
11
+ import { i18nMessageSchema, type AddOnBlock, type I18nMessage } from '@adminium/add-on-contracts';
12
12
  import { z } from 'zod';
13
- /** Integer spec version, frozen at 1 for Adminium 1.x (§2, 01 §8). */
13
+ /** Integer spec version, frozen at 1 for Adminium 1.x. */
14
14
  export declare const MANIFEST_VERSION = 1;
15
15
  /**
16
- * What kind of thing this manifest describes (24 §5.2). OPTIONAL, defaulting to
17
- * `"app"` — which is the whole reason `manifestVersion` does not move: every
18
- * manifest written before wave 4 stays valid unchanged, and an additive
19
- * optional field with a back-compatible default is how a frozen spec grows
20
- * without lying about its version.
16
+ * What kind of thing this manifest describes. OPTIONAL, defaulting to `"app"` —
17
+ * which is the whole reason `manifestVersion` does not move: every manifest
18
+ * written before wave 4 stays valid unchanged, and an additive optional field
19
+ * with a back-compatible default is how a frozen spec grows without lying about
20
+ * its version.
21
21
  */
22
22
  export declare const MANIFEST_KINDS: readonly ["app", "add-on"];
23
23
  export declare const manifestKindSchema: z.ZodEnum<{
@@ -25,13 +25,17 @@ export declare const manifestKindSchema: z.ZodEnum<{
25
25
  "add-on": "add-on";
26
26
  }>;
27
27
  export type ManifestKind = (typeof MANIFEST_KINDS)[number];
28
- /** An i18n message: a catalog key plus the English fallback rendered if absent. */
29
- export declare const i18nMessageSchema: z.ZodObject<{
30
- key: z.ZodString;
31
- fallback: z.ZodString;
32
- }, z.core.$strict>;
33
- export type I18nMessage = z.infer<typeof i18nMessageSchema>;
34
- /** Closed v1 storefront facet set (§2.3). */
28
+ /**
29
+ * An i18n message: a catalog key plus the English fallback rendered if absent.
30
+ *
31
+ * DEFINED IN `@adminium/add-on-contracts` since 51a and re-exported here under
32
+ * its own name, so every importer of `@adminium/manifest` is unchanged. It
33
+ * moved because an add-on's page title and nav-group label are written in a
34
+ * manifest and read by a host through the contracts package — one shape, one
35
+ * definition, rather than two that drift a `max()` apart.
36
+ */
37
+ export { i18nMessageSchema, type I18nMessage };
38
+ /** Closed v1 storefront facet set. */
35
39
  export declare const MANIFEST_CATEGORIES: readonly ["commerce", "hospitality", "operations", "crm", "internal-tools"];
36
40
  export declare const categorySchema: z.ZodEnum<{
37
41
  commerce: "commerce";
@@ -40,7 +44,7 @@ export declare const categorySchema: z.ZodEnum<{
40
44
  crm: "crm";
41
45
  "internal-tools": "internal-tools";
42
46
  }>;
43
- /** The one publisher id v1 accepts unless `third-party-publishers` is on (§2.3/§9). */
47
+ /** The one publisher id v1 accepts unless `third-party-publishers` is on. */
44
48
  export declare const FIRST_PARTY_PUBLISHER_ID = "adminium";
45
49
  export declare const publisherSchema: z.ZodObject<{
46
50
  id: z.ZodString;
@@ -93,13 +97,12 @@ export declare const identitySchema: z.ZodObject<{
93
97
  * Keys no app or add-on may ever take, because they would shadow a storefront
94
98
  * route or a data file (D17). Apps and add-ons share one key namespace.
95
99
  *
96
- * `dashboard` joined them for a different reason (34 O10/D23): it is the HOST
97
- * KEY a stock Adminium deployment attaches an add-on under, so an add-on
98
- * `attaches: [{app: '*'}]` resolves against it and the consent dialog has
99
- * something to enable and disable. Treating an empty `attachTo` as "the
100
- * dashboard" was the alternative and leaves nothing to switch off. Reserving
101
- * the literal means no app can also be called `dashboard` and make an
102
- * attachment ambiguous.
100
+ * `dashboard` joined them for a different reason: it is the HOST KEY a stock
101
+ * Adminium deployment attaches an add-on under, so an add-on `attaches:
102
+ * [{app: '*'}]` resolves against it and the consent dialog has something to
103
+ * enable and disable. Treating an empty `attachTo` as "the dashboard" was the
104
+ * alternative and leaves nothing to switch off. Reserving the literal means
105
+ * no app can also be called `dashboard` and make an attachment ambiguous.
103
106
  */
104
107
  export declare const RESERVED_KEYS: readonly ["apps", "add-on", "add-ons", "dashboard", "demo", "index", "search"];
105
108
  export declare const MANIFEST_CAPABILITIES: readonly ["hosted-only", "offline-required", "receipt-printer", "barcode-scanner", "payments", "file-storage", "email-delivery", "realtime", "outbound-http", "oauth-connect"];
@@ -116,7 +119,7 @@ export declare const capabilitySchema: z.ZodEnum<{
116
119
  "oauth-connect": "oauth-connect";
117
120
  }>;
118
121
  export type Capability = z.infer<typeof capabilitySchema>;
119
- /** The three meta/data engines Adminium can talk to (01-architecture.md §2.3). */
122
+ /** The three meta/data engines Adminium can talk to. */
120
123
  export declare const MANIFEST_ENGINES: readonly ["postgres", "mysql", "sqlite"];
121
124
  export declare const compatibilitySchema: z.ZodObject<{
122
125
  minAdminiumVersion: z.ZodString;
@@ -139,11 +142,11 @@ export declare const compatibilitySchema: z.ZodObject<{
139
142
  "oauth-connect": "oauth-connect";
140
143
  }>>>;
141
144
  }, z.core.$strict>;
142
- /** Abstract column types the introspection engine emits (§2.5, research §15.2). */
145
+ /** Abstract column types the introspection engine emits (research). */
143
146
  export declare const COLUMN_TYPES: readonly ["id", "text", "int", "bigint", "decimal", "money", "float", "bool", "enum", "json", "date", "timestamptz", "uuid", "fk", "blob"];
144
- /** Optional semantic pre-seed so widgets auto-instantiate (§2.5). */
147
+ /** Optional semantic pre-seed so widgets auto-instantiate. */
145
148
  export declare const COLUMN_SEMANTICS: readonly ["name", "money", "image", "email", "avatar", "geo-lat", "geo-lng"];
146
- /** Structural role markers (§2.5). */
149
+ /** Structural role markers. */
147
150
  export declare const COLUMN_ROLES: readonly ["pk", "created_at", "updated_at"];
148
151
  export declare const requiredColumnSchema: z.ZodObject<{
149
152
  ref: z.ZodString;
@@ -394,7 +397,7 @@ export declare const frontendEnvVarSchema: z.ZodObject<{
394
397
  example: z.ZodOptional<z.ZodString>;
395
398
  }, z.core.$strict>;
396
399
  /**
397
- * Which of the three sides a frontend is (28-public-surface.md §4).
400
+ * Which of the three sides a frontend is.
398
401
  *
399
402
  * The product rule this exists to make CHECKABLE: a micro-SaaS is the Adminium
400
403
  * dashboard (mandatory, and never declared here — it comes from introspection)
@@ -655,9 +658,20 @@ export declare const appManifestSchema: z.ZodObject<{
655
658
  manifestVersion: z.ZodLiteral<1>;
656
659
  }, z.core.$strict>;
657
660
  /**
658
- * `pages` and `frontend` are absent from this branch on purpose (24 §5.7 item
659
- * 6): an add-on cannot install pages, roles or a frontend, and leaving the
660
- * fields off the schema entirely is a stronger guarantee than a lint rule.
661
+ * `pages`, `roles` and `frontends` are absent from this branch on purpose, and
662
+ * leaving the fields off a `.strict()` schema entirely is a stronger guarantee
663
+ * than a lint rule.
664
+ *
665
+ * WHAT CHANGED, AND WHAT DID NOT. An add-on may now own a dashboard page — but
666
+ * it declares that page as CODE, inside `addOn.pages`, never as a `pages` entry
667
+ * up here. The two are
668
+ * different things wearing one word: a `pages` row is a generated page, a
669
+ * `template` the engine renders with `bindings` and `config`, and an add-on
670
+ * still cannot install one. Roles and frontends remain refused outright.
671
+ *
672
+ * So the absence of `pages` from this object is no longer "an add-on has no
673
+ * pages". It is "an add-on's pages are not the engine's page templates", which
674
+ * is a narrower promise and the one this shape actually keeps.
661
675
  */
662
676
  export declare const addOnManifestSchema: z.ZodObject<{
663
677
  categories: z.ZodArray<z.ZodEnum<{
@@ -752,6 +766,30 @@ export declare const addOnManifestSchema: z.ZodObject<{
752
766
  }, z.core.$strict>>;
753
767
  publicSettings: z.ZodOptional<z.ZodArray<z.ZodString>>;
754
768
  demoTransport: z.ZodOptional<z.ZodString>;
769
+ pages: z.ZodOptional<z.ZodArray<z.ZodObject<{
770
+ ref: z.ZodString;
771
+ title: z.ZodObject<{
772
+ key: z.ZodString;
773
+ fallback: z.ZodString;
774
+ }, z.core.$strict>;
775
+ icon: z.ZodString;
776
+ client: z.ZodString;
777
+ nav: z.ZodOptional<z.ZodObject<{
778
+ group: z.ZodDefault<z.ZodString>;
779
+ order: z.ZodNumber;
780
+ adminOnly: z.ZodOptional<z.ZodBoolean>;
781
+ }, z.core.$strict>>;
782
+ detail: z.ZodOptional<z.ZodBoolean>;
783
+ }, z.core.$strict>>>;
784
+ navGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
785
+ key: z.ZodString;
786
+ label: z.ZodObject<{
787
+ key: z.ZodString;
788
+ fallback: z.ZodString;
789
+ }, z.core.$strict>;
790
+ order: z.ZodNumber;
791
+ }, z.core.$strict>>>;
792
+ hostApi: z.ZodOptional<z.ZodLiteral<1>>;
755
793
  }, z.core.$strict>;
756
794
  requiredSchema: z.ZodOptional<z.ZodObject<{
757
795
  tables: z.ZodArray<z.ZodObject<{
@@ -1247,6 +1285,30 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1247
1285
  }, z.core.$strict>>;
1248
1286
  publicSettings: z.ZodOptional<z.ZodArray<z.ZodString>>;
1249
1287
  demoTransport: z.ZodOptional<z.ZodString>;
1288
+ pages: z.ZodOptional<z.ZodArray<z.ZodObject<{
1289
+ ref: z.ZodString;
1290
+ title: z.ZodObject<{
1291
+ key: z.ZodString;
1292
+ fallback: z.ZodString;
1293
+ }, z.core.$strict>;
1294
+ icon: z.ZodString;
1295
+ client: z.ZodString;
1296
+ nav: z.ZodOptional<z.ZodObject<{
1297
+ group: z.ZodDefault<z.ZodString>;
1298
+ order: z.ZodNumber;
1299
+ adminOnly: z.ZodOptional<z.ZodBoolean>;
1300
+ }, z.core.$strict>>;
1301
+ detail: z.ZodOptional<z.ZodBoolean>;
1302
+ }, z.core.$strict>>>;
1303
+ navGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
1304
+ key: z.ZodString;
1305
+ label: z.ZodObject<{
1306
+ key: z.ZodString;
1307
+ fallback: z.ZodString;
1308
+ }, z.core.$strict>;
1309
+ order: z.ZodNumber;
1310
+ }, z.core.$strict>>>;
1311
+ hostApi: z.ZodOptional<z.ZodLiteral<1>>;
1250
1312
  }, z.core.$strict>;
1251
1313
  requiredSchema: z.ZodOptional<z.ZodObject<{
1252
1314
  tables: z.ZodArray<z.ZodObject<{
@@ -1413,7 +1475,7 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1413
1475
  }, z.core.$strict>], "kind">>;
1414
1476
  export type AppManifest = z.infer<typeof appManifestSchema>;
1415
1477
  export type AddOnManifest = z.infer<typeof addOnManifestSchema>;
1416
- /** One table an add-on declares under `requiredSchema` (26 §3). */
1478
+ /** One table an add-on declares under `requiredSchema`. */
1417
1479
  export type RequiredTable = z.infer<typeof requiredTableSchema>;
1418
1480
  /** One column of a {@link RequiredTable}. */
1419
1481
  export type RequiredColumn = z.infer<typeof requiredColumnSchema>;
@@ -1422,8 +1484,8 @@ export type { AddOnBlock };
1422
1484
  /** Narrowing helper — the discriminant is the only thing worth branching on. */
1423
1485
  export declare function isAddOnManifest(m: Manifest): m is AddOnManifest;
1424
1486
  /**
1425
- * Cross-block rules the envelope cannot express, each with its issue code
1426
- * (24 §5.3). Runs only for `kind: "add-on"`; returns [] for an app.
1487
+ * Cross-block rules the envelope cannot express, each with its issue
1488
+ * code. Runs only for `kind: "add-on"`; returns [] for an app.
1427
1489
  */
1428
1490
  export declare function addOnIssues(m: Manifest, ctx?: {
1429
1491
  /** Installed app keys, so `attaches` can be checked. Omit to skip. */
@@ -1438,7 +1500,7 @@ export declare function addOnIssues(m: Manifest, ctx?: {
1438
1500
  /**
1439
1501
  * Numeric semver compare on the release triple (pre-release/build ignored —
1440
1502
  * enough for the compatibility-window and upgrade ordering checks). Returns
1441
- * <0, 0, >0. Exported for the installer's upgrade rule (§4.3).
1503
+ * <0, 0, >0. Exported for the installer's upgrade rule.
1442
1504
  */
1443
1505
  export declare function compareSemver(a: string, b: string): number;
1444
1506
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -1,39 +1,42 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  /**
3
- * Manifest spec v1 (13-marketplace.md §2), frozen at `manifestVersion: 1` for
4
- * all of Adminium 1.x. Pure Zod v4 + types — no `node:` imports — so the
5
- * storefront and the Electron shell can validate a manifest in the browser
6
- * (01-architecture.md §3, the `@adminium/manifest` package row).
3
+ * Manifest spec v1, frozen at `manifestVersion: 1` for all of Adminium 1.x.
4
+ * Pure Zod v4 + types — no `node:` imports — so the storefront and the
5
+ * Electron shell can validate a manifest in the browser (the
6
+ * `@adminium/manifest` package row).
7
7
  *
8
8
  * This module is the envelope: every block's shape and the cross-block rules.
9
9
  * The install PLANNER (planInstall / requiredSchema → create-or-map diff) and
10
10
  * the server-side installer are later layers that consume a validated manifest.
11
11
  */
12
- import { addOnBlockSchema, addOnCategorySchema, isSlotId, } from '@adminium/add-on-contracts';
12
+ import { addOnBlockSchema, addOnCategorySchema, i18nMessageSchema, isSlotId, } from '@adminium/add-on-contracts';
13
13
  import { z } from 'zod';
14
- /** Integer spec version, frozen at 1 for Adminium 1.x (§2, 01 §8). */
14
+ /** Integer spec version, frozen at 1 for Adminium 1.x. */
15
15
  export const MANIFEST_VERSION = 1;
16
16
  /**
17
- * What kind of thing this manifest describes (24 §5.2). OPTIONAL, defaulting to
18
- * `"app"` — which is the whole reason `manifestVersion` does not move: every
19
- * manifest written before wave 4 stays valid unchanged, and an additive
20
- * optional field with a back-compatible default is how a frozen spec grows
21
- * without lying about its version.
17
+ * What kind of thing this manifest describes. OPTIONAL, defaulting to `"app"` —
18
+ * which is the whole reason `manifestVersion` does not move: every manifest
19
+ * written before wave 4 stays valid unchanged, and an additive optional field
20
+ * with a back-compatible default is how a frozen spec grows without lying about
21
+ * its version.
22
22
  */
23
23
  export const MANIFEST_KINDS = ['app', 'add-on'];
24
24
  export const manifestKindSchema = z.enum(MANIFEST_KINDS);
25
25
  /** strict semver — `major.minor.patch` with optional pre-release/build. */
26
26
  const SEMVER = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
27
27
  const semver = z.string().regex(SEMVER, 'must be strict semver (major.minor.patch)');
28
- /** An i18n message: a catalog key plus the English fallback rendered if absent. */
29
- export const i18nMessageSchema = z
30
- .object({
31
- key: z.string().min(1).max(120),
32
- fallback: z.string().min(1).max(400),
33
- })
34
- .strict();
35
- // ── §2.3 identity ────────────────────────────────────────────────────────────
36
- /** Closed v1 storefront facet set (§2.3). */
28
+ /**
29
+ * An i18n message: a catalog key plus the English fallback rendered if absent.
30
+ *
31
+ * DEFINED IN `@adminium/add-on-contracts` since 51a and re-exported here under
32
+ * its own name, so every importer of `@adminium/manifest` is unchanged. It
33
+ * moved because an add-on's page title and nav-group label are written in a
34
+ * manifest and read by a host through the contracts package — one shape, one
35
+ * definition, rather than two that drift a `max()` apart.
36
+ */
37
+ export { i18nMessageSchema };
38
+ // ── identity ─────────────────────────────────────────────────────────────────
39
+ /** Closed v1 storefront facet set. */
37
40
  export const MANIFEST_CATEGORIES = [
38
41
  'commerce',
39
42
  'hospitality',
@@ -42,7 +45,7 @@ export const MANIFEST_CATEGORIES = [
42
45
  'internal-tools',
43
46
  ];
44
47
  export const categorySchema = z.enum(MANIFEST_CATEGORIES);
45
- /** The one publisher id v1 accepts unless `third-party-publishers` is on (§2.3/§9). */
48
+ /** The one publisher id v1 accepts unless `third-party-publishers` is on. */
46
49
  export const FIRST_PARTY_PUBLISHER_ID = 'adminium';
47
50
  export const publisherSchema = z
48
51
  .object({
@@ -74,13 +77,12 @@ export const identitySchema = z
74
77
  * Keys no app or add-on may ever take, because they would shadow a storefront
75
78
  * route or a data file (D17). Apps and add-ons share one key namespace.
76
79
  *
77
- * `dashboard` joined them for a different reason (34 O10/D23): it is the HOST
78
- * KEY a stock Adminium deployment attaches an add-on under, so an add-on
79
- * `attaches: [{app: '*'}]` resolves against it and the consent dialog has
80
- * something to enable and disable. Treating an empty `attachTo` as "the
81
- * dashboard" was the alternative and leaves nothing to switch off. Reserving
82
- * the literal means no app can also be called `dashboard` and make an
83
- * attachment ambiguous.
80
+ * `dashboard` joined them for a different reason: it is the HOST KEY a stock
81
+ * Adminium deployment attaches an add-on under, so an add-on `attaches:
82
+ * [{app: '*'}]` resolves against it and the consent dialog has something to
83
+ * enable and disable. Treating an empty `attachTo` as "the dashboard" was the
84
+ * alternative and leaves nothing to switch off. Reserving the literal means
85
+ * no app can also be called `dashboard` and make an attachment ambiguous.
84
86
  */
85
87
  export const RESERVED_KEYS = [
86
88
  'apps',
@@ -91,7 +93,7 @@ export const RESERVED_KEYS = [
91
93
  'index',
92
94
  'search',
93
95
  ];
94
- // ── §2.11 capabilities ───────────────────────────────────────────────────────
96
+ // ── capabilities ─────────────────────────────────────────────────────────────
95
97
  export const MANIFEST_CAPABILITIES = [
96
98
  'hosted-only',
97
99
  'offline-required',
@@ -101,7 +103,7 @@ export const MANIFEST_CAPABILITIES = [
101
103
  'file-storage',
102
104
  'email-delivery',
103
105
  'realtime',
104
- // Added by wave 4 (24 D3). Adding a capability key is a THREE-place change
106
+ // Added by wave 4. Adding a capability key is a THREE-place change
105
107
  // and all three land together: here, `CAP_ICONS` in the website's
106
108
  // marketplace data (note `CAP_META` derives from it), and a
107
109
  // `marketplaceData.cap.<key>` label in all eight locales.
@@ -111,8 +113,8 @@ export const MANIFEST_CAPABILITIES = [
111
113
  'oauth-connect',
112
114
  ];
113
115
  export const capabilitySchema = z.enum(MANIFEST_CAPABILITIES);
114
- // ── §2.4 compatibility ───────────────────────────────────────────────────────
115
- /** The three meta/data engines Adminium can talk to (01-architecture.md §2.3). */
116
+ // ── compatibility ────────────────────────────────────────────────────────────
117
+ /** The three meta/data engines Adminium can talk to. */
116
118
  export const MANIFEST_ENGINES = ['postgres', 'mysql', 'sqlite'];
117
119
  export const compatibilitySchema = z
118
120
  .object({
@@ -121,12 +123,12 @@ export const compatibilitySchema = z
121
123
  /**
122
124
  * Which data engines this app's `requiredSchema` actually works on.
123
125
  *
124
- * ADDED rather than dropped from the manifests (28-T21). Thirteen shipped
125
- * manifests already carried `engines` and this `.strict()` schema rejected
126
- * every one — it is a spec field (13 §2.4) that never reached the code. The
127
- * information is real: an app whose schema uses Postgres-only DDL cannot be
128
- * installed against SQLite, and deleting the field to satisfy the validator
129
- * would have thrown away the only place that is written down.
126
+ * ADDED rather than dropped from the manifests. Thirteen shipped manifests
127
+ * already carried `engines` and this `.strict()` schema rejected every one
128
+ * — it is a spec field that never reached the code. The information is
129
+ * real: an app whose schema uses Postgres-only DDL cannot be installed
130
+ * against SQLite, and deleting the field to satisfy the validator would
131
+ * have thrown away the only place that is written down.
130
132
  *
131
133
  * Optional and additive, so nothing that validated before stops.
132
134
  */
@@ -134,8 +136,8 @@ export const compatibilitySchema = z
134
136
  requires: z.array(capabilitySchema).optional(),
135
137
  })
136
138
  .strict();
137
- // ── §2.5 requiredSchema (create-or-map) ──────────────────────────────────────
138
- /** Abstract column types the introspection engine emits (§2.5, research §15.2). */
139
+ // ── requiredSchema (create-or-map) ───────────────────────────────────────────
140
+ /** Abstract column types the introspection engine emits (research). */
139
141
  export const COLUMN_TYPES = [
140
142
  'id',
141
143
  'text',
@@ -153,7 +155,7 @@ export const COLUMN_TYPES = [
153
155
  'fk',
154
156
  'blob',
155
157
  ];
156
- /** Optional semantic pre-seed so widgets auto-instantiate (§2.5). */
158
+ /** Optional semantic pre-seed so widgets auto-instantiate. */
157
159
  export const COLUMN_SEMANTICS = [
158
160
  'name',
159
161
  'money',
@@ -163,7 +165,7 @@ export const COLUMN_SEMANTICS = [
163
165
  'geo-lat',
164
166
  'geo-lng',
165
167
  ];
166
- /** Structural role markers (§2.5). */
168
+ /** Structural role markers. */
167
169
  export const COLUMN_ROLES = ['pk', 'created_at', 'updated_at'];
168
170
  export const requiredColumnSchema = z
169
171
  .object({
@@ -201,7 +203,7 @@ export const requiredSchemaSchema = z
201
203
  message: 'duplicate table ref in requiredSchema',
202
204
  path: ['tables'],
203
205
  });
204
- // ── §2.6 pages ───────────────────────────────────────────────────────────────
206
+ // ── pages ────────────────────────────────────────────────────────────────────
205
207
  export const pageNavSchema = z
206
208
  .object({
207
209
  group: z.string().min(1).max(80),
@@ -220,7 +222,7 @@ export const pageSchema = z
220
222
  config: z.record(z.string(), z.unknown()).optional(),
221
223
  })
222
224
  .strict();
223
- // ── §2.7 roles ───────────────────────────────────────────────────────────────
225
+ // ── roles ────────────────────────────────────────────────────────────────────
224
226
  export const roleSchema = z
225
227
  .object({
226
228
  key: z.string().regex(/^[a-z][a-z0-9-]*$/, 'role key must be a kebab-case identifier'),
@@ -230,18 +232,18 @@ export const roleSchema = z
230
232
  permissions: z.array(z.string().min(1)).optional(),
231
233
  })
232
234
  .strict();
233
- // ── §2.8 settings ────────────────────────────────────────────────────────────
235
+ // ── settings ─────────────────────────────────────────────────────────────────
234
236
  const settingBase = {
235
237
  key: z.string().regex(/^[a-z][a-z0-9_]*$/, 'setting key must be snake_case'),
236
238
  required: z.boolean().optional(),
237
239
  secret: z.boolean().optional(),
238
240
  label: i18nMessageSchema.optional(),
239
241
  /*
240
- * The sentence UNDER the field, where a label alone cannot carry the answer
241
- * (34 §7.9, Appendix C). Every variant below is `.strict()`, so a manifest
242
- * that wrote `help` without this line was rejected rather than ignored —
243
- * which is why it rides the same release as `RESERVED_KEYS` above rather
244
- * than waiting for a settings form to need it.
242
+ * The sentence UNDER the field, where a label alone cannot carry the
243
+ * answer. Every variant below is `.strict()`, so a manifest that wrote
244
+ * `help` without this line was rejected rather than ignored — which is why
245
+ * it rides the same release as `RESERVED_KEYS` above rather than waiting
246
+ * for a settings form to need it.
245
247
  */
246
248
  help: i18nMessageSchema.optional(),
247
249
  };
@@ -275,11 +277,11 @@ export const settingSchema = z.discriminatedUnion('type', [
275
277
  .strict(),
276
278
  z.object({ ...settingBase, type: z.literal('json'), default: z.unknown().optional() }).strict(),
277
279
  ]);
278
- // ── §2.9 seeds ───────────────────────────────────────────────────────────────
280
+ // ── seeds ────────────────────────────────────────────────────────────────────
279
281
  export const seedSchema = z
280
282
  .object({
281
283
  table: z.string().min(1),
282
- // inline rows, or a reference to a bundled seeds/<file> dataset (§2.9).
284
+ // inline rows, or a reference to a bundled seeds/<file> dataset.
283
285
  rows: z.array(z.record(z.string(), z.unknown())).optional(),
284
286
  file: z.string().min(1).optional(),
285
287
  })
@@ -287,14 +289,14 @@ export const seedSchema = z
287
289
  .refine((s) => (s.rows === undefined) !== (s.file === undefined), {
288
290
  message: 'a seed provides exactly one of `rows` or `file`',
289
291
  });
290
- // ── §2.10 widgets (optional custom bundles) ──────────────────────────────────
292
+ // ── widgets (optional custom bundles) ────────────────────────────────────────
291
293
  export const manifestWidgetSchema = z
292
294
  .object({
293
295
  id: z.string().min(1).max(80),
294
296
  entry: z.string().min(1),
295
297
  })
296
298
  .strict();
297
- // ── §2.12 frontend ───────────────────────────────────────────────────────────
299
+ // ── frontend ─────────────────────────────────────────────────────────────────
298
300
  export const FRONTEND_KINDS = ['spa', 'electron', 'none'];
299
301
  export const frontendEnvVarSchema = z
300
302
  .object({
@@ -303,7 +305,7 @@ export const frontendEnvVarSchema = z
303
305
  })
304
306
  .strict();
305
307
  /**
306
- * Which of the three sides a frontend is (28-public-surface.md §4).
308
+ * Which of the three sides a frontend is.
307
309
  *
308
310
  * The product rule this exists to make CHECKABLE: a micro-SaaS is the Adminium
309
311
  * dashboard (mandatory, and never declared here — it comes from introspection)
@@ -315,7 +317,7 @@ export const frontendSchema = z
315
317
  .object({
316
318
  /**
317
319
  * REQUIRED, and the whole point of the array form. Without it the split
318
- * lives only in prose and nothing can enforce §4's rule.
320
+ * lives only in prose and nothing can enforce rule.
319
321
  */
320
322
  side: z.enum(FRONTEND_SIDES),
321
323
  kind: z.enum(FRONTEND_KINDS),
@@ -326,15 +328,15 @@ export const frontendSchema = z
326
328
  *
327
329
  * RE-ADMITTED, not newly invented. Eleven shipped manifests already carry
328
330
  * this key and the `.strict()` schema rejected every one of them — while
329
- * being, per the 28-T33 fleet audit, "the only machine-readable record of
330
- * the staff/customer split anywhere in the fleet". Deleting it during
331
- * normalization was the tempting move and would have made §4's rule
331
+ * being, per the fleet audit, "the only machine-readable record of the
332
+ * staff/customer split anywhere in the fleet". Deleting it during
333
+ * normalization was the tempting move and would have made rule
332
334
  * permanently uncheckable.
333
335
  */
334
336
  routes: z.record(z.string(), z.string()).optional(),
335
337
  })
336
338
  .strict();
337
- /** §2.11 — hosted-only and offline-required are mutually exclusive. */
339
+ /** Hosted-only and offline-required are mutually exclusive. */
338
340
  const capabilitiesNotContradictory = (m) => !((m.capabilities?.includes('hosted-only') ?? false) &&
339
341
  (m.capabilities?.includes('offline-required') ?? false));
340
342
  /** maxAdminiumVersion (exclusive) must be strictly above the min. */
@@ -383,7 +385,7 @@ export const appManifestSchema = z
383
385
  widgets: z.array(manifestWidgetSchema).optional(),
384
386
  capabilities: z.array(capabilitySchema).optional(),
385
387
  /**
386
- * ONE OR MORE SIDES (28 §4, D12). Replaces the singular `frontend`.
388
+ * ONE OR MORE SIDES. Replaces the singular `frontend`.
387
389
  *
388
390
  * `minItems: 1` is the gate: a manifest declaring no side does not validate,
389
391
  * which is what turns "dashboard mandatory, staff optional, customer
@@ -398,9 +400,20 @@ export const appManifestSchema = z
398
400
  .refine(compatibilityWindowOrdered, { ...WINDOW_MESSAGE, path: [...WINDOW_MESSAGE.path] })
399
401
  .refine(sidesAreDistinct, { ...SIDES_MESSAGE, path: [...SIDES_MESSAGE.path] });
400
402
  /**
401
- * `pages` and `frontend` are absent from this branch on purpose (24 §5.7 item
402
- * 6): an add-on cannot install pages, roles or a frontend, and leaving the
403
- * fields off the schema entirely is a stronger guarantee than a lint rule.
403
+ * `pages`, `roles` and `frontends` are absent from this branch on purpose, and
404
+ * leaving the fields off a `.strict()` schema entirely is a stronger guarantee
405
+ * than a lint rule.
406
+ *
407
+ * WHAT CHANGED, AND WHAT DID NOT. An add-on may now own a dashboard page — but
408
+ * it declares that page as CODE, inside `addOn.pages`, never as a `pages` entry
409
+ * up here. The two are
410
+ * different things wearing one word: a `pages` row is a generated page, a
411
+ * `template` the engine renders with `bindings` and `config`, and an add-on
412
+ * still cannot install one. Roles and frontends remain refused outright.
413
+ *
414
+ * So the absence of `pages` from this object is no longer "an add-on has no
415
+ * pages". It is "an add-on's pages are not the engine's page templates", which
416
+ * is a narrower promise and the one this shape actually keeps.
404
417
  */
405
418
  export const addOnManifestSchema = z
406
419
  .object({
@@ -431,8 +444,8 @@ export function isAddOnManifest(m) {
431
444
  return m.kind === 'add-on';
432
445
  }
433
446
  /**
434
- * Cross-block rules the envelope cannot express, each with its issue code
435
- * (24 §5.3). Runs only for `kind: "add-on"`; returns [] for an app.
447
+ * Cross-block rules the envelope cannot express, each with its issue
448
+ * code. Runs only for `kind: "add-on"`; returns [] for an app.
436
449
  */
437
450
  export function addOnIssues(m, ctx = {}) {
438
451
  if (!isAddOnManifest(m))
@@ -461,6 +474,20 @@ export function addOnIssues(m, ctx = {}) {
461
474
  });
462
475
  }
463
476
  });
477
+ /*
478
+ * THERE IS NO NAV_GROUP_UNKNOWN CHECK HERE, AND THAT IS DELIBERATE.
479
+ *
480
+ * A page whose group is neither built in nor declared is refused by
481
+ * `addOnBlockSchema` itself, and these cross-block rules run only on a
482
+ * manifest that has already parsed — so a check here could never fire. It was
483
+ * written, and removed once its own test proved it unreachable: the refusal
484
+ * arrived as a schema issue with no code.
485
+ *
486
+ * SLOT_UNKNOWN above is the same shape and is kept, labelled "belt and
487
+ * braces". One unreachable branch is not a reason for a second: this
488
+ * repository has shipped four features that passed every test and could not
489
+ * be called, and a validator branch nobody can reach is where that starts.
490
+ */
464
491
  // SCOPE_OUT_OF_RANGE — a `records:<table>:<verb>` scope must name a table this
465
492
  // add-on can actually reach: one of the host app's, or one of its own.
466
493
  const reachable = new Set([
@@ -520,7 +547,7 @@ export function addOnIssues(m, ctx = {}) {
520
547
  /**
521
548
  * Numeric semver compare on the release triple (pre-release/build ignored —
522
549
  * enough for the compatibility-window and upgrade ordering checks). Returns
523
- * <0, 0, >0. Exported for the installer's upgrade rule (§4.3).
550
+ * <0, 0, >0. Exported for the installer's upgrade rule.
524
551
  */
525
552
  export function compareSemver(a, b) {
526
553
  const triple = (v) => v
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,29 @@
1
1
  /**
2
- * Manifest validation entry point (13-marketplace.md §2, §9). Layers the
3
- * envelope schema with the v1 publisher policy: the installer rejects any
4
- * `publisher.id` other than `adminium` unless the `third-party-publishers`
5
- * feature flag is on (off in v1). Pure — safe in the browser storefront.
2
+ * Manifest validation entry point. Layers the envelope schema with the v1
3
+ * publisher policy: the installer rejects any `publisher.id` other than
4
+ * `adminium` unless the `third-party-publishers` feature flag is on (off
5
+ * in v1). Pure — safe in the browser storefront.
6
6
  */
7
7
  import { type Manifest } from './schema.js';
8
8
  export interface ManifestIssue {
9
9
  /** Dotted path to the offending field, e.g. `publisher.id`. */
10
10
  path: string;
11
11
  message: string;
12
- /** Issue code for the add-on rules (24 §5.3); absent for schema issues. */
12
+ /** Issue code for the add-on rules; absent for schema issues. */
13
13
  code?: string;
14
14
  }
15
15
  export interface ValidateManifestOptions {
16
16
  /**
17
17
  * Allow a non-`adminium` publisher. Wired to the `third-party-publishers`
18
- * feature flag (§9); OFF in v1, so third-party manifests are rejected.
18
+ * feature flag; OFF in v1, so third-party manifests are rejected.
19
19
  *
20
20
  * For an add-on the gate matters MORE, not less: an add-on's server half runs
21
- * in the host process with no sandbox (24 D13), so an unsandboxed in-process
22
- * add-on from an unknown publisher would be remote code execution with a
23
- * marketplace in front of it.
21
+ * in the host process with no sandbox, so an unsandboxed in-process add-on
22
+ * from an unknown publisher would be remote code execution with a marketplace
23
+ * in front of it.
24
24
  */
25
25
  allowThirdPartyPublishers?: boolean;
26
- /** Installed app keys, so an add-on's `attaches` can be checked (24 §5.3). */
26
+ /** Installed app keys, so an add-on's `attaches` can be checked. */
27
27
  knownAppKeys?: readonly string[];
28
28
  /** The host app's table refs, so an add-on's `scopes` can be bounded. */
29
29
  hostTables?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,yEAAyE;IACzE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,uBAA4B,GACjC,sBAAsB,CAwCxB;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,uBAA4B,GAAG,QAAQ,CAO1F"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,oEAAoE;IACpE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,yEAAyE;IACzE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,uBAA4B,GACjC,sBAAsB,CAwCxB;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,uBAA4B,GAAG,QAAQ,CAO1F"}
package/dist/validate.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  /**
3
- * Manifest validation entry point (13-marketplace.md §2, §9). Layers the
4
- * envelope schema with the v1 publisher policy: the installer rejects any
5
- * `publisher.id` other than `adminium` unless the `third-party-publishers`
6
- * feature flag is on (off in v1). Pure — safe in the browser storefront.
3
+ * Manifest validation entry point. Layers the envelope schema with the v1
4
+ * publisher policy: the installer rejects any `publisher.id` other than
5
+ * `adminium` unless the `third-party-publishers` feature flag is on (off
6
+ * in v1). Pure — safe in the browser storefront.
7
7
  */
8
8
  import { FIRST_PARTY_PUBLISHER_ID, RESERVED_KEYS, addOnIssues, manifestSchema, } from './schema.js';
9
9
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminiumjs/manifest",
3
- "version": "0.2.9",
3
+ "version": "0.3.0-rc.1",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@adminium/add-on-contracts": "npm:@adminiumjs/add-on-contracts@0.2.9",
23
+ "@adminium/add-on-contracts": "npm:@adminiumjs/add-on-contracts@0.3.0-rc.1",
24
24
  "zod": "^4.4.3"
25
25
  },
26
26
  "files": [