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
package/dist/sdk.js ADDED
@@ -0,0 +1,128 @@
1
+ /**
2
+ * SDK() - Define a software development kit
3
+ */
4
+ import { registerProduct } from './product.js';
5
+ /**
6
+ * Create an SDK definition
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const mySDK = SDK({
11
+ * id: 'my-sdk',
12
+ * name: 'My SDK',
13
+ * description: 'JavaScript SDK for My API',
14
+ * version: '1.0.0',
15
+ * language: 'typescript',
16
+ * api: 'my-api',
17
+ * exports: [
18
+ * Export('function', 'createClient', 'Create an API client', {
19
+ * parameters: {
20
+ * apiKey: 'API key for authentication',
21
+ * baseUrl: 'Optional base URL',
22
+ * },
23
+ * returns: 'API client instance',
24
+ * }),
25
+ * Export('class', 'APIClient', 'Main API client', {
26
+ * methods: [
27
+ * Export('function', 'get', 'GET request', {
28
+ * parameters: { path: 'Request path' },
29
+ * returns: 'Response data',
30
+ * }),
31
+ * Export('function', 'post', 'POST request', {
32
+ * parameters: { path: 'Request path', data: 'Request body' },
33
+ * returns: 'Response data',
34
+ * }),
35
+ * ],
36
+ * }),
37
+ * ],
38
+ * install: 'npm install my-sdk',
39
+ * examples: [
40
+ * Example(
41
+ * 'Basic Usage',
42
+ * 'Create a client and make a request',
43
+ * `import { createClient } from 'my-sdk'
44
+ *
45
+ * const client = createClient({ apiKey: 'YOUR_API_KEY' })
46
+ * const users = await client.get('/users')
47
+ * console.log(users)`
48
+ * ),
49
+ * ],
50
+ * })
51
+ * ```
52
+ */
53
+ export function SDK(config) {
54
+ const sdk = {
55
+ type: 'sdk',
56
+ id: config.id,
57
+ name: config.name,
58
+ description: config.description,
59
+ version: config.version,
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
+ status: config.status || 'active',
69
+ };
70
+ return registerProduct(sdk);
71
+ }
72
+ /**
73
+ * Helper to create an SDK export
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const fn = Export('function', 'calculateTotal', 'Calculate order total', {
78
+ * parameters: {
79
+ * items: ['Array of order items'],
80
+ * taxRate: 'Tax rate (number)',
81
+ * },
82
+ * returns: 'Total amount (number)',
83
+ * })
84
+ *
85
+ * const cls = Export('class', 'OrderManager', 'Manage orders', {
86
+ * methods: [
87
+ * Export('function', 'create', 'Create order', {
88
+ * parameters: { order: 'Order data' },
89
+ * returns: 'Created order',
90
+ * }),
91
+ * ],
92
+ * })
93
+ * ```
94
+ */
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
+ };
104
+ }
105
+ /**
106
+ * Helper to create an SDK example
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * const example = Example(
111
+ * 'Authentication',
112
+ * 'How to authenticate with the API',
113
+ * `const client = createClient({
114
+ * apiKey: process.env.API_KEY,
115
+ * })`,
116
+ * '{ authenticated: true }'
117
+ * )
118
+ * ```
119
+ */
120
+ export function Example(title, description, code, output) {
121
+ return {
122
+ title,
123
+ description,
124
+ code,
125
+ output,
126
+ };
127
+ }
128
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +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"}
package/dist/site.d.ts ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Site() - Define a website
3
+ */
4
+ import type { SiteDefinition, NavigationDefinition, SEOConfig, AnalyticsConfig } from './types.js';
5
+ /**
6
+ * Create a site definition
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const docsSite = Site({
11
+ * id: 'docs',
12
+ * name: 'Documentation Site',
13
+ * description: 'Product documentation',
14
+ * version: '1.0.0',
15
+ * generator: 'fumadocs',
16
+ * structure: {
17
+ * home: '/docs/index.mdx',
18
+ * docs: [
19
+ * '/docs/getting-started.mdx',
20
+ * '/docs/api-reference.mdx',
21
+ * ],
22
+ * },
23
+ * navigation: [
24
+ * Nav('Home', '/'),
25
+ * Nav('Docs', '/docs', {
26
+ * children: [
27
+ * Nav('Getting Started', '/docs/getting-started'),
28
+ * Nav('API Reference', '/docs/api-reference'),
29
+ * ],
30
+ * }),
31
+ * ],
32
+ * seo: {
33
+ * titleTemplate: '%s | My Product',
34
+ * description: 'Official documentation for My Product',
35
+ * keywords: ['docs', 'api', 'reference'],
36
+ * },
37
+ * analytics: {
38
+ * provider: 'plausible',
39
+ * id: 'docs.example.com',
40
+ * },
41
+ * })
42
+ * ```
43
+ */
44
+ export declare function Site(config: Omit<SiteDefinition, 'type'>): SiteDefinition;
45
+ /**
46
+ * Helper to create a navigation item
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const nav = Nav('Documentation', '/docs', {
51
+ * icon: 'book',
52
+ * children: [
53
+ * Nav('Getting Started', '/docs/getting-started'),
54
+ * Nav('API Reference', '/docs/api'),
55
+ * ],
56
+ * })
57
+ * ```
58
+ */
59
+ export declare function Nav(label: string, href: string, options?: Omit<NavigationDefinition, 'label' | 'href'>): NavigationDefinition;
60
+ /**
61
+ * Helper to configure SEO
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const seo = SEO({
66
+ * titleTemplate: '%s | My Site',
67
+ * description: 'My awesome site',
68
+ * keywords: ['keyword1', 'keyword2'],
69
+ * ogImage: '/og-image.png',
70
+ * twitterCard: 'summary_large_image',
71
+ * })
72
+ * ```
73
+ */
74
+ export declare function SEO(config: SEOConfig): SEOConfig;
75
+ /**
76
+ * Helper to configure analytics
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const analytics = Analytics('google', 'G-XXXXXXXXXX')
81
+ * const analytics = Analytics('plausible', 'example.com')
82
+ * ```
83
+ */
84
+ export declare function Analytics(provider: AnalyticsConfig['provider'], id: string, config?: Record<string, unknown>): AnalyticsConfig;
85
+ //# sourceMappingURL=site.d.ts.map
@@ -0,0 +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"}
package/dist/site.js ADDED
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Site() - Define a website
3
+ */
4
+ import { registerProduct } from './product.js';
5
+ /**
6
+ * Create a site definition
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const docsSite = Site({
11
+ * id: 'docs',
12
+ * name: 'Documentation Site',
13
+ * description: 'Product documentation',
14
+ * version: '1.0.0',
15
+ * generator: 'fumadocs',
16
+ * structure: {
17
+ * home: '/docs/index.mdx',
18
+ * docs: [
19
+ * '/docs/getting-started.mdx',
20
+ * '/docs/api-reference.mdx',
21
+ * ],
22
+ * },
23
+ * navigation: [
24
+ * Nav('Home', '/'),
25
+ * Nav('Docs', '/docs', {
26
+ * children: [
27
+ * Nav('Getting Started', '/docs/getting-started'),
28
+ * Nav('API Reference', '/docs/api-reference'),
29
+ * ],
30
+ * }),
31
+ * ],
32
+ * seo: {
33
+ * titleTemplate: '%s | My Product',
34
+ * description: 'Official documentation for My Product',
35
+ * keywords: ['docs', 'api', 'reference'],
36
+ * },
37
+ * analytics: {
38
+ * provider: 'plausible',
39
+ * id: 'docs.example.com',
40
+ * },
41
+ * })
42
+ * ```
43
+ */
44
+ export function Site(config) {
45
+ const site = {
46
+ type: 'site',
47
+ id: config.id,
48
+ name: config.name,
49
+ description: config.description,
50
+ version: config.version,
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
+ status: config.status || 'active',
60
+ };
61
+ return registerProduct(site);
62
+ }
63
+ /**
64
+ * Helper to create a navigation item
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const nav = Nav('Documentation', '/docs', {
69
+ * icon: 'book',
70
+ * children: [
71
+ * Nav('Getting Started', '/docs/getting-started'),
72
+ * Nav('API Reference', '/docs/api'),
73
+ * ],
74
+ * })
75
+ * ```
76
+ */
77
+ export function Nav(label, href, options) {
78
+ return {
79
+ label,
80
+ href,
81
+ ...options,
82
+ };
83
+ }
84
+ /**
85
+ * Helper to configure SEO
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const seo = SEO({
90
+ * titleTemplate: '%s | My Site',
91
+ * description: 'My awesome site',
92
+ * keywords: ['keyword1', 'keyword2'],
93
+ * ogImage: '/og-image.png',
94
+ * twitterCard: 'summary_large_image',
95
+ * })
96
+ * ```
97
+ */
98
+ export function SEO(config) {
99
+ return config;
100
+ }
101
+ /**
102
+ * Helper to configure analytics
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * const analytics = Analytics('google', 'G-XXXXXXXXXX')
107
+ * const analytics = Analytics('plausible', 'example.com')
108
+ * ```
109
+ */
110
+ export function Analytics(provider, id, config) {
111
+ return { provider, id, config };
112
+ }
113
+ //# sourceMappingURL=site.js.map
@@ -0,0 +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"}