@playdrop/playdrop-cli 0.5.2 → 0.5.4
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/config/client-meta.json +4 -4
- package/dist/apps/build.js +49 -6
- package/dist/apps/index.d.ts +2 -0
- package/dist/apps/index.js +2 -0
- package/dist/apps/upload.d.ts +2 -0
- package/dist/apps/upload.js +126 -28
- package/dist/assetSpecs.d.ts +16 -0
- package/dist/assetSpecs.js +263 -0
- package/dist/assets/model-artifacts.js +3 -0
- package/dist/catalogue.d.ts +57 -3
- package/dist/catalogue.js +342 -16
- package/dist/commandContext.d.ts +6 -2
- package/dist/commandContext.js +144 -20
- package/dist/commands/accounts.d.ts +2 -0
- package/dist/commands/accounts.js +48 -0
- package/dist/commands/ads.d.ts +8 -0
- package/dist/commands/ads.js +124 -0
- package/dist/commands/boosts.d.ts +25 -0
- package/dist/commands/boosts.js +209 -0
- package/dist/commands/browse.d.ts +6 -1
- package/dist/commands/browse.js +365 -124
- package/dist/commands/capture.js +30 -9
- package/dist/commands/captureListing.d.ts +53 -0
- package/dist/commands/captureListing.js +815 -0
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.js +183 -3
- package/dist/commands/credits.d.ts +6 -0
- package/dist/commands/credits.js +47 -1
- package/dist/commands/detail.js +38 -4
- package/dist/commands/dev.js +169 -192
- package/dist/commands/devServer.d.ts +26 -3
- package/dist/commands/devServer.js +415 -72
- package/dist/commands/login.js +10 -2
- package/dist/commands/logout.d.ts +6 -1
- package/dist/commands/logout.js +25 -3
- package/dist/commands/search.d.ts +5 -0
- package/dist/commands/search.js +139 -17
- package/dist/commands/tags.d.ts +7 -0
- package/dist/commands/tags.js +63 -0
- package/dist/commands/upload-content.d.ts +13 -3
- package/dist/commands/upload-content.js +86 -20
- package/dist/commands/upload.d.ts +2 -0
- package/dist/commands/upload.js +187 -11
- package/dist/commands/validate.js +163 -2
- package/dist/commands/versionsBrowse.js +128 -91
- package/dist/commands/whoami.js +10 -2
- package/dist/config.d.ts +37 -0
- package/dist/config.js +205 -3
- package/dist/index.js +177 -5
- package/dist/refs.d.ts +2 -2
- package/dist/refs.js +13 -1
- package/dist/taskSelection.js +6 -3
- package/dist/taskUtils.d.ts +2 -2
- package/dist/taskUtils.js +1 -0
- package/dist/uploadLog.d.ts +1 -1
- package/dist/uploadLog.js +2 -2
- package/dist/workspaceAuth.d.ts +14 -0
- package/dist/workspaceAuth.js +75 -0
- package/node_modules/@playdrop/ai-client/package.json +1 -1
- package/node_modules/@playdrop/api-client/dist/client.d.ts +139 -10
- package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/client.js +6 -0
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +9 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.js +45 -0
- package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +7 -1
- package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/apps.js +58 -0
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +2 -0
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/asset-packs.js +16 -0
- package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +44 -2
- package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/assets.js +260 -3
- package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +22 -1
- package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/payments.js +228 -0
- package/node_modules/@playdrop/api-client/dist/domains/search.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/search.js +39 -11
- package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts +34 -0
- package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts.map +1 -0
- package/node_modules/@playdrop/api-client/dist/domains/tags.js +111 -0
- package/node_modules/@playdrop/api-client/dist/index.d.ts +69 -1
- package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/index.js +74 -0
- package/node_modules/@playdrop/api-client/package.json +1 -1
- package/node_modules/@playdrop/boxel-core/package.json +1 -1
- package/node_modules/@playdrop/boxel-three/package.json +1 -1
- package/node_modules/@playdrop/config/client-meta.json +4 -4
- package/node_modules/@playdrop/config/dist/src/constants.d.ts +11 -0
- package/node_modules/@playdrop/config/dist/src/constants.d.ts.map +1 -1
- package/node_modules/@playdrop/config/dist/src/constants.js +12 -1
- package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@playdrop/config/package.json +1 -1
- package/node_modules/@playdrop/types/dist/api.d.ts +366 -6
- package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/api.js +52 -1
- package/node_modules/@playdrop/types/dist/asset-pack.d.ts +7 -1
- package/node_modules/@playdrop/types/dist/asset-pack.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/asset-spec-contract-meta-schema.json +86 -0
- package/node_modules/@playdrop/types/dist/asset-spec.d.ts +163 -0
- package/node_modules/@playdrop/types/dist/asset-spec.d.ts.map +1 -0
- package/node_modules/@playdrop/types/dist/asset-spec.js +101 -0
- package/node_modules/@playdrop/types/dist/asset.d.ts +23 -6
- package/node_modules/@playdrop/types/dist/asset.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/asset.js +4 -1
- package/node_modules/@playdrop/types/dist/graph.d.ts +4 -2
- package/node_modules/@playdrop/types/dist/graph.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/graph.js +9 -2
- package/node_modules/@playdrop/types/dist/index.d.ts +1 -0
- package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/index.js +1 -0
- package/node_modules/@playdrop/types/dist/version.d.ts +13 -0
- package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/version.js +21 -0
- package/node_modules/@playdrop/types/package.json +6 -1
- package/node_modules/@playdrop/vox-three/package.json +1 -1
- package/package.json +3 -1
|
@@ -4,6 +4,20 @@ function buildPublicAppPath(normalizeCreatorItemSlug, creatorUsername, appName,
|
|
|
4
4
|
const name = normalizeCreatorItemSlug(appName, 'name');
|
|
5
5
|
return `/apps/${encodeURIComponent(creator)}/${encodeURIComponent(name)}${suffix}`;
|
|
6
6
|
}
|
|
7
|
+
function appendNormalizedTagParams(params, tags) {
|
|
8
|
+
if (!Array.isArray(tags)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
for (const tag of tags) {
|
|
12
|
+
if (typeof tag !== 'string') {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const normalized = tag.trim();
|
|
16
|
+
if (normalized.length > 0) {
|
|
17
|
+
params.append('tag', normalized);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
7
21
|
async function buildAuthorizedHeaders(getClientHeaders, resolveToken) {
|
|
8
22
|
const headers = new Headers();
|
|
9
23
|
for (const [key, value] of Object.entries(getClientHeaders())) {
|
|
@@ -25,10 +39,14 @@ function buildAppVersionUploadForm(options) {
|
|
|
25
39
|
if (options.surfaceTargets && options.surfaceTargets.length > 0) {
|
|
26
40
|
form.append('surfaceTargets', JSON.stringify(options.surfaceTargets));
|
|
27
41
|
}
|
|
42
|
+
if (options.assetSpecSupport) {
|
|
43
|
+
form.append('assetSpecSupport', JSON.stringify(options.assetSpecSupport));
|
|
44
|
+
}
|
|
28
45
|
appendAppVersionMetadataFields(form, options);
|
|
29
46
|
appendAppVersionMediaFiles(form, options);
|
|
30
47
|
return form;
|
|
31
48
|
}
|
|
49
|
+
// eslint-disable-next-line complexity
|
|
32
50
|
function appendAppVersionMetadataFields(form, options) {
|
|
33
51
|
if (options.entryPoint !== undefined)
|
|
34
52
|
form.append('entryPoint', options.entryPoint);
|
|
@@ -40,6 +58,12 @@ function appendAppVersionMetadataFields(form, options) {
|
|
|
40
58
|
form.append('previewable', String(options.previewable));
|
|
41
59
|
if (options.setAsCurrent !== undefined)
|
|
42
60
|
form.append('setAsCurrent', String(options.setAsCurrent));
|
|
61
|
+
if (options.skipReview !== undefined)
|
|
62
|
+
form.append('skipReview', String(options.skipReview));
|
|
63
|
+
if (options.tags !== undefined)
|
|
64
|
+
form.append('tags', JSON.stringify(options.tags));
|
|
65
|
+
if (options.clearTags !== undefined)
|
|
66
|
+
form.append('clearTags', String(options.clearTags));
|
|
43
67
|
if (options.remixRef !== undefined)
|
|
44
68
|
form.append('remixRef', options.remixRef);
|
|
45
69
|
if (options.externalUrl !== undefined)
|
|
@@ -94,6 +118,7 @@ async function fetchAppsByCreatorRequest(request, handleApiError, creatorUsernam
|
|
|
94
118
|
if (typeof options.type === 'string' && options.type.trim().length > 0) {
|
|
95
119
|
params.set('type', options.type.trim());
|
|
96
120
|
}
|
|
121
|
+
appendNormalizedTagParams(params, options.tags);
|
|
97
122
|
const query = params.toString();
|
|
98
123
|
const response = await request({
|
|
99
124
|
method: 'GET',
|
|
@@ -122,6 +147,7 @@ async function uploadAppVersionRequest(input, creatorUsername, appName, options)
|
|
|
122
147
|
}
|
|
123
148
|
return parsed;
|
|
124
149
|
}
|
|
150
|
+
// eslint-disable-next-line max-lines-per-function
|
|
125
151
|
export function buildAppsApiClientMethods(input) {
|
|
126
152
|
const { request, handleApiError, fetchImpl, includeBrowserCredentials, resolveBaseUrl, resolveUrl, parseResponseBody, resolveToken, getClientHeaders, buildCreatorAppMutationPath, normalizeCreatorItemSlug, normalizeSemverInput, parseContentDispositionFilename, } = input;
|
|
127
153
|
return {
|
|
@@ -133,6 +159,7 @@ export function buildAppsApiClientMethods(input) {
|
|
|
133
159
|
if (typeof options.offset === 'number' && Number.isFinite(options.offset)) {
|
|
134
160
|
params.set('offset', String(options.offset));
|
|
135
161
|
}
|
|
162
|
+
appendNormalizedTagParams(params, options.tags);
|
|
136
163
|
const query = params.toString();
|
|
137
164
|
const response = await request({
|
|
138
165
|
method: 'GET',
|
|
@@ -151,6 +178,7 @@ export function buildAppsApiClientMethods(input) {
|
|
|
151
178
|
if (typeof options.offset === 'number' && Number.isFinite(options.offset)) {
|
|
152
179
|
params.set('offset', String(options.offset));
|
|
153
180
|
}
|
|
181
|
+
appendNormalizedTagParams(params, options.tags);
|
|
154
182
|
const query = params.toString();
|
|
155
183
|
const response = await request({
|
|
156
184
|
method: 'GET',
|
|
@@ -240,6 +268,36 @@ export function buildAppsApiClientMethods(input) {
|
|
|
240
268
|
}
|
|
241
269
|
return response.body;
|
|
242
270
|
},
|
|
271
|
+
async requestDevAppAccessToken(appId, slot) {
|
|
272
|
+
const response = await request({
|
|
273
|
+
method: 'POST',
|
|
274
|
+
path: `/apps/${encodeURIComponent(String(appId))}/dev/players/${encodeURIComponent(String(slot))}/token`,
|
|
275
|
+
});
|
|
276
|
+
if (response.status !== 200) {
|
|
277
|
+
handleApiError(response, 'request_dev_app_access_token');
|
|
278
|
+
}
|
|
279
|
+
return response.body;
|
|
280
|
+
},
|
|
281
|
+
async resetDevPlayer(appId, slot) {
|
|
282
|
+
const response = await request({
|
|
283
|
+
method: 'POST',
|
|
284
|
+
path: `/apps/${encodeURIComponent(String(appId))}/dev/players/${encodeURIComponent(String(slot))}/reset`,
|
|
285
|
+
});
|
|
286
|
+
if (response.status !== 200) {
|
|
287
|
+
handleApiError(response, 'reset_dev_player');
|
|
288
|
+
}
|
|
289
|
+
return response.body;
|
|
290
|
+
},
|
|
291
|
+
async resetAllDevPlayers(appId) {
|
|
292
|
+
const response = await request({
|
|
293
|
+
method: 'POST',
|
|
294
|
+
path: `/apps/${encodeURIComponent(String(appId))}/dev/players/reset-all`,
|
|
295
|
+
});
|
|
296
|
+
if (response.status !== 200) {
|
|
297
|
+
handleApiError(response, 'reset_all_dev_players');
|
|
298
|
+
}
|
|
299
|
+
return response.body;
|
|
300
|
+
},
|
|
243
301
|
async listAppVersions(creatorUsername, appName) {
|
|
244
302
|
const path = `/apps/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(appName)}/versions`;
|
|
245
303
|
const response = await request({
|
|
@@ -34,12 +34,14 @@ export declare function buildAssetPacksApiClientMethods(input: {
|
|
|
34
34
|
offset?: number;
|
|
35
35
|
containsCategory?: AssetCategory;
|
|
36
36
|
containsSubcategory?: string;
|
|
37
|
+
tags?: string[];
|
|
37
38
|
}): Promise<AssetPackListResponse>;
|
|
38
39
|
listAssetPacksForCreator(creatorUsername: string, options?: {
|
|
39
40
|
limit?: number;
|
|
40
41
|
offset?: number;
|
|
41
42
|
containsCategory?: AssetCategory;
|
|
42
43
|
containsSubcategory?: string;
|
|
44
|
+
tags?: string[];
|
|
43
45
|
}): Promise<AssetPackListResponse>;
|
|
44
46
|
fetchAssetPackBySlug(creatorUsername: string, packName: string): Promise<AssetPackDetailResponse>;
|
|
45
47
|
downloadAssetPackSource(creatorUsername: string, packName: string, version: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-packs.d.ts","sourceRoot":"","sources":["../../src/domains/asset-packs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,mCAAmC,EACnC,mCAAmC,EACnC,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,cAAc,CAAC;AAGtB,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;IAChC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,KAAK,KAAK,CAAC;AAE1F,KAAK,iBAAiB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-packs.d.ts","sourceRoot":"","sources":["../../src/domains/asset-packs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,20 @@ function buildPublicAssetPackPath(normalizeCreatorItemSlug, creatorUsername, pac
|
|
|
4
4
|
const name = normalizeCreatorItemSlug(packName, 'name');
|
|
5
5
|
return `/asset-packs/${encodeURIComponent(creator)}/${encodeURIComponent(name)}${suffix}`;
|
|
6
6
|
}
|
|
7
|
+
function appendNormalizedTagParams(params, tags) {
|
|
8
|
+
if (!Array.isArray(tags)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
for (const tag of tags) {
|
|
12
|
+
if (typeof tag !== 'string') {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const normalized = tag.trim();
|
|
16
|
+
if (normalized.length > 0) {
|
|
17
|
+
params.append('tag', normalized);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
7
21
|
function buildAssetPackVersionPath(normalizeCreatorItemSlug, normalizeSemverInput, creatorUsername, packName, version, suffix) {
|
|
8
22
|
const creator = normalizeCreatorItemSlug(creatorUsername, 'creator');
|
|
9
23
|
const name = normalizeCreatorItemSlug(packName, 'name');
|
|
@@ -207,6 +221,7 @@ function buildAssetPackReadWriteMethods(input) {
|
|
|
207
221
|
if (typeof options.containsSubcategory === 'string' && options.containsSubcategory.trim().length > 0) {
|
|
208
222
|
params.set('containsSubcategory', options.containsSubcategory.trim());
|
|
209
223
|
}
|
|
224
|
+
appendNormalizedTagParams(params, options.tags);
|
|
210
225
|
const query = params.toString();
|
|
211
226
|
const path = `/asset-packs${query ? `?${query}` : ''}`;
|
|
212
227
|
const response = await request({
|
|
@@ -232,6 +247,7 @@ function buildAssetPackReadWriteMethods(input) {
|
|
|
232
247
|
if (typeof options.containsSubcategory === 'string' && options.containsSubcategory.trim().length > 0) {
|
|
233
248
|
params.set('containsSubcategory', options.containsSubcategory.trim());
|
|
234
249
|
}
|
|
250
|
+
appendNormalizedTagParams(params, options.tags);
|
|
235
251
|
const query = params.toString();
|
|
236
252
|
const path = `/creators/${encodeURIComponent(creatorUsername)}/asset-packs${query ? `?${query}` : ''}`;
|
|
237
253
|
const response = await request({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AssetBrowseKind, AssetCategoriesResponse, AssetCategory, AssetDetailResponse, AssetListResponse, AssetSourceBundleResponse, AssetVersionsListResponse, ContentRemixRelationsResponse, CreateAssetVersionResponse, DeleteAssetResponse, DeleteAssetVersionResponse, UpdateAssetRequest, UpdateAssetResponse, UpdateAssetVersionRequest, UpdateAssetVersionResponse } from '@playdrop/types';
|
|
2
|
-
import type { UploadAssetVersionOptions } from '../client.js';
|
|
1
|
+
import type { AssetBrowseKind, AssetCategoriesResponse, AssetCategory, AssetDetailResponse, AssetListResponse, AssetSpecAssetsListResponse, AssetSpecAppsListResponse, AssetSpecDetailResponse, AssetSpecListResponse, AssetSpecVersionsListResponse, AssetSourceBundleResponse, AssetVersionsListResponse, ContentRemixRelationsResponse, CreateAssetSpecVersionResponse, CreateAssetVersionResponse, DeleteAssetSpecResponse, DeleteAssetSpecVersionResponse, DeleteAssetResponse, DeleteAssetVersionResponse, UpdateAssetRequest, UpdateAssetSpecVersionResponse, UpdateAssetResponse, UpdateAssetVersionRequest, UpdateAssetVersionResponse } from '@playdrop/types';
|
|
2
|
+
import type { UploadAssetSpecVersionOptions, UploadAssetVersionOptions } from '../client.js';
|
|
3
3
|
type ApiResponseLike<T> = {
|
|
4
4
|
status: number;
|
|
5
5
|
body: T;
|
|
@@ -30,6 +30,7 @@ export declare function buildAssetsApiClientMethods(input: {
|
|
|
30
30
|
parseContentDispositionFilename: (headerValue: string | null) => string | null;
|
|
31
31
|
}): {
|
|
32
32
|
createAssetVersion(creatorUsername: string, name: string, options: UploadAssetVersionOptions): Promise<CreateAssetVersionResponse>;
|
|
33
|
+
createAssetSpecVersion(creatorUsername: string, name: string, options: UploadAssetSpecVersionOptions): Promise<CreateAssetSpecVersionResponse>;
|
|
33
34
|
fetchAssetRelated(creatorUsername: string, assetName: string): Promise<ContentRemixRelationsResponse>;
|
|
34
35
|
listAssetCategories(): Promise<AssetCategoriesResponse>;
|
|
35
36
|
listAssets(options?: {
|
|
@@ -38,6 +39,11 @@ export declare function buildAssetsApiClientMethods(input: {
|
|
|
38
39
|
category?: AssetCategory;
|
|
39
40
|
subcategory?: string;
|
|
40
41
|
kind?: AssetBrowseKind;
|
|
42
|
+
assetSpec?: string;
|
|
43
|
+
assetSpecOwner?: string;
|
|
44
|
+
assetSpecName?: string;
|
|
45
|
+
sort?: string;
|
|
46
|
+
tags?: string[];
|
|
41
47
|
}): Promise<AssetListResponse>;
|
|
42
48
|
listAssetsForCreator(creatorUsername: string, options?: {
|
|
43
49
|
limit?: number;
|
|
@@ -45,7 +51,36 @@ export declare function buildAssetsApiClientMethods(input: {
|
|
|
45
51
|
category?: AssetCategory;
|
|
46
52
|
subcategory?: string;
|
|
47
53
|
kind?: AssetBrowseKind;
|
|
54
|
+
assetSpec?: string;
|
|
55
|
+
assetSpecOwner?: string;
|
|
56
|
+
assetSpecName?: string;
|
|
57
|
+
sort?: string;
|
|
58
|
+
tags?: string[];
|
|
48
59
|
}): Promise<AssetListResponse>;
|
|
60
|
+
listAssetSpecs(options?: {
|
|
61
|
+
limit?: number;
|
|
62
|
+
offset?: number;
|
|
63
|
+
sort?: string;
|
|
64
|
+
}): Promise<AssetSpecListResponse>;
|
|
65
|
+
listAssetSpecsForCreator(creatorUsername: string, options?: {
|
|
66
|
+
limit?: number;
|
|
67
|
+
offset?: number;
|
|
68
|
+
sort?: string;
|
|
69
|
+
}): Promise<AssetSpecListResponse>;
|
|
70
|
+
fetchAssetSpecBySlug(creatorUsername: string, name: string): Promise<AssetSpecDetailResponse>;
|
|
71
|
+
listAssetSpecVersions(creatorUsername: string, name: string, options?: {
|
|
72
|
+
limit?: number;
|
|
73
|
+
offset?: number;
|
|
74
|
+
}): Promise<AssetSpecVersionsListResponse>;
|
|
75
|
+
listAssetsByAssetSpec(creatorUsername: string, name: string, options?: {
|
|
76
|
+
limit?: number;
|
|
77
|
+
offset?: number;
|
|
78
|
+
sort?: string;
|
|
79
|
+
}): Promise<AssetSpecAssetsListResponse>;
|
|
80
|
+
listAppsByAssetSpec(creatorUsername: string, name: string, options?: {
|
|
81
|
+
limit?: number;
|
|
82
|
+
offset?: number;
|
|
83
|
+
}): Promise<AssetSpecAppsListResponse>;
|
|
49
84
|
fetchAssetBySlug(creatorUsername: string, assetName: string): Promise<AssetDetailResponse>;
|
|
50
85
|
listAssetVersions(creatorUsername: string, assetName: string, options?: {
|
|
51
86
|
limit?: number;
|
|
@@ -55,6 +90,13 @@ export declare function buildAssetsApiClientMethods(input: {
|
|
|
55
90
|
updateAssetVersion(creatorUsername: string, name: string, revision: string | number, requestBody: UpdateAssetVersionRequest): Promise<UpdateAssetVersionResponse>;
|
|
56
91
|
deleteAssetVersion(creatorUsername: string, name: string, revision: string | number): Promise<DeleteAssetVersionResponse>;
|
|
57
92
|
deleteAsset(creatorUsername: string, name: string): Promise<DeleteAssetResponse>;
|
|
93
|
+
updateAssetSpecVersion(creatorUsername: string, name: string, version: string, requestBody: {
|
|
94
|
+
visibility?: "PUBLIC" | "PRIVATE";
|
|
95
|
+
status?: "ACTIVE" | "DEPRECATED" | "RETRACTED";
|
|
96
|
+
successorVersion?: string | null;
|
|
97
|
+
}): Promise<UpdateAssetSpecVersionResponse>;
|
|
98
|
+
deleteAssetSpecVersion(creatorUsername: string, name: string, version: string): Promise<DeleteAssetSpecVersionResponse>;
|
|
99
|
+
deleteAssetSpec(creatorUsername: string, name: string): Promise<DeleteAssetSpecResponse>;
|
|
58
100
|
downloadAssetFile(creatorUsername: string, assetName: string, revision: string | number, options?: {
|
|
59
101
|
role?: string;
|
|
60
102
|
}): Promise<Blob>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/domains/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EAEzB,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/domains/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,18 +15,68 @@ function buildPublicAssetPath(normalizeCreatorItemSlug, creatorUsername, assetNa
|
|
|
15
15
|
const name = normalizeCreatorItemSlug(assetName, 'name');
|
|
16
16
|
return `/assets/${encodeURIComponent(creator)}/${encodeURIComponent(name)}${suffix}`;
|
|
17
17
|
}
|
|
18
|
+
function appendNormalizedTagParams(params, tags) {
|
|
19
|
+
if (!Array.isArray(tags)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const tag of tags) {
|
|
23
|
+
if (typeof tag !== 'string') {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const normalized = tag.trim();
|
|
27
|
+
if (normalized.length > 0) {
|
|
28
|
+
params.append('tag', normalized);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
18
32
|
function buildAssetVersionUploadForm(options) {
|
|
19
33
|
if (!Array.isArray(options.files) || options.files.length === 0) {
|
|
20
34
|
throw new Error('missing_asset_files');
|
|
21
35
|
}
|
|
22
36
|
const form = new FormData();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
37
|
+
if ('assetSpec' in options) {
|
|
38
|
+
form.set('assetSpec', options.assetSpec);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
form.set('category', options.category);
|
|
42
|
+
form.set('subcategory', options.subcategory);
|
|
43
|
+
form.set('format', options.format);
|
|
44
|
+
}
|
|
26
45
|
appendAssetVersionOptionalFields(form, options);
|
|
27
46
|
appendAssetVersionFiles(form, options);
|
|
28
47
|
return form;
|
|
29
48
|
}
|
|
49
|
+
function buildAssetSpecVersionUploadForm(options) {
|
|
50
|
+
const form = new FormData();
|
|
51
|
+
form.set('version', options.version);
|
|
52
|
+
form.set('symbol', options.symbol, 'symbol.svg');
|
|
53
|
+
form.set('contract', options.contract, 'contract.json');
|
|
54
|
+
if (options.displayName) {
|
|
55
|
+
form.set('displayName', options.displayName);
|
|
56
|
+
}
|
|
57
|
+
if (typeof options.description === 'string') {
|
|
58
|
+
form.set('description', options.description);
|
|
59
|
+
}
|
|
60
|
+
if (options.visibility) {
|
|
61
|
+
form.set('visibility', options.visibility);
|
|
62
|
+
}
|
|
63
|
+
if (options.validationKind) {
|
|
64
|
+
form.set('validationKind', options.validationKind);
|
|
65
|
+
}
|
|
66
|
+
if (options.status) {
|
|
67
|
+
form.set('status', options.status);
|
|
68
|
+
}
|
|
69
|
+
if (typeof options.releaseNotes === 'string') {
|
|
70
|
+
form.set('releaseNotes', options.releaseNotes);
|
|
71
|
+
}
|
|
72
|
+
if (typeof options.successorVersion === 'string' && options.successorVersion.trim().length > 0) {
|
|
73
|
+
form.set('successorVersion', options.successorVersion.trim());
|
|
74
|
+
}
|
|
75
|
+
if (options.documentation) {
|
|
76
|
+
form.set('documentation', options.documentation, 'README.md');
|
|
77
|
+
}
|
|
78
|
+
return form;
|
|
79
|
+
}
|
|
30
80
|
function appendAssetVersionOptionalFields(form, options) {
|
|
31
81
|
if (options.visibility)
|
|
32
82
|
form.set('visibility', options.visibility);
|
|
@@ -41,6 +91,12 @@ function appendAssetVersionOptionalFields(form, options) {
|
|
|
41
91
|
if (typeof options.remixRef === 'string' && options.remixRef.trim().length > 0) {
|
|
42
92
|
form.set('remixRef', options.remixRef.trim());
|
|
43
93
|
}
|
|
94
|
+
if (options.tags !== undefined) {
|
|
95
|
+
form.set('tags', JSON.stringify(options.tags));
|
|
96
|
+
}
|
|
97
|
+
if (typeof options.clearTags === 'boolean') {
|
|
98
|
+
form.set('clearTags', options.clearTags ? 'true' : 'false');
|
|
99
|
+
}
|
|
44
100
|
if (typeof options.shopListed === 'boolean') {
|
|
45
101
|
form.set('shopListed', options.shopListed ? 'true' : 'false');
|
|
46
102
|
}
|
|
@@ -95,6 +151,19 @@ async function listAssetsRequest(request, handleApiError, options = {}) {
|
|
|
95
151
|
if (typeof options.kind === 'string' && options.kind.trim().length > 0) {
|
|
96
152
|
params.set('kind', options.kind.trim());
|
|
97
153
|
}
|
|
154
|
+
if (typeof options.assetSpec === 'string' && options.assetSpec.trim().length > 0) {
|
|
155
|
+
params.set('assetSpec', options.assetSpec.trim());
|
|
156
|
+
}
|
|
157
|
+
if (typeof options.assetSpecOwner === 'string' && options.assetSpecOwner.trim().length > 0) {
|
|
158
|
+
params.set('assetSpecOwner', options.assetSpecOwner.trim());
|
|
159
|
+
}
|
|
160
|
+
if (typeof options.assetSpecName === 'string' && options.assetSpecName.trim().length > 0) {
|
|
161
|
+
params.set('assetSpecName', options.assetSpecName.trim());
|
|
162
|
+
}
|
|
163
|
+
if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
|
|
164
|
+
params.set('sort', options.sort.trim());
|
|
165
|
+
}
|
|
166
|
+
appendNormalizedTagParams(params, options.tags);
|
|
98
167
|
const query = params.toString();
|
|
99
168
|
const path = `/assets${query ? `?${query}` : ''}`;
|
|
100
169
|
const response = await request({ method: 'GET', path });
|
|
@@ -131,6 +200,25 @@ async function createAssetVersionRequest(input, creatorUsername, assetName, opti
|
|
|
131
200
|
}
|
|
132
201
|
return parsed;
|
|
133
202
|
}
|
|
203
|
+
async function createAssetSpecVersionRequest(input, creatorUsername, name, options) {
|
|
204
|
+
const form = buildAssetSpecVersionUploadForm(options);
|
|
205
|
+
const base = input.resolveBaseUrl();
|
|
206
|
+
const path = `/creators/${encodeURIComponent(creatorUsername)}/asset-specs/${encodeURIComponent(name)}/versions`;
|
|
207
|
+
const headers = await buildAuthorizedHeaders(input.getClientHeaders, input.resolveToken);
|
|
208
|
+
const response = await input.fetchImpl(input.resolveUrl(base, path), {
|
|
209
|
+
method: 'POST',
|
|
210
|
+
headers,
|
|
211
|
+
body: form,
|
|
212
|
+
...buildBrowserCredentialsInit(input.includeBrowserCredentials),
|
|
213
|
+
});
|
|
214
|
+
const parsed = await input.parseResponseBody(response);
|
|
215
|
+
const apiResponse = { status: response.status, body: parsed, headers: response.headers };
|
|
216
|
+
if (response.status !== 201 && response.status !== 200) {
|
|
217
|
+
input.handleApiError(apiResponse, 'create_asset_spec_version');
|
|
218
|
+
}
|
|
219
|
+
return parsed;
|
|
220
|
+
}
|
|
221
|
+
// eslint-disable-next-line max-lines-per-function
|
|
134
222
|
export function buildAssetsApiClientMethods(input) {
|
|
135
223
|
const { request, handleApiError, fetchImpl, includeBrowserCredentials, resolveBaseUrl, resolveUrl, parseResponseBody, resolveToken, getClientHeaders, buildCreatorAssetMutationPath, normalizeCreatorItemSlug, normalizeAssetRevisionInput, parseContentDispositionFilename, } = input;
|
|
136
224
|
return {
|
|
@@ -151,6 +239,22 @@ export function buildAssetsApiClientMethods(input) {
|
|
|
151
239
|
handleApiError,
|
|
152
240
|
}, creatorUsername, assetName, options);
|
|
153
241
|
},
|
|
242
|
+
async createAssetSpecVersion(creatorUsername, name, options) {
|
|
243
|
+
const assetSpecName = typeof name === 'string' ? name.trim() : '';
|
|
244
|
+
if (!assetSpecName) {
|
|
245
|
+
throw new Error('invalid_asset_spec_name');
|
|
246
|
+
}
|
|
247
|
+
return createAssetSpecVersionRequest({
|
|
248
|
+
fetchImpl,
|
|
249
|
+
includeBrowserCredentials,
|
|
250
|
+
resolveBaseUrl,
|
|
251
|
+
resolveUrl,
|
|
252
|
+
parseResponseBody,
|
|
253
|
+
resolveToken,
|
|
254
|
+
getClientHeaders,
|
|
255
|
+
handleApiError,
|
|
256
|
+
}, creatorUsername, assetSpecName, options);
|
|
257
|
+
},
|
|
154
258
|
async fetchAssetRelated(creatorUsername, assetName) {
|
|
155
259
|
return fetchAssetRelatedRequest(request, handleApiError, normalizeCreatorItemSlug, creatorUsername, assetName);
|
|
156
260
|
},
|
|
@@ -177,6 +281,19 @@ export function buildAssetsApiClientMethods(input) {
|
|
|
177
281
|
if (typeof options.kind === 'string' && options.kind.trim().length > 0) {
|
|
178
282
|
params.set('kind', options.kind.trim());
|
|
179
283
|
}
|
|
284
|
+
if (typeof options.assetSpec === 'string' && options.assetSpec.trim().length > 0) {
|
|
285
|
+
params.set('assetSpec', options.assetSpec.trim());
|
|
286
|
+
}
|
|
287
|
+
if (typeof options.assetSpecOwner === 'string' && options.assetSpecOwner.trim().length > 0) {
|
|
288
|
+
params.set('assetSpecOwner', options.assetSpecOwner.trim());
|
|
289
|
+
}
|
|
290
|
+
if (typeof options.assetSpecName === 'string' && options.assetSpecName.trim().length > 0) {
|
|
291
|
+
params.set('assetSpecName', options.assetSpecName.trim());
|
|
292
|
+
}
|
|
293
|
+
if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
|
|
294
|
+
params.set('sort', options.sort.trim());
|
|
295
|
+
}
|
|
296
|
+
appendNormalizedTagParams(params, options.tags);
|
|
180
297
|
const query = params.toString();
|
|
181
298
|
const path = `/creators/${encodeURIComponent(creatorUsername)}/assets${query ? `?${query}` : ''}`;
|
|
182
299
|
const response = await request({
|
|
@@ -188,6 +305,115 @@ export function buildAssetsApiClientMethods(input) {
|
|
|
188
305
|
}
|
|
189
306
|
return response.body;
|
|
190
307
|
},
|
|
308
|
+
async listAssetSpecs(options = {}) {
|
|
309
|
+
const params = new URLSearchParams();
|
|
310
|
+
if (typeof options.limit === 'number') {
|
|
311
|
+
params.set('limit', String(options.limit));
|
|
312
|
+
}
|
|
313
|
+
if (typeof options.offset === 'number') {
|
|
314
|
+
params.set('offset', String(options.offset));
|
|
315
|
+
}
|
|
316
|
+
if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
|
|
317
|
+
params.set('sort', options.sort.trim());
|
|
318
|
+
}
|
|
319
|
+
const query = params.toString();
|
|
320
|
+
const response = await request({
|
|
321
|
+
method: 'GET',
|
|
322
|
+
path: `/asset-specs${query ? `?${query}` : ''}`,
|
|
323
|
+
});
|
|
324
|
+
if (response.status !== 200) {
|
|
325
|
+
handleApiError(response, 'list_asset_specs');
|
|
326
|
+
}
|
|
327
|
+
return response.body;
|
|
328
|
+
},
|
|
329
|
+
async listAssetSpecsForCreator(creatorUsername, options = {}) {
|
|
330
|
+
const params = new URLSearchParams();
|
|
331
|
+
if (typeof options.limit === 'number') {
|
|
332
|
+
params.set('limit', String(options.limit));
|
|
333
|
+
}
|
|
334
|
+
if (typeof options.offset === 'number') {
|
|
335
|
+
params.set('offset', String(options.offset));
|
|
336
|
+
}
|
|
337
|
+
if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
|
|
338
|
+
params.set('sort', options.sort.trim());
|
|
339
|
+
}
|
|
340
|
+
const query = params.toString();
|
|
341
|
+
const response = await request({
|
|
342
|
+
method: 'GET',
|
|
343
|
+
path: `/creators/${encodeURIComponent(creatorUsername)}/asset-specs${query ? `?${query}` : ''}`,
|
|
344
|
+
});
|
|
345
|
+
if (response.status !== 200) {
|
|
346
|
+
handleApiError(response, 'list_asset_specs_for_creator');
|
|
347
|
+
}
|
|
348
|
+
return response.body;
|
|
349
|
+
},
|
|
350
|
+
async fetchAssetSpecBySlug(creatorUsername, name) {
|
|
351
|
+
const response = await request({
|
|
352
|
+
method: 'GET',
|
|
353
|
+
path: `/asset-specs/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(name)}`,
|
|
354
|
+
});
|
|
355
|
+
if (response.status !== 200) {
|
|
356
|
+
handleApiError(response, 'fetch_asset_spec_by_slug');
|
|
357
|
+
}
|
|
358
|
+
return response.body;
|
|
359
|
+
},
|
|
360
|
+
async listAssetSpecVersions(creatorUsername, name, options = {}) {
|
|
361
|
+
const params = new URLSearchParams();
|
|
362
|
+
if (typeof options.limit === 'number') {
|
|
363
|
+
params.set('limit', String(options.limit));
|
|
364
|
+
}
|
|
365
|
+
if (typeof options.offset === 'number') {
|
|
366
|
+
params.set('offset', String(options.offset));
|
|
367
|
+
}
|
|
368
|
+
const query = params.toString();
|
|
369
|
+
const response = await request({
|
|
370
|
+
method: 'GET',
|
|
371
|
+
path: `/asset-specs/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(name)}/versions${query ? `?${query}` : ''}`,
|
|
372
|
+
});
|
|
373
|
+
if (response.status !== 200) {
|
|
374
|
+
handleApiError(response, 'list_asset_spec_versions');
|
|
375
|
+
}
|
|
376
|
+
return response.body;
|
|
377
|
+
},
|
|
378
|
+
async listAssetsByAssetSpec(creatorUsername, name, options = {}) {
|
|
379
|
+
const params = new URLSearchParams();
|
|
380
|
+
if (typeof options.limit === 'number') {
|
|
381
|
+
params.set('limit', String(options.limit));
|
|
382
|
+
}
|
|
383
|
+
if (typeof options.offset === 'number') {
|
|
384
|
+
params.set('offset', String(options.offset));
|
|
385
|
+
}
|
|
386
|
+
if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
|
|
387
|
+
params.set('sort', options.sort.trim());
|
|
388
|
+
}
|
|
389
|
+
const query = params.toString();
|
|
390
|
+
const response = await request({
|
|
391
|
+
method: 'GET',
|
|
392
|
+
path: `/asset-specs/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(name)}/assets${query ? `?${query}` : ''}`,
|
|
393
|
+
});
|
|
394
|
+
if (response.status !== 200) {
|
|
395
|
+
handleApiError(response, 'list_assets_by_asset_spec');
|
|
396
|
+
}
|
|
397
|
+
return response.body;
|
|
398
|
+
},
|
|
399
|
+
async listAppsByAssetSpec(creatorUsername, name, options = {}) {
|
|
400
|
+
const params = new URLSearchParams();
|
|
401
|
+
if (typeof options.limit === 'number') {
|
|
402
|
+
params.set('limit', String(options.limit));
|
|
403
|
+
}
|
|
404
|
+
if (typeof options.offset === 'number') {
|
|
405
|
+
params.set('offset', String(options.offset));
|
|
406
|
+
}
|
|
407
|
+
const query = params.toString();
|
|
408
|
+
const response = await request({
|
|
409
|
+
method: 'GET',
|
|
410
|
+
path: `/asset-specs/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(name)}/apps${query ? `?${query}` : ''}`,
|
|
411
|
+
});
|
|
412
|
+
if (response.status !== 200) {
|
|
413
|
+
handleApiError(response, 'list_apps_by_asset_spec');
|
|
414
|
+
}
|
|
415
|
+
return response.body;
|
|
416
|
+
},
|
|
191
417
|
async fetchAssetBySlug(creatorUsername, assetName) {
|
|
192
418
|
const path = `/assets/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(assetName)}`;
|
|
193
419
|
const response = await request({
|
|
@@ -278,6 +504,37 @@ export function buildAssetsApiClientMethods(input) {
|
|
|
278
504
|
}
|
|
279
505
|
return response.body;
|
|
280
506
|
},
|
|
507
|
+
async updateAssetSpecVersion(creatorUsername, name, version, requestBody) {
|
|
508
|
+
const response = await request({
|
|
509
|
+
method: 'PATCH',
|
|
510
|
+
path: `/creators/${encodeURIComponent(creatorUsername)}/asset-specs/${encodeURIComponent(name)}/versions/${encodeURIComponent(version)}`,
|
|
511
|
+
body: requestBody,
|
|
512
|
+
});
|
|
513
|
+
if (response.status !== 200) {
|
|
514
|
+
handleApiError(response, 'update_asset_spec_version');
|
|
515
|
+
}
|
|
516
|
+
return response.body;
|
|
517
|
+
},
|
|
518
|
+
async deleteAssetSpecVersion(creatorUsername, name, version) {
|
|
519
|
+
const response = await request({
|
|
520
|
+
method: 'DELETE',
|
|
521
|
+
path: `/creators/${encodeURIComponent(creatorUsername)}/asset-specs/${encodeURIComponent(name)}/versions/${encodeURIComponent(version)}`,
|
|
522
|
+
});
|
|
523
|
+
if (response.status !== 200) {
|
|
524
|
+
handleApiError(response, 'delete_asset_spec_version');
|
|
525
|
+
}
|
|
526
|
+
return response.body;
|
|
527
|
+
},
|
|
528
|
+
async deleteAssetSpec(creatorUsername, name) {
|
|
529
|
+
const response = await request({
|
|
530
|
+
method: 'DELETE',
|
|
531
|
+
path: `/creators/${encodeURIComponent(creatorUsername)}/asset-specs/${encodeURIComponent(name)}`,
|
|
532
|
+
});
|
|
533
|
+
if (response.status !== 200) {
|
|
534
|
+
handleApiError(response, 'delete_asset_spec');
|
|
535
|
+
}
|
|
536
|
+
return response.body;
|
|
537
|
+
},
|
|
281
538
|
async downloadAssetFile(creatorUsername, assetName, revision, options = {}) {
|
|
282
539
|
const creator = typeof creatorUsername === 'string' ? creatorUsername.trim() : '';
|
|
283
540
|
const name = typeof assetName === 'string' ? assetName.trim() : '';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AssetPurchaseRequest, CreditPackCheckoutSessionRequest, CreditPackCheckoutSessionResponse, CreditPackCheckoutStatusResponse, IapPurchaseRequest, IapPurchaseResponse, IapReceiptListParams, IapReceiptResponse, IapReceiptsResponse, PurchaseResponse, ShopResponse, TransactionsResponse } from '@playdrop/types';
|
|
1
|
+
import type { AdInterstitialShowResponse, AdLoadResponse, AdShowRequest, AdRewardedShowResponse, AssetPurchaseRequest, BoostActivationRequest, BoostBalanceResponse, BoostHistoryResponse, BoostPurchaseRequest, BoostPurchaseResponse, BoostReportQuery, BoostReportResponse, BoostStatusResponse, CreditPackCheckoutSessionRequest, CreditPackCheckoutSessionResponse, CreditPackCheckoutStatusResponse, CreatorEarningsResponse, IapPurchaseRequest, IapPurchaseResponse, IapReceiptListParams, IapReceiptResponse, IapReceiptsResponse, PurchaseResponse, ShopResponse, TransactionsResponse } from '@playdrop/types';
|
|
2
2
|
type ApiResponseLike<T> = {
|
|
3
3
|
status: number;
|
|
4
4
|
body: T;
|
|
@@ -23,6 +23,7 @@ export declare function buildPaymentsApiClientMethods(input: {
|
|
|
23
23
|
fetchCreditPackCheckoutStatus(sessionId: string): Promise<CreditPackCheckoutStatusResponse>;
|
|
24
24
|
purchaseAsset(body: AssetPurchaseRequest): Promise<PurchaseResponse>;
|
|
25
25
|
purchaseIap(body: IapPurchaseRequest): Promise<IapPurchaseResponse>;
|
|
26
|
+
purchaseDevIap(appId: number, slot: number, body: IapPurchaseRequest): Promise<IapPurchaseResponse>;
|
|
26
27
|
fetchIapReceipts(params?: IapReceiptListParams): Promise<IapReceiptsResponse>;
|
|
27
28
|
cancelIapReceipt(receiptId: number): Promise<IapReceiptResponse>;
|
|
28
29
|
fetchAppIapReceipts(params?: Omit<IapReceiptListParams, "appId">): Promise<IapReceiptsResponse>;
|
|
@@ -33,6 +34,26 @@ export declare function buildPaymentsApiClientMethods(input: {
|
|
|
33
34
|
limit?: number;
|
|
34
35
|
offset?: number;
|
|
35
36
|
}): Promise<TransactionsResponse>;
|
|
37
|
+
fetchBoostBalance(): Promise<BoostBalanceResponse>;
|
|
38
|
+
purchaseBoostPack(body: BoostPurchaseRequest): Promise<BoostPurchaseResponse>;
|
|
39
|
+
activateAppBoost(appId: number, body?: BoostActivationRequest): Promise<BoostStatusResponse>;
|
|
40
|
+
fetchAppBoostStatus(appId: number): Promise<BoostStatusResponse>;
|
|
41
|
+
fetchAppBoostHistory(appId: number, options?: {
|
|
42
|
+
limit?: number;
|
|
43
|
+
}): Promise<BoostHistoryResponse>;
|
|
44
|
+
fetchAppBoostReport(appId: number, options?: BoostReportQuery): Promise<BoostReportResponse>;
|
|
45
|
+
fetchCreatorEarnings(options?: {
|
|
46
|
+
days?: number;
|
|
47
|
+
appId?: number;
|
|
48
|
+
}): Promise<CreatorEarningsResponse>;
|
|
49
|
+
loadInterstitialAd(sourceAppId: number): Promise<AdLoadResponse>;
|
|
50
|
+
loadDevInterstitialAd(appId: number, slot: number): Promise<AdLoadResponse>;
|
|
51
|
+
showInterstitialAd(body: AdShowRequest): Promise<AdInterstitialShowResponse>;
|
|
52
|
+
showDevInterstitialAd(appId: number, slot: number, body: AdShowRequest): Promise<AdInterstitialShowResponse>;
|
|
53
|
+
loadRewardedAd(sourceAppId: number): Promise<AdLoadResponse>;
|
|
54
|
+
loadDevRewardedAd(appId: number, slot: number): Promise<AdLoadResponse>;
|
|
55
|
+
showRewardedAd(body: AdShowRequest): Promise<AdRewardedShowResponse>;
|
|
56
|
+
showDevRewardedAd(appId: number, slot: number, body: AdShowRequest): Promise<AdRewardedShowResponse>;
|
|
36
57
|
};
|
|
37
58
|
export {};
|
|
38
59
|
//# sourceMappingURL=payments.d.ts.map
|