@happyvertical/smrt-products 0.30.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/AGENTS.md +122 -0
  2. package/CLAUDE.md +1 -0
  3. package/LICENSE +7 -0
  4. package/README.md +115 -0
  5. package/dist/lib/__smrt-register__.d.ts +2 -0
  6. package/dist/lib/__smrt-register__.d.ts.map +1 -0
  7. package/dist/lib/app/main.d.ts +6 -0
  8. package/dist/lib/app/main.d.ts.map +1 -0
  9. package/dist/lib/chunks/ProductAssetCollection-DFPXN43q.js +64 -0
  10. package/dist/lib/chunks/ProductAssetCollection-DFPXN43q.js.map +1 -0
  11. package/dist/lib/chunks/ProductForm-DHeb2L24.js +371 -0
  12. package/dist/lib/chunks/ProductForm-DHeb2L24.js.map +1 -0
  13. package/dist/lib/chunks/Sku-DUKtbYWT.js +511 -0
  14. package/dist/lib/chunks/Sku-DUKtbYWT.js.map +1 -0
  15. package/dist/lib/chunks/SkuCollection-C0tdkEdL.js +160 -0
  16. package/dist/lib/chunks/SkuCollection-C0tdkEdL.js.map +1 -0
  17. package/dist/lib/chunks/__smrt-register__-BIgFaVKn.js +5 -0
  18. package/dist/lib/chunks/__smrt-register__-BIgFaVKn.js.map +1 -0
  19. package/dist/lib/chunks/index-i3-ci1FB.js +6 -0
  20. package/dist/lib/chunks/index-i3-ci1FB.js.map +1 -0
  21. package/dist/lib/chunks/product-store.svelte-Dayd5n3W.js +132 -0
  22. package/dist/lib/chunks/product-store.svelte-Dayd5n3W.js.map +1 -0
  23. package/dist/lib/client.d.ts +9 -0
  24. package/dist/lib/client.d.ts.map +1 -0
  25. package/dist/lib/collections.d.ts +2 -0
  26. package/dist/lib/collections.d.ts.map +1 -0
  27. package/dist/lib/collections.js +12 -0
  28. package/dist/lib/collections.js.map +1 -0
  29. package/dist/lib/components.d.ts +2 -0
  30. package/dist/lib/components.d.ts.map +1 -0
  31. package/dist/lib/components.js +6 -0
  32. package/dist/lib/components.js.map +1 -0
  33. package/dist/lib/generated.d.ts +2 -0
  34. package/dist/lib/generated.d.ts.map +1 -0
  35. package/dist/lib/generated.js +5 -0
  36. package/dist/lib/generated.js.map +1 -0
  37. package/dist/lib/index.d.ts +14 -0
  38. package/dist/lib/index.d.ts.map +1 -0
  39. package/dist/lib/index.js +228 -0
  40. package/dist/lib/index.js.map +1 -0
  41. package/dist/lib/lib/collections/CategoryCollection.d.ts +20 -0
  42. package/dist/lib/lib/collections/CategoryCollection.d.ts.map +1 -0
  43. package/dist/lib/lib/collections/MaterialCollection.d.ts +20 -0
  44. package/dist/lib/lib/collections/MaterialCollection.d.ts.map +1 -0
  45. package/dist/lib/lib/collections/ProductAssetCollection.d.ts +16 -0
  46. package/dist/lib/lib/collections/ProductAssetCollection.d.ts.map +1 -0
  47. package/dist/lib/lib/collections/ProductCollection.d.ts +12 -0
  48. package/dist/lib/lib/collections/ProductCollection.d.ts.map +1 -0
  49. package/dist/lib/lib/collections/ProductVariantCollection.d.ts +10 -0
  50. package/dist/lib/lib/collections/ProductVariantCollection.d.ts.map +1 -0
  51. package/dist/lib/lib/collections/SkuCollection.d.ts +31 -0
  52. package/dist/lib/lib/collections/SkuCollection.d.ts.map +1 -0
  53. package/dist/lib/lib/collections/index.d.ts +7 -0
  54. package/dist/lib/lib/collections/index.d.ts.map +1 -0
  55. package/dist/lib/lib/components/ProductCard.svelte +173 -0
  56. package/dist/lib/lib/components/ProductCard.svelte.d.ts +10 -0
  57. package/dist/lib/lib/components/ProductCard.svelte.d.ts.map +1 -0
  58. package/dist/lib/lib/components/ProductForm.svelte +289 -0
  59. package/dist/lib/lib/components/ProductForm.svelte.d.ts +11 -0
  60. package/dist/lib/lib/components/ProductForm.svelte.d.ts.map +1 -0
  61. package/dist/lib/lib/components/TestComponent.svelte +25 -0
  62. package/dist/lib/lib/components/TestComponent.svelte.d.ts +7 -0
  63. package/dist/lib/lib/components/TestComponent.svelte.d.ts.map +1 -0
  64. package/dist/lib/lib/components/auto-generated/AutoForm.svelte +240 -0
  65. package/dist/lib/lib/components/auto-generated/AutoForm.svelte.d.ts +13 -0
  66. package/dist/lib/lib/components/auto-generated/AutoForm.svelte.d.ts.map +1 -0
  67. package/dist/lib/lib/components/auto-generated/FieldRenderer.svelte +205 -0
  68. package/dist/lib/lib/components/auto-generated/FieldRenderer.svelte.d.ts +14 -0
  69. package/dist/lib/lib/components/auto-generated/FieldRenderer.svelte.d.ts.map +1 -0
  70. package/dist/lib/lib/components/index.d.ts +12 -0
  71. package/dist/lib/lib/components/index.d.ts.map +1 -0
  72. package/dist/lib/lib/components/index.js +11 -0
  73. package/dist/lib/lib/features/CategoryManager.svelte +80 -0
  74. package/dist/lib/lib/features/CategoryManager.svelte.d.ts +7 -0
  75. package/dist/lib/lib/features/CategoryManager.svelte.d.ts.map +1 -0
  76. package/dist/lib/lib/features/ProductCatalog.svelte +299 -0
  77. package/dist/lib/lib/features/ProductCatalog.svelte.d.ts +8 -0
  78. package/dist/lib/lib/features/ProductCatalog.svelte.d.ts.map +1 -0
  79. package/dist/lib/lib/federation-entry.d.ts +11 -0
  80. package/dist/lib/lib/federation-entry.d.ts.map +1 -0
  81. package/dist/lib/lib/generated/index.d.ts +2 -0
  82. package/dist/lib/lib/generated/index.d.ts.map +1 -0
  83. package/dist/lib/lib/i18n.d.ts +79 -0
  84. package/dist/lib/lib/i18n.d.ts.map +1 -0
  85. package/dist/lib/lib/index.d.ts +20 -0
  86. package/dist/lib/lib/index.d.ts.map +1 -0
  87. package/dist/lib/lib/mock-smrt-client.d.ts +40 -0
  88. package/dist/lib/lib/mock-smrt-client.d.ts.map +1 -0
  89. package/dist/lib/lib/mock-smrt-client.js +129 -0
  90. package/dist/lib/lib/mock-smrt-client.js.map +1 -0
  91. package/dist/lib/lib/models/Category.d.ts +38 -0
  92. package/dist/lib/lib/models/Category.d.ts.map +1 -0
  93. package/dist/lib/lib/models/Material.d.ts +22 -0
  94. package/dist/lib/lib/models/Material.d.ts.map +1 -0
  95. package/dist/lib/lib/models/Product.d.ts +57 -0
  96. package/dist/lib/lib/models/Product.d.ts.map +1 -0
  97. package/dist/lib/lib/models/ProductAsset.d.ts +17 -0
  98. package/dist/lib/lib/models/ProductAsset.d.ts.map +1 -0
  99. package/dist/lib/lib/models/ProductVariant.d.ts +51 -0
  100. package/dist/lib/lib/models/ProductVariant.d.ts.map +1 -0
  101. package/dist/lib/lib/models/Sku.d.ts +79 -0
  102. package/dist/lib/lib/models/Sku.d.ts.map +1 -0
  103. package/dist/lib/lib/models/index.d.ts +15 -0
  104. package/dist/lib/lib/models/index.d.ts.map +1 -0
  105. package/dist/lib/lib/models/types.d.ts +41 -0
  106. package/dist/lib/lib/models/types.d.ts.map +1 -0
  107. package/dist/lib/lib/stores/index.d.ts +8 -0
  108. package/dist/lib/lib/stores/index.d.ts.map +1 -0
  109. package/dist/lib/lib/stores/index.js +7 -0
  110. package/dist/lib/lib/stores/product-store.client.svelte.d.ts +45 -0
  111. package/dist/lib/lib/stores/product-store.client.svelte.d.ts.map +1 -0
  112. package/dist/lib/lib/stores/product-store.client.svelte.js +147 -0
  113. package/dist/lib/lib/stores/product-store.svelte.d.ts +29 -0
  114. package/dist/lib/lib/stores/product-store.svelte.d.ts.map +1 -0
  115. package/dist/lib/lib/stores/product-store.svelte.js +144 -0
  116. package/dist/lib/lib/types.d.ts +43 -0
  117. package/dist/lib/lib/types.d.ts.map +1 -0
  118. package/dist/lib/lib/utils/index.d.ts +10 -0
  119. package/dist/lib/lib/utils/index.d.ts.map +1 -0
  120. package/dist/lib/main.d.ts +5 -0
  121. package/dist/lib/main.d.ts.map +1 -0
  122. package/dist/lib/manifest.json +3758 -0
  123. package/dist/lib/mcp.d.ts +14 -0
  124. package/dist/lib/mcp.d.ts.map +1 -0
  125. package/dist/lib/models.d.ts +2 -0
  126. package/dist/lib/models.d.ts.map +1 -0
  127. package/dist/lib/models.js +12 -0
  128. package/dist/lib/models.js.map +1 -0
  129. package/dist/lib/native-api-server.d.ts +7 -0
  130. package/dist/lib/native-api-server.d.ts.map +1 -0
  131. package/dist/lib/server.d.ts +11 -0
  132. package/dist/lib/server.d.ts.map +1 -0
  133. package/dist/lib/simple-api-server.d.ts +7 -0
  134. package/dist/lib/simple-api-server.d.ts.map +1 -0
  135. package/dist/lib/simple-server.d.ts +6 -0
  136. package/dist/lib/simple-server.d.ts.map +1 -0
  137. package/dist/lib/smrt-knowledge.json +1584 -0
  138. package/dist/lib/smrt-products.css +233 -0
  139. package/dist/lib/stores.d.ts +2 -0
  140. package/dist/lib/stores.d.ts.map +1 -0
  141. package/dist/lib/stores.js +6 -0
  142. package/dist/lib/stores.js.map +1 -0
  143. package/dist/lib/utils.d.ts +2 -0
  144. package/dist/lib/utils.d.ts.map +1 -0
  145. package/dist/lib/utils.js +27 -0
  146. package/dist/lib/utils.js.map +1 -0
  147. package/package.json +127 -0
