@playdrop/playdrop-cli 0.5.4 → 0.5.6

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 (99) hide show
  1. package/README.md +2 -1
  2. package/config/client-meta.json +4 -4
  3. package/dist/apps/upload.js +226 -80
  4. package/dist/assetSpecs.d.ts +1 -0
  5. package/dist/assetSpecs.js +22 -1
  6. package/dist/assets/model-artifacts.d.ts +2 -2
  7. package/dist/assets/model-artifacts.js +1 -1
  8. package/dist/captureRuntime.d.ts +1 -0
  9. package/dist/captureRuntime.js +3 -2
  10. package/dist/catalogue.d.ts +33 -8
  11. package/dist/catalogue.js +364 -46
  12. package/dist/commandContext.d.ts +5 -1
  13. package/dist/commandContext.js +90 -29
  14. package/dist/commands/browse.d.ts +3 -0
  15. package/dist/commands/browse.js +90 -17
  16. package/dist/commands/build.js +1 -1
  17. package/dist/commands/capture.d.ts +3 -0
  18. package/dist/commands/capture.js +121 -9
  19. package/dist/commands/captureListing.d.ts +2 -0
  20. package/dist/commands/captureListing.js +157 -61
  21. package/dist/commands/create.js +6 -28
  22. package/dist/commands/createRemixContent.js +4 -26
  23. package/dist/commands/creations.js +2 -3
  24. package/dist/commands/detail.js +24 -2
  25. package/dist/commands/dev.d.ts +8 -1
  26. package/dist/commands/dev.js +180 -2
  27. package/dist/commands/devRuntimeAssets.d.ts +34 -0
  28. package/dist/commands/devRuntimeAssets.js +308 -0
  29. package/dist/commands/devServer.d.ts +11 -0
  30. package/dist/commands/devServer.js +196 -13
  31. package/dist/commands/init.js +6 -24
  32. package/dist/commands/search.d.ts +4 -0
  33. package/dist/commands/search.js +68 -11
  34. package/dist/commands/upload-content.d.ts +3 -3
  35. package/dist/commands/upload-content.js +19 -38
  36. package/dist/commands/upload.js +67 -77
  37. package/dist/commands/validate.js +13 -20
  38. package/dist/commands/whoami.js +23 -26
  39. package/dist/devAuth.d.ts +16 -0
  40. package/dist/devAuth.js +60 -0
  41. package/dist/index.js +22 -4
  42. package/dist/taskSelection.js +4 -3
  43. package/dist/taskUtils.d.ts +2 -2
  44. package/dist/taskUtils.js +1 -1
  45. package/dist/uploadLog.d.ts +1 -1
  46. package/node_modules/@playdrop/ai-client/package.json +1 -1
  47. package/node_modules/@playdrop/api-client/dist/client.d.ts +44 -114
  48. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  49. package/node_modules/@playdrop/api-client/dist/client.js +22 -0
  50. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +2 -1
  51. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  52. package/node_modules/@playdrop/api-client/dist/domains/admin.js +11 -0
  53. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +11 -19
  54. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  55. package/node_modules/@playdrop/api-client/dist/domains/apps.js +116 -106
  56. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +2 -1
  57. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
  58. package/node_modules/@playdrop/api-client/dist/domains/assets.js +13 -0
  59. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +5 -5
  60. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
  61. package/node_modules/@playdrop/api-client/dist/domains/payments.js +8 -8
  62. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts.map +1 -1
  63. package/node_modules/@playdrop/api-client/dist/domains/search.js +24 -2
  64. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts +13 -1
  65. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts.map +1 -1
  66. package/node_modules/@playdrop/api-client/dist/domains/tags.js +52 -0
  67. package/node_modules/@playdrop/api-client/dist/index.d.ts +28 -29
  68. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  69. package/node_modules/@playdrop/api-client/dist/index.js +26 -8
  70. package/node_modules/@playdrop/api-client/package.json +1 -1
  71. package/node_modules/@playdrop/boxel-core/package.json +1 -1
  72. package/node_modules/@playdrop/boxel-three/package.json +1 -1
  73. package/node_modules/@playdrop/config/client-meta.json +4 -4
  74. package/node_modules/@playdrop/config/package.json +1 -1
  75. package/node_modules/@playdrop/types/dist/api.d.ts +130 -3
  76. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  77. package/node_modules/@playdrop/types/dist/api.js +23 -0
  78. package/node_modules/@playdrop/types/dist/app-capability-filters.d.ts +24 -0
  79. package/node_modules/@playdrop/types/dist/app-capability-filters.d.ts.map +1 -0
  80. package/node_modules/@playdrop/types/dist/app-capability-filters.js +72 -0
  81. package/node_modules/@playdrop/types/dist/asset-pack.d.ts +3 -2
  82. package/node_modules/@playdrop/types/dist/asset-pack.d.ts.map +1 -1
  83. package/node_modules/@playdrop/types/dist/asset.d.ts +2 -3
  84. package/node_modules/@playdrop/types/dist/asset.d.ts.map +1 -1
  85. package/node_modules/@playdrop/types/dist/asset.js +1 -1
  86. package/node_modules/@playdrop/types/dist/index.d.ts +2 -0
  87. package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
  88. package/node_modules/@playdrop/types/dist/index.js +2 -0
  89. package/node_modules/@playdrop/types/dist/owned-assets.d.ts +21 -0
  90. package/node_modules/@playdrop/types/dist/owned-assets.d.ts.map +1 -0
  91. package/node_modules/@playdrop/types/dist/owned-assets.js +35 -0
  92. package/node_modules/@playdrop/types/dist/player-meta.d.ts +28 -0
  93. package/node_modules/@playdrop/types/dist/player-meta.d.ts.map +1 -1
  94. package/node_modules/@playdrop/types/dist/version.d.ts +111 -1
  95. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  96. package/node_modules/@playdrop/types/dist/version.js +4 -0
  97. package/node_modules/@playdrop/types/package.json +1 -1
  98. package/node_modules/@playdrop/vox-three/package.json +1 -1
  99. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import type { AppAccessTokenResponse, AppDetailResponse, DevAppAccessTokenResponse, DevPlayerResetResponse, AppLogEntryRequest, AppLogEntryResponse, AppSourceBundleResponse, AppType, AppsListResponse, AppVersionDetailResponse, AppVersionVisibility, AppVersionsListResponse, CreateAppRequest, CreateAppResponse, CreateVersionResponse, ContentRemixRelationsResponse, DeleteAppResponse, DeleteVersionResponse, RemixScaffoldResponse, UpdateAppRequest, UpdateAppResponse, UpdateVersionResponse } from '@playdrop/types';
