opacacms 0.2.1 → 0.3.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.
Files changed (185) hide show
  1. package/README.md +31 -22
  2. package/dist/admin/auth-client.d.ts +39 -39
  3. package/dist/admin/index.d.ts +2 -2
  4. package/dist/admin/index.js +15 -10520
  5. package/dist/admin/plugin-client.d.ts +65 -0
  6. package/dist/admin/react.d.ts +2 -2
  7. package/dist/admin/react.js +34 -4
  8. package/dist/admin/stores/ui.d.ts +19 -4
  9. package/dist/admin/ui/components/PluginSettingsForm.d.ts +2 -2
  10. package/dist/admin/ui/components/custom-alert.d.ts +7 -0
  11. package/dist/admin/ui/components/{DetailSheet.d.ts → detail-sheet.d.ts} +1 -2
  12. package/dist/admin/ui/components/fields/FieldLabel.d.ts +1 -1
  13. package/dist/admin/ui/components/fields/RelationshipField.d.ts +1 -1
  14. package/dist/admin/ui/components/media/AssetManagerModal.d.ts +2 -2
  15. package/dist/admin/ui/components/plugin-iframe.d.ts +7 -0
  16. package/dist/admin/ui/components/ui/accordion.d.ts +17 -7
  17. package/dist/admin/ui/components/ui/alert-dialog.d.ts +16 -12
  18. package/dist/admin/ui/components/ui/button.d.ts +11 -7
  19. package/dist/admin/ui/components/ui/relationship.d.ts +1 -1
  20. package/dist/admin/ui/components/ui/sheet.d.ts +14 -27
  21. package/dist/admin/ui/components/ui/tooltip.d.ts +7 -0
  22. package/dist/admin/ui/components/versions-sheet.d.ts +4 -5
  23. package/dist/admin/ui/views/collection-list-view.d.ts +1 -1
  24. package/dist/admin/ui/views/dashboard-view.d.ts +1 -1
  25. package/dist/admin/ui/views/media-registry-view.d.ts +3 -3
  26. package/dist/admin/ui/views/settings-view.d.ts +2 -2
  27. package/dist/admin/vue.js +27 -4
  28. package/dist/admin/webcomponent.js +66 -16
  29. package/dist/admin.css +1 -1
  30. package/dist/auth/index.d.ts +43 -43
  31. package/dist/{chunk-7y1nbmw6.js → chunk-1bd7fz7n.js} +32 -2
  32. package/dist/chunk-1qm0m8r8.js +413 -0
  33. package/dist/chunk-2k3ysje3.js +31 -0
  34. package/dist/{chunk-jdfw4v3r.js → chunk-3j9zjfmn.js} +95 -30
  35. package/dist/{chunk-byq8g0rd.js → chunk-48ywpd0a.js} +16 -22
  36. package/dist/{chunk-tfnaf41w.js → chunk-5422w4eq.js} +41 -25
  37. package/dist/chunk-56n342hs.js +95 -0
  38. package/dist/chunk-5b8r0v8c.js +47 -0
  39. package/dist/chunk-63yg00vx.js +263 -0
  40. package/dist/{chunk-8sqjbsgt.js → chunk-6bywt602.js} +26 -1
  41. package/dist/{chunk-v9z61v3g.js → chunk-6qs0g65f.js} +43 -3
  42. package/dist/chunk-7rr5p01g.js +581 -0
  43. package/dist/{chunk-2es275xs.js → chunk-941zxavt.js} +867 -322
  44. package/dist/{chunk-51z3x7kq.js → chunk-a3qae86h.js} +1 -1
  45. package/dist/{chunk-3rdhbedb.js → chunk-adq2b75c.js} +2 -2
  46. package/dist/chunk-d0tb1xjw.js +93 -0
  47. package/dist/chunk-d7cgd6vn.js +318 -0
  48. package/dist/{chunk-6d1vdfwa.js → chunk-e0g6gn7n.js} +54 -75
  49. package/dist/chunk-ec4jhybj.js +1137 -0
  50. package/dist/chunk-fatyf6f7.js +221 -0
  51. package/dist/{chunk-526a3gqx.js → chunk-fnsf1dfm.js} +1 -1
  52. package/dist/chunk-g9bxb6h0.js +205 -0
  53. package/dist/chunk-gyaf5kgf.js +10 -0
  54. package/dist/{chunk-9kxpbcb1.js → chunk-h6dhexzr.js} +16 -7
  55. package/dist/{chunk-dykn5hr6.js → chunk-j8js1y0h.js} +31 -74
  56. package/dist/{chunk-t0zg026p.js → chunk-jq1drsen.js} +12 -1
  57. package/dist/{chunk-b3kr8w41.js → chunk-m24yqkeq.js} +38 -26
  58. package/dist/chunk-m5ems3hh.js +410 -0
  59. package/dist/{chunk-8scgdznr.js → chunk-m83ybzf8.js} +15 -18
  60. package/dist/chunk-majsbncm.js +98 -0
  61. package/dist/chunk-mp2gt9yh.js +237 -0
  62. package/dist/chunk-n1twhqmf.js +54 -0
  63. package/dist/{chunk-bygjkgrx.js → chunk-naqcqj8n.js} +57 -80
  64. package/dist/chunk-q5sb5dcr.js +15 -0
  65. package/dist/{chunk-06ks4ggh.js → chunk-qhdsjek6.js} +49 -89
  66. package/dist/{chunk-n133qpsm.js → chunk-qsh2nqz3.js} +50 -81
  67. package/dist/chunk-r0ms5tk1.js +76 -0
  68. package/dist/chunk-rwqwsanx.js +75 -0
  69. package/dist/chunk-sqsfk9p4.js +700 -0
  70. package/dist/{chunk-5gvbp2qa.js → chunk-x7bnzswh.js} +25 -18
  71. package/dist/cli/commands/dev.d.ts +8 -0
  72. package/dist/cli/commands/doctor.d.ts +8 -0
  73. package/dist/cli/commands/generate.d.ts +26 -0
  74. package/dist/cli/commands/init.d.ts +13 -1
  75. package/dist/cli/commands/migrate.d.ts +33 -0
  76. package/dist/cli/commands/plugin.d.ts +13 -0
  77. package/dist/cli/commands/seed.d.ts +21 -0
  78. package/dist/cli/{commands/migrate-commands.d.ts → core/migrations/migrate-logic.d.ts} +2 -2
  79. package/dist/cli/core/migrations/schema-diff-engine.d.ts +12 -0
  80. package/dist/cli/core/migrations/schema-diff.d.ts +11 -0
  81. package/dist/cli/{seeding.d.ts → core/seeding/auto-seed.d.ts} +7 -4
  82. package/dist/cli/core/seeding/seed-logic.d.ts +2 -0
  83. package/dist/cli/index.d.ts +4 -0
  84. package/dist/cli/index.js +6 -170
  85. package/dist/client/RichText.d.ts +5 -0
  86. package/dist/client/rich-text-utils.d.ts +5 -0
  87. package/dist/client.js +3 -2
  88. package/dist/config.d.ts +3 -3
  89. package/dist/db/better-sqlite.d.ts +2 -3
  90. package/dist/db/better-sqlite.js +6 -5
  91. package/dist/db/bun-sqlite.d.ts +2 -3
  92. package/dist/db/bun-sqlite.js +6 -5
  93. package/dist/db/d1.d.ts +13 -7
  94. package/dist/db/d1.js +6 -5
  95. package/dist/db/index.d.ts +2 -2
  96. package/dist/db/index.js +10 -12
  97. package/dist/db/kysely/factory.d.ts +29 -0
  98. package/dist/db/kysely/plugins/audit-logging.d.ts +48 -0
  99. package/dist/db/kysely/plugins/auto-timestamps.d.ts +38 -0
  100. package/dist/db/kysely/plugins/cursor-pagination.d.ts +42 -0
  101. package/dist/db/kysely/plugins/deadlock-handler.d.ts +47 -0
  102. package/dist/db/kysely/plugins/draft-swapper.d.ts +33 -0
  103. package/dist/db/kysely/plugins/field-masking.d.ts +45 -0
  104. package/dist/db/kysely/plugins/fts-normalizer.d.ts +38 -0
  105. package/dist/db/kysely/plugins/i18n-fallback.d.ts +48 -0
  106. package/dist/db/kysely/plugins/id-generation.d.ts +42 -0
  107. package/dist/db/kysely/plugins/index.d.ts +16 -0
  108. package/dist/db/kysely/plugins/json-flattener.d.ts +38 -0
  109. package/dist/db/kysely/plugins/relationship-preloading.d.ts +39 -0
  110. package/dist/db/kysely/plugins/slug-generation.d.ts +37 -0
  111. package/dist/db/kysely/plugins/soft-delete.d.ts +42 -0
  112. package/dist/db/kysely/plugins/tree-resolver.d.ts +39 -0
  113. package/dist/db/kysely/plugins/virtual-field-resolver.d.ts +54 -0
  114. package/dist/db/kysely/plugins/zod-coercion.d.ts +34 -0
  115. package/dist/db/kysely/snapshot/snapshot-manager.d.ts +18 -0
  116. package/dist/db/postgres.d.ts +2 -2
  117. package/dist/db/postgres.js +6 -5
  118. package/dist/db/sqlite.d.ts +2 -3
  119. package/dist/db/sqlite.js +6 -5
  120. package/dist/index.d.ts +3 -0
  121. package/dist/index.js +161 -7
  122. package/dist/runtimes/bun.js +9 -6
  123. package/dist/runtimes/cloudflare-workers.d.ts +3 -1
  124. package/dist/runtimes/cloudflare-workers.js +36 -7
  125. package/dist/runtimes/next.js +8 -5
  126. package/dist/runtimes/node.js +9 -6
  127. package/dist/schema/collection.d.ts +116 -70
  128. package/dist/schema/compiler.d.ts +6 -0
  129. package/dist/schema/global.d.ts +38 -71
  130. package/dist/schema/index.d.ts +5 -4
  131. package/dist/schema/index.js +35 -550
  132. package/dist/schema/zod.d.ts +564 -0
  133. package/dist/server/admin-router.d.ts +1 -1
  134. package/dist/server/collection-router.d.ts +1 -1
  135. package/dist/server/graphql.d.ts +6 -0
  136. package/dist/server/handlers.d.ts +25 -7
  137. package/dist/server/middlewares/auth.d.ts +1 -1
  138. package/dist/server/plugins-loader.d.ts +1 -1
  139. package/dist/server/router.d.ts +2 -2
  140. package/dist/server/routers/admin.d.ts +1 -1
  141. package/dist/server/routers/auth.d.ts +1 -1
  142. package/dist/server/routers/collections.d.ts +4 -1
  143. package/dist/server/routers/plugins.d.ts +2 -2
  144. package/dist/server/setup-middlewares.d.ts +1 -1
  145. package/dist/server/system-router.d.ts +1 -1
  146. package/dist/server.js +11 -6
  147. package/dist/storage/adapters/cloudflare-r2.d.ts +11 -2
  148. package/dist/storage/index.js +5 -5
  149. package/dist/types.d.ts +253 -42
  150. package/dist/utils/context.d.ts +14 -0
  151. package/dist/utils/logger.d.ts +2 -0
  152. package/dist/utils/string.d.ts +10 -0
  153. package/dist/utils/webhooks-engine.d.ts +24 -0
  154. package/dist/validation.d.ts +67 -1
  155. package/dist/validator.d.ts +1 -0
  156. package/package.json +50 -11
  157. package/src/cli/index.ts +117 -0
  158. package/dist/chunk-6qq3ne6b.js +0 -288
  159. package/dist/chunk-6v1fw7q7.js +0 -126
  160. package/dist/chunk-7a9kn0np.js +0 -116
  161. package/dist/chunk-bexcv7xe.js +0 -36
  162. package/dist/chunk-d3ffeqp9.js +0 -87
  163. package/dist/chunk-fj19qccp.js +0 -78
  164. package/dist/chunk-g1jb60xd.js +0 -17
  165. package/dist/chunk-j53pz21t.js +0 -20
  166. package/dist/chunk-mkn49zmy.js +0 -102
  167. package/dist/chunk-r39em4yj.js +0 -29
  168. package/dist/chunk-rsf0tpy1.js +0 -8
  169. package/dist/chunk-srsac177.js +0 -85
  170. package/dist/chunk-twpvxfce.js +0 -64
  171. package/dist/chunk-ywm4t2gm.js +0 -19
  172. package/dist/cli/commands/plugin-sync.d.ts +0 -1
  173. package/dist/cli/commands/seed-command.d.ts +0 -2
  174. package/dist/plugins/ui-bridge.d.ts +0 -12
  175. package/dist/schema/fields/base.d.ts +0 -84
  176. package/dist/schema/fields/index.d.ts +0 -147
  177. package/dist/schema/infer.d.ts +0 -55
  178. /package/dist/admin/ui/components/{ColumnVisibilityToggle.d.ts → column-visibility-toggle.d.ts} +0 -0
  179. /package/dist/admin/ui/components/{DataDetailView.d.ts → data-detail-view.d.ts} +0 -0
  180. /package/dist/cli/{d1-mock.d.ts → core/mocks/d1-mock.d.ts} +0 -0
  181. /package/dist/cli/{r2-mock.d.ts → core/mocks/r2-mock.d.ts} +0 -0
  182. /package/dist/cli/{commands → core/plugins}/plugin-build.d.ts +0 -0
  183. /package/dist/cli/{commands → core/plugins}/plugin-init.d.ts +0 -0
  184. /package/dist/cli/{commands → core/types}/generate-types.d.ts +0 -0
  185. /package/dist/{schema/fields/validation.test.d.ts → cli/seeding.test.d.ts} +0 -0
