digital-products 2.1.3 → 2.4.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 (122) hide show
  1. package/.turbo/turbo-build.log +4 -5
  2. package/CHANGELOG.md +17 -0
  3. package/README.md +2 -0
  4. package/dist/api.js +7 -7
  5. package/dist/api.js.map +1 -1
  6. package/dist/app.js +6 -6
  7. package/dist/app.js.map +1 -1
  8. package/dist/client.d.ts +157 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +69 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/content.js +7 -7
  13. package/dist/content.js.map +1 -1
  14. package/dist/data.d.ts.map +1 -1
  15. package/dist/data.js +6 -6
  16. package/dist/data.js.map +1 -1
  17. package/dist/dataset.js +5 -5
  18. package/dist/dataset.js.map +1 -1
  19. package/dist/index.d.ts +92 -13
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +139 -15
  22. package/dist/index.js.map +1 -1
  23. package/dist/mcp.d.ts +1 -1
  24. package/dist/mcp.d.ts.map +1 -1
  25. package/dist/mcp.js +17 -10
  26. package/dist/mcp.js.map +1 -1
  27. package/dist/product.js +2 -2
  28. package/dist/product.js.map +1 -1
  29. package/dist/sdk.d.ts.map +1 -1
  30. package/dist/sdk.js +52 -16
  31. package/dist/sdk.js.map +1 -1
  32. package/dist/site.d.ts.map +1 -1
  33. package/dist/site.js +12 -8
  34. package/dist/site.js.map +1 -1
  35. package/dist/types.d.ts +830 -12
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js +495 -2
  38. package/dist/types.js.map +1 -1
  39. package/dist/worker.d.ts +205 -0
  40. package/dist/worker.d.ts.map +1 -0
  41. package/dist/worker.js +356 -0
  42. package/dist/worker.js.map +1 -0
  43. package/package.json +29 -13
  44. package/src/api.ts +7 -7
  45. package/src/app.ts +6 -6
  46. package/src/client.ts +192 -0
  47. package/src/content.ts +7 -7
  48. package/src/data.ts +12 -7
  49. package/src/dataset.ts +5 -5
  50. package/src/index.ts +151 -15
  51. package/src/mcp.ts +18 -11
  52. package/src/product.ts +2 -2
  53. package/src/sdk.ts +54 -15
  54. package/src/site.ts +12 -8
  55. package/src/types.ts +821 -12
  56. package/src/worker.ts +525 -0
  57. package/test/product.test.ts +53 -198
  58. package/test/unified-types.test.ts +589 -0
  59. package/test/worker.test.ts +912 -0
  60. package/vitest.config.ts +42 -0
  61. package/wrangler.jsonc +36 -0
  62. package/LICENSE +0 -21
  63. package/dist/features/define.d.ts +0 -63
  64. package/dist/features/define.d.ts.map +0 -1
  65. package/dist/features/define.js +0 -72
  66. package/dist/features/define.js.map +0 -1
  67. package/dist/features/flags.d.ts +0 -98
  68. package/dist/features/flags.d.ts.map +0 -1
  69. package/dist/features/flags.js +0 -145
  70. package/dist/features/flags.js.map +0 -1
  71. package/dist/features/toggles.d.ts +0 -75
  72. package/dist/features/toggles.d.ts.map +0 -1
  73. package/dist/features/toggles.js +0 -107
  74. package/dist/features/toggles.js.map +0 -1
  75. package/dist/tiers/define.d.ts +0 -63
  76. package/dist/tiers/define.d.ts.map +0 -1
  77. package/dist/tiers/define.js +0 -78
  78. package/dist/tiers/define.js.map +0 -1
  79. package/dist/tiers/entitlements.d.ts +0 -94
  80. package/dist/tiers/entitlements.d.ts.map +0 -1
  81. package/dist/tiers/entitlements.js +0 -94
  82. package/dist/tiers/entitlements.js.map +0 -1
  83. package/src/api.js +0 -128
  84. package/src/app.js +0 -106
  85. package/src/content.js +0 -77
  86. package/src/data.js +0 -106
  87. package/src/dataset.js +0 -49
  88. package/src/entities/ai.js +0 -858
  89. package/src/entities/content.js +0 -783
  90. package/src/entities/index.js +0 -88
  91. package/src/entities/interfaces.js +0 -929
  92. package/src/entities/lifecycle.js +0 -803
  93. package/src/entities/products.js +0 -797
  94. package/src/entities/web.js +0 -657
  95. package/src/features/define.ts +0 -130
  96. package/src/features/flags.ts +0 -247
  97. package/src/features/toggles.ts +0 -189
  98. package/src/index.js +0 -35
  99. package/src/mcp.js +0 -139
  100. package/src/pricing/billing.ts +0 -386
  101. package/src/pricing/plans.ts +0 -214
  102. package/src/product.js +0 -53
  103. package/src/registry.js +0 -31
  104. package/src/sdk.js +0 -127
  105. package/src/site.js +0 -112
  106. package/src/tiers/define.ts +0 -137
  107. package/src/tiers/entitlements.ts +0 -201
  108. package/src/types.js +0 -4
  109. package/test/analytics/events.test.ts +0 -319
  110. package/test/analytics/experiments.test.ts +0 -327
  111. package/test/features/define.test.ts +0 -187
  112. package/test/features/flags.test.ts +0 -259
  113. package/test/features/toggles.test.ts +0 -178
  114. package/test/lifecycle/stages.test.ts +0 -233
  115. package/test/lifecycle/transitions.test.ts +0 -207
  116. package/test/onboarding/flows.test.ts +0 -307
  117. package/test/pricing/billing.test.ts +0 -287
  118. package/test/pricing/plans.test.ts +0 -307
  119. package/test/roadmap/milestones.test.ts +0 -231
  120. package/test/roadmap/priorities.test.ts +0 -239
  121. package/test/tiers/define.test.ts +0 -192
  122. package/test/tiers/entitlements.test.ts +0 -220
