@fragno-dev/backoffice-api 0.0.0-stage → 0.0.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 (135) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +90 -2
  3. package/dist/api.d.ts +35 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +10 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/errors.d.ts +45 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +35 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/openapi.d.ts +46 -0
  12. package/dist/openapi.d.ts.map +1 -0
  13. package/dist/openapi.js +205 -0
  14. package/dist/openapi.js.map +1 -0
  15. package/dist/v0/account.d.ts +171 -0
  16. package/dist/v0/account.d.ts.map +1 -0
  17. package/dist/v0/account.js +78 -0
  18. package/dist/v0/account.js.map +1 -0
  19. package/dist/v0/api.d.ts +3437 -0
  20. package/dist/v0/api.d.ts.map +1 -0
  21. package/dist/v0/api.js +52 -0
  22. package/dist/v0/api.js.map +1 -0
  23. package/dist/v0/app-actions.d.ts +105 -0
  24. package/dist/v0/app-actions.d.ts.map +1 -0
  25. package/dist/v0/app-actions.js +100 -0
  26. package/dist/v0/app-actions.js.map +1 -0
  27. package/dist/v0/apps.d.ts +417 -0
  28. package/dist/v0/apps.d.ts.map +1 -0
  29. package/dist/v0/apps.js +163 -0
  30. package/dist/v0/apps.js.map +1 -0
  31. package/dist/v0/automation.d.ts +730 -0
  32. package/dist/v0/automation.d.ts.map +1 -0
  33. package/dist/v0/automation.js +355 -0
  34. package/dist/v0/automation.js.map +1 -0
  35. package/dist/v0/capabilities.d.ts +97 -0
  36. package/dist/v0/capabilities.d.ts.map +1 -0
  37. package/dist/v0/capabilities.js +41 -0
  38. package/dist/v0/capabilities.js.map +1 -0
  39. package/dist/v0/client.d.ts +39 -0
  40. package/dist/v0/client.d.ts.map +1 -0
  41. package/dist/v0/client.js +61 -0
  42. package/dist/v0/client.js.map +1 -0
  43. package/dist/v0/events.d.ts +789 -0
  44. package/dist/v0/events.d.ts.map +1 -0
  45. package/dist/v0/events.js +153 -0
  46. package/dist/v0/events.js.map +1 -0
  47. package/dist/v0/forms.d.ts +172 -0
  48. package/dist/v0/forms.d.ts.map +1 -0
  49. package/dist/v0/forms.js +88 -0
  50. package/dist/v0/forms.js.map +1 -0
  51. package/dist/v0/hooks.d.ts +61 -0
  52. package/dist/v0/hooks.d.ts.map +1 -0
  53. package/dist/v0/hooks.js +49 -0
  54. package/dist/v0/hooks.js.map +1 -0
  55. package/dist/v0/identity.d.ts +73 -0
  56. package/dist/v0/identity.d.ts.map +1 -0
  57. package/dist/v0/identity.js +46 -0
  58. package/dist/v0/identity.js.map +1 -0
  59. package/dist/v0/integrations.d.ts +847 -0
  60. package/dist/v0/integrations.d.ts.map +1 -0
  61. package/dist/v0/integrations.js +255 -0
  62. package/dist/v0/integrations.js.map +1 -0
  63. package/dist/v0/javascript.d.ts +160 -0
  64. package/dist/v0/javascript.d.ts.map +1 -0
  65. package/dist/v0/javascript.js +123 -0
  66. package/dist/v0/javascript.js.map +1 -0
  67. package/dist/v0/marketplace.d.ts +825 -0
  68. package/dist/v0/marketplace.d.ts.map +1 -0
  69. package/dist/v0/marketplace.js +284 -0
  70. package/dist/v0/marketplace.js.map +1 -0
  71. package/dist/v0/organization.d.ts +182 -0
  72. package/dist/v0/organization.d.ts.map +1 -0
  73. package/dist/v0/organization.js +88 -0
  74. package/dist/v0/organization.js.map +1 -0
  75. package/dist/v0/otp.d.ts +37 -0
  76. package/dist/v0/otp.d.ts.map +1 -0
  77. package/dist/v0/otp.js +29 -0
  78. package/dist/v0/otp.js.map +1 -0
  79. package/dist/v0/pi.d.ts +322 -0
  80. package/dist/v0/pi.d.ts.map +1 -0
  81. package/dist/v0/pi.js +146 -0
  82. package/dist/v0/pi.js.map +1 -0
  83. package/dist/v0/sandbox.d.ts +173 -0
  84. package/dist/v0/sandbox.d.ts.map +1 -0
  85. package/dist/v0/sandbox.js +97 -0
  86. package/dist/v0/sandbox.js.map +1 -0
  87. package/dist/v0/shared/bytes.d.ts +12 -0
  88. package/dist/v0/shared/bytes.d.ts.map +1 -0
  89. package/dist/v0/shared/bytes.js +16 -0
  90. package/dist/v0/shared/bytes.js.map +1 -0
  91. package/dist/v0/shared/datetime.d.ts +10 -0
  92. package/dist/v0/shared/datetime.d.ts.map +1 -0
  93. package/dist/v0/shared/datetime.js +14 -0
  94. package/dist/v0/shared/datetime.js.map +1 -0
  95. package/dist/v0/shared/json.d.ts +9 -0
  96. package/dist/v0/shared/json.d.ts.map +1 -0
  97. package/dist/v0/shared/json.js +14 -0
  98. package/dist/v0/shared/json.js.map +1 -0
  99. package/dist/v0/shared/pagination.d.ts +11 -0
  100. package/dist/v0/shared/pagination.d.ts.map +1 -0
  101. package/dist/v0/shared/pagination.js +11 -0
  102. package/dist/v0/shared/pagination.js.map +1 -0
  103. package/dist/v0/shared/permissions.d.ts +279 -0
  104. package/dist/v0/shared/permissions.d.ts.map +1 -0
  105. package/dist/v0/shared/permissions.js +285 -0
  106. package/dist/v0/shared/permissions.js.map +1 -0
  107. package/dist/v0/shared/pi-agent-name.d.ts +10 -0
  108. package/dist/v0/shared/pi-agent-name.d.ts.map +1 -0
  109. package/dist/v0/shared/pi-agent-name.js +11 -0
  110. package/dist/v0/shared/pi-agent-name.js.map +1 -0
  111. package/dist/v0/shared/scope.d.ts +305 -0
  112. package/dist/v0/shared/scope.d.ts.map +1 -0
  113. package/dist/v0/shared/scope.js +279 -0
  114. package/dist/v0/shared/scope.js.map +1 -0
  115. package/dist/v0/state.d.ts +512 -0
  116. package/dist/v0/state.d.ts.map +1 -0
  117. package/dist/v0/state.js +267 -0
  118. package/dist/v0/state.js.map +1 -0
  119. package/dist/v0/store.d.ts +138 -0
  120. package/dist/v0/store.d.ts.map +1 -0
  121. package/dist/v0/store.js +83 -0
  122. package/dist/v0/store.js.map +1 -0
  123. package/dist/v0/upload.d.ts +568 -0
  124. package/dist/v0/upload.d.ts.map +1 -0
  125. package/dist/v0/upload.js +109 -0
  126. package/dist/v0/upload.js.map +1 -0
  127. package/dist/v0/web.d.ts +47 -0
  128. package/dist/v0/web.d.ts.map +1 -0
  129. package/dist/v0/web.js +31 -0
  130. package/dist/v0/web.js.map +1 -0
  131. package/dist/v0/workflow.d.ts +267 -0
  132. package/dist/v0/workflow.d.ts.map +1 -0
  133. package/dist/v0/workflow.js +116 -0
  134. package/dist/v0/workflow.js.map +1 -0
  135. package/package.json +64 -3
