digital-products 2.0.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 (110) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +535 -0
  4. package/dist/api.d.ts +99 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +129 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/app.d.ts +79 -0
  9. package/dist/app.d.ts.map +1 -0
  10. package/dist/app.js +107 -0
  11. package/dist/app.js.map +1 -0
  12. package/dist/content.d.ts +58 -0
  13. package/dist/content.d.ts.map +1 -0
  14. package/dist/content.js +78 -0
  15. package/dist/content.js.map +1 -0
  16. package/dist/data.d.ts +67 -0
  17. package/dist/data.d.ts.map +1 -0
  18. package/dist/data.js +107 -0
  19. package/dist/data.js.map +1 -0
  20. package/dist/dataset.d.ts +32 -0
  21. package/dist/dataset.d.ts.map +1 -0
  22. package/dist/dataset.js +50 -0
  23. package/dist/dataset.js.map +1 -0
  24. package/dist/entities/ai.d.ts +53 -0
  25. package/dist/entities/ai.d.ts.map +1 -0
  26. package/dist/entities/ai.js +859 -0
  27. package/dist/entities/ai.js.map +1 -0
  28. package/dist/entities/content.d.ts +52 -0
  29. package/dist/entities/content.d.ts.map +1 -0
  30. package/dist/entities/content.js +784 -0
  31. package/dist/entities/content.js.map +1 -0
  32. package/dist/entities/index.d.ts +112 -0
  33. package/dist/entities/index.d.ts.map +1 -0
  34. package/dist/entities/index.js +89 -0
  35. package/dist/entities/index.js.map +1 -0
  36. package/dist/entities/interfaces.d.ts +67 -0
  37. package/dist/entities/interfaces.d.ts.map +1 -0
  38. package/dist/entities/interfaces.js +930 -0
  39. package/dist/entities/interfaces.js.map +1 -0
  40. package/dist/entities/lifecycle.d.ts +51 -0
  41. package/dist/entities/lifecycle.d.ts.map +1 -0
  42. package/dist/entities/lifecycle.js +804 -0
  43. package/dist/entities/lifecycle.js.map +1 -0
  44. package/dist/entities/products.d.ts +53 -0
  45. package/dist/entities/products.d.ts.map +1 -0
  46. package/dist/entities/products.js +798 -0
  47. package/dist/entities/products.js.map +1 -0
  48. package/dist/entities/web.d.ts +44 -0
  49. package/dist/entities/web.d.ts.map +1 -0
  50. package/dist/entities/web.js +658 -0
  51. package/dist/entities/web.js.map +1 -0
  52. package/dist/index.d.ts +29 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +36 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/mcp.d.ts +101 -0
  57. package/dist/mcp.d.ts.map +1 -0
  58. package/dist/mcp.js +140 -0
  59. package/dist/mcp.js.map +1 -0
  60. package/dist/product.d.ts +37 -0
  61. package/dist/product.d.ts.map +1 -0
  62. package/dist/product.js +54 -0
  63. package/dist/product.js.map +1 -0
  64. package/dist/registry.d.ts +9 -0
  65. package/dist/registry.d.ts.map +1 -0
  66. package/dist/registry.js +32 -0
  67. package/dist/registry.js.map +1 -0
  68. package/dist/sdk.d.ts +99 -0
  69. package/dist/sdk.d.ts.map +1 -0
  70. package/dist/sdk.js +128 -0
  71. package/dist/sdk.js.map +1 -0
  72. package/dist/site.d.ts +85 -0
  73. package/dist/site.d.ts.map +1 -0
  74. package/dist/site.js +113 -0
  75. package/dist/site.js.map +1 -0
  76. package/dist/types.d.ts +528 -0
  77. package/dist/types.d.ts.map +1 -0
  78. package/dist/types.js +5 -0
  79. package/dist/types.js.map +1 -0
  80. package/example.ts +236 -0
  81. package/package.json +35 -0
  82. package/src/api.ts +140 -0
  83. package/src/app.ts +117 -0
  84. package/src/content.ts +82 -0
  85. package/src/data.ts +129 -0
  86. package/src/dataset.ts +53 -0
  87. package/src/entities/ai.ts +932 -0
  88. package/src/entities/content.ts +851 -0
  89. package/src/entities/index.ts +156 -0
  90. package/src/entities/interfaces.ts +1017 -0
  91. package/src/entities/lifecycle.ts +872 -0
  92. package/src/entities/products.ts +867 -0
  93. package/src/entities/web.ts +719 -0
  94. package/src/index.ts +55 -0
  95. package/src/mcp.ts +163 -0
  96. package/src/product.ts +59 -0
  97. package/src/registry.ts +41 -0
  98. package/src/sdk.ts +148 -0
  99. package/src/site.ts +127 -0
  100. package/src/types.ts +558 -0
  101. package/test/api.test.ts +247 -0
  102. package/test/app.test.ts +220 -0
  103. package/test/content.test.ts +171 -0
  104. package/test/data.test.ts +201 -0
  105. package/test/dataset.test.ts +181 -0
  106. package/test/mcp.test.ts +230 -0
  107. package/test/product.test.ts +200 -0
  108. package/test/sdk.test.ts +236 -0
  109. package/test/site.test.ts +245 -0
  110. package/tsconfig.json +9 -0