package/dist/index.js CHANGED
@@ -1,19 +1,114 @@
1
1
  /**
2
2
  * digital-products - Primitives for defining and building digital products
3
3
  *
4
- * This package provides primitives for defining digital products:
5
- * - Apps: Interactive user-facing applications
6
- * - APIs: Programmatic interfaces
7
- * - Content: Text/media content with schemas
8
- * - Data: Structured data definitions
9
- * - Datasets: Curated data collections
10
- * - Sites: Websites and documentation
11
- * - MCPs: Model Context Protocol servers
12
- * - SDKs: Software development kits
4
+ * This package provides primitives for defining digital products using JSON-LD
5
+ * style conventions with `$id` and `$type` fields for schema.org.ai compatibility.
6
+ *
7
+ * ## Product Types
8
+ *
9
+ * - {@link Product} - Base product interface
10
+ * - {@link App} - Interactive user-facing applications (web, mobile, desktop)
11
+ * - {@link API} - Programmatic interfaces with versioning and auth
12
+ * - {@link Site} - Websites (marketing, docs, blog)
13
+ * - {@link Service} - Backend services with endpoints
14
+ * - {@link Feature} - Product features with lifecycle status
15
+ *
16
+ * ## Validation & Type Guards
17
+ *
18
+ * Each product type includes:
19
+ * - Zod schema for runtime validation (e.g., {@link AppSchema})
20
+ * - Type guard function (e.g., {@link isApp})
21
+ * - Factory function with defaults (e.g., {@link createApp})
22
+ *
23
+ * ## Builder Pattern (Legacy)
24
+ *
25
+ * The `*Builder` functions and `*Definition` types are maintained for
26
+ * backwards compatibility. New code should use the unified JSON-LD types.
13
27
  *
14
28
  * @packageDocumentation
29
+ *
30
+ * @example Creating an App
31
+ * ```typescript
32
+ * import { createApp, isApp, AppSchema, App } from 'digital-products'
33
+ *
34
+ * // Using factory function (recommended)
35
+ * const app = createApp({
36
+ * $id: 'https://schema.org.ai/apps/dashboard',
37
+ * name: 'Dashboard',
38
+ * description: 'Admin dashboard application',
39
+ * platform: 'web',
40
+ * url: 'https://dashboard.example.com'
41
+ * })
42
+ * // app.$type === 'https://schema.org.ai/App'
43
+ * // app.status === 'active' (default)
44
+ *
45
+ * // Type guard
46
+ * if (isApp(data)) {
47
+ * console.log(data.platform) // TypeScript knows this is App
48
+ * }
49
+ *
50
+ * // Zod validation
51
+ * const result = AppSchema.safeParse(untrustedData)
52
+ * if (result.success) {
53
+ * console.log(result.data.name)
54
+ * }
55
+ * ```
56
+ *
57
+ * @example Creating an API
58
+ * ```typescript
59
+ * import { createAPI, API, APISchema } from 'digital-products'
60
+ *
61
+ * const api = createAPI({
62
+ * $id: 'https://schema.org.ai/apis/users',
63
+ * name: 'Users API',
64
+ * description: 'User management REST API',
65
+ * baseUrl: 'https://api.example.com/v1',
66
+ * version: '1.0.0',
67
+ * authentication: 'bearer'
68
+ * })
69
+ * // api.$type === 'https://schema.org.ai/API'
70
+ * ```
71
+ *
72
+ * @example Creating a Site
73
+ * ```typescript
74
+ * import { createSite, Site, SiteSchema } from 'digital-products'
75
+ *
76
+ * const site = createSite({
77
+ * $id: 'https://schema.org.ai/sites/docs',
78
+ * name: 'Documentation',
79
+ * description: 'Product documentation site',
80
+ * url: 'https://docs.example.com',
81
+ * siteType: 'docs'
82
+ * })
83
+ * // site.$type === 'https://schema.org.ai/Site'
84
+ * ```
15
85
  */
