@creationix/jot 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -23
  3. package/dist/jot.cjs +446 -0
  4. package/dist/jot.d.ts +6 -0
  5. package/dist/jot.js +442 -0
  6. package/package.json +34 -4
  7. package/SUMMARY.md +0 -151
  8. package/TOKEN_COUNTS.md +0 -97
  9. package/bun.lock +0 -19
  10. package/jot.test.ts +0 -133
  11. package/jot.ts +0 -650
  12. package/samples/chat.jot +0 -1
  13. package/samples/chat.json +0 -1
  14. package/samples/chat.pretty.jot +0 -6
  15. package/samples/chat.pretty.json +0 -16
  16. package/samples/firewall.jot +0 -1
  17. package/samples/firewall.json +0 -1
  18. package/samples/firewall.pretty.jot +0 -235
  19. package/samples/firewall.pretty.json +0 -344
  20. package/samples/github-issue.jot +0 -1
  21. package/samples/github-issue.json +0 -1
  22. package/samples/github-issue.pretty.jot +0 -15
  23. package/samples/github-issue.pretty.json +0 -20
  24. package/samples/hikes.jot +0 -1
  25. package/samples/hikes.json +0 -1
  26. package/samples/hikes.pretty.jot +0 -14
  27. package/samples/hikes.pretty.json +0 -38
  28. package/samples/irregular.jot +0 -1
  29. package/samples/irregular.json +0 -1
  30. package/samples/irregular.pretty.jot +0 -13
  31. package/samples/irregular.pretty.json +0 -23
  32. package/samples/json-counts-cache.jot +0 -1
  33. package/samples/json-counts-cache.json +0 -1
  34. package/samples/json-counts-cache.pretty.jot +0 -26
  35. package/samples/json-counts-cache.pretty.json +0 -26
  36. package/samples/key-folding-basic.jot +0 -1
  37. package/samples/key-folding-basic.json +0 -1
  38. package/samples/key-folding-basic.pretty.jot +0 -7
  39. package/samples/key-folding-basic.pretty.json +0 -25
  40. package/samples/key-folding-mixed.jot +0 -1
  41. package/samples/key-folding-mixed.json +0 -1
  42. package/samples/key-folding-mixed.pretty.jot +0 -16
  43. package/samples/key-folding-mixed.pretty.json +0 -24
  44. package/samples/key-folding-with-array.jot +0 -1
  45. package/samples/key-folding-with-array.json +0 -1
  46. package/samples/key-folding-with-array.pretty.jot +0 -6
  47. package/samples/key-folding-with-array.pretty.json +0 -29
  48. package/samples/large.jot +0 -1
  49. package/samples/large.json +0 -1
  50. package/samples/large.pretty.jot +0 -72
  51. package/samples/large.pretty.json +0 -93
  52. package/samples/logs.jot +0 -1
  53. package/samples/logs.json +0 -1
  54. package/samples/logs.pretty.jot +0 -96
  55. package/samples/logs.pretty.json +0 -350
  56. package/samples/medium.jot +0 -1
  57. package/samples/medium.json +0 -1
  58. package/samples/medium.pretty.jot +0 -13
  59. package/samples/medium.pretty.json +0 -30
  60. package/samples/metrics.jot +0 -1
  61. package/samples/metrics.json +0 -1
  62. package/samples/metrics.pretty.jot +0 -11
  63. package/samples/metrics.pretty.json +0 -25
  64. package/samples/package.jot +0 -1
  65. package/samples/package.json +0 -1
  66. package/samples/package.pretty.jot +0 -18
  67. package/samples/package.pretty.json +0 -18
  68. package/samples/products.jot +0 -1
  69. package/samples/products.json +0 -1
  70. package/samples/products.pretty.jot +0 -69
  71. package/samples/products.pretty.json +0 -235
  72. package/samples/routes.jot +0 -1
  73. package/samples/routes.json +0 -1
  74. package/samples/routes.pretty.jot +0 -142
  75. package/samples/routes.pretty.json +0 -354
  76. package/samples/small.jot +0 -1
  77. package/samples/small.json +0 -1
  78. package/samples/small.pretty.jot +0 -8
  79. package/samples/small.pretty.json +0 -12
  80. package/samples/users-50.jot +0 -1
  81. package/samples/users-50.json +0 -1
  82. package/samples/users-50.pretty.jot +0 -53
  83. package/samples/users-50.pretty.json +0 -354