@@ -0,0 +1,658 @@
1
+ /**
2
+ * Web Entity Types (Nouns)
3
+ *
4
+ * Web-based products: Site, Component, Widget, Theme
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ // =============================================================================
9
+ // Site
10
+ // =============================================================================
11
+ /**
12
+ * Site entity
13
+ *
14
+ * Website or web application.
15
+ */
16
+ export const Site = {
17
+ singular: 'site',
18
+ plural: 'sites',
19
+ description: 'A website or web application',
20
+ properties: {
21
+ // Identity
22
+ name: {
23
+ type: 'string',
24
+ description: 'Site name',
25
+ },
26
+ slug: {
27
+ type: 'string',
28
+ optional: true,
29
+ description: 'URL-friendly identifier',
30
+ },
31
+ description: {
32
+ type: 'string',
33
+ optional: true,
34
+ description: 'Site description',
35
+ },
36
+ // Type
37
+ type: {
38
+ type: 'string',
39
+ description: 'Site type',
40
+ examples: ['marketing', 'documentation', 'blog', 'e-commerce', 'portal', 'dashboard', 'landing'],
41
+ },
42
+ // Technology
43
+ framework: {
44
+ type: 'string',
45
+ optional: true,
46
+ description: 'Framework/generator',
47
+ examples: ['next', 'nuxt', 'astro', 'gatsby', 'remix', 'sveltekit', 'eleventy', 'hugo'],
48
+ },
49
+ renderingMode: {
50
+ type: 'string',
51
+ optional: true,
52
+ description: 'Rendering mode',
53
+ examples: ['static', 'ssr', 'spa', 'hybrid', 'isr'],
54
+ },
55
+ // Domain
56
+ domain: {
57
+ type: 'string',
58
+ optional: true,
59
+ description: 'Primary domain',
60
+ },
61
+ customDomains: {
62
+ type: 'string',
63
+ array: true,
64
+ optional: true,
65
+ description: 'Custom domains',
66
+ },
67
+ subdomain: {
68
+ type: 'string',
69
+ optional: true,
70
+ description: 'Subdomain',
71
+ },
72
+ // Hosting
73
+ hosting: {
74
+ type: 'string',
75
+ optional: true,
76
+ description: 'Hosting platform',
77
+ examples: ['vercel', 'netlify', 'cloudflare', 'aws', 'gcp', 'self-hosted'],
78
+ },
79
+ cdnEnabled: {
80
+ type: 'boolean',
81
+ optional: true,
82
+ description: 'CDN enabled',
83
+ },
84
+ // SEO
85
+ title: {
86
+ type: 'string',
87
+ optional: true,
88
+ description: 'Site title',
89
+ },
90
+ metaDescription: {
91
+ type: 'string',
92
+ optional: true,
93
+ description: 'Meta description',
94
+ },
95
+ ogImage: {
96
+ type: 'string',
97
+ optional: true,
98
+ description: 'Open Graph image URL',
99
+ },
100
+ // Analytics
101
+ analyticsProvider: {
102
+ type: 'string',
103
+ optional: true,
104
+ description: 'Analytics provider',
105
+ examples: ['google', 'plausible', 'fathom', 'posthog', 'mixpanel'],
106
+ },
107
+ analyticsId: {
108
+ type: 'string',
109
+ optional: true,
110
+ description: 'Analytics tracking ID',
111
+ },
112
+ // Performance
113
+ lighthouseScore: {
114
+ type: 'number',
115
+ optional: true,
116
+ description: 'Lighthouse performance score',
117
+ },
118
+ coreWebVitals: {
119
+ type: 'json',
120
+ optional: true,
121
+ description: 'Core Web Vitals metrics',
122
+ },
123
+ // Status
124
+ status: {
125
+ type: 'string',
126
+ description: 'Site status',
127
+ examples: ['draft', 'development', 'staging', 'production', 'archived'],
128
+ },
129
+ },
130
+ relationships: {
131
+ product: {
132
+ type: 'DigitalProduct',
133
+ required: false,
134
+ description: 'Parent product',
135
+ },
136
+ pages: {
137
+ type: 'Page[]',
138
+ description: 'Site pages',
139
+ },
140
+ deployments: {
141
+ type: 'Deployment[]',
142
+ description: 'Site deployments',
143
+ },
144
+ theme: {
145
+ type: 'Theme',
146
+ required: false,
147
+ description: 'Applied theme',
148
+ },
149
+ },
150
+ actions: [
151
+ 'create',
152
+ 'update',
153
+ 'build',
154
+ 'deploy',
155
+ 'addDomain',
156
+ 'removeDomain',
157
+ 'updateSEO',
158
+ 'archive',
159
+ ],
160
+ events: [
161
+ 'created',
162
+ 'updated',
163
+ 'built',
164
+ 'deployed',
165
+ 'domainAdded',
166
+ 'domainRemoved',
167
+ 'seoUpdated',
168
+ 'archived',
169
+ ],
170
+ };
171
+ // =============================================================================
172
+ // Component
173
+ // =============================================================================
174
+ /**
175
+ * Component entity
176
+ *
177
+ * Reusable UI component.
178
+ */
179
+ export const Component = {
180
+ singular: 'component',
181
+ plural: 'components',
182
+ description: 'A reusable UI component',
183
+ properties: {
184
+ // Identity
185
+ name: {
186
+ type: 'string',
187
+ description: 'Component name',
188
+ },
189
+ slug: {
190
+ type: 'string',
191
+ optional: true,
192
+ description: 'URL-friendly identifier',
193
+ },
194
+ description: {
195
+ type: 'string',
196
+ optional: true,
197
+ description: 'Component description',
198
+ },
199
+ // Classification
200
+ type: {
201
+ type: 'string',
202
+ description: 'Component type',
203
+ examples: ['primitive', 'composite', 'layout', 'form', 'data-display', 'navigation', 'feedback'],
204
+ },
205
+ category: {
206
+ type: 'string',
207
+ optional: true,
208
+ description: 'Component category',
209
+ },
210
+ // Technology
211
+ framework: {
212
+ type: 'string',
213
+ description: 'Target framework',
214
+ examples: ['react', 'vue', 'svelte', 'solid', 'angular', 'web-components'],
215
+ },
216
+ language: {
217
+ type: 'string',
218
+ optional: true,
219
+ description: 'Language',
220
+ examples: ['typescript', 'javascript'],
221
+ },
222
+ // Interface
223
+ propsSchema: {
224
+ type: 'json',
225
+ optional: true,
226
+ description: 'Props/attributes schema',
227
+ },
228
+ slotsSchema: {
229
+ type: 'json',
230
+ optional: true,
231
+ description: 'Slots schema',
232
+ },
233
+ eventsSchema: {
234
+ type: 'json',
235
+ optional: true,
236
+ description: 'Events emitted',
237
+ },
238
+ // Styling
239
+ styleApproach: {
240
+ type: 'string',
241
+ optional: true,
242
+ description: 'Styling approach',
243
+ examples: ['css-modules', 'tailwind', 'styled-components', 'css-in-js', 'vanilla'],
244
+ },
245
+ themeable: {
246
+ type: 'boolean',
247
+ optional: true,
248
+ description: 'Supports theming',
249
+ },
250
+ // Accessibility
251
+ a11yCompliant: {
252
+ type: 'boolean',
253
+ optional: true,
254
+ description: 'WCAG compliant',
255
+ },
256
+ a11yLevel: {
257
+ type: 'string',
258
+ optional: true,
259
+ description: 'WCAG compliance level',
260
+ examples: ['A', 'AA', 'AAA'],
261
+ },
262
+ // Package
263
+ packageName: {
264
+ type: 'string',
265
+ optional: true,
266
+ description: 'npm package name',
267
+ },
268
+ version: {
269
+ type: 'string',
270
+ optional: true,
271
+ description: 'Component version',
272
+ },
273
+ // Documentation
274
+ storybookUrl: {
275
+ type: 'string',
276
+ optional: true,
277
+ description: 'Storybook URL',
278
+ },
279
+ docsUrl: {
280
+ type: 'string',
281
+ optional: true,
282
+ description: 'Documentation URL',
283
+ },
284
+ // Status
285
+ status: {
286
+ type: 'string',
287
+ description: 'Component status',
288
+ examples: ['draft', 'alpha', 'beta', 'stable', 'deprecated'],
289
+ },
290
+ },
291
+ relationships: {
292
+ product: {
293
+ type: 'DigitalProduct',
294
+ required: false,
295
+ description: 'Parent product',
296
+ },
297
+ variants: {
298
+ type: 'ComponentVariant[]',
299
+ description: 'Component variants',
300
+ },
301
+ dependencies: {
302
+ type: 'Component[]',
303
+ description: 'Dependent components',
304
+ },
305
+ },
306
+ actions: [
307
+ 'create',
308
+ 'update',
309
+ 'addVariant',
310
+ 'removeVariant',
311
+ 'publish',
312
+ 'deprecate',
313
+ ],
314
+ events: [
315
+ 'created',
316
+ 'updated',
317
+ 'variantAdded',
318
+ 'variantRemoved',
319
+ 'published',
320
+ 'deprecated',
321
+ ],
322
+ };
323
+ // =============================================================================
324
+ // Widget
325
+ // =============================================================================
326
+ /**
327
+ * Widget entity
328
+ *
329
+ * Embeddable UI element.
330
+ */
331
+ export const Widget = {
332
+ singular: 'widget',
333
+ plural: 'widgets',
334
+ description: 'An embeddable UI element for external sites',
335
+ properties: {
336
+ // Identity
337
+ name: {
338
+ type: 'string',
339
+ description: 'Widget name',
340
+ },
341
+ slug: {
342
+ type: 'string',
343
+ optional: true,
344
+ description: 'URL-friendly identifier',
345
+ },
346
+ description: {
347
+ type: 'string',
348
+ optional: true,
349
+ description: 'Widget description',
350
+ },
351
+ // Type
352
+ type: {
353
+ type: 'string',
354
+ description: 'Widget type',
355
+ examples: ['chat', 'form', 'badge', 'button', 'carousel', 'feed', 'player', 'tracker'],
356
+ },
357
+ // Embedding
358
+ embedType: {
359
+ type: 'string',
360
+ description: 'Embed method',
361
+ examples: ['script', 'iframe', 'web-component', 'react', 'snippet'],
362
+ },
363
+ embedCode: {
364
+ type: 'string',
365
+ optional: true,
366
+ description: 'Embed code snippet',
367
+ },
368
+ scriptUrl: {
369
+ type: 'string',
370
+ optional: true,
371
+ description: 'Widget script URL',
372
+ },
373
+ // Configuration
374
+ configSchema: {
375
+ type: 'json',
376
+ optional: true,
377
+ description: 'Configuration schema',
378
+ },
379
+ defaultConfig: {
380
+ type: 'json',
381
+ optional: true,
382
+ description: 'Default configuration',
383
+ },
384
+ // Dimensions
385
+ width: {
386
+ type: 'string',
387
+ optional: true,
388
+ description: 'Default width',
389
+ },
390
+ height: {
391
+ type: 'string',
392
+ optional: true,
393
+ description: 'Default height',
394
+ },
395
+ responsive: {
396
+ type: 'boolean',
397
+ optional: true,
398
+ description: 'Responsive design',
399
+ },
400
+ // Styling
401
+ customizable: {
402
+ type: 'boolean',
403
+ optional: true,
404
+ description: 'Styling customizable',
405
+ },
406
+ themeOptions: {
407
+ type: 'string',
408
+ array: true,
409
+ optional: true,
410
+ description: 'Theme options',
411
+ },
412
+ // Security
413
+ allowedDomains: {
414
+ type: 'string',
415
+ array: true,
416
+ optional: true,
417
+ description: 'Allowed embed domains',
418
+ },
419
+ sandboxed: {
420
+ type: 'boolean',
421
+ optional: true,
422
+ description: 'Runs in sandbox',
423
+ },
424
+ // Metrics
425
+ embedCount: {
426
+ type: 'number',
427
+ optional: true,
428
+ description: 'Number of active embeds',
429
+ },
430
+ impressions: {
431
+ type: 'number',
432
+ optional: true,
433
+ description: 'Total impressions',
434
+ },
435
+ // Status
436
+ status: {
437
+ type: 'string',
438
+ description: 'Widget status',
439
+ examples: ['draft', 'active', 'deprecated'],
440
+ },
441
+ version: {
442
+ type: 'string',
443
+ optional: true,
444
+ description: 'Widget version',
445
+ },
446
+ },
447
+ relationships: {
448
+ product: {
449
+ type: 'DigitalProduct',
450
+ required: false,
451
+ description: 'Parent product',
452
+ },
453
+ instances: {
454
+ type: 'WidgetInstance[]',
455
+ description: 'Widget instances',
456
+ },
457
+ },
458
+ actions: [
459
+ 'create',
460
+ 'update',
461
+ 'configure',
462
+ 'publish',
463
+ 'embed',
464
+ 'deprecate',
465
+ ],
466
+ events: [
467
+ 'created',
468
+ 'updated',
469
+ 'configured',
470
+ 'published',
471
+ 'embedded',
472
+ 'deprecated',
473
+ ],
474
+ };
475
+ // =============================================================================
476
+ // Theme
477
+ // =============================================================================
478
+ /**
479
+ * Theme entity
480
+ *
481
+ * Visual styling package.
482
+ */
483
+ export const Theme = {
484
+ singular: 'theme',
485
+ plural: 'themes',
486
+ description: 'A visual styling package for sites or apps',
487
+ properties: {
488
+ // Identity
489
+ name: {
490
+ type: 'string',
491
+ description: 'Theme name',
492
+ },
493
+ slug: {
494
+ type: 'string',
495
+ optional: true,
496
+ description: 'URL-friendly identifier',
497
+ },
498
+ description: {
499
+ type: 'string',
500
+ optional: true,
501
+ description: 'Theme description',
502
+ },
503
+ // Classification
504
+ type: {
505
+ type: 'string',
506
+ description: 'Theme type',
507
+ examples: ['light', 'dark', 'high-contrast', 'custom'],
508
+ },
509
+ style: {
510
+ type: 'string',
511
+ optional: true,
512
+ description: 'Design style',
513
+ examples: ['minimal', 'modern', 'classic', 'playful', 'corporate', 'brutalist'],
514
+ },
515
+ // Target
516
+ targetPlatform: {
517
+ type: 'string',
518
+ optional: true,
519
+ description: 'Target platform',
520
+ examples: ['web', 'mobile', 'desktop', 'universal'],
521
+ },
522
+ targetFramework: {
523
+ type: 'string',
524
+ optional: true,
525
+ description: 'Target framework',
526
+ },
527
+ // Colors
528
+ colorPalette: {
529
+ type: 'json',
530
+ optional: true,
531
+ description: 'Color palette',
532
+ },
533
+ primaryColor: {
534
+ type: 'string',
535
+ optional: true,
536
+ description: 'Primary brand color',
537
+ },
538
+ accentColor: {
539
+ type: 'string',
540
+ optional: true,
541
+ description: 'Accent color',
542
+ },
543
+ // Typography
544
+ fontFamily: {
545
+ type: 'string',
546
+ optional: true,
547
+ description: 'Primary font family',
548
+ },
549
+ headingFont: {
550
+ type: 'string',
551
+ optional: true,
552
+ description: 'Heading font family',
553
+ },
554
+ fontSize: {
555
+ type: 'json',
556
+ optional: true,
557
+ description: 'Font size scale',
558
+ },
559
+ // Spacing
560
+ spacing: {
561
+ type: 'json',
562
+ optional: true,
563
+ description: 'Spacing scale',
564
+ },
565
+ borderRadius: {
566
+ type: 'json',
567
+ optional: true,
568
+ description: 'Border radius scale',
569
+ },
570
+ // Variables
571
+ cssVariables: {
572
+ type: 'json',
573
+ optional: true,
574
+ description: 'CSS custom properties',
575
+ },
576
+ designTokens: {
577
+ type: 'json',
578
+ optional: true,
579
+ description: 'Design tokens',
580
+ },
581
+ // Preview
582
+ previewUrl: {
583
+ type: 'string',
584
+ optional: true,
585
+ description: 'Preview URL',
586
+ },
587
+ thumbnailUrl: {
588
+ type: 'string',
589
+ optional: true,
590
+ description: 'Thumbnail image URL',
591
+ },
592
+ // Package
593
+ packageName: {
594
+ type: 'string',
595
+ optional: true,
596
+ description: 'npm package name',
597
+ },
598
+ version: {
599
+ type: 'string',
600
+ optional: true,
601
+ description: 'Theme version',
602
+ },
603
+ // Status
604
+ status: {
605
+ type: 'string',
606
+ description: 'Theme status',
607
+ examples: ['draft', 'published', 'deprecated'],
608
+ },
609
+ },
610
+ relationships: {
611
+ product: {
612
+ type: 'DigitalProduct',
613
+ required: false,
614
+ description: 'Parent product',
615
+ },
616
+ sites: {
617
+ type: 'Site[]',
618
+ description: 'Sites using this theme',
619
+ },
620
+ variants: {
621
+ type: 'Theme[]',
622
+ description: 'Theme variants',
623
+ },
624
+ },
625
+ actions: [
626
+ 'create',
627
+ 'update',
628
+ 'customize',
629
+ 'publish',
630
+ 'apply',
631
+ 'export',
632
+ 'deprecate',
633
+ ],
634
+ events: [
635
+ 'created',
636
+ 'updated',
637
+ 'customized',
638
+ 'published',
639
+ 'applied',
640
+ 'exported',
641
+ 'deprecated',
642
+ ],
643
+ };
644
+ // =============================================================================
645
+ // Exports
646
+ // =============================================================================
647
+ export const WebEntities = {
648
+ Site,
649
+ Component,
650
+ Widget,
651
+ Theme,
652
+ };
653
+ export const WebCategories = {
654
+ sites: ['Site'],
655
+ ui: ['Component', 'Widget'],
656
+ styling: ['Theme'],
657
+ };
658
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/entities/web.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,8BAA8B;IAE3C,UAAU,EAAE;QACV,WAAW;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;SACzB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QAED,OAAO;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC;SACjG;QAED,aAAa;QACb,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;SACxF;QACD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;SACpD;QAED,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;QACD,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,WAAW;SACzB;QAED,UAAU;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC;SAC3E;QACD,UAAU,EAAE;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,aAAa;SAC3B;QAED,MAAM;QACN,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,YAAY;SAC1B;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sBAAsB;SACpC;QAED,YAAY;QACZ,iBAAiB,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;SACnE;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;SACrC;QAED,cAAc;QACd,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8BAA8B;SAC5C;QACD,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QAED,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC;SACxE;KACF;IAED,aAAa,EAAE;QACb,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gBAAgB;SAC9B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;SAC1B;QACD,WAAW,EAAE;YACX,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,kBAAkB;SAChC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,eAAe;SAC7B;KACF;IAED,OAAO,EAAE;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,cAAc;QACd,WAAW;QACX,SAAS;KACV;IAED,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,OAAO;QACP,UAAU;QACV,aAAa;QACb,eAAe;QACf,YAAY;QACZ,UAAU;KACX;CACF,CAAA;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,yBAAyB;IAEtC,UAAU,EAAE;QACV,WAAW;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gBAAgB;SAC9B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;SACrC;QAED,iBAAiB;QACjB,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC;SACjG;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oBAAoB;SAClC;QAED,aAAa;QACb,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC;SAC3E;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;SACvC;QAED,YAAY;QACZ,WAAW,EAAE;YACX,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,cAAc;SAC5B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;QAED,UAAU;QACV,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,CAAC;SACnF;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QAED,gBAAgB;QAChB,aAAa,EAAE;YACb,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;SAC7B;QAED,UAAU;QACV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,gBAAgB;QAChB,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;SAC7D;KACF;IAED,aAAa,EAAE;QACb,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gBAAgB;SAC9B;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,oBAAoB;SAClC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,sBAAsB;SACpC;KACF;IAED,OAAO,EAAE;QACP,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,eAAe;QACf,SAAS;QACT,WAAW;KACZ;IAED,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,cAAc;QACd,gBAAgB;QAChB,WAAW;QACX,YAAY;KACb;CACF,CAAA;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAS;IAC1B,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,6CAA6C;IAE1D,UAAU,EAAE;QACV,WAAW;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,aAAa;SAC3B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oBAAoB;SAClC;QAED,OAAO;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;SACvF;QAED,YAAY;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC;SACpE;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oBAAoB;SAClC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,gBAAgB;QAChB,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;SACrC;QAED,aAAa;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;QACD,UAAU,EAAE;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,UAAU;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QAED,WAAW;QACX,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iBAAiB;SAC/B;QAED,UAAU;QACV,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;SAC5C;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gBAAgB;SAC9B;KACF;IAED,aAAa,EAAE;QACb,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gBAAgB;SAC9B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,kBAAkB;SAChC;KACF;IAED,OAAO,EAAE;QACP,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,OAAO;QACP,WAAW;KACZ;IAED,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,YAAY;QACZ,WAAW;QACX,UAAU;QACV,YAAY;KACb;CACF,CAAA;AAED,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAS;IACzB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,4CAA4C;IAEzD,UAAU,EAAE;QACV,WAAW;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;SAC1B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mBAAmB;SACjC;QAED,iBAAiB;QACjB,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;SACvD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;SAChF;QAED,SAAS;QACT,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;SACpD;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QAED,SAAS;QACT,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;SACnC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,cAAc;SAC5B;QAED,aAAa;QACb,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;SACnC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;SACnC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iBAAiB;SAC/B;QAED,UAAU;QACV,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;SACnC;QAED,YAAY;QACZ,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QAED,UAAU;QACV,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,aAAa;SAC3B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qBAAqB;SACnC;QAED,UAAU;QACV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAe;SAC7B;QAED,SAAS;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;SAC/C;KACF;IAED,aAAa,EAAE;QACb,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gBAAgB;SAC9B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wBAAwB;SACtC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,gBAAgB;SAC9B;KACF;IAED,OAAO,EAAE;QACP,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,OAAO;QACP,QAAQ;QACR,WAAW;KACZ;IAED,MAAM,EAAE;QACN,SAAS;QACT,SAAS;QACT,YAAY;QACZ,WAAW;QACX,SAAS;QACT,UAAU;QACV,YAAY;KACb;CACF,CAAA;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI;IACJ,SAAS;IACT,MAAM;IACN,KAAK;CACN,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC3B,OAAO,EAAE,CAAC,OAAO,CAAC;CACV,CAAA"}