@@ -0,0 +1,233 @@
1
+
2
+ .product-card.svelte-11ja2cl {
3
+ border: 1px solid var(--smrt-color-outline-variant, #e2e8f0);
4
+ border-radius: var(--smrt-radius-md, 8px);
5
+ padding: 1rem;
6
+ background: white;
7
+ box-shadow: var(--smrt-elevation-1, 0 1px 3px color-mix(in srgb, var(--smrt-color-shadow, #000) 10%, transparent));
8
+ transition: box-shadow 0.2s;
9
+ }
10
+
11
+ .product-card.svelte-11ja2cl:hover {
12
+ box-shadow: var(--smrt-elevation-2, 0 4px 6px color-mix(in srgb, var(--smrt-color-shadow, #000) 10%, transparent));
13
+ }
14
+
15
+ .product-header.svelte-11ja2cl {
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: flex-start;
19
+ margin-bottom: 0.5rem;
20
+ }
21
+
22
+ .product-name.svelte-11ja2cl {
23
+ margin: 0;
24
+ font-size: var(--smrt-typography-title-medium-size, 1.125rem);
25
+ font-weight: var(--smrt-typography-weight-semibold, 600);
26
+ color: var(--smrt-color-on-surface, #1f2937);
27
+ }
28
+
29
+ .product-manufacturer.svelte-11ja2cl {
30
+ font-size: var(--smrt-typography-title-small-size, 0.875rem);
31
+ font-weight: var(--smrt-typography-weight-medium, 500);
32
+ color: var(--smrt-color-on-surface-variant, #6b7280);
33
+ }
34
+
35
+ .product-model.svelte-11ja2cl {
36
+ font-size: var(--smrt-typography-body-medium-size, 0.875rem);
37
+ color: var(--smrt-color-on-surface-variant, #6b7280);
38
+ margin-bottom: 0.5rem;
39
+ }
40
+
41
+ .product-category.svelte-11ja2cl {
42
+ font-size: var(--smrt-typography-label-medium-size, 0.75rem);
43
+ font-weight: var(--smrt-typography-weight-medium, 500);
44
+ color: var(--smrt-color-on-surface, #374151);
45
+ background: var(--smrt-color-surface-container, #f3f4f6);
46
+ padding: 0.25rem 0.5rem;
47
+ border-radius: var(--smrt-radius-sm, 4px);
48
+ display: inline-block;
49
+ margin-bottom: 0.5rem;
50
+ }
51
+
52
+ .product-description.svelte-11ja2cl {
53
+ margin: 0.5rem 0;
54
+ color: var(--smrt-color-on-surface-variant, #6b7280);
55
+ font-size: var(--smrt-typography-body-medium-size, 0.875rem);
56
+ line-height: var(--smrt-typography-body-medium-line-height, 1.4);
57
+ }
58
+
59
+ .product-meta.svelte-11ja2cl {
60
+ margin: 0.75rem 0;
61
+ }
62
+
63
+
64
+ .product-tags.svelte-11ja2cl {
65
+ margin-top: 0.5rem;
66
+ display: flex;
67
+ flex-wrap: wrap;
68
+ gap: 0.25rem;
69
+ }
70
+
71
+ .tag.svelte-11ja2cl {
72
+ background: var(--smrt-color-surface-container, #f3f4f6);
73
+ color: var(--smrt-color-on-surface, #374151);
74
+ padding: 0.125rem 0.5rem;
75
+ border-radius: var(--smrt-radius-full, 9999px);
76
+ font-size: var(--smrt-typography-label-medium-size, 0.75rem);
77
+ }
78
+
79
+ .product-actions.svelte-11ja2cl {
80
+ display: flex;
81
+ gap: 0.5rem;
82
+ margin-top: 1rem;
83
+ padding-top: 0.75rem;
84
+ border-top: 1px solid var(--smrt-color-outline-variant, #f3f4f6);
85
+ }
86
+
87
+ .edit-btn.svelte-11ja2cl, .delete-btn.svelte-11ja2cl {
88
+ padding: 0.375rem 0.75rem;
89
+ border-radius: var(--smrt-radius-sm, 4px);
90
+ font-size: var(--smrt-typography-label-large-size, 0.875rem);
91
+ font-weight: var(--smrt-typography-weight-medium, 500);
92
+ border: 1px solid;
93
+ cursor: pointer;
94
+ transition: all 0.2s;
95
+ }
96
+
97
+ .edit-btn.svelte-11ja2cl {
98
+ background: var(--smrt-color-surface-container-low, #f9fafb);
99
+ border-color: var(--smrt-color-outline-variant, #d1d5db);
100
+ color: var(--smrt-color-on-surface, #374151);
101
+ }
102
+
103
+ .edit-btn.svelte-11ja2cl:hover {
104
+ background: var(--smrt-color-surface-container, #f3f4f6);
105
+ }
106
+
107
+ .delete-btn.svelte-11ja2cl {
108
+ background: var(--smrt-color-error-container, #fef2f2);
109
+ border-color: var(--smrt-color-error, #fecaca);
110
+ color: var(--smrt-color-error, #dc2626);
111
+ }
112
+
113
+ .delete-btn.svelte-11ja2cl:hover {
114
+ background: var(--smrt-color-error-container, #fee2e2);
115
+ }
116
+
117
+ .product-form.svelte-1hh5ovx {
118
+ max-width: 500px;
119
+ padding: 1.5rem;
120
+ background: white;
121
+ border-radius: var(--smrt-radius-md, 8px);
122
+ border: 1px solid var(--smrt-color-outline-variant, #e2e8f0);
123
+ }
124
+
125
+ .form-group.svelte-1hh5ovx {
126
+ margin-bottom: 1rem;
127
+ }
128
+
129
+ .form-row.svelte-1hh5ovx {
130
+ display: grid;
131
+ grid-template-columns: 1fr 1fr;
132
+ gap: 1rem;
133
+ }
134
+
135
+ label.svelte-1hh5ovx {
136
+ display: block;
137
+ margin-bottom: 0.25rem;
138
+ font-weight: var(--smrt-typography-weight-medium, 500);
139
+ color: var(--smrt-color-on-surface, #374151);
140
+ font-size: var(--smrt-typography-label-large-size, 0.875rem);
141
+ }
142
+
143
+ .form-input.svelte-1hh5ovx, .form-textarea.svelte-1hh5ovx {
144
+ width: 100%;
145
+ padding: 0.5rem;
146
+ border: 1px solid var(--smrt-color-outline-variant, #d1d5db);
147
+ border-radius: var(--smrt-radius-sm, 4px);
148
+ font-size: var(--smrt-typography-body-medium-size, 0.875rem);
149
+ transition: border-color 0.2s;
150
+ }
151
+
152
+ .form-input.svelte-1hh5ovx:focus, .form-textarea.svelte-1hh5ovx:focus {
153
+ outline: none;
154
+ border-color: var(--smrt-color-primary, #3b82f6);
155
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--smrt-color-primary, #3b82f6) 10%, transparent);
156
+ }
157
+
158
+ .form-input.error.svelte-1hh5ovx {
159
+ border-color: var(--smrt-color-error, #dc2626);
160
+ }
161
+
162
+ .form-textarea.svelte-1hh5ovx {
163
+ resize: vertical;
164
+ min-height: 80px;
165
+ }
166
+
167
+ .checkbox-label.svelte-1hh5ovx {
168
+ display: flex;
169
+ align-items: center;
170
+ gap: 0.5rem;
171
+ cursor: pointer;
172
+ }
173
+
174
+ .form-checkbox.svelte-1hh5ovx {
175
+ width: auto;
176
+ }
177
+
178
+ .form-hint.svelte-1hh5ovx {
179
+ color: var(--smrt-color-on-surface-variant, #6b7280);
180
+ font-size: var(--smrt-typography-body-small-size, 0.75rem);
181
+ margin-top: 0.25rem;
182
+ }
183
+
184
+ .error-message.svelte-1hh5ovx {
185
+ color: var(--smrt-color-error, #dc2626);
186
+ font-size: var(--smrt-typography-label-medium-size, 0.75rem);
187
+ margin-top: 0.25rem;
188
+ display: block;
189
+ }
190
+
191
+ .form-actions.svelte-1hh5ovx {
192
+ display: flex;
193
+ gap: 0.75rem;
194
+ justify-content: flex-end;
195
+ margin-top: 1.5rem;
196
+ padding-top: 1rem;
197
+ border-top: 1px solid var(--smrt-color-outline-variant, #f3f4f6);
198
+ }
199
+
200
+ .cancel-btn.svelte-1hh5ovx, .submit-btn.svelte-1hh5ovx {
201
+ padding: 0.5rem 1rem;
202
+ border-radius: var(--smrt-radius-sm, 4px);
203
+ font-size: var(--smrt-typography-label-large-size, 0.875rem);
204
+ font-weight: var(--smrt-typography-weight-medium, 500);
205
+ cursor: pointer;
206
+ border: 1px solid;
207
+ transition: all 0.2s;
208
+ }
209
+
210
+ .cancel-btn.svelte-1hh5ovx {
211
+ background: white;
212
+ border-color: var(--smrt-color-outline-variant, #d1d5db);
213
+ color: var(--smrt-color-on-surface, #374151);
214
+ }
215
+
216
+ .cancel-btn.svelte-1hh5ovx:hover:not(:disabled) {
217
+ background: var(--smrt-color-surface-container-low, #f9fafb);
218
+ }
219
+
220
+ .submit-btn.svelte-1hh5ovx {
221
+ background: var(--smrt-color-primary, #3b82f6);
222
+ border-color: var(--smrt-color-primary, #3b82f6);
223
+ color: var(--smrt-color-on-primary, white);
224
+ }
225
+
226
+ .submit-btn.svelte-1hh5ovx:hover:not(:disabled) {
227
+ background: var(--smrt-color-primary, #2563eb);
228
+ }
229
+
230
+ .submit-btn.svelte-1hh5ovx:disabled, .cancel-btn.svelte-1hh5ovx:disabled {
231
+ opacity: 0.5;
232
+ cursor: not-allowed;
233
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/stores/index';
2
+ //# sourceMappingURL=stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/stores.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { P, p } from "./chunks/product-store.svelte-Dayd5n3W.js";
2
+ export {
3
+ P as ProductStoreClass,
4
+ p as productStore
5
+ };
6
+ //# sourceMappingURL=stores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ export * from './lib/utils/index';
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,27 @@
1
+ function formatPrice(price) {
2
+ return new Intl.NumberFormat("en-US", {
3
+ style: "currency",
4
+ currency: "USD"
5
+ }).format(price);
6
+ }
7
+ function formatDate(date) {
8
+ const dateObj = typeof date === "string" ? new Date(date) : date;
9
+ return new Intl.DateTimeFormat("en-US", {
10
+ year: "numeric",
11
+ month: "short",
12
+ day: "numeric"
13
+ }).format(dateObj);
14
+ }
15
+ function slugify(text) {
16
+ return text.toLowerCase().replace(/[^\w ]+/g, "").replace(/ +/g, "-");
17
+ }
18
+ function generateId() {
19
+ return Math.random().toString(36).substr(2, 9);
20
+ }
21
+ export {
22
+ formatDate,
23
+ formatPrice,
24
+ generateId,
25
+ slugify
26
+ };
27
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/lib/utils/index.ts"],"sourcesContent":["/**\n * SMRT Template Utilities\n *\n * Shared utility functions for product management functionality.\n */\n\nexport function formatPrice(price: number): string {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n }).format(price);\n}\n\nexport function formatDate(date: string | Date): string {\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }).format(dateObj);\n}\n\nexport function slugify(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^\\w ]+/g, '')\n .replace(/ +/g, '-');\n}\n\nexport function generateId(): string {\n return Math.random().toString(36).substr(2, 9);\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAY,OAAuB;AACjD,SAAO,IAAI,KAAK,aAAa,SAAS;AAAA,IACpC,OAAO;AAAA,IACP,UAAU;AAAA,EAAA,CACX,EAAE,OAAO,KAAK;AACjB;AAEO,SAAS,WAAW,MAA6B;AACtD,QAAM,UAAU,OAAO,SAAS,WAAW,IAAI,KAAK,IAAI,IAAI;AAC5D,SAAO,IAAI,KAAK,eAAe,SAAS;AAAA,IACtC,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN,EAAE,OAAO,OAAO;AACnB;AAEO,SAAS,QAAQ,MAAsB;AAC5C,SAAO,KACJ,cACA,QAAQ,YAAY,EAAE,EACtB,QAAQ,OAAO,GAAG;AACvB;AAEO,SAAS,aAAqB;AACnC,SAAO,KAAK,SAAS,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC;AAC/C;"}
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@happyvertical/smrt-products",
3
+ "version": "0.30.0",
4
+ "description": "SMRT products module: triple-purpose microservice template for standalone apps, federated modules, and NPM libraries",
5
+ "author": "HappyVertical",
6
+ "type": "module",
7
+ "main": "dist/lib/index.js",
8
+ "types": "dist/lib/index.d.ts",
9
+ "files": [
10
+ "CLAUDE.md",
11
+ "dist/app",
12
+ "dist/federation",
13
+ "dist/lib",
14
+ "AGENTS.md"
15
+ ],
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/lib/index.d.ts",
19
+ "svelte": "./dist/lib/index.js",
20
+ "default": "./dist/lib/index.js"
21
+ },
22
+ "./models": {
23
+ "types": "./dist/lib/models.d.ts",
24
+ "default": "./dist/lib/models.js"
25
+ },
26
+ "./components": {
27
+ "types": "./dist/lib/components.d.ts",
28
+ "default": "./dist/lib/components.js"
29
+ },
30
+ "./stores": {
31
+ "types": "./dist/lib/stores.d.ts",
32
+ "default": "./dist/lib/stores.js"
33
+ },
34
+ "./generated": {
35
+ "types": "./dist/lib/generated.d.ts",
36
+ "default": "./dist/lib/generated.js"
37
+ },
38
+ "./utils": {
39
+ "types": "./dist/lib/utils.d.ts",
40
+ "default": "./dist/lib/utils.js"
41
+ },
42
+ "./collections": {
43
+ "types": "./dist/lib/collections.d.ts",
44
+ "default": "./dist/lib/collections.js"
45
+ },
46
+ "./manifest": "./dist/lib/manifest.json",
47
+ "./manifest.json": "./dist/lib/manifest.json"
48
+ },
49
+ "dependencies": {
50
+ "@happyvertical/ai": "^0.74.7",
51
+ "@happyvertical/files": "^0.74.7",
52
+ "@happyvertical/logger": "^0.74.7",
53
+ "@happyvertical/sql": "^0.74.7",
54
+ "@happyvertical/utils": "^0.74.7",
55
+ "cors": "^2.8.5",
56
+ "express": "^5.2.1",
57
+ "@happyvertical/smrt-assets": "0.30.0",
58
+ "@happyvertical/smrt-core": "0.30.0",
59
+ "@happyvertical/smrt-ui": "0.30.0",
60
+ "@happyvertical/smrt-tenancy": "0.30.0",
61
+ "@happyvertical/smrt-scanner": "0.30.0"
62
+ },
63
+ "peerDependencies": {
64
+ "svelte": "^5.46.4"
65
+ },
66
+ "peerDependenciesMeta": {
67
+ "svelte": {
68
+ "optional": true
69
+ }
70
+ },
71
+ "devDependencies": {
72
+ "@originjs/vite-plugin-federation": "^1.4.1",
73
+ "@sveltejs/package": "^2.5.7",
74
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
75
+ "@types/cors": "2.8.19",
76
+ "@types/express": "^5.0.0",
77
+ "@types/node": "25.0.9",
78
+ "concurrently": "^9.2.1",
79
+ "svelte": "^5.46.4",
80
+ "svelte-check": "^4.3.5",
81
+ "typescript": "^5.9.3",
82
+ "vite": "^7.3.1",
83
+ "vitest": "^4.0.17",
84
+ "@happyvertical/smrt-vitest": "0.30.0"
85
+ },
86
+ "keywords": [
87
+ "smrt",
88
+ "microservice",
89
+ "module-federation",
90
+ "svelte",
91
+ "typescript",
92
+ "auto-generation"
93
+ ],
94
+ "publishConfig": {
95
+ "registry": "https://registry.npmjs.org",
96
+ "access": "public"
97
+ },
98
+ "repository": {
99
+ "type": "git",
100
+ "url": "https://github.com/happyvertical/smrt.git",
101
+ "directory": "packages/products"
102
+ },
103
+ "scripts": {
104
+ "dev": "npm run dev:all",
105
+ "dev:all": "concurrently \"npm run dev:standalone\" \"npm run dev:federation\"",
106
+ "dev:standalone": "vite dev --mode standalone --port 3001",
107
+ "dev:federation": "vite dev --mode federation --port 3002",
108
+ "dev:library": "vite build --mode library --watch",
109
+ "generate": "node scripts/generate-smrt-types.js",
110
+ "typecheck": "npm run generate && tsc --noEmit -p tsconfig.json",
111
+ "build": "npm run build:lib",
112
+ "build:all": "npm run clean && npm run generate && npm run build:lib && npm run build:app && npm run build:federation",
113
+ "build:lib": "vite build --mode library && svelte-package -i src/lib/components -o dist/lib/lib/components --tsconfig tsconfig.svelte.json && svelte-package -i src/lib/features -o dist/lib/lib/features --tsconfig tsconfig.svelte.json && svelte-package -i src/lib/stores -o dist/lib/lib/stores --tsconfig tsconfig.svelte.json",
114
+ "build:app": "vite build --mode standalone",
115
+ "build:federation": "vite build --mode federation",
116
+ "generate:mcp": "tsx src/mcp.ts",
117
+ "mcp": "node dist/mcp-server.js",
118
+ "start": "npm run start:standalone",
119
+ "start:standalone": "node dist/app/main.js",
120
+ "start:federation": "node dist/federation/main.js",
121
+ "preview": "vite preview",
122
+ "test": "vitest run",
123
+ "test:watch": "vitest",
124
+ "verify:pack": "node ../../scripts/verify-package-types-exports.js .",
125
+ "clean": "rm -rf dist src/lib/types/smrt-generated"
126
+ }
127
+ }