@@ -1,552 +1,37 @@
1
- import"../chunk-8sqjbsgt.js";
2
-
3
- // src/schema/fields/base.ts
4
- class FieldBuilder {
5
- type;
6
- name;
7
- config = {};
8
- constructor(type, name) {
9
- this.type = type;
10
- this.name = name;
11
- this.config = { type, name };
12
- }
13
- label(label) {
14
- this.config.label = label;
15
- return this;
16
- }
17
- placeholder(text) {
18
- this.config.placeholder = text;
19
- return this;
20
- }
21
- required(val = true) {
22
- this.config.required = val;
23
- return this;
24
- }
25
- unique(val = true) {
26
- this.config.unique = val;
27
- return this;
28
- }
29
- localized(val = true) {
30
- this.config.localized = val;
31
- return this;
32
- }
33
- defaultValue(val) {
34
- this.config.defaultValue = val;
35
- return this;
36
- }
37
- validate(val) {
38
- this.config.validate = val;
39
- return this;
40
- }
41
- access(config) {
42
- this.config.access = config;
43
- return this;
44
- }
45
- description(text) {
46
- this._ensureAdmin();
47
- this.config.admin.description = text;
48
- return this;
49
- }
50
- admin(opts) {
51
- this._ensureAdmin();
52
- this.config.admin = { ...this.config.admin, ...opts };
53
- return this;
54
- }
55
- hidden(val = true) {
56
- this._ensureAdmin();
57
- this.config.admin.hidden = val;
58
- return this;
59
- }
60
- readOnly(val = true) {
61
- this._ensureAdmin();
62
- this.config.admin.readOnly = val;
63
- return this;
64
- }
65
- extend(opts) {
66
- this.config = { ...this.config, ...opts };
67
- return this;
68
- }
69
- _ensureAdmin() {
70
- if (!this.config.admin) {
71
- this.config.admin = {};
72
- }
73
- }
74
- _ensureOptions() {
75
- if (!this.config.options) {
76
- this.config.options = {};
77
- }
78
- }
79
- build() {
80
- return this.config;
81
- }
82
- }
83
-
84
- // src/schema/fields/index.ts
85
- class TextFieldBuilder extends FieldBuilder {
86
- constructor(name) {
87
- super("text", name);
88
- }
89
- }
90
-
91
- class SlugFieldBuilder extends FieldBuilder {
92
- constructor(name) {
93
- super("slug", name);
94
- }
95
- from(sourceField) {
96
- this.config.from = sourceField;
97
- return this;
98
- }
99
- format(fn) {
100
- this.config.format = fn;
101
- return this;
102
- }
103
- }
104
-
105
- class TextAreaFieldBuilder extends FieldBuilder {
106
- constructor(name) {
107
- super("textarea", name);
108
- }
109
- }
110
-
111
- class NumberFieldBuilder extends FieldBuilder {
112
- constructor(name) {
113
- super("number", name);
114
- }
115
- min(val) {
116
- this._ensureOptions();
117
- this.config.options.min = val;
118
- return this;
119
- }
120
- max(val) {
121
- this._ensureOptions();
122
- this.config.options.max = val;
123
- return this;
124
- }
125
- }
126
-
127
- class BooleanFieldBuilder extends FieldBuilder {
128
- constructor(name) {
129
- super("boolean", name);
130
- }
131
- display(type) {
132
- this._ensureOptions();
133
- this.config.options.display = type;
134
- return this;
135
- }
136
- }
137
-
138
- class RichTextFieldBuilder extends FieldBuilder {
139
- constructor(name) {
140
- super("richtext", name);
141
- }
142
- mode(mode) {
143
- this._ensureOptions();
144
- this.config.options.defaultMode = mode;
145
- return this;
146
- }
147
- }
148
-
149
- class UIFieldBuilder extends FieldBuilder {
150
- constructor(name) {
151
- super("ui", name);
152
- }
153
- }
154
-
155
- class RelationshipFieldBuilder extends FieldBuilder {
156
- constructor(name) {
157
- super("relationship", name);
158
- }
159
- to(collection) {
160
- this.config.relationTo = typeof collection === "string" ? collection : collection.slug;
161
- return this;
162
- }
163
- single() {
164
- this.config.hasMany = false;
165
- return this;
166
- }
167
- many() {
168
- this.config.hasMany = true;
169
- return this;
170
- }
171
- displayField(field) {
172
- this.config.displayField = field;
173
- return this;
174
- }
175
- }
176
-
177
- class FileFieldBuilder extends FieldBuilder {
178
- constructor(name) {
179
- super("file", name);
180
- }
181
- bucket(bucketName) {
182
- this.config.bucket = bucketName;
183
- return this;
184
- }
185
- allowedmime_types(types) {
186
- this._ensureOptions();
187
- this.config.options.allowedmime_types = types;
188
- return this;
189
- }
190
- maxSize(bytes) {
191
- this._ensureOptions();
192
- this.config.options.maxFileSize = bytes;
193
- return this;
194
- }
195
- }
196
-
197
- class JSONFieldBuilder extends FieldBuilder {
198
- constructor(name) {
199
- super("json", name);
200
- }
201
- }
202
-
203
- class DateFieldBuilder extends FieldBuilder {
204
- constructor(name) {
205
- super("date", name);
206
- }
207
- }
208
-
209
- class SelectFieldBuilder extends FieldBuilder {
210
- constructor(name) {
211
- super("select", name);
212
- }
213
- choices(choices) {
214
- this._ensureOptions();
215
- this.config.options.choices = choices;
216
- return this;
217
- }
218
- }
219
-
220
- class RadioFieldBuilder extends FieldBuilder {
221
- constructor(name) {
222
- super("radio", name);
223
- }
224
- choices(choices) {
225
- this._ensureOptions();
226
- this.config.options.choices = choices;
227
- return this;
228
- }
229
- }
230
-
231
- class TabsFieldBuilder extends FieldBuilder {
232
- constructor() {
233
- super("tabs", "");
234
- this.config.tabs = [];
235
- }
236
- tab(label, ...fields) {
237
- this.config.tabs.push({
238
- label,
239
- fields: fields.map((f) => f.build())
240
- });
241
- return this;
242
- }
243
- }
244
-
245
- class CollapsibleFieldBuilder extends FieldBuilder {
246
- constructor(fields) {
247
- super("collapsible", "");
248
- this.config.fields = fields ? fields.map((f) => f.build()) : [];
249
- this._ensureOptions();
250
- }
251
- initiallyCollapsed(val = true) {
252
- this.config.options.initiallyCollapsed = val;
253
- return this;
254
- }
255
- useAsTitle(fieldName) {
256
- this.config.options.useAsTitle = fieldName;
257
- return this;
258
- }
259
- fields(...fields) {
260
- this.config.fields = fields.map((f) => f.build());
261
- return this;
262
- }
263
- }
264
-
265
- class JoinFieldBuilder extends FieldBuilder {
266
- constructor(name) {
267
- super("join", name);
268
- }
269
- collection(collectionSlug) {
270
- this.config.collection = collectionSlug;
271
- return this;
272
- }
273
- on(fieldName) {
274
- this.config.on = fieldName;
275
- return this;
276
- }
277
- }
278
-
279
- class ArrayFieldBuilder extends FieldBuilder {
280
- constructor(name) {
281
- super("array", name);
282
- }
283
- of(...fields) {
284
- this.config.fields = fields.map((f) => f.build());
285
- return this;
286
- }
287
- }
288
-
289
- class GroupFieldBuilder extends FieldBuilder {
290
- constructor(name, fields) {
291
- super("group", name);
292
- if (fields) {
293
- this.config.fields = fields.map((f) => f.build());
294
- }
295
- }
296
- fields(...fields) {
297
- this.config.fields = fields.map((f) => f.build());
298
- return this;
299
- }
300
- }
301
-
302
- class RowFieldBuilder extends FieldBuilder {
303
- constructor(fields) {
304
- super("row", "");
305
- if (fields) {
306
- this.config.fields = fields.map((f) => f.build());
307
- }
308
- }
309
- fields(...fields) {
310
- this.config.fields = fields.map((f) => f.build());
311
- return this;
312
- }
313
- }
314
-
315
- class BlockBuilder {
316
- config;
317
- constructor(slug) {
318
- this.config = { slug, fields: [] };
319
- }
320
- label(label) {
321
- this.config.label = label;
322
- return this;
323
- }
324
- fields(...fields) {
325
- this.config.fields = fields.map((f) => f.build());
326
- return this;
327
- }
328
- build() {
329
- return this.config;
330
- }
331
- }
332
-
333
- class VirtualFieldBuilder extends FieldBuilder {
334
- constructor(name) {
335
- super("virtual", name);
336
- }
337
- resolve(fn) {
338
- this.config.resolve = fn;
339
- return this;
340
- }
341
- returnType(type) {
342
- this.config.returnType = type;
343
- return this;
344
- }
345
- }
346
-
347
- class BlocksFieldBuilder extends FieldBuilder {
348
- constructor(name) {
349
- super("blocks", name);
350
- }
351
- blocks(...blocks) {
352
- this.config.blocks = blocks.map((b) => b.build());
353
- return this;
354
- }
355
- }
356
- var Field = {
357
- text: (name) => new TextFieldBuilder(name),
358
- slug: (name) => new SlugFieldBuilder(name),
359
- textarea: (name) => new TextAreaFieldBuilder(name),
360
- number: (name) => new NumberFieldBuilder(name),
361
- boolean: (name) => new BooleanFieldBuilder(name),
362
- date: (name) => new DateFieldBuilder(name),
363
- select: (name) => new SelectFieldBuilder(name),
364
- radio: (name) => new RadioFieldBuilder(name),
365
- richText: (name) => new RichTextFieldBuilder(name),
366
- relationship: (name) => new RelationshipFieldBuilder(name),
367
- join: (name) => new JoinFieldBuilder(name),
368
- file: (name) => new FileFieldBuilder(name),
369
- array: (name) => new ArrayFieldBuilder(name),
370
- group: (name, fields) => {
371
- const builder = new GroupFieldBuilder(name);
372
- if (fields)
373
- builder.fields(...fields);
374
- return builder;
375
- },
376
- tabs: () => new TabsFieldBuilder,
377
- collapsible: (fields) => {
378
- const builder = new CollapsibleFieldBuilder(fields);
379
- return builder;
380
- },
381
- row: (fields) => {
382
- const builder = new RowFieldBuilder(fields);
383
- return builder;
384
- },
385
- blocks: (name, ...blocks) => {
386
- const builder = new BlocksFieldBuilder(name);
387
- builder.blocks(...blocks);
388
- return builder;
389
- },
390
- block: (slug) => new BlockBuilder(slug),
391
- ui: (name) => new UIFieldBuilder(name),
392
- json: (name) => new JSONFieldBuilder(name)
393
- };
394
-
395
- // src/schema/collection.ts
396
- class CollectionBuilder {
397
- slug;
398
- config = {
399
- fields: [],
400
- timestamps: true
401
- };
402
- fieldBuilders = [];
403
- constructor(slug) {
404
- this.slug = slug;
405
- this.config.slug = slug;
406
- }
407
- label(label) {
408
- this.config.label = label;
409
- return this;
410
- }
411
- icon(iconName) {
412
- this.config.icon = iconName;
413
- return this;
414
- }
415
- useAsTitle(fieldName) {
416
- this._ensureAdmin();
417
- this.config.admin.useAsTitle = fieldName;
418
- return this;
419
- }
420
- fields(fields) {
421
- const nextBuilder = new CollectionBuilder(this.config.slug);
422
- nextBuilder.config = { ...this.config };
423
- nextBuilder.fieldBuilders = [...fields];
424
- nextBuilder.config.fields = nextBuilder.fieldBuilders.map((f) => f.build());
425
- return nextBuilder;
426
- }
427
- access(rules) {
428
- this.config.access = rules;
429
- return this;
430
- }
431
- virtual(name, options) {
432
- const builder = new VirtualFieldBuilder(name);
433
- if (options.label)
434
- builder.label(options.label);
435
- if (options.resolve)
436
- builder.resolve(options.resolve);
437
- if (options.returnType)
438
- builder.returnType(options.returnType);
439
- const nextBuilder = new CollectionBuilder(this.config.slug);
440
- nextBuilder.config = { ...this.config };
441
- nextBuilder.fieldBuilders = [...this.fieldBuilders, builder];
442
- nextBuilder.config.fields = nextBuilder.fieldBuilders.map((f) => f.build());
443
- return nextBuilder;
444
- }
445
- admin(opts) {
446
- if (typeof opts === "boolean") {
447
- this.config.admin = opts;
448
- } else {
449
- this.config.admin = { ...this.config.admin, ...opts };
450
- }
451
- return this;
452
- }
453
- versions(opts) {
454
- this.config.versions = opts;
455
- return this;
456
- }
457
- webhooks(webhooks) {
458
- this.config.webhooks = webhooks;
459
- return this;
460
- }
461
- extend(preset) {
462
- return this;
463
- }
464
- _ensureAdmin() {
465
- if (!this.config.admin || typeof this.config.admin === "boolean") {
466
- this.config.admin = {};
467
- }
468
- }
469
- build() {
470
- const compiledFields = this.fieldBuilders.map((builder) => builder.build());
471
- return {
472
- ...this.config,
473
- slug: this.slug,
474
- fields: compiledFields
475
- };
476
- }
477
- }
478
- var Collection = {
479
- create: (slug) => new CollectionBuilder(slug)
480
- };
481
- // src/schema/global.ts
482
- class GlobalBuilder {
483
- slug;
484
- config = {};
485
- _fields = [];
486
- constructor(slug) {
487
- this.slug = slug;
488
- this.config.slug = slug;
489
- this.config.fields = [];
490
- this.config.timestamps = true;
491
- }
492
- label(label) {
493
- this.config.label = label;
494
- return this;
495
- }
496
- icon(iconName) {
497
- this.config.icon = iconName;
498
- return this;
499
- }
500
- fields(fields) {
501
- const nextBuilder = new GlobalBuilder(this.config.slug);
502
- nextBuilder.config = { ...this.config };
503
- nextBuilder._fields = [...fields];
504
- nextBuilder.config.fields = fields.map((f) => f.build());
505
- return nextBuilder;
506
- }
507
- access(rules) {
508
- this.config.access = rules;
509
- return this;
510
- }
511
- virtual(name, options) {
512
- const builder = new VirtualFieldBuilder(name);
513
- if (options.label)
514
- builder.label(options.label);
515
- if (options.resolve)
516
- builder.resolve(options.resolve);
517
- if (options.returnType)
518
- builder.returnType(options.returnType);
519
- const nextBuilder = new GlobalBuilder(this.config.slug);
520
- nextBuilder.config = { ...this.config };
521
- nextBuilder._fields = [...this._fields, builder];
522
- nextBuilder.config.fields = nextBuilder._fields.map((f) => f.build());
523
- return nextBuilder;
524
- }
525
- computed(name, options) {
526
- return this.virtual(name, options);
527
- }
528
- extend(opts) {
529
- this.config = { ...this.config, ...opts };
530
- return this;
531
- }
532
- build() {
533
- if (!this.config.slug) {
534
- throw new Error("Globals must have a slug.");
535
- }
536
- if (!this.config.fields || this.config.fields.length === 0) {
537
- throw new Error(`Global "${this.config.slug}" must have at least one field.`);
538
- }
539
- return this.config;
540
- }
541
- }
542
- var Global = {
543
- create: (slug) => new GlobalBuilder(slug)
544
- };
1
+ import {
2
+ defineCollection,
3
+ defineGlobal
4
+ } from "../chunk-n1twhqmf.js";
5
+ import {
6
+ $ZodArray,
7
+ $ZodBoolean,
8
+ $ZodDate,
9
+ $ZodDefault,
10
+ $ZodDiscriminatedUnion,
11
+ $ZodEnum,
12
+ $ZodNullable,
13
+ $ZodNumber,
14
+ $ZodObject,
15
+ $ZodOptional,
16
+ $ZodString,
17
+ z,
18
+ zodToOpacaFields
19
+ } from "../chunk-m5ems3hh.js";
20
+ import"../chunk-6bywt602.js";
545
21
  export {
546
- GlobalBuilder,
547
- Global,
548
- FieldBuilder,
549
- Field,
550
- CollectionBuilder,
551
- Collection
22
+ zodToOpacaFields,
23
+ z,
24
+ defineGlobal,
25
+ defineCollection,
26
+ $ZodString,
27
+ $ZodOptional,
28
+ $ZodObject,
29
+ $ZodNumber,
30
+ $ZodNullable,
31
+ $ZodEnum,
32
+ $ZodDiscriminatedUnion,
33
+ $ZodDefault,
34
+ $ZodDate,
35
+ $ZodBoolean,
36
+ $ZodArray
552
37
  };