16
- // Export all types
86
+ // =============================================================================
87
+ // UNIFIED TYPES (JSON-LD Style) - Recommended
88
+ // =============================================================================
89
+ //
90
+ // These exports from types.ts include:
91
+ //
92
+ // INTERFACES (JSON-LD style with $id/$type):
93
+ // - Product - Base product interface
94
+ // - App - Application (web, mobile, desktop)
95
+ // - API - API with versioning and authentication
96
+ // - Site - Website (marketing, docs, blog)
97
+ // - Service - Backend service with endpoints
98
+ // - Feature - Product feature with lifecycle
99
+ //
100
+ // ZOD SCHEMAS (runtime validation):
101
+ // - ProductSchema, AppSchema, APISchema, SiteSchema, ServiceSchema, FeatureSchema
102
+ //
103
+ // TYPE GUARDS:
104
+ // - isProduct, isApp, isAPI, isSite, isService, isFeature
105
+ //
106
+ // FACTORY FUNCTIONS (with sensible defaults):
107
+ // - createProduct, createApp, createAPI, createSite, createService, createFeature
108
+ //
109
+ // LEGACY TYPES (for backwards compatibility):
110
+ // - DigitalProduct, AppDefinition, APIDefinition, SiteDefinition, etc.
111
+ //
17
112
  export * from './types.js';
18
113
  // Export entity definitions (Nouns) as namespace to avoid conflicts with types
19
114
  export * as Nouns from './entities/index.js';
@@ -23,14 +118,43 @@ export { AllDigitalProductEntities, DigitalProductEntityCategories, Entities,
23
118
  ProductEntities, ProductCategories, InterfaceEntities, InterfaceCategories, ContentEntities, ContentCategories, WebEntities, WebCategories, AIEntities, AICategories, LifecycleEntities, LifecycleCategories, } from './entities/index.js';
24
119
  // Export registry
25
120
  export { registry } from './registry.js';
26
- // Export product constructors
27
- export { Product, createProduct, registerProduct } from './product.js';
28
- export { App, Route, State, Auth } from './app.js';
29
- export { API, Endpoint, APIAuth, RateLimit } from './api.js';
121
+ // =============================================================================
122
+ // BUILDER PATTERN (Legacy API)
123
+ // =============================================================================
124
+ //
125
+ // These builder functions create *Definition types (e.g., AppDefinition),
126
+ // which use `id` and `type` fields instead of JSON-LD `$id`/`$type`.
127
+ //
128
+ // For new code, prefer the unified types above:
129
+ // - createApp() creates App with $id/$type (JSON-LD)
130
+ // - AppBuilder() creates AppDefinition with id/type (legacy)
131
+ //
132
+ // The *Builder exports are renamed to avoid conflicts with the type interfaces.
133
+ // The original function names (App, API, Site) are also exported for backwards
134
+ // compatibility - TypeScript allows functions and types to share the same name.
135
+ //
136
+ /** @deprecated Use createProduct() from unified types instead */
137
+ export { Product as ProductBuilder, createProduct as createProductDefinition, registerProduct, } from './product.js';
138
+ /** @deprecated Use createApp() from unified types instead */
139
+ export { App as AppBuilder, Route, State, Auth } from './app.js';
140
+ /** @deprecated Use createAPI() from unified types instead */
141
+ export { API as APIBuilder, Endpoint, APIAuth, RateLimit } from './api.js';
30
142
  export { Content, Workflow } from './content.js';
31
143
  export { Data, Index, Relationship, Validate } from './data.js';