@@ -0,0 +1,279 @@
1
+ import { z } from "zod";
2
+ //#region src/v0/shared/permissions.d.ts
3
+ /**
4
+ * Every permission understood by the Backoffice authorization kernel.
5
+ *
6
+ * Each value is the canonical requirement used by actions, role grants, authority resolvers, and
7
+ * resource policy. Adding an entry expands the authorization vocabulary but does not grant the new
8
+ * permission to any role automatically.
9
+ */
10
+ declare const BACKOFFICE_PERMISSION: {
11
+ readonly account: {
12
+ readonly read: {
13
+ readonly namespace: "account";
14
+ readonly permission: "read";
15
+ };
16
+ readonly manage: {
17
+ readonly namespace: "account";
18
+ readonly permission: "manage";
19
+ };
20
+ };
21
+ readonly admin: {
22
+ readonly appsManage: {
23
+ readonly namespace: "admin";
24
+ readonly permission: "apps.manage";
25
+ };
26
+ readonly appsRead: {
27
+ readonly namespace: "admin";
28
+ readonly permission: "apps.read";
29
+ };
30
+ readonly oauthClientsManage: {
31
+ readonly namespace: "admin";
32
+ readonly permission: "oauth-clients.manage";
33
+ };
34
+ readonly oauthClientsRead: {
35
+ readonly namespace: "admin";
36
+ readonly permission: "oauth-clients.read";
37
+ };
38
+ readonly signUpInvitationsManage: {
39
+ readonly namespace: "admin";
40
+ readonly permission: "sign-up-invitations.manage";
41
+ };
42
+ readonly organizationsManage: {
43
+ readonly namespace: "admin";
44
+ readonly permission: "organizations.manage";
45
+ };
46
+ };
47
+ readonly apps: {
48
+ readonly read: {
49
+ readonly namespace: "apps";
50
+ readonly permission: "read";
51
+ };
52
+ readonly manage: {
53
+ readonly namespace: "apps";
54
+ readonly permission: "manage";
55
+ };
56
+ };
57
+ readonly capabilities: {
58
+ readonly read: {
59
+ readonly namespace: "capabilities";
60
+ readonly permission: "read";
61
+ };
62
+ };
63
+ readonly cloudflare: {
64
+ readonly browserRun: {
65
+ readonly namespace: "cloudflare";
66
+ readonly permission: "browserRun";
67
+ };
68
+ };
69
+ readonly connections: {
70
+ readonly manage: {
71
+ readonly namespace: "connections";
72
+ readonly permission: "manage";
73
+ };
74
+ readonly read: {
75
+ readonly namespace: "connections";
76
+ readonly permission: "read";
77
+ };
78
+ };
79
+ readonly events: {
80
+ readonly emit: {
81
+ readonly namespace: "events";
82
+ readonly permission: "emit";
83
+ };
84
+ readonly manage: {
85
+ readonly namespace: "events";
86
+ readonly permission: "manage";
87
+ };
88
+ readonly read: {
89
+ readonly namespace: "events";
90
+ readonly permission: "read";
91
+ };
92
+ readonly route: {
93
+ readonly namespace: "events";
94
+ readonly permission: "route";
95
+ };
96
+ };
97
+ readonly forms: {
98
+ readonly create: {
99
+ readonly namespace: "forms";
100
+ readonly permission: "create";
101
+ };
102
+ readonly read: {
103
+ readonly namespace: "forms";
104
+ readonly permission: "read";
105
+ };
106
+ readonly update: {
107
+ readonly namespace: "forms";
108
+ readonly permission: "update";
109
+ };
110
+ };
111
+ readonly hooks: {
112
+ readonly read: {
113
+ readonly namespace: "hooks";
114
+ readonly permission: "read";
115
+ };
116
+ };
117
+ readonly identity: {
118
+ readonly link: {
119
+ readonly namespace: "identity";
120
+ readonly permission: "link";
121
+ };
122
+ readonly bind: {
123
+ readonly namespace: "identity";
124
+ readonly permission: "bind";
125
+ };
126
+ readonly read: {
127
+ readonly namespace: "identity";
128
+ readonly permission: "read";
129
+ };
130
+ readonly resolve: {
131
+ readonly namespace: "identity";
132
+ readonly permission: "resolve";
133
+ };
134
+ readonly revoke: {
135
+ readonly namespace: "identity";
136
+ readonly permission: "revoke";
137
+ };
138
+ };
139
+ readonly integrations: {
140
+ readonly read: {
141
+ readonly namespace: "integrations";
142
+ readonly permission: "read";
143
+ };
144
+ readonly manage: {
145
+ readonly namespace: "integrations";
146
+ readonly permission: "manage";
147
+ };
148
+ readonly execute: {
149
+ readonly namespace: "integrations";
150
+ readonly permission: "execute";
151
+ };
152
+ };
153
+ readonly internal: {
154
+ readonly manage: {
155
+ readonly namespace: "internal";
156
+ readonly permission: "manage";
157
+ };
158
+ };
159
+ readonly org: {
160
+ readonly read: {
161
+ readonly namespace: "org";
162
+ readonly permission: "read";
163
+ };
164
+ readonly manage: {
165
+ readonly namespace: "org";
166
+ readonly permission: "manage";
167
+ };
168
+ };
169
+ readonly marketplace: {
170
+ readonly read: {
171
+ readonly namespace: "marketplace";
172
+ readonly permission: "read";
173
+ };
174
+ readonly publish: {
175
+ readonly namespace: "marketplace";
176
+ readonly permission: "publish";
177
+ };
178
+ readonly feature: {
179
+ readonly namespace: "marketplace";
180
+ readonly permission: "feature";
181
+ };
182
+ };
183
+ readonly packages: {
184
+ readonly read: {
185
+ readonly namespace: "packages";
186
+ readonly permission: "read";
187
+ };
188
+ readonly install: {
189
+ readonly namespace: "packages";
190
+ readonly permission: "install";
191
+ };
192
+ };
193
+ readonly otp: {
194
+ readonly create: {
195
+ readonly namespace: "otp";
196
+ readonly permission: "create";
197
+ };
198
+ };
199
+ readonly pi: {
200
+ readonly manage: {
201
+ readonly namespace: "pi";
202
+ readonly permission: "manage";
203
+ };
204
+ readonly modify: {
205
+ readonly namespace: "pi";
206
+ readonly permission: "modify";
207
+ };
208
+ readonly read: {
209
+ readonly namespace: "pi";
210
+ readonly permission: "read";
211
+ };
212
+ };
213
+ readonly router: {
214
+ readonly modify: {
215
+ readonly namespace: "router";
216
+ readonly permission: "modify";
217
+ };
218
+ readonly read: {
219
+ readonly namespace: "router";
220
+ readonly permission: "read";
221
+ };
222
+ };
223
+ readonly sandbox: {
224
+ readonly modify: {
225
+ readonly namespace: "sandbox";
226
+ readonly permission: "modify";
227
+ };
228
+ readonly read: {
229
+ readonly namespace: "sandbox";
230
+ readonly permission: "read";
231
+ };
232
+ };
233
+ readonly store: {
234
+ readonly modify: {
235
+ readonly namespace: "store";
236
+ readonly permission: "modify";
237
+ };
238
+ readonly read: {
239
+ readonly namespace: "store";
240
+ readonly permission: "read";
241
+ };
242
+ };
243
+ readonly upload: {
244
+ readonly modify: {
245
+ readonly namespace: "upload";
246
+ readonly permission: "modify";
247
+ };
248
+ readonly read: {
249
+ readonly namespace: "upload";
250
+ readonly permission: "read";
251
+ };
252
+ };
253
+ readonly workflow: {
254
+ readonly executeCode: {
255
+ readonly namespace: "workflow";
256
+ readonly permission: "executeCode";
257
+ };
258
+ readonly modify: {
259
+ readonly namespace: "workflow";
260
+ readonly permission: "modify";
261
+ };
262
+ readonly read: {
263
+ readonly namespace: "workflow";
264
+ readonly permission: "read";
265
+ };
266
+ };
267
+ };
268
+ type ValueOf<T> = T[keyof T];
269
+ type BackofficePermissionNamespace = keyof typeof BACKOFFICE_PERMISSION;
270
+ /** A valid namespace-permission pair checked by the kernel. */
271
+ type BackofficePermissionRequirement = ValueOf<{ [TNamespace in BackofficePermissionNamespace]: ValueOf<(typeof BACKOFFICE_PERMISSION)[TNamespace]>; }>;
272
+ /** The complete finite permission set used by explicitly unrestricted authority roles. */
273
+ declare const allBackofficePermissionRequirements: BackofficePermissionRequirement[];
274
+ type BackofficePermissionRequirementSchema = z.ZodType<BackofficePermissionRequirement>;
275
+ /** Validates one canonical namespace-permission pair at an untrusted configuration boundary. */
276
+ declare const backofficePermissionRequirementSchema: BackofficePermissionRequirementSchema;
277
+ //#endregion
278
+ export { BACKOFFICE_PERMISSION, BackofficePermissionNamespace, BackofficePermissionRequirement, allBackofficePermissionRequirements, backofficePermissionRequirementSchema };
279
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","names":[],"sources":["../../../src/v0/shared/permissions.ts"],"mappings":";;;;;;;;;cASa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuGR,QAAQ,KAAK,QAAQ;KAEd,6CAA6C;;KAG7C,kCAAkC,WAC3C,cAAc,gCAAgC,gBACrC,uBAAuB;;cAStB,qCAAmC;KAI3C,wCAAwC,EAAE,QAAQ;;cAoC1C,uCAAqC"}
@@ -0,0 +1,285 @@
1
+ import { z } from "zod";
2
+ //#region src/v0/shared/permissions.ts
3
+ /**
4
+ * Every permission understood by the Backoffice authorization kernel.
5
+ *
6
+ * Each value is the canonical requirement used by actions, role grants, authority resolvers, and
7
+ * resource policy. Adding an entry expands the authorization vocabulary but does not grant the new
8
+ * permission to any role automatically.
9
+ */
10
+ const BACKOFFICE_PERMISSION = {
11
+ account: {
12
+ read: {
13
+ namespace: "account",
14
+ permission: "read"
15
+ },
16
+ manage: {
17
+ namespace: "account",
18
+ permission: "manage"
19
+ }
20
+ },
21
+ admin: {
22
+ appsManage: {
23
+ namespace: "admin",
24
+ permission: "apps.manage"
25
+ },
26
+ appsRead: {
27
+ namespace: "admin",
28
+ permission: "apps.read"
29
+ },
30
+ oauthClientsManage: {
31
+ namespace: "admin",
32
+ permission: "oauth-clients.manage"
33
+ },
34
+ oauthClientsRead: {
35
+ namespace: "admin",
36
+ permission: "oauth-clients.read"
37
+ },
38
+ signUpInvitationsManage: {
39
+ namespace: "admin",
40
+ permission: "sign-up-invitations.manage"
41
+ },
42
+ organizationsManage: {
43
+ namespace: "admin",
44
+ permission: "organizations.manage"
45
+ }
46
+ },
47
+ apps: {
48
+ read: {
49
+ namespace: "apps",
50
+ permission: "read"
51
+ },
52
+ manage: {
53
+ namespace: "apps",
54
+ permission: "manage"
55
+ }
56
+ },
57
+ capabilities: { read: {
58
+ namespace: "capabilities",
59
+ permission: "read"
60
+ } },
61
+ cloudflare: { browserRun: {
62
+ namespace: "cloudflare",
63
+ permission: "browserRun"
64
+ } },
65
+ connections: {
66
+ manage: {
67
+ namespace: "connections",
68
+ permission: "manage"
69
+ },
70
+ read: {
71
+ namespace: "connections",
72
+ permission: "read"
73
+ }
74
+ },
75
+ events: {
76
+ emit: {
77
+ namespace: "events",
78
+ permission: "emit"
79
+ },
80
+ manage: {
81
+ namespace: "events",
82
+ permission: "manage"
83
+ },
84
+ read: {
85
+ namespace: "events",
86
+ permission: "read"
87
+ },
88
+ route: {
89
+ namespace: "events",
90
+ permission: "route"
91
+ }
92
+ },
93
+ forms: {
94
+ create: {
95
+ namespace: "forms",
96
+ permission: "create"
97
+ },
98
+ read: {
99
+ namespace: "forms",
100
+ permission: "read"
101
+ },
102
+ update: {
103
+ namespace: "forms",
104
+ permission: "update"
105
+ }
106
+ },
107
+ hooks: { read: {
108
+ namespace: "hooks",
109
+ permission: "read"
110
+ } },
111
+ identity: {
112
+ link: {
113
+ namespace: "identity",
114
+ permission: "link"
115
+ },
116
+ bind: {
117
+ namespace: "identity",
118
+ permission: "bind"
119
+ },
120
+ read: {
121
+ namespace: "identity",
122
+ permission: "read"
123
+ },
124
+ resolve: {
125
+ namespace: "identity",
126
+ permission: "resolve"
127
+ },
128
+ revoke: {
129
+ namespace: "identity",
130
+ permission: "revoke"
131
+ }
132
+ },
133
+ integrations: {
134
+ read: {
135
+ namespace: "integrations",
136
+ permission: "read"
137
+ },
138
+ manage: {
139
+ namespace: "integrations",
140
+ permission: "manage"
141
+ },
142
+ execute: {
143
+ namespace: "integrations",
144
+ permission: "execute"
145
+ }
146
+ },
147
+ internal: { manage: {
148
+ namespace: "internal",
149
+ permission: "manage"
150
+ } },
151
+ org: {
152
+ read: {
153
+ namespace: "org",
154
+ permission: "read"
155
+ },
156
+ manage: {
157
+ namespace: "org",
158
+ permission: "manage"
159
+ }
160
+ },
161
+ marketplace: {
162
+ read: {
163
+ namespace: "marketplace",
164
+ permission: "read"
165
+ },
166
+ publish: {
167
+ namespace: "marketplace",
168
+ permission: "publish"
169
+ },
170
+ feature: {
171
+ namespace: "marketplace",
172
+ permission: "feature"
173
+ }
174
+ },
175
+ packages: {
176
+ read: {
177
+ namespace: "packages",
178
+ permission: "read"
179
+ },
180
+ install: {
181
+ namespace: "packages",
182
+ permission: "install"
183
+ }
184
+ },
185
+ otp: { create: {
186
+ namespace: "otp",
187
+ permission: "create"
188
+ } },
189
+ pi: {
190
+ manage: {
191
+ namespace: "pi",
192
+ permission: "manage"
193
+ },
194
+ modify: {
195
+ namespace: "pi",
196
+ permission: "modify"
197
+ },
198
+ read: {
199
+ namespace: "pi",
200
+ permission: "read"
201
+ }
202
+ },
203
+ router: {
204
+ modify: {
205
+ namespace: "router",
206
+ permission: "modify"
207
+ },
208
+ read: {
209
+ namespace: "router",
210
+ permission: "read"
211
+ }
212
+ },
213
+ sandbox: {
214
+ modify: {
215
+ namespace: "sandbox",
216
+ permission: "modify"
217
+ },
218
+ read: {
219
+ namespace: "sandbox",
220
+ permission: "read"
221
+ }
222
+ },
223
+ store: {
224
+ modify: {
225
+ namespace: "store",
226
+ permission: "modify"
227
+ },
228
+ read: {
229
+ namespace: "store",
230
+ permission: "read"
231
+ }
232
+ },
233
+ upload: {
234
+ modify: {
235
+ namespace: "upload",
236
+ permission: "modify"
237
+ },
238
+ read: {
239
+ namespace: "upload",
240
+ permission: "read"
241
+ }
242
+ },
243
+ workflow: {
244
+ executeCode: {
245
+ namespace: "workflow",
246
+ permission: "executeCode"
247
+ },
248
+ modify: {
249
+ namespace: "workflow",
250
+ permission: "modify"
251
+ },
252
+ read: {
253
+ namespace: "workflow",
254
+ permission: "read"
255
+ }
256
+ }
257
+ };
258
+ /** The complete finite permission set used by explicitly unrestricted authority roles. */
259
+ const allBackofficePermissionRequirements = Object.values(BACKOFFICE_PERMISSION).flatMap((namespacePermissions) => Object.values(namespacePermissions));
260
+ function backofficePermissionInputKey(input) {
261
+ if (!input || typeof input !== "object" || Array.isArray(input)) return null;
262
+ const { namespace, permission } = input;
263
+ return typeof namespace === "string" && typeof permission === "string" ? `${namespace}.${permission}` : null;
264
+ }
265
+ function createBackofficePermissionRequirementSchema() {
266
+ const [first, second, ...remaining] = allBackofficePermissionRequirements.map((requirement) => z.strictObject({
267
+ namespace: z.literal(requirement.namespace),
268
+ permission: z.literal(requirement.permission)
269
+ }));
270
+ if (!first || !second) throw new Error("Backoffice authorization requires at least two canonical permissions.");
271
+ return z.union([
272
+ first,
273
+ second,
274
+ ...remaining
275
+ ], { error: (issue) => {
276
+ const key = backofficePermissionInputKey(issue.input);
277
+ return key ? `Unknown Backoffice permission '${key}'.` : "Unknown Backoffice permission.";
278
+ } }).meta({ id: "BackofficePermissionRequirement" });
279
+ }
280
+ /** Validates one canonical namespace-permission pair at an untrusted configuration boundary. */
281
+ const backofficePermissionRequirementSchema = createBackofficePermissionRequirementSchema();
282
+ //#endregion
283
+ export { BACKOFFICE_PERMISSION, allBackofficePermissionRequirements, backofficePermissionRequirementSchema };
284
+
285
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","names":[],"sources":["../../../src/v0/shared/permissions.ts"],"sourcesContent":["import { z } from \"zod\";\n\n/**\n * Every permission understood by the Backoffice authorization kernel.\n *\n * Each value is the canonical requirement used by actions, role grants, authority resolvers, and\n * resource policy. Adding an entry expands the authorization vocabulary but does not grant the new\n * permission to any role automatically.\n */\nexport const BACKOFFICE_PERMISSION = {\n account: {\n read: { namespace: \"account\", permission: \"read\" },\n manage: { namespace: \"account\", permission: \"manage\" },\n },\n admin: {\n appsManage: { namespace: \"admin\", permission: \"apps.manage\" },\n appsRead: { namespace: \"admin\", permission: \"apps.read\" },\n oauthClientsManage: { namespace: \"admin\", permission: \"oauth-clients.manage\" },\n oauthClientsRead: { namespace: \"admin\", permission: \"oauth-clients.read\" },\n signUpInvitationsManage: {\n namespace: \"admin\",\n permission: \"sign-up-invitations.manage\",\n },\n organizationsManage: { namespace: \"admin\", permission: \"organizations.manage\" },\n },\n apps: {\n read: { namespace: \"apps\", permission: \"read\" },\n manage: { namespace: \"apps\", permission: \"manage\" },\n },\n capabilities: {\n read: { namespace: \"capabilities\", permission: \"read\" },\n },\n cloudflare: {\n browserRun: { namespace: \"cloudflare\", permission: \"browserRun\" },\n },\n connections: {\n manage: { namespace: \"connections\", permission: \"manage\" },\n read: { namespace: \"connections\", permission: \"read\" },\n },\n events: {\n emit: { namespace: \"events\", permission: \"emit\" },\n manage: { namespace: \"events\", permission: \"manage\" },\n read: { namespace: \"events\", permission: \"read\" },\n route: { namespace: \"events\", permission: \"route\" },\n },\n forms: {\n create: { namespace: \"forms\", permission: \"create\" },\n read: { namespace: \"forms\", permission: \"read\" },\n update: { namespace: \"forms\", permission: \"update\" },\n },\n hooks: {\n read: { namespace: \"hooks\", permission: \"read\" },\n },\n identity: {\n link: { namespace: \"identity\", permission: \"link\" },\n bind: { namespace: \"identity\", permission: \"bind\" },\n read: { namespace: \"identity\", permission: \"read\" },\n resolve: { namespace: \"identity\", permission: \"resolve\" },\n revoke: { namespace: \"identity\", permission: \"revoke\" },\n },\n integrations: {\n read: { namespace: \"integrations\", permission: \"read\" },\n manage: { namespace: \"integrations\", permission: \"manage\" },\n execute: { namespace: \"integrations\", permission: \"execute\" },\n },\n internal: {\n manage: { namespace: \"internal\", permission: \"manage\" },\n },\n org: {\n read: { namespace: \"org\", permission: \"read\" },\n manage: { namespace: \"org\", permission: \"manage\" },\n },\n marketplace: {\n read: { namespace: \"marketplace\", permission: \"read\" },\n publish: { namespace: \"marketplace\", permission: \"publish\" },\n feature: { namespace: \"marketplace\", permission: \"feature\" },\n },\n packages: {\n read: { namespace: \"packages\", permission: \"read\" },\n install: { namespace: \"packages\", permission: \"install\" },\n },\n otp: {\n create: { namespace: \"otp\", permission: \"create\" },\n },\n pi: {\n manage: { namespace: \"pi\", permission: \"manage\" },\n modify: { namespace: \"pi\", permission: \"modify\" },\n read: { namespace: \"pi\", permission: \"read\" },\n },\n router: {\n modify: { namespace: \"router\", permission: \"modify\" },\n read: { namespace: \"router\", permission: \"read\" },\n },\n sandbox: {\n modify: { namespace: \"sandbox\", permission: \"modify\" },\n read: { namespace: \"sandbox\", permission: \"read\" },\n },\n store: {\n modify: { namespace: \"store\", permission: \"modify\" },\n read: { namespace: \"store\", permission: \"read\" },\n },\n upload: {\n modify: { namespace: \"upload\", permission: \"modify\" },\n read: { namespace: \"upload\", permission: \"read\" },\n },\n workflow: {\n executeCode: { namespace: \"workflow\", permission: \"executeCode\" },\n modify: { namespace: \"workflow\", permission: \"modify\" },\n read: { namespace: \"workflow\", permission: \"read\" },\n },\n} as const;\n\ntype ValueOf<T> = T[keyof T];\n\nexport type BackofficePermissionNamespace = keyof typeof BACKOFFICE_PERMISSION;\n\n/** A valid namespace-permission pair checked by the kernel. */\nexport type BackofficePermissionRequirement = ValueOf<{\n [TNamespace in BackofficePermissionNamespace]: ValueOf<\n (typeof BACKOFFICE_PERMISSION)[TNamespace]\n >;\n}>;\n\nconst backofficePermissionNamespaces = Object.values(BACKOFFICE_PERMISSION) as readonly Readonly<\n Record<string, BackofficePermissionRequirement>\n>[];\n\n/** The complete finite permission set used by explicitly unrestricted authority roles. */\nexport const allBackofficePermissionRequirements = backofficePermissionNamespaces.flatMap(\n (namespacePermissions) => Object.values(namespacePermissions),\n);\n\ntype BackofficePermissionRequirementSchema = z.ZodType<BackofficePermissionRequirement>;\n\nfunction backofficePermissionInputKey(input: unknown): string | null {\n if (!input || typeof input !== \"object\" || Array.isArray(input)) {\n return null;\n }\n const { namespace, permission } = input as { namespace?: unknown; permission?: unknown };\n return typeof namespace === \"string\" && typeof permission === \"string\"\n ? `${namespace}.${permission}`\n : null;\n}\n\nfunction createBackofficePermissionRequirementSchema(): BackofficePermissionRequirementSchema {\n const literalSchemas = allBackofficePermissionRequirements.map(\n (requirement) =>\n z.strictObject({\n namespace: z.literal(requirement.namespace),\n permission: z.literal(requirement.permission),\n }) as BackofficePermissionRequirementSchema,\n );\n const [first, second, ...remaining] = literalSchemas;\n if (!first || !second) {\n throw new Error(\"Backoffice authorization requires at least two canonical permissions.\");\n }\n\n return z\n .union([first, second, ...remaining], {\n error: (issue) => {\n const key = backofficePermissionInputKey(issue.input);\n return key ? `Unknown Backoffice permission '${key}'.` : \"Unknown Backoffice permission.\";\n },\n })\n .meta({ id: \"BackofficePermissionRequirement\" }) as BackofficePermissionRequirementSchema;\n}\n\n/** Validates one canonical namespace-permission pair at an untrusted configuration boundary. */\nexport const backofficePermissionRequirementSchema = createBackofficePermissionRequirementSchema();\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ //#region src/v0/shared/pi-agent-name.d.ts
3
+ /**
4
+ * Agent names identify an agent's definition and its one ongoing conversation within a scope.
5
+ * Shared because automation routes address agents too, and `pi` already depends on `automation`.
6
+ */
7
+ declare const piAgentNameSchema: z.ZodLazy<z.ZodString>;
8
+ //#endregion
9
+ export { piAgentNameSchema };
10
+ //# sourceMappingURL=pi-agent-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-agent-name.d.ts","names":[],"sources":["../../../src/v0/shared/pi-agent-name.ts"],"mappings":";;;;;;cAMa,mBAAiB,EAAA,QAAA,EAAA"}
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ //#region src/v0/shared/pi-agent-name.ts
3
+ /**
4
+ * Agent names identify an agent's definition and its one ongoing conversation within a scope.
5
+ * Shared because automation routes address agents too, and `pi` already depends on `automation`.
6
+ */
7
+ const piAgentNameSchema = z.lazy(() => z.string().regex(/^[a-z][a-z0-9-]{0,62}$/, "Agent names start with a lowercase letter and contain only lowercase letters, digits, and hyphens."));
8
+ //#endregion
9
+ export { piAgentNameSchema };
10
+
11
+ //# sourceMappingURL=pi-agent-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-agent-name.js","names":[],"sources":["../../../src/v0/shared/pi-agent-name.ts"],"sourcesContent":["import { z } from \"zod\";\n\n/**\n * Agent names identify an agent's definition and its one ongoing conversation within a scope.\n * Shared because automation routes address agents too, and `pi` already depends on `automation`.\n */\nexport const piAgentNameSchema = z.lazy(() =>\n z\n .string()\n .regex(\n /^[a-z][a-z0-9-]{0,62}$/,\n \"Agent names start with a lowercase letter and contain only lowercase letters, digits, and hyphens.\",\n ),\n);\n"],"mappings":";;;;;;AAMA,MAAa,oBAAoB,EAAE,WACjC,EACG,OAAO,CAAC,CACR,MACC,0BACA,oGACF,CACJ"}