@objectstack/spec 1.0.11 → 1.1.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 (147) hide show
  1. package/README.md +41 -1
  2. package/dist/ai/index.d.mts +2 -1
  3. package/dist/ai/index.d.ts +2 -1
  4. package/dist/ai/index.js +2047 -1944
  5. package/dist/ai/index.js.map +1 -1
  6. package/dist/ai/index.mjs +2047 -1944
  7. package/dist/ai/index.mjs.map +1 -1
  8. package/dist/api/index.d.mts +3 -1
  9. package/dist/api/index.d.ts +3 -1
  10. package/dist/api/index.js +2599 -2292
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/index.mjs +2587 -2292
  13. package/dist/api/index.mjs.map +1 -1
  14. package/dist/automation/index.d.mts +2 -1
  15. package/dist/automation/index.d.ts +2 -1
  16. package/dist/automation/index.js +83 -0
  17. package/dist/automation/index.js.map +1 -1
  18. package/dist/automation/index.mjs +77 -0
  19. package/dist/automation/index.mjs.map +1 -1
  20. package/dist/contracts/index.d.mts +3 -2
  21. package/dist/contracts/index.d.ts +3 -2
  22. package/dist/data/index.d.mts +3 -2
  23. package/dist/data/index.d.ts +3 -2
  24. package/dist/data/index.js +658 -556
  25. package/dist/data/index.js.map +1 -1
  26. package/dist/data/index.mjs +656 -556
  27. package/dist/data/index.mjs.map +1 -1
  28. package/dist/{driver.zod-lfi00zVT.d.ts → driver.zod-CfGk9GYh.d.ts} +2164 -11
  29. package/dist/{driver.zod-BOM_Etco.d.mts → driver.zod-y1cX6R3c.d.mts} +2164 -11
  30. package/dist/hub/index.d.mts +1 -1
  31. package/dist/hub/index.d.ts +1 -1
  32. package/dist/hub/index.js +789 -724
  33. package/dist/hub/index.js.map +1 -1
  34. package/dist/hub/index.mjs +789 -724
  35. package/dist/hub/index.mjs.map +1 -1
  36. package/dist/{index-C67cfwmW.d.ts → index-B0Hf65bV.d.ts} +13 -5
  37. package/dist/{index-DLcySG7U.d.ts → index-B5pKM0My.d.ts} +335 -4370
  38. package/dist/{index-Os7lItRe.d.mts → index-BA022mg2.d.ts} +6178 -129
  39. package/dist/{index-B5-VbOKg.d.mts → index-BGeLoH2z.d.ts} +4251 -74
  40. package/dist/{index-CH5zloR3.d.ts → index-BwO__aqV.d.ts} +1 -1
  41. package/dist/{index-Dp7GFJ8V.d.mts → index-Cia3JPQ8.d.mts} +13 -5
  42. package/dist/{index-D12rNohm.d.mts → index-CpD1q1FP.d.ts} +35 -18
  43. package/dist/{index-Os7lItRe.d.ts → index-D5RSFPuB.d.mts} +6178 -129
  44. package/dist/{index-CU4m6noq.d.mts → index-DGjpaj0X.d.mts} +1 -1
  45. package/dist/{index-D12rNohm.d.ts → index-Dfn5VXl6.d.mts} +35 -18
  46. package/dist/{index-l6WIlmOD.d.mts → index-Dgybxlky.d.mts} +177 -158
  47. package/dist/{index-l6WIlmOD.d.ts → index-Dgybxlky.d.ts} +177 -158
  48. package/dist/{index-DLcySG7U.d.mts → index-Dpsk8PF4.d.mts} +335 -4370
  49. package/dist/{index-CyognKSZ.d.ts → index-DrNah5E0.d.ts} +1952 -6990
  50. package/dist/{index-DE_lJ11p.d.mts → index-OO84R20k.d.mts} +1952 -6990
  51. package/dist/{index-B5-VbOKg.d.ts → index-upA3Xt04.d.mts} +4251 -74
  52. package/dist/index.d.mts +8072 -1922
  53. package/dist/index.d.ts +8072 -1922
  54. package/dist/index.js +8563 -8249
  55. package/dist/index.js.map +1 -1
  56. package/dist/index.mjs +8563 -8249
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/integration/index.d.mts +1 -1
  59. package/dist/integration/index.d.ts +1 -1
  60. package/dist/kernel/index.d.mts +2 -1
  61. package/dist/kernel/index.d.ts +2 -1
  62. package/dist/kernel/index.js +884 -684
  63. package/dist/kernel/index.js.map +1 -1
  64. package/dist/kernel/index.mjs +870 -684
  65. package/dist/kernel/index.mjs.map +1 -1
  66. package/dist/package-registry.zod-JMcOYNxM.d.mts +21119 -0
  67. package/dist/package-registry.zod-JMcOYNxM.d.ts +21119 -0
  68. package/dist/state-machine.zod-B-lFFSxQ.d.mts +285 -0
  69. package/dist/state-machine.zod-B-lFFSxQ.d.ts +285 -0
  70. package/dist/system/index.d.mts +2 -1
  71. package/dist/system/index.d.ts +2 -1
  72. package/dist/system/index.js +749 -651
  73. package/dist/system/index.js.map +1 -1
  74. package/dist/system/index.mjs +749 -651
  75. package/dist/system/index.mjs.map +1 -1
  76. package/dist/ui/index.d.mts +1 -1
  77. package/dist/ui/index.d.ts +1 -1
  78. package/json-schema/ai/Agent.json +499 -0
  79. package/json-schema/ai/DevOpsAgent.json +499 -0
  80. package/json-schema/ai/FeedbackLoop.json +2188 -186
  81. package/json-schema/ai/Resolution.json +2188 -186
  82. package/json-schema/api/ApiRoutes.json +4 -0
  83. package/json-schema/api/CompileManifestResponse.json +40 -10
  84. package/json-schema/api/DisablePackageRequest.json +18 -0
  85. package/json-schema/api/DisablePackageResponse.json +1521 -0
  86. package/json-schema/api/Discovery.json +4 -0
  87. package/json-schema/api/EnablePackageRequest.json +18 -0
  88. package/json-schema/api/EnablePackageResponse.json +1521 -0
  89. package/json-schema/api/GetDiscoveryResponse.json +4 -0
  90. package/json-schema/api/GetPackageRequest.json +18 -0
  91. package/json-schema/api/GetPackageResponse.json +1518 -0
  92. package/json-schema/api/InstallPackageRequest.json +1483 -0
  93. package/json-schema/api/InstallPackageResponse.json +1521 -0
  94. package/json-schema/api/ListPackagesRequest.json +42 -0
  95. package/json-schema/api/ListPackagesResponse.json +1525 -0
  96. package/json-schema/api/ObjectDefinitionResponse.json +1001 -0
  97. package/json-schema/api/ObjectStackProtocol.json +86 -1
  98. package/json-schema/api/RestApiConfig.json +5 -0
  99. package/json-schema/api/RestServerConfig.json +5 -0
  100. package/json-schema/api/UninstallPackageRequest.json +18 -0
  101. package/json-schema/api/UninstallPackageResponse.json +25 -0
  102. package/json-schema/automation/ActionRef.json +30 -0
  103. package/json-schema/automation/Event.json +24 -0
  104. package/json-schema/automation/Flow.json +1 -0
  105. package/json-schema/automation/FlowNode.json +1 -0
  106. package/json-schema/automation/FlowNodeAction.json +1 -0
  107. package/json-schema/automation/GuardRef.json +30 -0
  108. package/json-schema/automation/StateMachine.json +504 -0
  109. package/json-schema/automation/StateNode.json +324 -0
  110. package/json-schema/automation/Transition.json +73 -0
  111. package/json-schema/data/Object.json +1001 -0
  112. package/json-schema/data/ObjectExtension.json +2376 -0
  113. package/json-schema/data/ObjectOwnershipEnum.json +13 -0
  114. package/json-schema/hub/ComposerResponse.json +40 -10
  115. package/json-schema/kernel/DisablePackageRequest.json +18 -0
  116. package/json-schema/kernel/DisablePackageResponse.json +1521 -0
  117. package/json-schema/kernel/EnablePackageRequest.json +18 -0
  118. package/json-schema/kernel/EnablePackageResponse.json +1521 -0
  119. package/json-schema/kernel/EventBusConfig.json +15 -0
  120. package/json-schema/kernel/EventHandler.json +6 -0
  121. package/json-schema/kernel/EventPersistence.json +3 -0
  122. package/json-schema/kernel/EventRoute.json +3 -0
  123. package/json-schema/kernel/EventWebhookConfig.json +3 -0
  124. package/json-schema/kernel/GetPackageRequest.json +18 -0
  125. package/json-schema/kernel/GetPackageResponse.json +1518 -0
  126. package/json-schema/kernel/InstallPackageRequest.json +1483 -0
  127. package/json-schema/kernel/InstallPackageResponse.json +1521 -0
  128. package/json-schema/kernel/InstalledPackage.json +1509 -0
  129. package/json-schema/kernel/ListPackagesRequest.json +42 -0
  130. package/json-schema/kernel/ListPackagesResponse.json +1525 -0
  131. package/json-schema/kernel/Manifest.json +40 -10
  132. package/json-schema/kernel/PackageStatusEnum.json +16 -0
  133. package/json-schema/kernel/Plugin.json +5 -0
  134. package/json-schema/kernel/PluginContext.json +31 -7
  135. package/json-schema/kernel/PluginLifecycle.json +7 -1
  136. package/json-schema/kernel/RealTimeNotificationConfig.json +3 -0
  137. package/json-schema/kernel/UninstallPackageRequest.json +18 -0
  138. package/json-schema/kernel/UninstallPackageResponse.json +25 -0
  139. package/json-schema/system/ChangeSet.json +2188 -186
  140. package/json-schema/system/CreateObjectOperation.json +1001 -0
  141. package/json-schema/system/MigrationOperation.json +1001 -0
  142. package/package.json +29 -15
  143. package/prompts/create-new-project.md +37 -19
  144. package/dist/{index-I3piy4U4.d.mts → index-BmU_sD1f.d.mts} +8 -8
  145. package/dist/{index-CkhpsEUw.d.ts → index-BnXuc_HO.d.ts} +8 -8
  146. package/dist/{index-CIDI-8zR.d.mts → index-C_NTOcet.d.mts} +98 -98
  147. package/dist/{index-CIDI-8zR.d.ts → index-C_NTOcet.d.ts} +98 -98
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectstack/spec",
3
- "version": "1.0.11",
3
+ "version": "1.1.0",
4
4
  "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -8,59 +8,73 @@
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
- "default": "./dist/index.js"
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
12
13
  },