32
144
  export { Dataset } from './dataset.js';
33
- export { Site, Nav, SEO, Analytics } from './site.js';
145
+ /** @deprecated Use createSite() from unified types instead */
146
+ export { Site as SiteBuilder, Nav, SEO, Analytics } from './site.js';
34
147
  export { MCP, Tool, Resource, Prompt, MCPConfig } from './mcp.js';
35
148
  export { SDK, Export, Example } from './sdk.js';
149
+ // Re-export builder functions under original names for backwards compatibility.
150
+ // This allows: import { Site } from 'digital-products'; Site({...}) // builder
151
+ // While also: import type { Site } from 'digital-products'; const x: Site = {...} // type
152
+ // TypeScript allows function and type/interface with same name.
153
+ import { Product as ProductFn } from './product.js';
154
+ import { App as AppFn } from './app.js';
155
+ import { API as APIFn } from './api.js';
156
+ import { Site as SiteFn } from './site.js';
157
+ // Export builder functions - these shadow the type exports at runtime
158
+ // (which is fine since TypeScript types are erased at compile time)
159
+ export { ProductFn as Product, AppFn as App, APIFn as API, SiteFn as Site };
36
160
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,mBAAmB;AACnB,cAAc,YAAY,CAAA;AAE1B,+EAA+E;AAC/E,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C,4DAA4D;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,QAAQ;AACR,mBAAmB;AACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAE5B,kBAAkB;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,8BAA8B;AAC9B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -53,7 +53,7 @@ export declare function MCP(config: Omit<MCPDefinition, 'type'>): MCPDefinition;
53
53
  * )
54
54
  * ```
55
55
  */
56
- export declare function Tool(name: string, description: string, inputSchema: SimpleSchema, handler?: (input: unknown) => Promise<unknown>): MCPTool;
56
+ export declare function Tool(name: string, description: string, inputSchema: Record<string, unknown>, handler?: (input: unknown) => Promise<unknown>): MCPTool;
57
57
  /**
58
58
  * Helper to create an MCP resource
59
59
  *
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAkBtE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,OAAO,CAOT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,CAOb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,SAAS,CAOX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEtD"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAkBtE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,OAAO,CAOT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,CAOb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,SAAS,CAcX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEtD"}
package/dist/mcp.js CHANGED
@@ -40,13 +40,13 @@ export function MCP(config) {
40
40
  description: config.description,
41
41
  version: config.version,
42
42
  transport: config.transport,
43
- tools: config.tools,
44
- resources: config.resources,
45
- prompts: config.prompts,
46
- config: config.config,
47
- metadata: config.metadata,
48
- tags: config.tags,
49
43
  status: config.status || 'active',
44
+ ...(config.tools !== undefined && { tools: config.tools }),
45
+ ...(config.resources !== undefined && { resources: config.resources }),
46
+ ...(config.prompts !== undefined && { prompts: config.prompts }),
47
+ ...(config.config !== undefined && { config: config.config }),
48
+ ...(config.metadata !== undefined && { metadata: config.metadata }),
49
+ ...(config.tags !== undefined && { tags: config.tags }),
50
50
  };
51
51
  return registerProduct(mcp);
52
52
  }
@@ -73,8 +73,8 @@ export function Tool(name, description, inputSchema, handler) {
73
73
  return {
74
74
  name,
75
75
  description,
76
- inputSchema,
77
- handler,
76
+ inputSchema: inputSchema,
77
+ ...(handler !== undefined && { handler }),
78
78
  };
79
79
  }
80
80
  /**
@@ -95,7 +95,7 @@ export function Resource(uri, name, description, mimeType) {
95
95
  uri,
96
96
  name,
97
97
  description,
98
- mimeType,
98
+ ...(mimeType !== undefined && { mimeType }),
99
99
  };
100
100
  }
101
101
  /**
@@ -112,11 +112,18 @@ export function Resource(uri, name, description, mimeType) {
112
112
  * ```
113
113
  */
114
114
  export function Prompt(name, description, template, args) {
115
+ if (args !== undefined) {
116
+ return {
117
+ name,
118
+ description,
119
+ template,
120
+ arguments: args,
121
+ };
122
+ }
115
123
  return {
116
124
  name,
117
125
  description,
118
126
  template,
119
- arguments: args,
120
127
  };
121
128
  }
