@kyro-cms/core 0.1.0 → 0.1.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.
@@ -0,0 +1,537 @@
1
+ // src/templates/minimal.ts
2
+ var minimalCollections = {
3
+ posts: {
4
+ slug: "posts",
5
+ label: "Posts",
6
+ labelPlural: "Posts",
7
+ singularLabel: "Post",
8
+ admin: {
9
+ useAsTitle: "title",
10
+ defaultColumns: ["title", "status", "createdAt"],
11
+ description: "Blog posts and articles"
12
+ },
13
+ fields: [
14
+ {
15
+ name: "title",
16
+ type: "text",
17
+ required: true,
18
+ label: "Title",
19
+ admin: { description: "The post title" }
20
+ },
21
+ {
22
+ name: "slug",
23
+ type: "text",
24
+ required: true,
25
+ label: "Slug",
26
+ admin: { description: "URL-friendly identifier" }
27
+ },
28
+ {
29
+ name: "content",
30
+ type: "richtext",
31
+ label: "Content"
32
+ },
33
+ {
34
+ name: "status",
35
+ type: "select",
36
+ label: "Status",
37
+ options: [
38
+ { label: "Draft", value: "draft" },
39
+ { label: "Published", value: "published" }
40
+ ],
41
+ defaultValue: "draft",
42
+ admin: {
43
+ description: "Publication status"
44
+ }
45
+ },
46
+ {
47
+ name: "publishedAt",
48
+ type: "date",
49
+ label: "Published At",
50
+ admin: { description: "When to publish this post" }
51
+ }
52
+ ],
53
+ timestamps: true
54
+ }
55
+ };
56
+
57
+ // src/templates/blog.ts
58
+ var blogCollections = {
59
+ posts: {
60
+ slug: "posts",
61
+ label: "Posts",
62
+ labelPlural: "Posts",
63
+ singularLabel: "Post",
64
+ admin: {
65
+ useAsTitle: "title",
66
+ defaultColumns: ["title", "category", "status", "createdAt"],
67
+ description: "Blog posts and articles"
68
+ },
69
+ fields: [
70
+ {
71
+ name: "title",
72
+ type: "text",
73
+ required: true,
74
+ label: "Title"
75
+ },
76
+ {
77
+ name: "slug",
78
+ type: "text",
79
+ required: true,
80
+ label: "Slug"
81
+ },
82
+ {
83
+ name: "excerpt",
84
+ type: "textarea",
85
+ label: "Excerpt",
86
+ admin: { description: "Brief summary for listings" }
87
+ },
88
+ {
89
+ name: "content",
90
+ type: "richtext",
91
+ label: "Content"
92
+ },
93
+ {
94
+ name: "featuredImage",
95
+ type: "upload",
96
+ label: "Featured Image",
97
+ relationTo: "media"
98
+ },
99
+ {
100
+ name: "category",
101
+ type: "relationship",
102
+ label: "Category",
103
+ relationTo: "categories"
104
+ },
105
+ {
106
+ name: "tags",
107
+ type: "array",
108
+ label: "Tags",
109
+ fields: [
110
+ { name: "tag", type: "text" }
111
+ ]
112
+ },
113
+ {
114
+ name: "status",
115
+ type: "select",
116
+ label: "Status",
117
+ options: [
118
+ { label: "Draft", value: "draft" },
119
+ { label: "Published", value: "published" }
120
+ ],
121
+ defaultValue: "draft"
122
+ },
123
+ {
124
+ name: "publishedAt",
125
+ type: "date",
126
+ label: "Published At"
127
+ }
128
+ ],
129
+ timestamps: true
130
+ },
131
+ categories: {
132
+ slug: "categories",
133
+ label: "Categories",
134
+ labelPlural: "Categories",
135
+ singularLabel: "Category",
136
+ admin: {
137
+ useAsTitle: "name",
138
+ defaultColumns: ["name", "slug", "postCount"],
139
+ description: "Post categories"
140
+ },
141
+ fields: [
142
+ {
143
+ name: "name",
144
+ type: "text",
145
+ required: true,
146
+ label: "Name"
147
+ },
148
+ {
149
+ name: "slug",
150
+ type: "text",
151
+ required: true,
152
+ label: "Slug"
153
+ },
154
+ {
155
+ name: "description",
156
+ type: "textarea",
157
+ label: "Description"
158
+ },
159
+ {
160
+ name: "parent",
161
+ type: "relationship",
162
+ label: "Parent Category",
163
+ relationTo: "categories"
164
+ }
165
+ ],
166
+ timestamps: true
167
+ },
168
+ media: {
169
+ slug: "media",
170
+ label: "Media",
171
+ labelPlural: "Media",
172
+ singularLabel: "Medium",
173
+ admin: {
174
+ useAsTitle: "filename",
175
+ defaultColumns: ["filename", "mimeType", "size", "uploadedAt"],
176
+ description: "Uploaded files and images"
177
+ },
178
+ fields: [
179
+ {
180
+ name: "filename",
181
+ type: "text",
182
+ required: true,
183
+ label: "Filename"
184
+ },
185
+ {
186
+ name: "alt",
187
+ type: "text",
188
+ label: "Alt Text",
189
+ admin: { description: "Alternative text for images" }
190
+ },
191
+ {
192
+ name: "url",
193
+ type: "text",
194
+ required: true,
195
+ label: "URL"
196
+ },
197
+ {
198
+ name: "mimeType",
199
+ type: "text",
200
+ label: "MIME Type"
201
+ },
202
+ {
203
+ name: "size",
204
+ type: "number",
205
+ label: "Size (bytes)"
206
+ },
207
+ {
208
+ name: "width",
209
+ type: "number",
210
+ label: "Width"
211
+ },
212
+ {
213
+ name: "height",
214
+ type: "number",
215
+ label: "Height"
216
+ }
217
+ ],
218
+ timestamps: true
219
+ }
220
+ };
221
+ var blogGlobals = [
222
+ {
223
+ slug: "siteSettings",
224
+ label: "Site Settings",
225
+ fields: [
226
+ { name: "siteName", type: "text", defaultValue: "My Blog" },
227
+ { name: "siteDescription", type: "textarea", label: "Site Description" },
228
+ { name: "logo", type: "text", label: "Logo URL" },
229
+ {
230
+ name: "socialLinks",
231
+ type: "array",
232
+ label: "Social Links",
233
+ fields: [
234
+ { name: "platform", type: "text", label: "Platform" },
235
+ { name: "url", type: "text", label: "URL" }
236
+ ]
237
+ }
238
+ ]
239
+ }
240
+ ];
241
+
242
+ // src/templates/ecommerce.ts
243
+ var ecommerceCollections = {
244
+ products: {
245
+ slug: "products",
246
+ label: "Products",
247
+ labelPlural: "Products",
248
+ singularLabel: "Product",
249
+ admin: {
250
+ useAsTitle: "title",
251
+ defaultColumns: ["title", "price", "status", "inventory"],
252
+ description: "Product catalog"
253
+ },
254
+ fields: [
255
+ {
256
+ name: "title",
257
+ type: "text",
258
+ required: true,
259
+ label: "Title"
260
+ },
261
+ {
262
+ name: "slug",
263
+ type: "text",
264
+ required: true,
265
+ label: "Slug"
266
+ },
267
+ {
268
+ name: "description",
269
+ type: "richtext",
270
+ label: "Description"
271
+ },
272
+ {
273
+ name: "price",
274
+ type: "number",
275
+ required: true,
276
+ label: "Price"
277
+ },
278
+ {
279
+ name: "compareAtPrice",
280
+ type: "number",
281
+ label: "Compare at Price",
282
+ admin: { description: "Original price for sale display" }
283
+ },
284
+ {
285
+ name: "costPrice",
286
+ type: "number",
287
+ label: "Cost Price",
288
+ admin: { description: "For profit calculation" }
289
+ },
290
+ {
291
+ name: "sku",
292
+ type: "text",
293
+ required: true,
294
+ label: "SKU"
295
+ },
296
+ {
297
+ name: "barcode",
298
+ type: "text",
299
+ label: "Barcode"
300
+ },
301
+ {
302
+ name: "status",
303
+ type: "select",
304
+ label: "Status",
305
+ options: [
306
+ { label: "Draft", value: "draft" },
307
+ { label: "Active", value: "active" },
308
+ { label: "Archived", value: "archived" }
309
+ ],
310
+ defaultValue: "draft"
311
+ },
312
+ {
313
+ name: "images",
314
+ type: "array",
315
+ label: "Images",
316
+ fields: [
317
+ { name: "url", type: "text", label: "URL" },
318
+ { name: "alt", type: "text", label: "Alt Text" }
319
+ ]
320
+ },
321
+ {
322
+ name: "category",
323
+ type: "relationship",
324
+ label: "Category",
325
+ relationTo: "categories"
326
+ },
327
+ {
328
+ name: "inventory",
329
+ type: "number",
330
+ label: "Inventory",
331
+ defaultValue: 0
332
+ }
333
+ ],
334
+ timestamps: true
335
+ },
336
+ categories: {
337
+ slug: "categories",
338
+ label: "Categories",
339
+ labelPlural: "Categories",
340
+ singularLabel: "Category",
341
+ admin: {
342
+ useAsTitle: "name",
343
+ defaultColumns: ["name", "slug", "productCount"],
344
+ description: "Product categories"
345
+ },
346
+ fields: [
347
+ { name: "name", type: "text", required: true, label: "Name" },
348
+ { name: "slug", type: "text", required: true, label: "Slug" },
349
+ { name: "description", type: "textarea", label: "Description" },
350
+ { name: "image", type: "text", label: "Image URL" },
351
+ {
352
+ name: "parent",
353
+ type: "relationship",
354
+ label: "Parent Category",
355
+ relationTo: "categories"
356
+ }
357
+ ],
358
+ timestamps: true
359
+ },
360
+ customers: {
361
+ slug: "customers",
362
+ label: "Customers",
363
+ labelPlural: "Customers",
364
+ singularLabel: "Customer",
365
+ admin: {
366
+ useAsTitle: "email",
367
+ defaultColumns: ["email", "firstName", "lastName", "orderCount", "createdAt"],
368
+ description: "Customer accounts"
369
+ },
370
+ fields: [
371
+ { name: "email", type: "email", required: true, label: "Email" },
372
+ { name: "firstName", type: "text", label: "First Name" },
373
+ { name: "lastName", type: "text", label: "Last Name" },
374
+ { name: "phone", type: "text", label: "Phone" },
375
+ {
376
+ name: "addresses",
377
+ type: "array",
378
+ label: "Addresses",
379
+ fields: [
380
+ { name: "type", type: "text", label: "Type" },
381
+ { name: "line1", type: "text", label: "Address Line 1" },
382
+ { name: "line2", type: "text", label: "Address Line 2" },
383
+ { name: "city", type: "text", label: "City" },
384
+ { name: "state", type: "text", label: "State" },
385
+ { name: "postalCode", type: "text", label: "Postal Code" },
386
+ { name: "country", type: "text", label: "Country" }
387
+ ]
388
+ },
389
+ {
390
+ name: "status",
391
+ type: "select",
392
+ label: "Status",
393
+ options: [
394
+ { label: "Active", value: "active" },
395
+ { label: "Inactive", value: "inactive" },
396
+ { label: "Banned", value: "banned" }
397
+ ],
398
+ defaultValue: "active"
399
+ }
400
+ ],
401
+ timestamps: true
402
+ },
403
+ orders: {
404
+ slug: "orders",
405
+ label: "Orders",
406
+ labelPlural: "Orders",
407
+ singularLabel: "Order",
408
+ admin: {
409
+ useAsTitle: "orderNumber",
410
+ defaultColumns: ["orderNumber", "customer", "status", "total", "createdAt"],
411
+ description: "Customer orders"
412
+ },
413
+ fields: [
414
+ {
415
+ name: "orderNumber",
416
+ type: "text",
417
+ required: true,
418
+ label: "Order Number"
419
+ },
420
+ {
421
+ name: "customer",
422
+ type: "relationship",
423
+ required: true,
424
+ label: "Customer",
425
+ relationTo: "customers"
426
+ },
427
+ {
428
+ name: "status",
429
+ type: "select",
430
+ label: "Status",
431
+ options: [
432
+ { label: "Pending", value: "pending" },
433
+ { label: "Confirmed", value: "confirmed" },
434
+ { label: "Processing", value: "processing" },
435
+ { label: "Shipped", value: "shipped" },
436
+ { label: "Delivered", value: "delivered" },
437
+ { label: "Cancelled", value: "cancelled" },
438
+ { label: "Refunded", value: "refunded" }
439
+ ],
440
+ defaultValue: "pending"
441
+ },
442
+ {
443
+ name: "paymentStatus",
444
+ type: "select",
445
+ label: "Payment Status",
446
+ options: [
447
+ { label: "Pending", value: "pending" },
448
+ { label: "Paid", value: "paid" },
449
+ { label: "Failed", value: "failed" },
450
+ { label: "Refunded", value: "refunded" }
451
+ ],
452
+ defaultValue: "pending"
453
+ },
454
+ {
455
+ name: "items",
456
+ type: "array",
457
+ label: "Items",
458
+ fields: [
459
+ { name: "product", type: "text", label: "Product" },
460
+ { name: "quantity", type: "number", label: "Quantity" },
461
+ { name: "unitPrice", type: "number", label: "Unit Price" },
462
+ { name: "total", type: "number", label: "Total" }
463
+ ]
464
+ },
465
+ { name: "subtotal", type: "number", required: true, label: "Subtotal" },
466
+ { name: "tax", type: "number", label: "Tax" },
467
+ { name: "shipping", type: "number", label: "Shipping" },
468
+ { name: "discount", type: "number", label: "Discount" },
469
+ { name: "total", type: "number", required: true, label: "Total" },
470
+ { name: "notes", type: "textarea", label: "Notes" }
471
+ ],
472
+ timestamps: true
473
+ },
474
+ coupons: {
475
+ slug: "coupons",
476
+ label: "Coupons",
477
+ labelPlural: "Coupons",
478
+ singularLabel: "Coupon",
479
+ admin: {
480
+ useAsTitle: "code",
481
+ defaultColumns: ["code", "type", "value", "active", "expiresAt"],
482
+ description: "Discount codes and promotions"
483
+ },
484
+ fields: [
485
+ { name: "code", type: "text", required: true, label: "Code" },
486
+ {
487
+ name: "type",
488
+ type: "select",
489
+ required: true,
490
+ label: "Type",
491
+ options: [
492
+ { label: "Percentage", value: "percentage" },
493
+ { label: "Fixed Amount", value: "fixed" },
494
+ { label: "Free Shipping", value: "freeShipping" }
495
+ ]
496
+ },
497
+ { name: "value", type: "number", label: "Value" },
498
+ { name: "minPurchase", type: "number", label: "Minimum Purchase" },
499
+ { name: "maxDiscount", type: "number", label: "Max Discount" },
500
+ { name: "usageLimit", type: "number", label: "Usage Limit" },
501
+ { name: "usedCount", type: "number", defaultValue: 0, label: "Used Count" },
502
+ { name: "startsAt", type: "date", label: "Starts At" },
503
+ { name: "expiresAt", type: "date", label: "Expires At" },
504
+ { name: "active", type: "checkbox", defaultValue: true, label: "Active" }
505
+ ],
506
+ timestamps: true
507
+ }
508
+ };
509
+ var ecommerceGlobals = [
510
+ {
511
+ slug: "storeSettings",
512
+ label: "Store Settings",
513
+ fields: [
514
+ { name: "storeName", type: "text", defaultValue: "My Store" },
515
+ { name: "storeEmail", type: "email", label: "Contact Email" },
516
+ { name: "storePhone", type: "text", label: "Phone" },
517
+ {
518
+ name: "address",
519
+ type: "group",
520
+ label: "Address",
521
+ fields: [
522
+ { name: "line1", type: "text", label: "Address Line 1" },
523
+ { name: "city", type: "text", label: "City" },
524
+ { name: "state", type: "text", label: "State" },
525
+ { name: "postalCode", type: "text", label: "Postal Code" },
526
+ { name: "country", type: "text", label: "Country" }
527
+ ]
528
+ },
529
+ { name: "currency", type: "text", defaultValue: "USD", label: "Currency" },
530
+ { name: "taxRate", type: "number", defaultValue: 0, label: "Tax Rate (%)" }
531
+ ]
532
+ }
533
+ ];
534
+
535
+ export { blogCollections, blogGlobals, ecommerceCollections, ecommerceGlobals, minimalCollections };
536
+ //# sourceMappingURL=index.js.map
537
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/templates/minimal.ts","../../src/templates/blog.ts","../../src/templates/ecommerce.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { CollectionConfig } from '../registry/types.js';\n\nexport const minimalCollections: Record<string, CollectionConfig> = {\n posts: {\n slug: 'posts',\n label: 'Posts',\n labelPlural: 'Posts',\n singularLabel: 'Post',\n admin: {\n useAsTitle: 'title',\n defaultColumns: ['title', 'status', 'createdAt'],\n description: 'Blog posts and articles'\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n required: true,\n label: 'Title',\n admin: { description: 'The post title' }\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n label: 'Slug',\n admin: { description: 'URL-friendly identifier' }\n },\n {\n name: 'content',\n type: 'richtext',\n label: 'Content'\n },\n {\n name: 'status',\n type: 'select',\n label: 'Status',\n options: [\n { label: 'Draft', value: 'draft' },\n { label: 'Published', value: 'published' }\n ],\n defaultValue: 'draft',\n admin: {\n description: 'Publication status'\n }\n },\n {\n name: 'publishedAt',\n type: 'date',\n label: 'Published At',\n admin: { description: 'When to publish this post' }\n }\n ],\n timestamps: true\n }\n};\n","import type { CollectionConfig, GlobalConfig } from '../registry/types.js';\n\nexport const blogCollections: Record<string, CollectionConfig> = {\n posts: {\n slug: 'posts',\n label: 'Posts',\n labelPlural: 'Posts',\n singularLabel: 'Post',\n admin: {\n useAsTitle: 'title',\n defaultColumns: ['title', 'category', 'status', 'createdAt'],\n description: 'Blog posts and articles'\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n required: true,\n label: 'Title'\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n label: 'Slug'\n },\n {\n name: 'excerpt',\n type: 'textarea',\n label: 'Excerpt',\n admin: { description: 'Brief summary for listings' }\n },\n {\n name: 'content',\n type: 'richtext',\n label: 'Content'\n },\n {\n name: 'featuredImage',\n type: 'upload',\n label: 'Featured Image',\n relationTo: 'media'\n },\n {\n name: 'category',\n type: 'relationship',\n label: 'Category',\n relationTo: 'categories'\n },\n {\n name: 'tags',\n type: 'array',\n label: 'Tags',\n fields: [\n { name: 'tag', type: 'text' }\n ]\n },\n {\n name: 'status',\n type: 'select',\n label: 'Status',\n options: [\n { label: 'Draft', value: 'draft' },\n { label: 'Published', value: 'published' }\n ],\n defaultValue: 'draft'\n },\n {\n name: 'publishedAt',\n type: 'date',\n label: 'Published At'\n }\n ],\n timestamps: true\n },\n\n categories: {\n slug: 'categories',\n label: 'Categories',\n labelPlural: 'Categories',\n singularLabel: 'Category',\n admin: {\n useAsTitle: 'name',\n defaultColumns: ['name', 'slug', 'postCount'],\n description: 'Post categories'\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n label: 'Name'\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n label: 'Slug'\n },\n {\n name: 'description',\n type: 'textarea',\n label: 'Description'\n },\n {\n name: 'parent',\n type: 'relationship',\n label: 'Parent Category',\n relationTo: 'categories'\n }\n ],\n timestamps: true\n },\n\n media: {\n slug: 'media',\n label: 'Media',\n labelPlural: 'Media',\n singularLabel: 'Medium',\n admin: {\n useAsTitle: 'filename',\n defaultColumns: ['filename', 'mimeType', 'size', 'uploadedAt'],\n description: 'Uploaded files and images'\n },\n fields: [\n {\n name: 'filename',\n type: 'text',\n required: true,\n label: 'Filename'\n },\n {\n name: 'alt',\n type: 'text',\n label: 'Alt Text',\n admin: { description: 'Alternative text for images' }\n },\n {\n name: 'url',\n type: 'text',\n required: true,\n label: 'URL'\n },\n {\n name: 'mimeType',\n type: 'text',\n label: 'MIME Type'\n },\n {\n name: 'size',\n type: 'number',\n label: 'Size (bytes)'\n },\n {\n name: 'width',\n type: 'number',\n label: 'Width'\n },\n {\n name: 'height',\n type: 'number',\n label: 'Height'\n }\n ],\n timestamps: true\n }\n};\n\nexport const blogGlobals: GlobalConfig[] = [\n {\n slug: 'siteSettings',\n label: 'Site Settings',\n fields: [\n { name: 'siteName', type: 'text', defaultValue: 'My Blog' },\n { name: 'siteDescription', type: 'textarea', label: 'Site Description' },\n { name: 'logo', type: 'text', label: 'Logo URL' },\n {\n name: 'socialLinks',\n type: 'array',\n label: 'Social Links',\n fields: [\n { name: 'platform', type: 'text', label: 'Platform' },\n { name: 'url', type: 'text', label: 'URL' }\n ]\n }\n ]\n }\n];\n","import type { CollectionConfig, GlobalConfig } from '../registry/types.js';\n\nexport const ecommerceCollections: Record<string, CollectionConfig> = {\n products: {\n slug: 'products',\n label: 'Products',\n labelPlural: 'Products',\n singularLabel: 'Product',\n admin: {\n useAsTitle: 'title',\n defaultColumns: ['title', 'price', 'status', 'inventory'],\n description: 'Product catalog'\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n required: true,\n label: 'Title'\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n label: 'Slug'\n },\n {\n name: 'description',\n type: 'richtext',\n label: 'Description'\n },\n {\n name: 'price',\n type: 'number',\n required: true,\n label: 'Price'\n },\n {\n name: 'compareAtPrice',\n type: 'number',\n label: 'Compare at Price',\n admin: { description: 'Original price for sale display' }\n },\n {\n name: 'costPrice',\n type: 'number',\n label: 'Cost Price',\n admin: { description: 'For profit calculation' }\n },\n {\n name: 'sku',\n type: 'text',\n required: true,\n label: 'SKU'\n },\n {\n name: 'barcode',\n type: 'text',\n label: 'Barcode'\n },\n {\n name: 'status',\n type: 'select',\n label: 'Status',\n options: [\n { label: 'Draft', value: 'draft' },\n { label: 'Active', value: 'active' },\n { label: 'Archived', value: 'archived' }\n ],\n defaultValue: 'draft'\n },\n {\n name: 'images',\n type: 'array',\n label: 'Images',\n fields: [\n { name: 'url', type: 'text', label: 'URL' },\n { name: 'alt', type: 'text', label: 'Alt Text' }\n ]\n },\n {\n name: 'category',\n type: 'relationship',\n label: 'Category',\n relationTo: 'categories'\n },\n {\n name: 'inventory',\n type: 'number',\n label: 'Inventory',\n defaultValue: 0\n }\n ],\n timestamps: true\n },\n\n categories: {\n slug: 'categories',\n label: 'Categories',\n labelPlural: 'Categories',\n singularLabel: 'Category',\n admin: {\n useAsTitle: 'name',\n defaultColumns: ['name', 'slug', 'productCount'],\n description: 'Product categories'\n },\n fields: [\n { name: 'name', type: 'text', required: true, label: 'Name' },\n { name: 'slug', type: 'text', required: true, label: 'Slug' },\n { name: 'description', type: 'textarea', label: 'Description' },\n { name: 'image', type: 'text', label: 'Image URL' },\n {\n name: 'parent',\n type: 'relationship',\n label: 'Parent Category',\n relationTo: 'categories'\n }\n ],\n timestamps: true\n },\n\n customers: {\n slug: 'customers',\n label: 'Customers',\n labelPlural: 'Customers',\n singularLabel: 'Customer',\n admin: {\n useAsTitle: 'email',\n defaultColumns: ['email', 'firstName', 'lastName', 'orderCount', 'createdAt'],\n description: 'Customer accounts'\n },\n fields: [\n { name: 'email', type: 'email', required: true, label: 'Email' },\n { name: 'firstName', type: 'text', label: 'First Name' },\n { name: 'lastName', type: 'text', label: 'Last Name' },\n { name: 'phone', type: 'text', label: 'Phone' },\n {\n name: 'addresses',\n type: 'array',\n label: 'Addresses',\n fields: [\n { name: 'type', type: 'text', label: 'Type' },\n { name: 'line1', type: 'text', label: 'Address Line 1' },\n { name: 'line2', type: 'text', label: 'Address Line 2' },\n { name: 'city', type: 'text', label: 'City' },\n { name: 'state', type: 'text', label: 'State' },\n { name: 'postalCode', type: 'text', label: 'Postal Code' },\n { name: 'country', type: 'text', label: 'Country' }\n ]\n },\n {\n name: 'status',\n type: 'select',\n label: 'Status',\n options: [\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' },\n { label: 'Banned', value: 'banned' }\n ],\n defaultValue: 'active'\n }\n ],\n timestamps: true\n },\n\n orders: {\n slug: 'orders',\n label: 'Orders',\n labelPlural: 'Orders',\n singularLabel: 'Order',\n admin: {\n useAsTitle: 'orderNumber',\n defaultColumns: ['orderNumber', 'customer', 'status', 'total', 'createdAt'],\n description: 'Customer orders'\n },\n fields: [\n {\n name: 'orderNumber',\n type: 'text',\n required: true,\n label: 'Order Number'\n },\n {\n name: 'customer',\n type: 'relationship',\n required: true,\n label: 'Customer',\n relationTo: 'customers'\n },\n {\n name: 'status',\n type: 'select',\n label: 'Status',\n options: [\n { label: 'Pending', value: 'pending' },\n { label: 'Confirmed', value: 'confirmed' },\n { label: 'Processing', value: 'processing' },\n { label: 'Shipped', value: 'shipped' },\n { label: 'Delivered', value: 'delivered' },\n { label: 'Cancelled', value: 'cancelled' },\n { label: 'Refunded', value: 'refunded' }\n ],\n defaultValue: 'pending'\n },\n {\n name: 'paymentStatus',\n type: 'select',\n label: 'Payment Status',\n options: [\n { label: 'Pending', value: 'pending' },\n { label: 'Paid', value: 'paid' },\n { label: 'Failed', value: 'failed' },\n { label: 'Refunded', value: 'refunded' }\n ],\n defaultValue: 'pending'\n },\n {\n name: 'items',\n type: 'array',\n label: 'Items',\n fields: [\n { name: 'product', type: 'text', label: 'Product' },\n { name: 'quantity', type: 'number', label: 'Quantity' },\n { name: 'unitPrice', type: 'number', label: 'Unit Price' },\n { name: 'total', type: 'number', label: 'Total' }\n ]\n },\n { name: 'subtotal', type: 'number', required: true, label: 'Subtotal' },\n { name: 'tax', type: 'number', label: 'Tax' },\n { name: 'shipping', type: 'number', label: 'Shipping' },\n { name: 'discount', type: 'number', label: 'Discount' },\n { name: 'total', type: 'number', required: true, label: 'Total' },\n { name: 'notes', type: 'textarea', label: 'Notes' }\n ],\n timestamps: true\n },\n\n coupons: {\n slug: 'coupons',\n label: 'Coupons',\n labelPlural: 'Coupons',\n singularLabel: 'Coupon',\n admin: {\n useAsTitle: 'code',\n defaultColumns: ['code', 'type', 'value', 'active', 'expiresAt'],\n description: 'Discount codes and promotions'\n },\n fields: [\n { name: 'code', type: 'text', required: true, label: 'Code' },\n {\n name: 'type',\n type: 'select',\n required: true,\n label: 'Type',\n options: [\n { label: 'Percentage', value: 'percentage' },\n { label: 'Fixed Amount', value: 'fixed' },\n { label: 'Free Shipping', value: 'freeShipping' }\n ]\n },\n { name: 'value', type: 'number', label: 'Value' },\n { name: 'minPurchase', type: 'number', label: 'Minimum Purchase' },\n { name: 'maxDiscount', type: 'number', label: 'Max Discount' },\n { name: 'usageLimit', type: 'number', label: 'Usage Limit' },\n { name: 'usedCount', type: 'number', defaultValue: 0, label: 'Used Count' },\n { name: 'startsAt', type: 'date', label: 'Starts At' },\n { name: 'expiresAt', type: 'date', label: 'Expires At' },\n { name: 'active', type: 'checkbox', defaultValue: true, label: 'Active' }\n ],\n timestamps: true\n }\n};\n\nexport const ecommerceGlobals: GlobalConfig[] = [\n {\n slug: 'storeSettings',\n label: 'Store Settings',\n fields: [\n { name: 'storeName', type: 'text', defaultValue: 'My Store' },\n { name: 'storeEmail', type: 'email', label: 'Contact Email' },\n { name: 'storePhone', type: 'text', label: 'Phone' },\n {\n name: 'address',\n type: 'group',\n label: 'Address',\n fields: [\n { name: 'line1', type: 'text', label: 'Address Line 1' },\n { name: 'city', type: 'text', label: 'City' },\n { name: 'state', type: 'text', label: 'State' },\n { name: 'postalCode', type: 'text', label: 'Postal Code' },\n { name: 'country', type: 'text', label: 'Country' }\n ]\n },\n { name: 'currency', type: 'text', defaultValue: 'USD', label: 'Currency' },\n { name: 'taxRate', type: 'number', defaultValue: 0, label: 'Tax Rate (%)' }\n ]\n }\n];\n"]}
package/package.json CHANGED
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "name": "@kyro-cms/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Astro-native headless CMS with multi-database adapters, multi-protocol APIs, and multi-vendor support",
5
+ "private": false,
5
6
  "type": "module",
7
+ "workspaces": [
8
+ ".",
9
+ "packages/create-kyro"
10
+ ],
6
11
  "main": "./dist/index.js",
7
12
  "module": "./dist/index.js",
8
13
  "types": "./dist/index.d.ts",
@@ -35,6 +40,10 @@
35
40
  "./mongodb": {
36
41
  "types": "./dist/mongodb/index.d.ts",
37
42
  "import": "./dist/mongodb/index.js"
43
+ },
44
+ "./templates": {
45
+ "types": "./dist/templates/index.d.ts",
46
+ "import": "./dist/templates/index.js"
38
47
  }
39
48
  },
40
49
  "files": [
@@ -64,9 +73,19 @@
64
73
  "websocket",
65
74
  "drizzle",
66
75
  "mongodb",
67
- "multitenant"
76
+ "multitenant",
77
+ "ecommerce",
78
+ "admin"
68
79
  ],
69
80
  "license": "MIT",
81
+ "repository": {
82
+ "type": "git",
83
+ "url": "https://github.com/your-username/kyro-cms.git"
84
+ },
85
+ "bugs": {
86
+ "url": "https://github.com/your-username/kyro-cms/issues"
87
+ },
88
+ "homepage": "https://github.com/your-username/kyro-cms#readme",
70
89
  "dependencies": {
71
90
  "@trpc/client": "^11.0.0",
72
91
  "@trpc/react-query": "^11.0.0",