13
14
  "./driver": {
14
15
  "types": "./dist/driver/index.d.ts",
15
- "default": "./dist/driver/index.js"
16
+ "import": "./dist/driver/index.mjs",
17
+ "require": "./dist/driver/index.js"
16
18
  },
17
19
  "./data": {
18
20
  "types": "./dist/data/index.d.ts",
19
- "default": "./dist/data/index.js"
21
+ "import": "./dist/data/index.mjs",
22
+ "require": "./dist/data/index.js"
20
23
  },
21
24
  "./system": {
22
25
  "types": "./dist/system/index.d.ts",
23
- "default": "./dist/system/index.js"
26
+ "import": "./dist/system/index.mjs",
27
+ "require": "./dist/system/index.js"
24
28
  },
25
29
  "./auth": {
26
30
  "types": "./dist/auth/index.d.ts",
27
- "default": "./dist/auth/index.js"
31
+ "import": "./dist/auth/index.mjs",
32
+ "require": "./dist/auth/index.js"
28
33
  },
29
34
  "./kernel": {
30
35
  "types": "./dist/kernel/index.d.ts",
31
- "default": "./dist/kernel/index.js"
36
+ "import": "./dist/kernel/index.mjs",
37
+ "require": "./dist/kernel/index.js"
32
38
  },