122
129
  /**
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,GAAG,CAAC,MAAmC;IACrD,MAAM,GAAG,GAAkB;QACzB,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;KAClC,CAAA;IAED,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,WAAmB,EACnB,WAAyB,EACzB,OAA8C;IAE9C,OAAO;QACL,IAAI;QACJ,WAAW;QACX,WAAW;QACX,OAAO;KACR,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAW,EACX,IAAY,EACZ,WAAmB,EACnB,QAAiB;IAEjB,OAAO;QACL,GAAG;QACH,IAAI;QACJ,WAAW;QACX,QAAQ;KACT,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,WAAmB,EACnB,QAAgB,EAChB,IAAmB;IAEnB,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,SAAS,EAAE,IAAI;KAChB,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,MAAiB;IACzC,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,GAAG,CAAC,MAAmC;IACrD,MAAM,GAAG,GAAkB;QACzB,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;KACxD,CAAA;IAED,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,WAAmB,EACnB,WAAoC,EACpC,OAA8C;IAE9C,OAAO;QACL,IAAI;QACJ,WAAW;QACX,WAAW,EAAE,WAAqC;QAClD,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAW,EACX,IAAY,EACZ,WAAmB,EACnB,QAAiB;IAEjB,OAAO;QACL,GAAG;QACH,IAAI;QACJ,WAAW;QACX,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC5C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,WAAmB,EACnB,QAAgB,EAChB,IAAmB;IAEnB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,IAAI;YACJ,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,IAA+B;SAC3C,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;KACT,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CAAC,MAAiB;IACzC,OAAO,MAAM,CAAA;AACf,CAAC"}
package/dist/product.js CHANGED
@@ -21,9 +21,9 @@ export function Product(config) {
21
21
  name: config.name,
22
22
  description: config.description,
23
23
  version: config.version,
24
- metadata: config.metadata,
25
- tags: config.tags,
26
24
  status: config.status || 'active',
25
+ ...(config.metadata !== undefined && { metadata: config.metadata }),
26
+ ...(config.tags !== undefined && { tags: config.tags }),
27
27
  };
28
28
  return product;
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,MAAoC;IAC1D,MAAM,OAAO,GAAmB;QAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;KAClC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAA8B,OAAU;IACrE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,MAAoC;IAC1D,MAAM,OAAO,GAAmB;QAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;KACxD,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAA8B,OAAU;IACrE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/dist/sdk.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAmBtE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;CACtB,GACA,SAAS,CASX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,UAAU,CAOZ"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAmBtE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;CACtB,GACA,SAAS,CAgDX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,UAAU,CAOZ"}
package/dist/sdk.js CHANGED
@@ -58,14 +58,14 @@ export function SDK(config) {
58
58
  description: config.description,
59
59
  version: config.version,
60
60
  language: config.language,
61
- api: config.api,
62
- exports: config.exports,
63
- install: config.install,
64
- docs: config.docs,
65
- examples: config.examples,
66
- metadata: config.metadata,
67
- tags: config.tags,
68
61
  status: config.status || 'active',
62
+ ...(config.api !== undefined && { api: config.api }),
63
+ ...(config.exports !== undefined && { exports: config.exports }),
64
+ ...(config.install !== undefined && { install: config.install }),
65
+ ...(config.docs !== undefined && { docs: config.docs }),
66
+ ...(config.examples !== undefined && { examples: config.examples }),
67
+ ...(config.metadata !== undefined && { metadata: config.metadata }),
68
+ ...(config.tags !== undefined && { tags: config.tags }),
69
69
  };
70
70
  return registerProduct(sdk);
71
71
  }
@@ -93,14 +93,50 @@ export function SDK(config) {
93
93
  * ```
94
94
  */
95
95
  export function Export(type, name, description, options) {
96
- return {
97
- type,
98
- name,
99
- description,
100
- parameters: options?.parameters,
101
- returns: options?.returns,
102
- methods: options?.methods,
103
- };
96
+ const base = { type, name, description };
97
+ // Build the result object conditionally to satisfy exactOptionalPropertyTypes
98
+ // Cast to Record<string, unknown> to match the local SimpleSchema type
99
+ if (options?.parameters !== undefined &&
100
+ options?.returns !== undefined &&
101
+ options?.methods !== undefined) {
102
+ return {
103
+ ...base,
104
+ parameters: options.parameters,
105
+ returns: options.returns,
106
+ methods: options.methods,
107
+ };
108
+ }
109
+ if (options?.parameters !== undefined && options?.returns !== undefined) {
110
+ return {
111
+ ...base,
112
+ parameters: options.parameters,
113
+ returns: options.returns,
114
+ };
115
+ }
116
+ if (options?.parameters !== undefined && options?.methods !== undefined) {
117
+ return {
118
+ ...base,
119
+ parameters: options.parameters,
120
+ methods: options.methods,
121
+ };
122
+ }
123
+ if (options?.returns !== undefined && options?.methods !== undefined) {
124
+ return {
125
+ ...base,
126
+ returns: options.returns,
127
+ methods: options.methods,
128
+ };
129
+ }
130
+ if (options?.parameters !== undefined) {
131
+ return { ...base, parameters: options.parameters };
132
+ }
133
+ if (options?.returns !== undefined) {
134
+ return { ...base, returns: options.returns };
135
+ }
136
+ if (options?.methods !== undefined) {
137
+ return { ...base, methods: options.methods };
138
+ }
139
+ return base;
104
140
  }