2
- import type { UploadAppVersionOptions } from '../client.js';
1
+ import type { AbortAppUploadResponse, AppAccessTokenResponse, AppBrowseRequest, AppDetailResponse, CreatorAppsBrowseRequest, AppRuntimeAssetsResponse, DevAppAccessTokenResponse, DevPlayerResetResponse, FinalizeAppUploadResponse, InitializeAppUploadRequest, InitializeAppUploadResponse, AppLogEntryRequest, AppLogEntryResponse, AppSourceBundleResponse, AppType, AppsListResponse, AppVersionDetailResponse, AppVersionVisibility, AppVersionsListResponse, CreateAppRequest, CreateAppResponse, ContentRemixRelationsResponse, DeleteAppResponse, DeleteVersionResponse, RemixScaffoldResponse, UploadAppSessionFileResponse, UploadAppSessionOwnedAssetResponse, UpdateAppRequest, UpdateAppResponse, UpdateVersionResponse } from '@playdrop/types';
2
+ import type { UploadAppSessionFileOptions, UploadAppSessionOwnedAssetOptions } from '../client.js';
3
3
  type ApiResponseLike<T> = {
4
4
  status: number;
5
5
  body: T;
@@ -29,34 +29,26 @@ export declare function buildAppsApiClientMethods(input: {
29
29
  normalizeSemverInput: (version: string) => string;
30
30
  parseContentDispositionFilename: (headerValue: string | null) => string | null;
31
31
  }): {
32
- fetchApps(options?: {
33
- limit?: number;
34
- offset?: number;
35
- tags?: string[];
36
- }): Promise<AppsListResponse>;
37
- fetchAppsByType(type: AppType, options?: {
38
- limit?: number;
39
- offset?: number;
40
- tags?: string[];
41
- }): Promise<AppsListResponse>;
42
- fetchAppsByCreator(creatorUsername: string, options?: {
43
- limit?: number;
44
- offset?: number;
45
- type?: AppType;
46
- tags?: string[];
47
- }): Promise<AppsListResponse>;
32
+ fetchApps(options?: AppBrowseRequest): Promise<AppsListResponse>;
33
+ fetchAppsByType(type: AppType, options?: AppBrowseRequest): Promise<AppsListResponse>;
34
+ fetchAppsByCreator(creatorUsername: string, options?: CreatorAppsBrowseRequest): Promise<AppsListResponse>;
48
35
  fetchAppBySlug(creatorUsername: string, appName: string): Promise<AppDetailResponse>;
49
36
  requestAppAccessToken(appId: number): Promise<AppAccessTokenResponse>;
50
37
  sendAppLog(appId: number, entry: AppLogEntryRequest): Promise<AppLogEntryResponse>;
51
38
  createApp(creatorUsername: string, createRequest: CreateAppRequest): Promise<CreateAppResponse>;
52
39
  updateApp(creatorUsername: string, name: string, updateRequest: UpdateAppRequest): Promise<UpdateAppResponse>;
53
- uploadAppVersion(creatorUsername: string, appName: string, options: UploadAppVersionOptions): Promise<CreateVersionResponse>;
40
+ initializeAppUpload(creatorUsername: string, appName: string, requestBody: InitializeAppUploadRequest): Promise<InitializeAppUploadResponse>;
41
+ uploadAppSessionFile(creatorUsername: string, appName: string, sessionId: string, fileKey: string, options: UploadAppSessionFileOptions): Promise<UploadAppSessionFileResponse>;
42
+ uploadAppSessionOwnedAsset(creatorUsername: string, appName: string, sessionId: string, uploadKey: string, options: UploadAppSessionOwnedAssetOptions): Promise<UploadAppSessionOwnedAssetResponse>;
43
+ finalizeAppUpload(creatorUsername: string, appName: string, sessionId: string): Promise<FinalizeAppUploadResponse>;
44
+ abortAppUpload(creatorUsername: string, appName: string, sessionId: string): Promise<AbortAppUploadResponse>;
54
45
  fetchAppRelated(creatorUsername: string, appName: string): Promise<ContentRemixRelationsResponse>;
55
46
  requestDevAppAccessToken(appId: number, slot: number): Promise<DevAppAccessTokenResponse>;
56
47
  resetDevPlayer(appId: number, slot: number): Promise<DevPlayerResetResponse>;
57
48
  resetAllDevPlayers(appId: number): Promise<DevPlayerResetResponse>;
58
49
  listAppVersions(creatorUsername: string, appName: string): Promise<AppVersionsListResponse>;
59
50
  getAppVersion(creatorUsername: string, appName: string, version: string): Promise<AppVersionDetailResponse>;
51
+ fetchAppRuntimeAssets(creatorUsername: string, appName: string, version: string): Promise<AppRuntimeAssetsResponse>;
60
52
  downloadAppSource(creatorUsername: string, appName: string, version: string): Promise<{
61
53
  blob: Blob;
62
54
  metadata: AppSourceBundleResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,17 @@ function appendNormalizedTagParams(params, tags) {
18
18
  }
19
19
  }
20
20
  }
21
+ function appendAppCapabilityFilterParams(params, filters) {
22
+ if (typeof filters.auth === 'string' && filters.auth.trim().length > 0) {
23
+ params.set('auth', filters.auth.trim());
24
+ }
25
+ if (typeof filters.controller === 'string' && filters.controller.trim().length > 0) {
26
+ params.set('controller', filters.controller.trim());
27
+ }
28
+ if (typeof filters.surface === 'string' && filters.surface.trim().length > 0) {
29
+ params.set('surface', filters.surface.trim());
30
+ }
31
+ }
21
32
  async function buildAuthorizedHeaders(getClientHeaders, resolveToken) {
22
33
  const headers = new Headers();
23
34
  for (const [key, value] of Object.entries(getClientHeaders())) {
@@ -29,83 +40,6 @@ async function buildAuthorizedHeaders(getClientHeaders, resolveToken) {
29
40
  }
30
41
  return headers;
31
42
  }
32
- function buildAppVersionUploadForm(options) {
33
- const form = new FormData();
34
- form.append('version', options.version);
35
- if (options.releaseNotes !== undefined)
36
- form.append('releaseNotes', options.releaseNotes);
37
- if (options.visibility !== undefined)
38
- form.append('visibility', options.visibility);
39
- if (options.surfaceTargets && options.surfaceTargets.length > 0) {
40
- form.append('surfaceTargets', JSON.stringify(options.surfaceTargets));
41
- }
42
- if (options.assetSpecSupport) {
43
- form.append('assetSpecSupport', JSON.stringify(options.assetSpecSupport));
44
- }
45
- appendAppVersionMetadataFields(form, options);
46
- appendAppVersionMediaFiles(form, options);
47
- return form;
48
- }
49
- // eslint-disable-next-line complexity
50
- function appendAppVersionMetadataFields(form, options) {
51
- if (options.entryPoint !== undefined)
52
- form.append('entryPoint', options.entryPoint);
53
- if (options.authMode !== undefined)
54
- form.append('authMode', options.authMode);
55
- if (options.controllerMode !== undefined)
56
- form.append('controllerMode', options.controllerMode);
57
- if (options.previewable !== undefined)
58
- form.append('previewable', String(options.previewable));
59
- if (options.setAsCurrent !== undefined)
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));
67
- if (options.remixRef !== undefined)
68
- form.append('remixRef', options.remixRef);
69
- if (options.externalUrl !== undefined)
70
- form.append('externalUrl', options.externalUrl);
71
- if (options.displayName !== undefined)
72
- form.append('displayName', options.displayName);
73
- if (options.description !== undefined)
74
- form.append('description', options.description);
75
- if (options.type !== undefined)
76
- form.append('type', options.type);
77
- if (options.emoji !== undefined)
78
- form.append('emoji', options.emoji);
79
- if (options.color !== undefined)
80
- form.append('color', options.color);
81
- if (options.achievements !== undefined)
82
- form.append('achievements', JSON.stringify(options.achievements));
83
- if (options.leaderboards !== undefined)
84
- form.append('leaderboards', JSON.stringify(options.leaderboards));
85
- options.achievementIconFiles?.forEach(({ key, file }) => {
86
- form.append(`achievementIcon:${key}`, file);
87
- });
88
- if (options.bundle)
89
- form.append('bundle', options.bundle);
90
- if (options.source)
91
- form.append('source', options.source);
92
- if (options.ecs)
93
- form.append('ecs', options.ecs);
94
- if (options.server)
95
- form.append('server', options.server);
96
- }
97
- function appendAppVersionMediaFiles(form, options) {
98
- if (options.icon)
99
- form.append('icon', options.icon);
100
- if (options.heroPortrait)
101
- form.append('heroPortrait', options.heroPortrait);
102
- if (options.heroLandscape)
103
- form.append('heroLandscape', options.heroLandscape);
104
- options.screenshotsPortrait?.forEach((screenshot) => form.append('screenshotsPortrait', screenshot));
105
- options.screenshotsLandscape?.forEach((screenshot) => form.append('screenshotsLandscape', screenshot));
106
- options.videosPortrait?.forEach((video) => form.append('videosPortrait', video));
107
- options.videosLandscape?.forEach((video) => form.append('videosLandscape', video));
108
- }
109
43
  async function fetchAppsByCreatorRequest(request, handleApiError, creatorUsername, options = {}) {
110
44
  const normalizedCreator = creatorUsername.trim();
111
45
  const params = new URLSearchParams();
@@ -118,6 +52,10 @@ async function fetchAppsByCreatorRequest(request, handleApiError, creatorUsernam
118
52
  if (typeof options.type === 'string' && options.type.trim().length > 0) {
119
53
  params.set('type', options.type.trim());
120
54
  }
55
+ if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
56
+ params.set('sort', options.sort.trim());
57
+ }
58
+ appendAppCapabilityFilterParams(params, options);
121
59
  appendNormalizedTagParams(params, options.tags);
122
60
  const query = params.toString();
123
61
  const response = await request({
@@ -129,23 +67,8 @@ async function fetchAppsByCreatorRequest(request, handleApiError, creatorUsernam
129
67
  }
130
68
  return response.body;
131
69
  }
132
- async function uploadAppVersionRequest(input, creatorUsername, appName, options) {
133
- const form = buildAppVersionUploadForm(options);
134
- const base = input.resolveBaseUrl();
135
- const path = `${input.buildCreatorAppMutationPath(creatorUsername, appName)}/versions`;
136
- const headers = await buildAuthorizedHeaders(input.getClientHeaders, input.resolveToken);
137
- const response = await input.fetchImpl(input.resolveUrl(base, path), {
138
- method: 'POST',
139
- headers,
140
- body: form,
141
- ...buildBrowserCredentialsInit(input.includeBrowserCredentials),
142
- });
143
- const parsed = await input.parseResponseBody(response);
144
- const apiResponse = { status: response.status, body: parsed, headers: response.headers };
145
- if (response.status !== 201) {
146
- input.handleApiError(apiResponse, 'upload_app_version');
147
- }
148
- return parsed;
70
+ async function buildAppUploadAuthorizedHeaders(input) {
71
+ return await buildAuthorizedHeaders(input.getClientHeaders, input.resolveToken);
149
72
  }
150
73
  // eslint-disable-next-line max-lines-per-function
151
74
  export function buildAppsApiClientMethods(input) {
@@ -159,6 +82,10 @@ export function buildAppsApiClientMethods(input) {
159
82
  if (typeof options.offset === 'number' && Number.isFinite(options.offset)) {
160
83
  params.set('offset', String(options.offset));
161
84
  }
85
+ if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
86
+ params.set('sort', options.sort.trim());
87
+ }
88
+ appendAppCapabilityFilterParams(params, options);
162
89
  appendNormalizedTagParams(params, options.tags);
163
90
  const query = params.toString();
164
91
  const response = await request({
@@ -178,6 +105,10 @@ export function buildAppsApiClientMethods(input) {
178
105
  if (typeof options.offset === 'number' && Number.isFinite(options.offset)) {
179
106
  params.set('offset', String(options.offset));
180
107
  }
108
+ if (typeof options.sort === 'string' && options.sort.trim().length > 0) {
109
+ params.set('sort', options.sort.trim());
110
+ }
111
+ appendAppCapabilityFilterParams(params, options);
181
112
  appendNormalizedTagParams(params, options.tags);
182
113
  const query = params.toString();
183
114
  const response = await request({
@@ -245,18 +176,85 @@ export function buildAppsApiClientMethods(input) {
245
176
  }
246
177
  return response.body;
247
178
  },
248
- async uploadAppVersion(creatorUsername, appName, options) {
249
- return uploadAppVersionRequest({
250
- fetchImpl,
251
- includeBrowserCredentials,
252
- resolveBaseUrl,
253
- resolveUrl,
254
- parseResponseBody,
255
- resolveToken,
256
- getClientHeaders,
257
- buildCreatorAppMutationPath,
258
- handleApiError,
259
- }, creatorUsername, appName, options);
179
+ async initializeAppUpload(creatorUsername, appName, requestBody) {
180
+ const response = await request({
181
+ method: 'POST',
182
+ path: `${buildCreatorAppMutationPath(creatorUsername, appName)}/upload-sessions`,
183
+ body: requestBody,
184
+ });
185
+ if (response.status !== 200) {
186
+ handleApiError(response, 'initialize_app_upload');
187
+ }
188
+ return response.body;
189
+ },
190
+ async uploadAppSessionFile(creatorUsername, appName, sessionId, fileKey, options) {
191
+ const form = new FormData();
192
+ const filename = typeof options.filename === 'string' && options.filename.trim().length > 0
193
+ ? options.filename.trim()
194
+ : 'upload.bin';
195
+ form.append('file', options.file, filename);
196
+ const base = resolveBaseUrl();
197
+ const headers = await buildAppUploadAuthorizedHeaders({ getClientHeaders, resolveToken });
198
+ const path = `${buildCreatorAppMutationPath(creatorUsername, appName)}/upload-sessions/${encodeURIComponent(sessionId)}/files/${encodeURIComponent(fileKey)}`;
199
+ const response = await fetchImpl(resolveUrl(base, path), {
200
+ method: 'POST',
201
+ headers,
202
+ body: form,
203
+ ...buildBrowserCredentialsInit(includeBrowserCredentials),
204
+ });
205
+ const parsed = await parseResponseBody(response);
206
+ const apiResponse = { status: response.status, body: parsed, headers: response.headers };
207
+ if (response.status !== 200) {
208
+ handleApiError(apiResponse, 'upload_app_session_file');
209
+ }
210
+ return parsed;
211
+ },
212
+ async uploadAppSessionOwnedAsset(creatorUsername, appName, sessionId, uploadKey, options) {
213
+ const form = new FormData();
214
+ for (const entry of options.files) {
215
+ const fieldName = typeof entry.fieldName === 'string' && entry.fieldName.trim().length > 0
216
+ ? entry.fieldName.trim()
217
+ : 'file';
218
+ const filename = typeof entry.filename === 'string' && entry.filename.trim().length > 0
219
+ ? entry.filename.trim()
220
+ : 'upload.bin';
221
+ form.append(fieldName, entry.file, filename);
222
+ }
223
+ const base = resolveBaseUrl();
224
+ const headers = await buildAppUploadAuthorizedHeaders({ getClientHeaders, resolveToken });
225
+ const path = `${buildCreatorAppMutationPath(creatorUsername, appName)}/upload-sessions/${encodeURIComponent(sessionId)}/owned-assets/${encodeURIComponent(uploadKey)}`;
226
+ const response = await fetchImpl(resolveUrl(base, path), {
227
+ method: 'POST',
228
+ headers,
229
+ body: form,
230
+ ...buildBrowserCredentialsInit(includeBrowserCredentials),
231
+ });
232
+ const parsed = await parseResponseBody(response);
233
+ const apiResponse = { status: response.status, body: parsed, headers: response.headers };
234
+ if (response.status !== 200) {
235
+ handleApiError(apiResponse, 'upload_app_session_owned_asset');
236
+ }
237
+ return parsed;
238
+ },
239
+ async finalizeAppUpload(creatorUsername, appName, sessionId) {
240
+ const response = await request({
241
+ method: 'POST',
242
+ path: `${buildCreatorAppMutationPath(creatorUsername, appName)}/upload-sessions/${encodeURIComponent(sessionId)}/finalize`,
243
+ });
244
+ if (response.status !== 200) {
245
+ handleApiError(response, 'finalize_app_upload');
246
+ }
247
+ return response.body;
248
+ },
249
+ async abortAppUpload(creatorUsername, appName, sessionId) {
250
+ const response = await request({
251
+ method: 'POST',
252
+ path: `${buildCreatorAppMutationPath(creatorUsername, appName)}/upload-sessions/${encodeURIComponent(sessionId)}/abort`,
253
+ });
254
+ if (response.status !== 200) {
255
+ handleApiError(response, 'abort_app_upload');
256
+ }
257
+ return response.body;
260
258
  },
261
259
  async fetchAppRelated(creatorUsername, appName) {
262
260
  const response = await request({
@@ -321,6 +319,18 @@ export function buildAppsApiClientMethods(input) {
321
319
  }
322
320
  return response.body;
323
321
  },
322
+ async fetchAppRuntimeAssets(creatorUsername, appName, version) {
323
+ const normalizedVersion = normalizeSemverInput(version);
324
+ const path = `/apps/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(appName)}/versions/${encodeURIComponent(normalizedVersion)}/runtime-assets`;
325
+ const response = await request({
326
+ method: 'GET',
327
+ path,
328
+ });
329
+ if (response.status !== 200) {
330
+ handleApiError(response, 'fetch_app_runtime_assets');
331
+ }
332
+ return response.body;
333
+ },
324
334
  async downloadAppSource(creatorUsername, appName, version) {
325
335
  const creator = normalizeCreatorItemSlug(creatorUsername, 'creator');
326
336
  const name = normalizeCreatorItemSlug(appName, 'name');
@@ -1,4 +1,4 @@
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';
1
+ import type { AssetBrowseKind, AssetCategoriesResponse, AssetCategory, AssetDetailResponse, AssetListResponse, AssetSpecAssetsListResponse, AssetSpecAppsListResponse, AssetSpecDetailResponse, AssetSpecListResponse, AssetSpecVersionResponseEnvelope, AssetSpecVersionsListResponse, AssetSourceBundleResponse, AssetVersionsListResponse, ContentRemixRelationsResponse, CreateAssetSpecVersionResponse, CreateAssetVersionResponse, DeleteAssetSpecResponse, DeleteAssetSpecVersionResponse, DeleteAssetResponse, DeleteAssetVersionResponse, UpdateAssetRequest, UpdateAssetSpecVersionResponse, UpdateAssetResponse, UpdateAssetVersionRequest, UpdateAssetVersionResponse } from '@playdrop/types';
2
2
  import type { UploadAssetSpecVersionOptions, UploadAssetVersionOptions } from '../client.js';
3
3
  type ApiResponseLike<T> = {
4
4
  status: number;
@@ -72,6 +72,7 @@ export declare function buildAssetsApiClientMethods(input: {
72
72
  limit?: number;
73
73
  offset?: number;
74
74
  }): Promise<AssetSpecVersionsListResponse>;
75
+ fetchAssetSpecVersion(creatorUsername: string, name: string, version: string): Promise<AssetSpecVersionResponseEnvelope>;
75
76
  listAssetsByAssetSpec(creatorUsername: string, name: string, options?: {
76
77
  limit?: number;
77
78
  offset?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/domains/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/domains/assets.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,9 @@ function appendAssetVersionOptionalFields(form, options) {
85
85
  if (typeof options.sourceAppVersionId === 'number') {
86
86
  form.set('sourceAppVersionId', String(options.sourceAppVersionId));
87
87
  }
88
+ if (typeof options.runtimeKey === 'string' && options.runtimeKey.trim().length > 0) {
89
+ form.set('runtimeKey', options.runtimeKey.trim());
90
+ }
88
91
  if (typeof options.sourceGenerationId === 'string' && options.sourceGenerationId.trim().length > 0) {
89
92
  form.set('sourceGenerationId', options.sourceGenerationId.trim());
90
93
  }
@@ -375,6 +378,16 @@ export function buildAssetsApiClientMethods(input) {
375
378
  }
376
379
  return response.body;
377
380
  },
381
+ async fetchAssetSpecVersion(creatorUsername, name, version) {
382
+ const response = await request({
383
+ method: 'GET',
384
+ path: `/asset-specs/${encodeURIComponent(creatorUsername)}/${encodeURIComponent(name)}/versions/${encodeURIComponent(version)}`,
385
+ });
386
+ if (response.status !== 200) {
387
+ handleApiError(response, 'fetch_asset_spec_version');
388
+ }
389
+ return response.body;
390
+ },
378
391
  async listAssetsByAssetSpec(creatorUsername, name, options = {}) {
379
392
  const params = new URLSearchParams();
380
393
  if (typeof options.limit === 'number') {
@@ -1,4 +1,4 @@
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';
1
+ import type { AdLoadRequest, 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;
@@ -46,12 +46,12 @@ export declare function buildPaymentsApiClientMethods(input: {
46
46
  days?: number;
47
47
  appId?: number;
48
48
  }): Promise<CreatorEarningsResponse>;
49
- loadInterstitialAd(sourceAppId: number): Promise<AdLoadResponse>;
50
- loadDevInterstitialAd(appId: number, slot: number): Promise<AdLoadResponse>;
49
+ loadInterstitialAd(body: AdLoadRequest): Promise<AdLoadResponse>;
50
+ loadDevInterstitialAd(appId: number, slot: number, body: Pick<AdLoadRequest, "viewerSurface">): Promise<AdLoadResponse>;
51
51
  showInterstitialAd(body: AdShowRequest): Promise<AdInterstitialShowResponse>;
52
52
  showDevInterstitialAd(appId: number, slot: number, body: AdShowRequest): Promise<AdInterstitialShowResponse>;
53
- loadRewardedAd(sourceAppId: number): Promise<AdLoadResponse>;
54
- loadDevRewardedAd(appId: number, slot: number): Promise<AdLoadResponse>;
53
+ loadRewardedAd(body: AdLoadRequest): Promise<AdLoadResponse>;
54
+ loadDevRewardedAd(appId: number, slot: number, body: Pick<AdLoadRequest, "viewerSurface">): Promise<AdLoadResponse>;
55
55
  showRewardedAd(body: AdShowRequest): Promise<AdRewardedShowResponse>;
56
56
  showDevRewardedAd(appId: number, slot: number, body: AdShowRequest): Promise<AdRewardedShowResponse>;
57
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/domains/payments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/domains/payments.ts"],"names":[],"mappings":"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"}
@@ -295,22 +295,22 @@ export function buildPaymentsApiClientMethods(input) {
295
295
  }
296
296
  return response.body;
297
297
  },
298
- async loadInterstitialAd(sourceAppId) {
298
+ async loadInterstitialAd(body) {
299
299
  const response = await request({
300
300
  method: 'POST',
301
301
  path: '/ads/interstitial/load',
302
- body: { sourceAppId },
302
+ body,
303
303
  });
304
304
  if (response.status !== 200) {
305
305
  handleApiError(response, 'load_interstitial_ad');
306
306
  }
307
307
  return response.body;
308
308
  },
309
- async loadDevInterstitialAd(appId, slot) {
309
+ async loadDevInterstitialAd(appId, slot, body) {
310
310
  const response = await request({
311
311
  method: 'POST',
312
312
  path: `/apps/${encodeURIComponent(String(appId))}/dev/players/${encodeURIComponent(String(slot))}/ads/interstitial/load`,
313
- body: {},
313
+ body,
314
314
  });
315
315
  if (response.status !== 200) {
316
316
  handleApiError(response, 'load_dev_interstitial_ad');
@@ -339,22 +339,22 @@ export function buildPaymentsApiClientMethods(input) {
339
339
  }
340
340
  return response.body;
341
341
  },
342
- async loadRewardedAd(sourceAppId) {
342
+ async loadRewardedAd(body) {
343
343
  const response = await request({
344
344
  method: 'POST',
345
345
  path: '/ads/rewarded/load',
346
- body: { sourceAppId },
346
+ body,
347
347
  });
348
348
  if (response.status !== 200) {
349
349
  handleApiError(response, 'load_rewarded_ad');
350
350
  }
351
351
  return response.body;
352
352
  },
353
- async loadDevRewardedAd(appId, slot) {
353
+ async loadDevRewardedAd(appId, slot, body) {
354
354
  const response = await request({
355
355
  method: 'POST',
356
356
  path: `/apps/${encodeURIComponent(String(appId))}/dev/players/${encodeURIComponent(String(slot))}/ads/rewarded/load`,
357
- body: {},
357
+ body,
358
358
  });
359
359
  if (response.status !== 200) {
360
360
  handleApiError(response, 'load_dev_rewarded_ad');
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/domains/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,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;AAwC1F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,YAAY,CAAC;IAC7B,wBAAwB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAC3D,wBAAwB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAC3D,6BAA6B,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,eAAe,CAAC;IAC/E,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7E;0BAW+B,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;iCAwDhC,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;EAkB3F"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/domains/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,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;AAyD1F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,YAAY,CAAC;IAC7B,wBAAwB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAC3D,wBAAwB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAC3D,6BAA6B,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,eAAe,CAAC;IAC/E,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7E;0BAW+B,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;iCA8DhC,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;EAkB3F"}
@@ -27,16 +27,34 @@ function appendNormalizedTagParams(params, tags) {
27
27
  }
28
28
  }
29
29
  }
30
+ function hasSearchScopeFilters(searchRequest) {
31
+ return typeof searchRequest.creatorUsername === 'string' && searchRequest.creatorUsername.trim().length > 0
32
+ || Array.isArray(searchRequest.tags) && searchRequest.tags.length > 0
33
+ || searchRequest.appType !== undefined
34
+ || searchRequest.auth !== undefined
35
+ || searchRequest.controller !== undefined
36
+ || searchRequest.surface !== undefined
37
+ || searchRequest.assetType !== undefined
38
+ || searchRequest.assetCategory !== undefined
39
+ || typeof searchRequest.assetSubcategory === 'string'
40
+ || typeof searchRequest.assetSpec === 'string'
41
+ || typeof searchRequest.assetSpecOwner === 'string'
42
+ || typeof searchRequest.assetSpecName === 'string'
43
+ || searchRequest.packContainsCategory !== undefined
44
+ || typeof searchRequest.packContainsSubcategory === 'string';
45
+ }
30
46
  export function buildSearchApiClientMethods(input) {
31
47
  const { request, handleApiError, normalizeSearchModeInput, normalizeSearchKindInput, normalizeSearchAssetTypeInput, normalizePositiveIntegerInput, } = input;
32
48
  return {
33
49
  async search(searchRequest) {
34
50
  const query = typeof searchRequest.q === 'string' ? searchRequest.q.trim() : '';
35
- if (!query) {
51
+ if (!query && !hasSearchScopeFilters(searchRequest)) {
36
52
  throw new Error('invalid_search_query');
37
53
  }
38
54
  const params = new URLSearchParams();
39
- params.set('q', query);
55
+ if (query) {
56
+ params.set('q', query);
57
+ }
40
58
  if (searchRequest.mode) {
41
59
  params.set('mode', normalizeSearchModeInput(searchRequest.mode));
42
60
  }
@@ -46,11 +64,15 @@ export function buildSearchApiClientMethods(input) {
46
64
  if (searchRequest.sort) {
47
65
  params.set('sort', searchRequest.sort);
48
66
  }
67
+ setNormalizedStringParam(params, 'creator', searchRequest.creatorUsername);
49
68
  setNormalizedPositiveIntegerParam(params, 'page', searchRequest.page, normalizePositiveIntegerInput, 'invalid_search_page');
50
69
  setNormalizedPositiveIntegerParam(params, 'pageSize', searchRequest.pageSize, normalizePositiveIntegerInput, 'invalid_search_page_size');
51
70
  if (searchRequest.appType) {
52
71
  params.set('appType', searchRequest.appType);
53
72
  }
73
+ setNormalizedStringParam(params, 'auth', searchRequest.auth);
74
+ setNormalizedStringParam(params, 'controller', searchRequest.controller);
75
+ setNormalizedStringParam(params, 'surface', searchRequest.surface);
54
76
  if (searchRequest.assetType) {
55
77
  params.set('assetType', normalizeSearchAssetTypeInput(searchRequest.assetType));
56
78
  }
@@ -1,4 +1,4 @@
1
- import type { AdminTagGroupResponse, AdminTagGroupsResponse, AdminTagResponse, CreateTagGroupRequest, CreateTagRequest, SavedItemKind, TagDetailResponse, TagListResponse, UpdateTagGroupRequest, UpdateTagRequest } from '@playdrop/types';
1
+ import type { AdminTagGroupResponse, AdminTagGroupsResponse, AdminTagResponse, CreateTagGroupRequest, CreateTagRequest, SavedItemKind, TagDirectoryResponse, TagDetailResponse, TagGroupDetailResponse, TagListResponse, TagGroupSort, UpdateTagGroupRequest, UpdateTagRequest } from '@playdrop/types';
2
2
  type ApiResponseLike<T> = {
3
3
  status: number;
4
4
  body: T;
@@ -17,6 +17,11 @@ export declare function buildTagsApiClientMethods(input: {
17
17
  handleApiError: ErrorHandler;
18
18
  normalizePositiveIntegerInput: (value: number, errorCode: string) => number;
19
19
  }): {
20
+ fetchTagDirectory(options?: {
21
+ limit?: number;
22
+ offset?: number;
23
+ tagLimit?: number;
24
+ }): Promise<TagDirectoryResponse>;
20
25
  fetchTags(options?: {
21
26
  targetKind?: SavedItemKind;
22
27
  groupSlug?: string;
@@ -24,6 +29,13 @@ export declare function buildTagsApiClientMethods(input: {
24
29
  offset?: number;
25
30
  }): Promise<TagListResponse>;
26
31
  fetchTag(groupSlug: string, tagSlug: string): Promise<TagDetailResponse>;
32
+ fetchTagGroup(groupSlug: string, options?: {
33
+ targetKind?: SavedItemKind;
34
+ appType?: string;
35
+ sort?: TagGroupSort;
36
+ limit?: number;
37
+ offset?: number;
38
+ }): Promise<TagGroupDetailResponse>;
27
39
  fetchAdminTagGroups(): Promise<AdminTagGroupsResponse>;
28
40
  createAdminTagGroup(requestBody: CreateTagGroupRequest): Promise<AdminTagGroupResponse>;
29
41
  updateAdminTagGroup(groupSlug: string, requestBody: UpdateTagGroupRequest): Promise<AdminTagGroupResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/domains/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,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,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,YAAY,CAAC;IAC7B,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7E;wBAQ4B;QACvB,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAQ,OAAO,CAAC,eAAe,CAAC;wBAyBP,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;2BAgBjD,OAAO,CAAC,sBAAsB,CAAC;qCAWrB,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;mCAYxD,MAAM,eAAe,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;8BAgBhF,MAAM,eAAe,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;8BAiBpF,MAAM,WACR,MAAM,eACF,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;EAiB/B"}
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/domains/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,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,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,YAAY,CAAC;IAC7B,6BAA6B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7E;gCAQoC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAQ,OAAO,CAAC,oBAAoB,CAAC;wBAsBb;QACvB,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAQ,OAAO,CAAC,eAAe,CAAC;wBAyBP,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;6BAiBjE,MAAM,YACR;QACP,UAAU,CAAC,EAAE,aAAa,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,sBAAsB,CAAC;2BAgCL,OAAO,CAAC,sBAAsB,CAAC;qCAWrB,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;mCAYxD,MAAM,eAAe,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;8BAgBhF,MAAM,eAAe,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;8BAiBpF,MAAM,WACR,MAAM,eACF,gBAAgB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;EAiB/B"}