33
39
  "./hub": {
34
40
  "types": "./dist/hub/index.d.ts",
35
- "default": "./dist/hub/index.js"
41
+ "import": "./dist/hub/index.mjs",
42
+ "require": "./dist/hub/index.js"
36
43
  },
37
44
  "./ai": {
38
45
  "types": "./dist/ai/index.d.ts",
39
- "default": "./dist/ai/index.js"
46
+ "import": "./dist/ai/index.mjs",
47
+ "require": "./dist/ai/index.js"
40
48
  },
41
49
  "./automation": {
42
50
  "types": "./dist/automation/index.d.ts",
43
- "default": "./dist/automation/index.js"
51
+ "import": "./dist/automation/index.mjs",
52
+ "require": "./dist/automation/index.js"
44
53
  },
45
54
  "./api": {
46
55
  "types": "./dist/api/index.d.ts",
47
- "default": "./dist/api/index.js"
56
+ "import": "./dist/api/index.mjs",
57
+ "require": "./dist/api/index.js"
48
58
  },
49
59
  "./ui": {
50
60
  "types": "./dist/ui/index.d.ts",
51
- "default": "./dist/ui/index.js"
61
+ "import": "./dist/ui/index.mjs",
62
+ "require": "./dist/ui/index.js"
52
63
  },
