digital-products 2.1.3 → 2.3.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.
- package/CHANGELOG.md +9 -0
- package/README.md +2 -0
- package/dist/api.js +7 -7
- package/dist/api.js.map +1 -1
- package/dist/app.js +6 -6
- package/dist/app.js.map +1 -1
- package/dist/client.d.ts +157 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +69 -0
- package/dist/client.js.map +1 -0
- package/dist/content.js +7 -7
- package/dist/content.js.map +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +6 -6
- package/dist/data.js.map +1 -1
- package/dist/dataset.js +5 -5
- package/dist/dataset.js.map +1 -1
- package/dist/index.d.ts +92 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -15
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +17 -10
- package/dist/mcp.js.map +1 -1
- package/dist/product.js +2 -2
- package/dist/product.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +52 -16
- package/dist/sdk.js.map +1 -1
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +12 -8
- package/dist/site.js.map +1 -1
- package/dist/types.d.ts +830 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +495 -2
- package/dist/types.js.map +1 -1
- package/dist/worker.d.ts +205 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +356 -0
- package/dist/worker.js.map +1 -0
- package/package.json +29 -13
- package/src/api.ts +7 -7
- package/src/app.ts +6 -6
- package/src/client.ts +192 -0
- package/src/content.ts +7 -7
- package/src/data.ts +12 -7
- package/src/dataset.ts +5 -5
- package/src/index.ts +151 -15
- package/src/mcp.ts +18 -11
- package/src/product.ts +2 -2
- package/src/sdk.ts +54 -15
- package/src/site.ts +12 -8
- package/src/types.ts +821 -12
- package/src/worker.ts +525 -0
- package/test/product.test.ts +53 -198
- package/test/unified-types.test.ts +589 -0
- package/test/worker.test.ts +912 -0
- package/vitest.config.ts +42 -0
- package/wrangler.jsonc +36 -0
- package/.turbo/turbo-build.log +0 -5
- package/LICENSE +0 -21
- package/dist/features/define.d.ts +0 -63
- package/dist/features/define.d.ts.map +0 -1
- package/dist/features/define.js +0 -72
- package/dist/features/define.js.map +0 -1
- package/dist/features/flags.d.ts +0 -98
- package/dist/features/flags.d.ts.map +0 -1
- package/dist/features/flags.js +0 -145
- package/dist/features/flags.js.map +0 -1
- package/dist/features/toggles.d.ts +0 -75
- package/dist/features/toggles.d.ts.map +0 -1
- package/dist/features/toggles.js +0 -107
- package/dist/features/toggles.js.map +0 -1
- package/dist/tiers/define.d.ts +0 -63
- package/dist/tiers/define.d.ts.map +0 -1
- package/dist/tiers/define.js +0 -78
- package/dist/tiers/define.js.map +0 -1
- package/dist/tiers/entitlements.d.ts +0 -94
- package/dist/tiers/entitlements.d.ts.map +0 -1
- package/dist/tiers/entitlements.js +0 -94
- package/dist/tiers/entitlements.js.map +0 -1
- package/src/api.js +0 -128
- package/src/app.js +0 -106
- package/src/content.js +0 -77
- package/src/data.js +0 -106
- package/src/dataset.js +0 -49
- package/src/entities/ai.js +0 -858
- package/src/entities/content.js +0 -783
- package/src/entities/index.js +0 -88
- package/src/entities/interfaces.js +0 -929
- package/src/entities/lifecycle.js +0 -803
- package/src/entities/products.js +0 -797
- package/src/entities/web.js +0 -657
- package/src/features/define.ts +0 -130
- package/src/features/flags.ts +0 -247
- package/src/features/toggles.ts +0 -189
- package/src/index.js +0 -35
- package/src/mcp.js +0 -139
- package/src/pricing/billing.ts +0 -386
- package/src/pricing/plans.ts +0 -214
- package/src/product.js +0 -53
- package/src/registry.js +0 -31
- package/src/sdk.js +0 -127
- package/src/site.js +0 -112
- package/src/tiers/define.ts +0 -137
- package/src/tiers/entitlements.ts +0 -201
- package/src/types.js +0 -4
- package/test/analytics/events.test.ts +0 -319
- package/test/analytics/experiments.test.ts +0 -327
- package/test/features/define.test.ts +0 -187
- package/test/features/flags.test.ts +0 -259
- package/test/features/toggles.test.ts +0 -178
- package/test/lifecycle/stages.test.ts +0 -233
- package/test/lifecycle/transitions.test.ts +0 -207
- package/test/onboarding/flows.test.ts +0 -307
- package/test/pricing/billing.test.ts +0 -287
- package/test/pricing/plans.test.ts +0 -307
- package/test/roadmap/milestones.test.ts +0 -231
- package/test/roadmap/priorities.test.ts +0 -239
- package/test/tiers/define.test.ts +0 -192
- package/test/tiers/entitlements.test.ts +0 -220
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
package/dist/api.js
CHANGED
|
@@ -52,15 +52,15 @@ export function API(config) {
|
|
|
52
52
|
description: config.description,
|
|
53
53
|
version: config.version,
|
|
54
54
|
style: config.style || 'rest',
|
|
55
|
-
baseUrl: config.baseUrl,
|
|
56
55
|
endpoints: config.endpoints || [],
|
|
57
|
-
auth: config.auth,
|
|
58
|
-
rateLimit: config.rateLimit,
|
|
59
|
-
docsUrl: config.docsUrl,
|
|
60
|
-
openapi: config.openapi,
|
|
61
|
-
metadata: config.metadata,
|
|
62
|
-
tags: config.tags,
|
|
63
56
|
status: config.status || 'active',
|
|
57
|
+
...(config.baseUrl !== undefined && { baseUrl: config.baseUrl }),
|
|
58
|
+
...(config.auth !== undefined && { auth: config.auth }),
|
|
59
|
+
...(config.rateLimit !== undefined && { rateLimit: config.rateLimit }),
|
|
60
|
+
...(config.docsUrl !== undefined && { docsUrl: config.docsUrl }),
|
|
61
|
+
...(config.openapi !== undefined && { openapi: config.openapi }),
|
|
62
|
+
...(config.metadata !== undefined && { metadata: config.metadata }),
|
|
63
|
+
...(config.tags !== undefined && { tags: config.tags }),
|
|
64
64
|
};
|
|
65
65
|
return registerProduct(api);
|
|
66
66
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;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,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM;QAC7B,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;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,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,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,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,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;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAoC,EACpC,IAAY,EACZ,WAAmB,EACnB,OAAqE;IAErE,OAAO;QACL,MAAM;QACN,IAAI;QACJ,WAAW;QACX,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,MAAqB;IAC3C,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,MAAuB;IAC/C,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/app.js
CHANGED
|
@@ -41,13 +41,13 @@ export function App(config) {
|
|
|
41
41
|
version: config.version,
|
|
42
42
|
framework: config.framework || 'react',
|
|
43
43
|
routes: config.routes || [],
|
|
44
|
-
config: config.config,
|
|
45
|
-
state: config.state,
|
|
46
|
-
auth: config.auth,
|
|
47
|
-
deployments: config.deployments,
|
|
48
|
-
metadata: config.metadata,
|
|
49
|
-
tags: config.tags,
|
|
50
44
|
status: config.status || 'active',
|
|
45
|
+
...(config.config !== undefined && { config: config.config }),
|
|
46
|
+
...(config.state !== undefined && { state: config.state }),
|
|
47
|
+
...(config.auth !== undefined && { auth: config.auth }),
|
|
48
|
+
...(config.deployments !== undefined && { deployments: config.deployments }),
|
|
49
|
+
...(config.metadata !== undefined && { metadata: config.metadata }),
|
|
50
|
+
...(config.tags !== undefined && { tags: config.tags }),
|
|
51
51
|
};
|
|
52
52
|
return registerProduct(app);
|
|
53
53
|
}
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,IAAI,OAAO;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,IAAI,OAAO;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5E,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;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,SAAiB,EACjB,OAAqD;IAErD,OAAO;QACL,IAAI;QACJ,SAAS;QACT,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,KAAK,CAAC,MAAuB;IAC3C,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,IAAI,CAAC,MAAkB;IACrC,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC Client for Digital Products
|
|
3
|
+
*
|
|
4
|
+
* Provides a typed RPC client that connects to the deployed
|
|
5
|
+
* digital-products worker using rpc.do for remote procedure calls.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createDigitalProductsClient } from 'digital-products/client'
|
|
10
|
+
*
|
|
11
|
+
* const client = createDigitalProductsClient('https://digital-products.workers.dev')
|
|
12
|
+
* const product = await client.create({ name: 'My Product', description: 'A great product', version: '1.0.0' })
|
|
13
|
+
* const feature = await client.addFeature(product.id, { name: 'Search', description: 'Full-text search' })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
interface ProductData {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
version: string;
|
|
23
|
+
status: 'draft' | 'active' | 'deprecated' | 'archived';
|
|
24
|
+
type?: string;
|
|
25
|
+
features?: FeatureData[];
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
tags?: string[];
|
|
28
|
+
createdAt: Date;
|
|
29
|
+
updatedAt: Date;
|
|
30
|
+
}
|
|
31
|
+
interface FeatureData {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
description: string;
|
|
35
|
+
status: 'draft' | 'beta' | 'ga' | 'deprecated';
|
|
36
|
+
productId: string;
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
createdAt: Date;
|
|
39
|
+
updatedAt: Date;
|
|
40
|
+
}
|
|
41
|
+
interface VersionData {
|
|
42
|
+
id: string;
|
|
43
|
+
productId: string;
|
|
44
|
+
version: string;
|
|
45
|
+
changelog?: string;
|
|
46
|
+
status: 'draft' | 'published' | 'deprecated';
|
|
47
|
+
features?: string[];
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
49
|
+
createdAt: Date;
|
|
50
|
+
publishedAt?: Date;
|
|
51
|
+
}
|
|
52
|
+
interface BundleData {
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
productIds: string[];
|
|
57
|
+
pricing?: PricingData;
|
|
58
|
+
metadata?: Record<string, unknown>;
|
|
59
|
+
createdAt: Date;
|
|
60
|
+
updatedAt: Date;
|
|
61
|
+
}
|
|
62
|
+
interface PricingData {
|
|
63
|
+
model: 'free' | 'one-time' | 'subscription' | 'usage-based';
|
|
64
|
+
amount?: number;
|
|
65
|
+
currency?: string;
|
|
66
|
+
interval?: 'month' | 'year';
|
|
67
|
+
}
|
|
68
|
+
interface ListOptions {
|
|
69
|
+
limit?: number;
|
|
70
|
+
offset?: number;
|
|
71
|
+
status?: string;
|
|
72
|
+
type?: string;
|
|
73
|
+
orderBy?: string;
|
|
74
|
+
order?: 'asc' | 'desc';
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* DigitalProductsAPI - Type-safe interface matching ProductServiceCore RPC methods
|
|
78
|
+
*
|
|
79
|
+
* This interface mirrors all public methods on ProductServiceCore so that
|
|
80
|
+
* the RPC client provides full type safety when calling remote methods.
|
|
81
|
+
*/
|
|
82
|
+
export interface DigitalProductsAPI {
|
|
83
|
+
create(data: Partial<ProductData>): Promise<ProductData>;
|
|
84
|
+
get(id: string): Promise<ProductData | null>;
|
|
85
|
+
update(id: string, data: Partial<ProductData>): Promise<ProductData>;
|
|
86
|
+
delete(id: string): Promise<boolean>;
|
|
87
|
+
list(options?: ListOptions): Promise<ProductData[]>;
|
|
88
|
+
addFeature(productId: string, featureData: Partial<FeatureData>): Promise<FeatureData>;
|
|
89
|
+
updateFeature(featureId: string, data: Partial<FeatureData>): Promise<FeatureData>;
|
|
90
|
+
removeFeature(featureId: string): Promise<boolean>;
|
|
91
|
+
listFeatures(productId: string): Promise<FeatureData[]>;
|
|
92
|
+
publish(productId: string, versionStr: string, changelog?: string): Promise<VersionData>;
|
|
93
|
+
listVersions(productId: string): Promise<VersionData[]>;
|
|
94
|
+
getVersion(productId: string, versionStr: string): Promise<VersionData | null>;
|
|
95
|
+
deprecateVersion(productId: string, versionStr: string): Promise<VersionData>;
|
|
96
|
+
compose(name: string, productIds: string[], options?: Partial<BundleData>): Promise<BundleData>;
|
|
97
|
+
getBundle(bundleId: string): Promise<BundleData | null>;
|
|
98
|
+
updateBundle(bundleId: string, data: Partial<BundleData>): Promise<BundleData>;
|
|
99
|
+
listBundles(): Promise<BundleData[]>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Options for creating a digital products RPC client
|
|
103
|
+
*/
|
|
104
|
+
export interface DigitalProductsClientOptions {
|
|
105
|
+
/** Authentication token or API key */
|
|
106
|
+
token?: string;
|
|
107
|
+
/** Request timeout in milliseconds */
|
|
108
|
+
timeout?: number;
|
|
109
|
+
/** Custom headers to include in requests */
|
|
110
|
+
headers?: Record<string, string>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Create a typed RPC client for the digital-products worker
|
|
114
|
+
*
|
|
115
|
+
* @param url - The URL of the deployed digital-products worker
|
|
116
|
+
* @param options - Optional client configuration
|
|
117
|
+
* @returns A typed RPC client with all ProductServiceCore methods
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* import { createDigitalProductsClient } from 'digital-products/client'
|
|
122
|
+
*
|
|
123
|
+
* // Connect to production
|
|
124
|
+
* const client = createDigitalProductsClient('https://digital-products.workers.dev')
|
|
125
|
+
*
|
|
126
|
+
* // Create a product
|
|
127
|
+
* const product = await client.create({
|
|
128
|
+
* name: 'My API',
|
|
129
|
+
* description: 'A powerful API service',
|
|
130
|
+
* version: '1.0.0',
|
|
131
|
+
* })
|
|
132
|
+
*
|
|
133
|
+
* // Add features
|
|
134
|
+
* await client.addFeature(product.id, { name: 'Rate Limiting', description: 'API rate limiting' })
|
|
135
|
+
* await client.addFeature(product.id, { name: 'Analytics', description: 'Usage analytics' })
|
|
136
|
+
*
|
|
137
|
+
* // Publish a version
|
|
138
|
+
* await client.publish(product.id, '1.0.0', 'Initial release')
|
|
139
|
+
*
|
|
140
|
+
* // Create a bundle
|
|
141
|
+
* const bundle = await client.compose('Enterprise Bundle', [product.id, otherProduct.id])
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function createDigitalProductsClient(url?: string, options?: DigitalProductsClientOptions): import("rpc.do").RPCProxy<DigitalProductsAPI>;
|
|
145
|
+
/**
|
|
146
|
+
* Default client instance connected to the production digital-products worker
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```ts
|
|
150
|
+
* import client from 'digital-products/client'
|
|
151
|
+
*
|
|
152
|
+
* const product = await client.create({ name: 'My Product', description: 'Great', version: '1.0.0' })
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
declare const client: import("rpc.do").RPCProxy<DigitalProductsAPI>;
|
|
156
|
+
export default client;
|
|
157
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC Client for Digital Products
|
|
3
|
+
*
|
|
4
|
+
* Provides a typed RPC client that connects to the deployed
|
|
5
|
+
* digital-products worker using rpc.do for remote procedure calls.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createDigitalProductsClient } from 'digital-products/client'
|
|
10
|
+
*
|
|
11
|
+
* const client = createDigitalProductsClient('https://digital-products.workers.dev')
|
|
12
|
+
* const product = await client.create({ name: 'My Product', description: 'A great product', version: '1.0.0' })
|
|
13
|
+
* const feature = await client.addFeature(product.id, { name: 'Search', description: 'Full-text search' })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
import { RPC, http } from 'rpc.do';
|
|
19
|
+
// ==================== Client Factory ====================
|
|
20
|
+
/** Default URL for the digital-products worker */
|
|
21
|
+
const DEFAULT_URL = 'https://digital-products.workers.dev';
|
|
22
|
+
/**
|
|
23
|
+
* Create a typed RPC client for the digital-products worker
|
|
24
|
+
*
|
|
25
|
+
* @param url - The URL of the deployed digital-products worker
|
|
26
|
+
* @param options - Optional client configuration
|
|
27
|
+
* @returns A typed RPC client with all ProductServiceCore methods
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { createDigitalProductsClient } from 'digital-products/client'
|
|
32
|
+
*
|
|
33
|
+
* // Connect to production
|
|
34
|
+
* const client = createDigitalProductsClient('https://digital-products.workers.dev')
|
|
35
|
+
*
|
|
36
|
+
* // Create a product
|
|
37
|
+
* const product = await client.create({
|
|
38
|
+
* name: 'My API',
|
|
39
|
+
* description: 'A powerful API service',
|
|
40
|
+
* version: '1.0.0',
|
|
41
|
+
* })
|
|
42
|
+
*
|
|
43
|
+
* // Add features
|
|
44
|
+
* await client.addFeature(product.id, { name: 'Rate Limiting', description: 'API rate limiting' })
|
|
45
|
+
* await client.addFeature(product.id, { name: 'Analytics', description: 'Usage analytics' })
|
|
46
|
+
*
|
|
47
|
+
* // Publish a version
|
|
48
|
+
* await client.publish(product.id, '1.0.0', 'Initial release')
|
|
49
|
+
*
|
|
50
|
+
* // Create a bundle
|
|
51
|
+
* const bundle = await client.compose('Enterprise Bundle', [product.id, otherProduct.id])
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function createDigitalProductsClient(url = DEFAULT_URL, options) {
|
|
55
|
+
return RPC(http(url, options?.token));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Default client instance connected to the production digital-products worker
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import client from 'digital-products/client'
|
|
63
|
+
*
|
|
64
|
+
* const product = await client.create({ name: 'My Product', description: 'Great', version: '1.0.0' })
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
const client = createDigitalProductsClient();
|
|
68
|
+
export default client;
|
|
69
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAqHlC,2DAA2D;AAE3D,kDAAkD;AAClD,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAc,WAAW,EACzB,OAAsC;IAEtC,OAAO,GAAG,CAAqB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAA;AAE5C,eAAe,MAAM,CAAA"}
|
package/dist/content.js
CHANGED
|
@@ -41,14 +41,14 @@ export function Content(config) {
|
|
|
41
41
|
description: config.description,
|
|
42
42
|
version: config.version,
|
|
43
43
|
format: config.format || 'markdown',
|
|
44
|
-
source: config.source,
|
|
45
|
-
schema: config.schema,
|
|
46
|
-
frontmatter: config.frontmatter,
|
|
47
|
-
categories: config.categories,
|
|
48
|
-
workflow: config.workflow,
|
|
49
|
-
metadata: config.metadata,
|
|
50
|
-
tags: config.tags,
|
|
51
44
|
status: config.status || 'active',
|
|
45
|
+
...(config.source !== undefined && { source: config.source }),
|
|
46
|
+
...(config.schema !== undefined && { schema: config.schema }),
|
|
47
|
+
...(config.frontmatter !== undefined && { frontmatter: config.frontmatter }),
|
|
48
|
+
...(config.categories !== undefined && { categories: config.categories }),
|
|
49
|
+
...(config.workflow !== undefined && { workflow: config.workflow }),
|
|
50
|
+
...(config.metadata !== undefined && { metadata: config.metadata }),
|
|
51
|
+
...(config.tags !== undefined && { tags: config.tags }),
|
|
52
52
|
};
|
|
53
53
|
return registerProduct(content);
|
|
54
54
|
}
|
package/dist/content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,SAAS;QACf,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,UAAU;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,SAAS;QACf,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,UAAU;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5E,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,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,OAAO,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CAAC,MAA0B;IACjD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,cAAc,EACf,MAAM,YAAY,CAAA;AAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAkBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,CAAC,GACjD,eAAe,CAMjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAOxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAWhB"}
|
package/dist/data.js
CHANGED
|
@@ -40,12 +40,12 @@ export function Data(config) {
|
|
|
40
40
|
version: config.version,
|
|
41
41
|
schema: config.schema,
|
|
42
42
|
provider: config.provider || 'fs',
|
|
43
|
-
indexes: config.indexes,
|
|
44
|
-
relationships: config.relationships,
|
|
45
|
-
validation: config.validation,
|
|
46
|
-
metadata: config.metadata,
|
|
47
|
-
tags: config.tags,
|
|
48
43
|
status: config.status || 'active',
|
|
44
|
+
...(config.indexes !== undefined && { indexes: config.indexes }),
|
|
45
|
+
...(config.relationships !== undefined && { relationships: config.relationships }),
|
|
46
|
+
...(config.validation !== undefined && { validation: config.validation }),
|
|
47
|
+
...(config.metadata !== undefined && { metadata: config.metadata }),
|
|
48
|
+
...(config.tags !== undefined && { tags: config.tags }),
|
|
49
49
|
};
|
|
50
50
|
return registerProduct(data);
|
|
51
51
|
}
|
|
@@ -101,7 +101,7 @@ export function Validate(field, rule, paramsOrMessage, message) {
|
|
|
101
101
|
field,
|
|
102
102
|
rule,
|
|
103
103
|
params: paramsOrMessage,
|
|
104
|
-
message,
|
|
104
|
+
...(message !== undefined && { message }),
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;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,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,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;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,MAAgB,EAChB,OAAkD;IAElD,OAAO;QACL,IAAI;QACJ,MAAM;QACN,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAoC,EACpC,IAAY,EACZ,EAAU,EACV,KAAa;IAEb,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,EAAE;QACF,KAAK;KACN,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAa,EACb,IAA4B,EAC5B,eAAkC,EAClC,OAAgB;IAEhB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;IAClD,CAAC;IAED,OAAO;QACL,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,eAAe;QACvB,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1C,CAAA;AACH,CAAC"}
|
package/dist/dataset.js
CHANGED
|
@@ -37,13 +37,13 @@ export function Dataset(config) {
|
|
|
37
37
|
version: config.version,
|
|
38
38
|
format: config.format || 'json',
|
|
39
39
|
schema: config.schema,
|
|
40
|
-
source: config.source,
|
|
41
|
-
size: config.size,
|
|
42
|
-
license: config.license,
|
|
43
40
|
updateFrequency: config.updateFrequency || 'static',
|
|
44
|
-
metadata: config.metadata,
|
|
45
|
-
tags: config.tags,
|
|
46
41
|
status: config.status || 'active',
|
|
42
|
+
...(config.source !== undefined && { source: config.source }),
|
|
43
|
+
...(config.size !== undefined && { size: config.size }),
|
|
44
|
+
...(config.license !== undefined && { license: config.license }),
|
|
45
|
+
...(config.metadata !== undefined && { metadata: config.metadata }),
|
|
46
|
+
...(config.tags !== undefined && { tags: config.tags }),
|
|
47
47
|
};
|
|
48
48
|
return registerProduct(dataset);
|
|
49
49
|
}
|
package/dist/dataset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,SAAS;QACf,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,MAAM;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,SAAS;QACf,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,MAAM;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,QAAQ;QACnD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;QACjC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,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,OAAO,CAAC,CAAA;AACjC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,29 +1,108 @@
|
|
|
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
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
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
86
|
export * from './types.js';
|
|
17
87
|
export * as Nouns from './entities/index.js';
|
|
18
88
|
export { AllDigitalProductEntities, DigitalProductEntityCategories, Entities, ProductEntities, ProductCategories, InterfaceEntities, InterfaceCategories, ContentEntities, ContentCategories, WebEntities, WebCategories, AIEntities, AICategories, LifecycleEntities, LifecycleCategories, } from './entities/index.js';
|
|
19
89
|
export { registry } from './registry.js';
|
|
20
|
-
|
|
21
|
-
export {
|
|
22
|
-
|
|
90
|
+
/** @deprecated Use createProduct() from unified types instead */
|
|
91
|
+
export { Product as ProductBuilder, createProduct as createProductDefinition, registerProduct, } from './product.js';
|
|
92
|
+
/** @deprecated Use createApp() from unified types instead */
|
|
93
|
+
export { App as AppBuilder, Route, State, Auth } from './app.js';
|
|
94
|
+
/** @deprecated Use createAPI() from unified types instead */
|
|
95
|
+
export { API as APIBuilder, Endpoint, APIAuth, RateLimit } from './api.js';
|
|
23
96
|
export { Content, Workflow } from './content.js';
|
|
24
97
|
export { Data, Index, Relationship, Validate } from './data.js';
|
|
25
98
|
export { Dataset } from './dataset.js';
|
|
26
|
-
|
|
99
|
+
/** @deprecated Use createSite() from unified types instead */
|
|
100
|
+
export { Site as SiteBuilder, Nav, SEO, Analytics } from './site.js';
|
|
27
101
|
export { MCP, Tool, Resource, Prompt, MCPConfig } from './mcp.js';
|
|
28
102
|
export { SDK, Export, Example } from './sdk.js';
|
|
103
|
+
import { Product as ProductFn } from './product.js';
|
|
104
|
+
import { App as AppFn } from './app.js';
|
|
105
|
+
import { API as APIFn } from './api.js';
|
|
106
|
+
import { Site as SiteFn } from './site.js';
|
|
107
|
+
export { ProductFn as Product, AppFn as App, APIFn as API, SiteFn as Site };
|
|
29
108
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AA4BH,cAAc,YAAY,CAAA;AAG1B,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAG5C,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,QAAQ,EAER,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;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAkBxC,iEAAiE;AACjE,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,aAAa,IAAI,uBAAuB,EACxC,eAAe,GAChB,MAAM,cAAc,CAAA;AAErB,6DAA6D;AAC7D,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEhE,6DAA6D;AAC7D,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE1E,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;AAEtC,8DAA8D;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAEpE,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;AAM/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,WAAW,CAAA;AAI1C,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,CAAA"}
|