105
141
  /**
106
142
  * Helper to create an SDK example
@@ -122,7 +158,7 @@ export function Example(title, description, code, output) {
122
158
  title,
123
159
  description,
124
160
  code,
125
- output,
161
+ ...(output !== undefined && { output }),
126
162
  };
127
163
  }
128
164
  //# sourceMappingURL=sdk.js.map
package/dist/sdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,UAAU,GAAG,CAAC,MAAmC;IACrD,MAAM,GAAG,GAAkB;QACzB,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;KAClC,CAAA;IAED,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,MAAM,CACpB,IAAuB,EACvB,IAAY,EACZ,WAAmB,EACnB,OAIC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,OAAO,EAAE,OAAO,EAAE,OAAO;KAC1B,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,WAAmB,EACnB,IAAY,EACZ,MAAe;IAEf,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI;QACJ,MAAM;KACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAmBzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,MAAM,CAAC,GACrD,oBAAoB,CAMtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,EACrC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,eAAe,CAEjB"}
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAmBzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,MAAM,CAAC,GACrD,oBAAoB,CAMtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,EACrC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,eAAe,CAMjB"}
package/dist/site.js CHANGED
@@ -49,14 +49,14 @@ export function Site(config) {
49
49
  description: config.description,
50
50
  version: config.version,
51
51
  generator: config.generator || 'next',
52
- structure: config.structure,
53
- navigation: config.navigation,
54
- seo: config.seo,
55
- analytics: config.analytics,
56
- deployment: config.deployment,
57
- metadata: config.metadata,
58
- tags: config.tags,
59
52
  status: config.status || 'active',
53
+ ...(config.structure !== undefined && { structure: config.structure }),
54
+ ...(config.navigation !== undefined && { navigation: config.navigation }),
55
+ ...(config.seo !== undefined && { seo: config.seo }),
56
+ ...(config.analytics !== undefined && { analytics: config.analytics }),
57
+ ...(config.deployment !== undefined && { deployment: config.deployment }),
58
+ ...(config.metadata !== undefined && { metadata: config.metadata }),
59
+ ...(config.tags !== undefined && { tags: config.tags }),
60
60
  };
61
61
  return registerProduct(site);
62
62
  }
@@ -108,6 +108,10 @@ export function SEO(config) {
108
108
  * ```
109
109
  */
110
110
  export function Analytics(provider, id, config) {
111
- return { provider, id, config };
111
+ return {
112
+ provider,
113
+ id,
114
+ ...(config !== undefined && { config }),
115
+ };
112
116
  }
113
117
  //# sourceMappingURL=site.js.map
package/dist/site.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,IAAI,CAAC,MAAoC;IACvD,MAAM,IAAI,GAAmB;QAC3B,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;KAClC,CAAA;IAED,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,GAAG,CACjB,KAAa,EACb,IAAY,EACZ,OAAsD;IAEtD,OAAO;QACL,KAAK;QACL,IAAI;QACJ,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,GAAG,CAAC,MAAiB;IACnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,QAAqC,EACrC,EAAU,EACV,MAAgC;IAEhC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,IAAI,CAAC,MAAoC;IACvD,MAAM,IAAI,GAAmB;QAC3B,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;KACxD,CAAA;IAED,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,GAAG,CACjB,KAAa,EACb,IAAY,EACZ,OAAsD;IAEtD,OAAO;QACL,KAAK;QACL,IAAI;QACJ,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,GAAG,CAAC,MAAiB;IACnC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,QAAqC,EACrC,EAAU,EACV,MAAgC;IAEhC,OAAO;QACL,QAAQ;QACR,EAAE;QACF,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KACxC,CAAA;AACH,CAAC"}