53
64
  "./contracts": {
54
65
  "types": "./dist/contracts/index.d.ts",
55
- "default": "./dist/contracts/index.js"
66
+ "import": "./dist/contracts/index.mjs",
67
+ "require": "./dist/contracts/index.js"
56
68
  },
57
69
  "./integration": {
58
70
  "types": "./dist/integration/index.d.ts",
59
- "default": "./dist/integration/index.js"
71
+ "import": "./dist/integration/index.mjs",
72
+ "require": "./dist/integration/index.js"
60
73
  },
61
74
  "./permission": {
62
75
  "types": "./dist/permission/index.d.ts",
63
- "default": "./dist/permission/index.js"
76
+ "import": "./dist/permission/index.mjs",
77
+ "require": "./dist/permission/index.js"
64
78
  }
65
79
  },
66
80
  "files": [
@@ -13,24 +13,27 @@ The core philosophy is **"Data as Code"** — all business logic (Objects, Field
13
13
  - **Configuration:** `objectstack.config.ts` (Application Entry)
14
14
 
15
15
  # Project Structure (Best Practice)
16
- Organize the code by **Domains** (Functional Modules) rather than technical layers.
16
+ Organize the code by **metadata type** the industry-standard pattern (Salesforce DX, ServiceNow).
17
+ Each folder has a barrel `index.ts` for auto-collection.
17
18
 
18
19
  ```text
19
20
  my-app/
20
- ├── objectstack.config.ts # App Entry (App.create({...}))
21
+ ├── objectstack.config.ts # App Entry (defineStack({...}))
21
22
  ├── package.json
22
23
  ├── tsconfig.json
23
24
  └── src/
24
- ├── domains/
25
- ├── sales/ # Domain: Sales
26
- │ │ ├── account.object.ts
27
- │ ├── account.trigger.ts
28
- │ │ └── opportunity.object.ts
29
- │ └── support/ # Domain: Support
30
- │ └── case.object.ts
31
- └── ui/ # Global UI Assets
32
- ├── dashboards/
33
- └── layouts/
25
+ ├── objects/ # *.object.ts, *.hook.ts
26
+ └── index.ts # Barrel re-exports
27
+ ├── actions/ # *.actions.ts
28
+ └── index.ts
29
+ ├── flows/ # *.flow.ts
30
+ │ └── index.ts
31
+ ├── dashboards/ # *.dashboard.ts
32
+ └── index.ts
33
+ ├── reports/ # *.report.ts
34
+ └── index.ts
35
+ └── apps/ # *.app.ts
36
+ └── index.ts
34
37
  ```
35
38
 
36
39
  # Implementation Rules
@@ -69,17 +72,32 @@ my-app/
69
72
  4. **Code Pattern (App Config):**
70
73
  ```typescript
71
74
  // objectstack.config.ts
72
- import { App } from '@objectstack/spec/ui';
73
- import { AccountObject } from './src/domains/sales/account.object';
75
+ import { defineStack } from '@objectstack/spec';
76
+ import * as objects from './src/objects';
77
+ import * as actions from './src/actions';
78
+ import * as apps from './src/apps';
74
79
 
75
- export default App.create({
76
- name: 'my_erp_app',
77
- version: '1.0.0',
78
- objects: [AccountObject],
79
- menus: [ ... ]
80
+ export default defineStack({
81
+ manifest: {
82
+ id: 'com.example.my_erp',
83
+ version: '1.0.0',
84
+ type: 'app',
85
+ name: 'My ERP App',
86
+ },
87
+ objects: Object.values(objects),
88
+ actions: Object.values(actions),
89
+ apps: Object.values(apps),
80
90
  });
81
91
  ```
82
92
 
93
+ 5. **Code Pattern (Barrel File):**
94
+ ```typescript
95
+ // src/objects/index.ts
96
+ export { Account } from './account.object';
97
+ export { Contact } from './contact.object';
98
+ // Hooks are auto-associated by convention, no need to export
99
+ ```
100
+
83
101
  # Your Task
84
102
  Please assist me in implementing the following requirements for my new ObjectStack project.
85
103
  Focus on creating the `object.ts` definitions and the `objectstack.config.ts` integration.
@@ -8339,15 +8339,15 @@ declare const PageHeaderProps: z.ZodObject<{
8339
8339
  }, "strip", z.ZodTypeAny, {
8340
8340
  title: string;
8341
8341
  breadcrumb: boolean;
8342
+ actions?: string[] | undefined;
8342
8343
  icon?: string | undefined;
8343
8344
  subtitle?: string | undefined;
8344
- actions?: string[] | undefined;
8345
8345
  }, {
8346
8346
  title: string;
8347
+ actions?: string[] | undefined;
8347
8348
  icon?: string | undefined;
8348
8349
  subtitle?: string | undefined;
8349
8350
  breadcrumb?: boolean | undefined;
8350
- actions?: string[] | undefined;
8351
8351
  }>;
8352
8352
  declare const PageTabsProps: z.ZodObject<{
8353
8353
  type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
@@ -8392,15 +8392,15 @@ declare const PageCardProps: z.ZodObject<{
8392
8392
  footer: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
8393
8393
  }, "strip", z.ZodTypeAny, {
8394
8394
  bordered: boolean;
8395
+ actions?: string[] | undefined;
8395
8396
  title?: string | undefined;
8396
8397
  body?: any[] | undefined;
8397
- actions?: string[] | undefined;
8398
8398
  footer?: any[] | undefined;
8399
8399
  }, {
8400
+ actions?: string[] | undefined;
8400
8401
  title?: string | undefined;
8401
8402
  body?: any[] | undefined;
8402
8403
  bordered?: boolean | undefined;
8403
- actions?: string[] | undefined;
8404
8404
  footer?: any[] | undefined;
8405
8405
  }>;
8406
8406
  /**
@@ -8463,15 +8463,15 @@ declare const ComponentPropsMap: {
8463
8463
  }, "strip", z.ZodTypeAny, {
8464
8464
  title: string;
8465
8465
  breadcrumb: boolean;
8466
+ actions?: string[] | undefined;
8466
8467
  icon?: string | undefined;
8467
8468
  subtitle?: string | undefined;
8468
- actions?: string[] | undefined;
8469
8469
  }, {
8470
8470
  title: string;
8471
+ actions?: string[] | undefined;
8471
8472
  icon?: string | undefined;
8472
8473
  subtitle?: string | undefined;
8473
8474
  breadcrumb?: boolean | undefined;
8474
- actions?: string[] | undefined;
8475
8475
  }>;
8476
8476
  readonly 'page:tabs': z.ZodObject<{
8477
8477
  type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
@@ -8516,15 +8516,15 @@ declare const ComponentPropsMap: {
8516
8516
  footer: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
8517
8517
  }, "strip", z.ZodTypeAny, {
8518
8518
  bordered: boolean;
8519
+ actions?: string[] | undefined;
8519
8520
  title?: string | undefined;
8520
8521
  body?: any[] | undefined;
8521
- actions?: string[] | undefined;
8522
8522
  footer?: any[] | undefined;
8523
8523
  }, {
8524
+ actions?: string[] | undefined;
8524
8525
  title?: string | undefined;
8525
8526
  body?: any[] | undefined;
8526
8527
  bordered?: boolean | undefined;
8527
- actions?: string[] | undefined;
8528
8528
  footer?: any[] | undefined;
8529
8529
  }>;
8530
8530
  readonly 'page:footer': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
@@ -8339,15 +8339,15 @@ declare const PageHeaderProps: z.ZodObject<{
8339
8339
  }, "strip", z.ZodTypeAny, {
8340
8340
  title: string;
8341
8341
  breadcrumb: boolean;
8342
+ actions?: string[] | undefined;
8342
8343
  icon?: string | undefined;
8343
8344
  subtitle?: string | undefined;
8344
- actions?: string[] | undefined;
8345
8345
  }, {
8346
8346
  title: string;
8347
+ actions?: string[] | undefined;
8347
8348
  icon?: string | undefined;
8348
8349
  subtitle?: string | undefined;
8349
8350
  breadcrumb?: boolean | undefined;
8350
- actions?: string[] | undefined;
8351
8351
  }>;
8352
8352
  declare const PageTabsProps: z.ZodObject<{
8353
8353
  type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
@@ -8392,15 +8392,15 @@ declare const PageCardProps: z.ZodObject<{
8392
8392
  footer: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
8393
8393
  }, "strip", z.ZodTypeAny, {
8394
8394
  bordered: boolean;
8395
+ actions?: string[] | undefined;
8395
8396
  title?: string | undefined;
8396
8397
  body?: any[] | undefined;
8397
- actions?: string[] | undefined;
8398
8398
  footer?: any[] | undefined;
8399
8399
  }, {
8400
+ actions?: string[] | undefined;
8400
8401
  title?: string | undefined;
8401
8402
  body?: any[] | undefined;
8402
8403
  bordered?: boolean | undefined;
8403
- actions?: string[] | undefined;
8404
8404
  footer?: any[] | undefined;
8405
8405
  }>;
8406
8406
  /**
@@ -8463,15 +8463,15 @@ declare const ComponentPropsMap: {
8463
8463
  }, "strip", z.ZodTypeAny, {
8464
8464
  title: string;
8465
8465
  breadcrumb: boolean;
8466
+ actions?: string[] | undefined;
8466
8467
  icon?: string | undefined;
8467
8468
  subtitle?: string | undefined;
8468
- actions?: string[] | undefined;
8469
8469
  }, {
8470
8470
  title: string;
8471
+ actions?: string[] | undefined;
8471
8472
  icon?: string | undefined;
8472
8473
  subtitle?: string | undefined;
8473
8474
  breadcrumb?: boolean | undefined;
8474
- actions?: string[] | undefined;
8475
8475
  }>;
8476
8476
  readonly 'page:tabs': z.ZodObject<{
8477
8477
  type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
@@ -8516,15 +8516,15 @@ declare const ComponentPropsMap: {
8516
8516
  footer: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
8517
8517
  }, "strip", z.ZodTypeAny, {
8518
8518
  bordered: boolean;
8519
+ actions?: string[] | undefined;
8519
8520
  title?: string | undefined;
8520
8521
  body?: any[] | undefined;
8521
- actions?: string[] | undefined;
8522
8522
  footer?: any[] | undefined;
8523
8523
  }, {
8524
+ actions?: string[] | undefined;
8524
8525
  title?: string | undefined;
8525
8526
  body?: any[] | undefined;
8526
8527
  bordered?: boolean | undefined;
8527
- actions?: string[] | undefined;
8528
8528
  footer?: any[] | undefined;
8529
8529
  }>;
8530
8530
  readonly 'page:footer': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;