@@ -1,350 +0,0 @@
1
- {
2
- "logs": [
3
- {
4
- "ts": "2024-01-15T10:00:01Z",
5
- "level": "info",
6
- "service": "api",
7
- "msg": "Server started on port 3000"
8
- },
9
- {
10
- "ts": "2024-01-15T10:00:02Z",
11
- "level": "info",
12
- "service": "db",
13
- "msg": "Connected to database"
14
- },
15
- {
16
- "ts": "2024-01-15T10:00:05Z",
17
- "level": "debug",
18
- "service": "auth",
19
- "msg": "Loading JWT keys"
20
- },
21
- {
22
- "ts": "2024-01-15T10:00:10Z",
23
- "level": "info",
24
- "service": "api",
25
- "msg": "Health check endpoint ready"
26
- },
27
- {
28
- "ts": "2024-01-15T10:01:23Z",
29
- "level": "info",
30
- "service": "api",
31
- "msg": "Request received",
32
- "method": "GET",
33
- "path": "/users"
34
- },
35
- {
36
- "ts": "2024-01-15T10:01:24Z",
37
- "level": "debug",
38
- "service": "db",
39
- "msg": "Query executed",
40
- "duration_ms": 45
41
- },
42
- {
43
- "ts": "2024-01-15T10:01:24Z",
44
- "level": "info",
45
- "service": "api",
46
- "msg": "Response sent",
47
- "status": 200
48
- },
49
- {
50
- "ts": "2024-01-15T10:02:15Z",
51
- "level": "warn",
52
- "service": "auth",
53
- "msg": "Invalid token attempt",
54
- "ip": "192.168.1.100"
55
- },
56
- {
57
- "ts": "2024-01-15T10:02:45Z",
58
- "level": "info",
59
- "service": "api",
60
- "msg": "Request received",
61
- "method": "POST",
62
- "path": "/login"
63
- },
64
- {
65
- "ts": "2024-01-15T10:02:46Z",
66
- "level": "info",
67
- "service": "auth",
68
- "msg": "User authenticated",
69
- "user_id": 42
70
- },
71
- {
72
- "ts": "2024-01-15T10:02:46Z",
73
- "level": "info",
74
- "service": "api",
75
- "msg": "Response sent",
76
- "status": 200
77
- },
78
- {
79
- "ts": "2024-01-15T10:03:00Z",
80
- "level": "info",
81
- "service": "cache",
82
- "msg": "Cache hit",
83
- "key": "user:42"
84
- },
85
- {
86
- "ts": "2024-01-15T10:03:30Z",
87
- "level": "error",
88
- "service": "db",
89
- "msg": "Connection timeout",
90
- "retry": 1
91
- },
92
- {
93
- "ts": "2024-01-15T10:03:31Z",
94
- "level": "info",
95
- "service": "db",
96
- "msg": "Reconnected to database"
97
- },
98
- {
99
- "ts": "2024-01-15T10:04:00Z",
100
- "level": "info",
101
- "service": "api",
102
- "msg": "Request received",
103
- "method": "PUT",
104
- "path": "/users/42"
105
- },
106
- {
107
- "ts": "2024-01-15T10:04:01Z",
108
- "level": "debug",
109
- "service": "db",
110
- "msg": "Query executed",
111
- "duration_ms": 12
112
- },
113
- {
114
- "ts": "2024-01-15T10:04:01Z",
115
- "level": "info",
116
- "service": "api",
117
- "msg": "Response sent",
118
- "status": 200
119
- },
120
- {
121
- "ts": "2024-01-15T10:05:00Z",
122
- "level": "info",
123
- "service": "scheduler",
124
- "msg": "Running cleanup job"
125
- },
126
- {
127
- "ts": "2024-01-15T10:05:02Z",
128
- "level": "info",
129
- "service": "cache",
130
- "msg": "Expired keys removed",
131
- "count": 156
132
- },
133
- {
134
- "ts": "2024-01-15T10:05:10Z",
135
- "level": "info",
136
- "service": "api",
137
- "msg": "Request received",
138
- "method": "DELETE",
139
- "path": "/sessions/old"
140
- },
141
- {
142
- "ts": "2024-01-15T10:05:11Z",
143
- "level": "info",
144
- "service": "db",
145
- "msg": "Rows deleted",
146
- "count": 23
147
- },
148
- {
149
- "ts": "2024-01-15T10:05:11Z",
150
- "level": "info",
151
- "service": "api",
152
- "msg": "Response sent",
153
- "status": 204
154
- },
155
- {
156
- "ts": "2024-01-15T10:06:00Z",
157
- "level": "warn",
158
- "service": "api",
159
- "msg": "Rate limit approaching",
160
- "client": "app-xyz"
161
- },
162
- {
163
- "ts": "2024-01-15T10:06:30Z",
164
- "level": "info",
165
- "service": "api",
166
- "msg": "Request received",
167
- "method": "GET",
168
- "path": "/products"
169
- },
170
- {
171
- "ts": "2024-01-15T10:06:31Z",
172
- "level": "debug",
173
- "service": "cache",
174
- "msg": "Cache miss",
175
- "key": "products:all"
176
- },
177
- {
178
- "ts": "2024-01-15T10:06:32Z",
179
- "level": "debug",
180
- "service": "db",
181
- "msg": "Query executed",
182
- "duration_ms": 89
183
- },
184
- {
185
- "ts": "2024-01-15T10:06:32Z",
186
- "level": "info",
187
- "service": "cache",
188
- "msg": "Cache set",
189
- "key": "products:all",
190
- "ttl": 300
191
- },
192
- {
193
- "ts": "2024-01-15T10:06:32Z",
194
- "level": "info",
195
- "service": "api",
196
- "msg": "Response sent",
197
- "status": 200
198
- },
199
- {
200
- "ts": "2024-01-15T10:07:00Z",
201
- "level": "info",
202
- "service": "metrics",
203
- "msg": "Metrics exported",
204
- "endpoint": "/metrics"
205
- },
206
- {
207
- "ts": "2024-01-15T10:07:45Z",
208
- "level": "error",
209
- "service": "api",
210
- "msg": "Unhandled exception",
211
- "error": "TypeError: Cannot read property 'id' of undefined"
212
- },
213
- {
214
- "ts": "2024-01-15T10:07:45Z",
215
- "level": "info",
216
- "service": "api",
217
- "msg": "Response sent",
218
- "status": 500
219
- },
220
- {
221
- "ts": "2024-01-15T10:08:00Z",
222
- "level": "info",
223
- "service": "api",
224
- "msg": "Request received",
225
- "method": "GET",
226
- "path": "/health"
227
- },
228
- {
229
- "ts": "2024-01-15T10:08:00Z",
230
- "level": "info",
231
- "service": "api",
232
- "msg": "Response sent",
233
- "status": 200
234
- },
235
- {
236
- "ts": "2024-01-15T10:09:00Z",
237
- "level": "info",
238
- "service": "auth",
239
- "msg": "Token refreshed",
240
- "user_id": 42
241
- },
242
- {
243
- "ts": "2024-01-15T10:10:00Z",
244
- "level": "info",
245
- "service": "scheduler",
246
- "msg": "Sending daily digest"
247
- },
248
- {
249
- "ts": "2024-01-15T10:10:05Z",
250
- "level": "info",
251
- "service": "email",
252
- "msg": "Email queued",
253
- "count": 127
254
- },
255
- {
256
- "ts": "2024-01-15T10:11:00Z",
257
- "level": "warn",
258
- "service": "db",
259
- "msg": "Slow query detected",
260
- "duration_ms": 1250,
261
- "query": "SELECT * FROM orders WHERE..."
262
- },
263
- {
264
- "ts": "2024-01-15T10:12:00Z",
265
- "level": "info",
266
- "service": "api",
267
- "msg": "Request received",
268
- "method": "POST",
269
- "path": "/orders"
270
- },
271
- {
272
- "ts": "2024-01-15T10:12:01Z",
273
- "level": "info",
274
- "service": "db",
275
- "msg": "Transaction started"
276
- },
277
- {
278
- "ts": "2024-01-15T10:12:02Z",
279
- "level": "info",
280
- "service": "db",
281
- "msg": "Transaction committed"
282
- },
283
- {
284
- "ts": "2024-01-15T10:12:02Z",
285
- "level": "info",
286
- "service": "api",
287
- "msg": "Response sent",
288
- "status": 201
289
- },
290
- {
291
- "ts": "2024-01-15T10:13:00Z",
292
- "level": "info",
293
- "service": "webhook",
294
- "msg": "Webhook triggered",
295
- "event": "order.created"
296
- },
297
- {
298
- "ts": "2024-01-15T10:13:01Z",
299
- "level": "info",
300
- "service": "webhook",
301
- "msg": "Webhook delivered",
302
- "status": 200
303
- },
304
- {
305
- "ts": "2024-01-15T10:14:00Z",
306
- "level": "debug",
307
- "service": "api",
308
- "msg": "Request timeout",
309
- "client": "mobile-app"
310
- },
311
- {
312
- "ts": "2024-01-15T10:15:00Z",
313
- "level": "info",
314
- "service": "api",
315
- "msg": "Request received",
316
- "method": "GET",
317
- "path": "/orders/123"
318
- },
319
- {
320
- "ts": "2024-01-15T10:15:01Z",
321
- "level": "info",
322
- "service": "api",
323
- "msg": "Response sent",
324
- "status": 200
325
- },
326
- {
327
- "ts": "2024-01-15T10:16:00Z",
328
- "level": "info",
329
- "service": "cache",
330
- "msg": "Memory usage",
331
- "used_mb": 245,
332
- "max_mb": 512
333
- },
334
- {
335
- "ts": "2024-01-15T10:17:00Z",
336
- "level": "warn",
337
- "service": "api",
338
- "msg": "Deprecated endpoint called",
339
- "path": "/v1/legacy"
340
- },
341
- {
342
- "ts": "2024-01-15T10:18:00Z",
343
- "level": "info",
344
- "service": "api",
345
- "msg": "Request received",
346
- "method": "PATCH",
347
- "path": "/users/42/settings"
348
- }
349
- ]
350
- }
@@ -1 +0,0 @@
1
- {users:{{:id,name,email,role,active;1,Alice Johnson,alice@example.com,admin,true;2,Bob Smith,bob@example.com,user,true;3,Carol Davis,carol@example.com,user,false}},metadata:{total:3,page:1,perPage:10}}
@@ -1 +0,0 @@
1
- {"users":[{"id":1,"name":"Alice Johnson","email":"alice@example.com","role":"admin","active":true},{"id":2,"name":"Bob Smith","email":"bob@example.com","role":"user","active":true},{"id":3,"name":"Carol Davis","email":"carol@example.com","role":"user","active":false}],"metadata":{"total":3,"page":1,"perPage":10}}
@@ -1,13 +0,0 @@
1
- {
2
- users: {{
3
- :id, name, email, role, active
4
- 1, Alice Johnson, alice@example.com, admin, true
5
- 2, Bob Smith, bob@example.com, user, true
6
- 3, Carol Davis, carol@example.com, user, false
7
- }},
8
- metadata: {
9
- total: 3,
10
- page: 1,
11
- perPage: 10
12
- }
13
- }
@@ -1,30 +0,0 @@
1
- {
2
- "users": [
3
- {
4
- "id": 1,
5
- "name": "Alice Johnson",
6
- "email": "alice@example.com",
7
- "role": "admin",
8
- "active": true
9
- },
10
- {
11
- "id": 2,
12
- "name": "Bob Smith",
13
- "email": "bob@example.com",
14
- "role": "user",
15
- "active": true
16
- },
17
- {
18
- "id": 3,
19
- "name": "Carol Davis",
20
- "email": "carol@example.com",
21
- "role": "user",
22
- "active": false
23
- }
24
- ],
25
- "metadata": {
26
- "total": 3,
27
- "page": 1,
28
- "perPage": 10
29
- }
30
- }
@@ -1 +0,0 @@
1
- {series:cpu_usage,points:{{:t,v;1704067200,45.2;1704067260,52.1;1704067320,48.7;1704067380,61.3;1704067440,55.9}}}
@@ -1 +0,0 @@
1
- {"series":"cpu_usage","points":[{"t":1704067200,"v":45.2},{"t":1704067260,"v":52.1},{"t":1704067320,"v":48.7},{"t":1704067380,"v":61.3},{"t":1704067440,"v":55.9}]}
@@ -1,11 +0,0 @@
1
- {
2
- series: cpu_usage,
3
- points: {{
4
- :t, v
5
- 1704067200, 45.2
6
- 1704067260, 52.1
7
- 1704067320, 48.7
8
- 1704067380, 61.3
9
- 1704067440, 55.9
10
- }}
11
- }
@@ -1,25 +0,0 @@
1
- {
2
- "series": "cpu_usage",
3
- "points": [
4
- {
5
- "t": 1704067200,
6
- "v": 45.2
7
- },
8
- {
9
- "t": 1704067260,
10
- "v": 52.1
11
- },
12
- {
13
- "t": 1704067320,
14
- "v": 48.7
15
- },
16
- {
17
- "t": 1704067380,
18
- "v": 61.3
19
- },
20
- {
21
- "t": 1704067440,
22
- "v": 55.9
23
- }
24
- ]
25
- }
@@ -1 +0,0 @@
1
- {name:my-app,version:1.0.0,scripts:{dev:vite,build:tsc && vite build,test:vitest},dependencies:{react:^18.2.0,react-dom:^18.2.0},devDependencies:{typescript:^5.0.0,vite:^5.0.0,vitest:^1.0.0}}
@@ -1 +0,0 @@
1
- {"name":"my-app","version":"1.0.0","scripts":{"dev":"vite","build":"tsc && vite build","test":"vitest"},"dependencies":{"react":"^18.2.0","react-dom":"^18.2.0"},"devDependencies":{"typescript":"^5.0.0","vite":"^5.0.0","vitest":"^1.0.0"}}
@@ -1,18 +0,0 @@
1
- {
2
- name: my-app,
3
- version: 1.0.0,
4
- scripts: {
5
- dev: vite,
6
- build: tsc && vite build,
7
- test: vitest
8
- },
9
- dependencies: {
10
- react: ^18.2.0,
11
- react-dom: ^18.2.0
12
- },
13
- devDependencies: {
14
- typescript: ^5.0.0,
15
- vite: ^5.0.0,
16
- vitest: ^1.0.0
17
- }
18
- }
@@ -1,18 +0,0 @@
1
- {
2
- "name": "my-app",
3
- "version": "1.0.0",
4
- "scripts": {
5
- "dev": "vite",
6
- "build": "tsc && vite build",
7
- "test": "vitest"
8
- },
9
- "dependencies": {
10
- "react": "^18.2.0",
11
- "react-dom": "^18.2.0"
12
- },
13
- "devDependencies": {
14
- "typescript": "^5.0.0",
15
- "vite": "^5.0.0",
16
- "vitest": "^1.0.0"
17
- }
18
- }
@@ -1 +0,0 @@
1
- {catalog:{version:"2.1",updated:2024-01-15,currency:USD},categories:{{:id,name,parent;electronics,Electronics,null;computers,Computers,electronics;phones,Phones,electronics;clothing,Clothing,null;mens,Men's,clothing;womens,Women's,clothing}},products:{{:sku,name,category,price,stock,specs,tags,rating,reviews;LAPTOP-001,ProBook 15,computers,1299.99,45,{cpu:Intel i7,ram:16GB,storage:512GB SSD,display:15.6 inch},[laptop,business,portable],4.5,234;LAPTOP-002,GameMaster X,computers,1899.99,23,{cpu:AMD Ryzen 9,ram:32GB,storage:1TB NVMe,gpu:RTX 4070},[laptop,gaming,high-performance],4.8,567;PHONE-001,SmartPhone Pro,phones,999,150,{screen:6.7 inch OLED,camera:108MP,battery:5000mAh},[smartphone,flagship,5G],4.6,1023;PHONE-002,BudgetPhone SE,phones,299,500,{screen:6.1 inch LCD,camera:48MP,battery:4000mAh},[smartphone,budget,value],4.2,445;:sku,name,category,price,stock,variants,tags,rating,reviews;SHIRT-001,Classic Oxford Shirt,mens,59.99,200,{{:size,color,stock;S,white,40;M,white,60;L,white,50;M,blue,30;L,blue,20}},[shirt,formal,cotton],4.4,89;DRESS-001,Summer Floral Dress,womens,79.99,75,{{:size,color,stock;XS,floral-pink,15;S,floral-pink,20;M,floral-pink,25;L,floral-pink,15}},[dress,casual,summer],4.7,156;:sku,name,category,price,stock,specs,tags,rating,reviews;MONITOR-001,UltraWide 34,electronics,549.99,67,{size:34 inch,resolution:3440x1440,refresh:144Hz,panel:IPS},[monitor,ultrawide,gaming],4.6,312;KEYBOARD-001,Mechanical Pro,electronics,149.99,120,{switches:Cherry MX Brown,layout:full,backlight:RGB},[keyboard,mechanical,gaming],4.5,678}}}
@@ -1 +0,0 @@
1
- {"catalog":{"version":"2.1","updated":"2024-01-15","currency":"USD"},"categories":[{"id":"electronics","name":"Electronics","parent":null},{"id":"computers","name":"Computers","parent":"electronics"},{"id":"phones","name":"Phones","parent":"electronics"},{"id":"clothing","name":"Clothing","parent":null},{"id":"mens","name":"Men's","parent":"clothing"},{"id":"womens","name":"Women's","parent":"clothing"}],"products":[{"sku":"LAPTOP-001","name":"ProBook 15","category":"computers","price":1299.99,"stock":45,"specs":{"cpu":"Intel i7","ram":"16GB","storage":"512GB SSD","display":"15.6 inch"},"tags":["laptop","business","portable"],"rating":4.5,"reviews":234},{"sku":"LAPTOP-002","name":"GameMaster X","category":"computers","price":1899.99,"stock":23,"specs":{"cpu":"AMD Ryzen 9","ram":"32GB","storage":"1TB NVMe","gpu":"RTX 4070"},"tags":["laptop","gaming","high-performance"],"rating":4.8,"reviews":567},{"sku":"PHONE-001","name":"SmartPhone Pro","category":"phones","price":999,"stock":150,"specs":{"screen":"6.7 inch OLED","camera":"108MP","battery":"5000mAh"},"tags":["smartphone","flagship","5G"],"rating":4.6,"reviews":1023},{"sku":"PHONE-002","name":"BudgetPhone SE","category":"phones","price":299,"stock":500,"specs":{"screen":"6.1 inch LCD","camera":"48MP","battery":"4000mAh"},"tags":["smartphone","budget","value"],"rating":4.2,"reviews":445},{"sku":"SHIRT-001","name":"Classic Oxford Shirt","category":"mens","price":59.99,"stock":200,"variants":[{"size":"S","color":"white","stock":40},{"size":"M","color":"white","stock":60},{"size":"L","color":"white","stock":50},{"size":"M","color":"blue","stock":30},{"size":"L","color":"blue","stock":20}],"tags":["shirt","formal","cotton"],"rating":4.4,"reviews":89},{"sku":"DRESS-001","name":"Summer Floral Dress","category":"womens","price":79.99,"stock":75,"variants":[{"size":"XS","color":"floral-pink","stock":15},{"size":"S","color":"floral-pink","stock":20},{"size":"M","color":"floral-pink","stock":25},{"size":"L","color":"floral-pink","stock":15}],"tags":["dress","casual","summer"],"rating":4.7,"reviews":156},{"sku":"MONITOR-001","name":"UltraWide 34","category":"electronics","price":549.99,"stock":67,"specs":{"size":"34 inch","resolution":"3440x1440","refresh":"144Hz","panel":"IPS"},"tags":["monitor","ultrawide","gaming"],"rating":4.6,"reviews":312},{"sku":"KEYBOARD-001","name":"Mechanical Pro","category":"electronics","price":149.99,"stock":120,"specs":{"switches":"Cherry MX Brown","layout":"full","backlight":"RGB"},"tags":["keyboard","mechanical","gaming"],"rating":4.5,"reviews":678}]}
@@ -1,69 +0,0 @@
1
- {
2
- catalog: {
3
- version: "2.1",
4
- updated: 2024-01-15,
5
- currency: USD
6
- },
7
- categories: {{
8
- :id, name, parent
9
- electronics, Electronics, null
10
- computers, Computers, electronics
11
- phones, Phones, electronics
12
- clothing, Clothing, null
13
- mens, Men's, clothing
14
- womens, Women's, clothing
15
- }},
16
- products: {{
17
- :sku, name, category, price, stock, specs, tags, rating, reviews
18
- LAPTOP-001, ProBook 15, computers, 1299.99, 45, {
19
- cpu: Intel i7,
20
- ram: 16GB,
21
- storage: 512GB SSD,
22
- display: 15.6 inch
23
- }, [ laptop, business, portable ], 4.5, 234
24
- LAPTOP-002, GameMaster X, computers, 1899.99, 23, {
25
- cpu: AMD Ryzen 9,
26
- ram: 32GB,
27
- storage: 1TB NVMe,
28
- gpu: RTX 4070
29
- }, [ laptop, gaming, high-performance ], 4.8, 567
30
- PHONE-001, SmartPhone Pro, phones, 999, 150, {
31
- screen: 6.7 inch OLED,
32
- camera: 108MP,
33
- battery: 5000mAh
34
- }, [ smartphone, flagship, 5G ], 4.6, 1023
35
- PHONE-002, BudgetPhone SE, phones, 299, 500, {
36
- screen: 6.1 inch LCD,
37
- camera: 48MP,
38
- battery: 4000mAh
39
- }, [ smartphone, budget, value ], 4.2, 445
40
- :sku, name, category, price, stock, variants, tags, rating, reviews
41
- SHIRT-001, Classic Oxford Shirt, mens, 59.99, 200, {{
42
- :size, color, stock
43
- S, white, 40
44
- M, white, 60
45
- L, white, 50
46
- M, blue, 30
47
- L, blue, 20
48
- }}, [ shirt, formal, cotton ], 4.4, 89
49
- DRESS-001, Summer Floral Dress, womens, 79.99, 75, {{
50
- :size, color, stock
51
- XS, floral-pink, 15
52
- S, floral-pink, 20
53
- M, floral-pink, 25
54
- L, floral-pink, 15
55
- }}, [ dress, casual, summer ], 4.7, 156
56
- :sku, name, category, price, stock, specs, tags, rating, reviews
57
- MONITOR-001, UltraWide 34, electronics, 549.99, 67, {
58
- size: 34 inch,
59
- resolution: 3440x1440,
60
- refresh: 144Hz,
61
- panel: IPS
62
- }, [ monitor, ultrawide, gaming ], 4.6, 312
63
- KEYBOARD-001, Mechanical Pro, electronics, 149.99, 120, {
64
- switches: Cherry MX Brown,
65
- layout: full,
66
- backlight: RGB
67
- }, [ keyboard, mechanical, gaming ], 4.5, 678
68
- }}
69
- }