@crowdedkingdoms/crowdyjs 13.9.0 → 14.0.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/MIGRATION.md +44 -0
- package/README.md +68 -33
- package/dist/binary-relay.d.ts +1 -1
- package/dist/binary-relay.js +1 -1
- package/dist/crowdy-client.d.ts +29 -34
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +42 -40
- package/dist/domains/appAccess.d.ts +3 -3
- package/dist/domains/appAccess.d.ts.map +1 -1
- package/dist/domains/appAccess.js +16 -16
- package/dist/domains/apps.d.ts +4 -8
- package/dist/domains/apps.d.ts.map +1 -1
- package/dist/domains/apps.js +19 -23
- package/dist/domains/auth.d.ts +1 -1
- package/dist/domains/billing.d.ts +3 -3
- package/dist/domains/billing.d.ts.map +1 -1
- package/dist/domains/billing.js +9 -9
- package/dist/domains/controlPlane.d.ts +2 -2
- package/dist/domains/controlPlane.d.ts.map +1 -1
- package/dist/domains/controlPlane.js +4 -4
- package/dist/domains/discovery.d.ts +50 -0
- package/dist/domains/discovery.d.ts.map +1 -0
- package/dist/domains/discovery.js +35 -0
- package/dist/domains/marketplace.d.ts +4 -5
- package/dist/domains/marketplace.d.ts.map +1 -1
- package/dist/domains/marketplace.js +25 -26
- package/dist/domains/organizations.d.ts +3 -3
- package/dist/domains/organizations.d.ts.map +1 -1
- package/dist/domains/organizations.js +22 -22
- package/dist/domains/payments.d.ts +3 -3
- package/dist/domains/payments.d.ts.map +1 -1
- package/dist/domains/payments.js +11 -11
- package/dist/domains/platform.d.ts +5 -6
- package/dist/domains/platform.d.ts.map +1 -1
- package/dist/domains/platform.js +6 -7
- package/dist/domains/portal.d.ts +19 -2
- package/dist/domains/portal.d.ts.map +1 -1
- package/dist/domains/portal.js +12 -12
- package/dist/domains/quotas.d.ts +3 -3
- package/dist/domains/quotas.d.ts.map +1 -1
- package/dist/domains/quotas.js +8 -8
- package/dist/domains/serverStatus.d.ts +1 -2
- package/dist/domains/serverStatus.d.ts.map +1 -1
- package/dist/domains/serverStatus.js +1 -2
- package/dist/domains/sharedEnvironment.d.ts +3 -3
- package/dist/domains/sharedEnvironment.d.ts.map +1 -1
- package/dist/domains/sharedEnvironment.js +15 -15
- package/dist/domains/udp.d.ts +1 -1
- package/dist/domains/udp.js +1 -1
- package/dist/domains/usage.d.ts +2 -2
- package/dist/domains/usage.d.ts.map +1 -1
- package/dist/domains/usage.js +5 -5
- package/dist/domains/users.d.ts +1 -1
- package/dist/domains/users.js +1 -1
- package/dist/generated/graphql.d.ts +65 -16
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +1 -0
- package/dist/index.d.ts +10 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -16
- package/dist/kit/decks.d.ts +1 -1
- package/dist/kit/npcs.d.ts +2 -2
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/kit/worldsim.d.ts +1 -1
- package/dist/rediscover.d.ts +7 -3
- package/dist/rediscover.d.ts.map +1 -1
- package/dist/rediscover.js +7 -3
- package/dist/session.d.ts +21 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +23 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { AppAccessTiersDocument, MyAppAccessDocument, AppUserAccessByAppDocument
|
|
|
3
3
|
* App access tiers + per-user access grants — exposed as `client.appAccess`
|
|
4
4
|
* (and grouped under `client.admin`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Part of the management surface. Tiers define the runtime-permission bundles
|
|
7
7
|
* (`access`, `teleport`, `update_voxel_data`, `use_voice_chat`, ...) a player
|
|
8
8
|
* gets; grants attach a user to a tier. New apps auto-provision an open default
|
|
9
9
|
* tier, so most players need no explicit grant.
|
|
@@ -16,8 +16,8 @@ import { AppAccessTiersDocument, MyAppAccessDocument, AppUserAccessByAppDocument
|
|
|
16
16
|
* per the permission notes above.
|
|
17
17
|
*/
|
|
18
18
|
export class AppAccessAPI {
|
|
19
|
-
constructor(
|
|
20
|
-
this.
|
|
19
|
+
constructor(api) {
|
|
20
|
+
this.api = api;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* List the access tiers defined for an app. **Public.**
|
|
@@ -26,7 +26,7 @@ export class AppAccessAPI {
|
|
|
26
26
|
* @returns The app's tiers, ordered.
|
|
27
27
|
*/
|
|
28
28
|
async tiers(appId) {
|
|
29
|
-
const data = await this.
|
|
29
|
+
const data = await this.api.request(AppAccessTiersDocument, {
|
|
30
30
|
appId,
|
|
31
31
|
});
|
|
32
32
|
return data.appAccessTiers;
|
|
@@ -39,7 +39,7 @@ export class AppAccessAPI {
|
|
|
39
39
|
* @returns The caller's {@link AppUserAccess}, or `null`.
|
|
40
40
|
*/
|
|
41
41
|
async myAccess(appId) {
|
|
42
|
-
const data = await this.
|
|
42
|
+
const data = await this.api.request(MyAppAccessDocument, { appId });
|
|
43
43
|
return data.myAppAccess;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -52,7 +52,7 @@ export class AppAccessAPI {
|
|
|
52
52
|
* @returns The matching access records.
|
|
53
53
|
*/
|
|
54
54
|
async usersByApp(appId, opts = {}) {
|
|
55
|
-
const data = await this.
|
|
55
|
+
const data = await this.api.request(AppUserAccessByAppDocument, {
|
|
56
56
|
appId,
|
|
57
57
|
status: opts.status,
|
|
58
58
|
limit: opts.limit,
|
|
@@ -71,7 +71,7 @@ export class AppAccessAPI {
|
|
|
71
71
|
* @returns An {@link AppUserAccessConnection}.
|
|
72
72
|
*/
|
|
73
73
|
async usersByAppConnection(args) {
|
|
74
|
-
const data = await this.
|
|
74
|
+
const data = await this.api.request(AppUserAccessConnectionDocument, args);
|
|
75
75
|
return data.appUserAccessConnection;
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
@@ -82,7 +82,7 @@ export class AppAccessAPI {
|
|
|
82
82
|
* @returns The runtime permission keys.
|
|
83
83
|
*/
|
|
84
84
|
async runtimePermissions() {
|
|
85
|
-
const data = await this.
|
|
85
|
+
const data = await this.api.request(RuntimePermissionsDocument);
|
|
86
86
|
return data.runtimePermissions;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
@@ -94,7 +94,7 @@ export class AppAccessAPI {
|
|
|
94
94
|
* @returns The candidate users (id + email/gamertag where known).
|
|
95
95
|
*/
|
|
96
96
|
async grantMemberCandidates(appId) {
|
|
97
|
-
const data = await this.
|
|
97
|
+
const data = await this.api.request(AppGrantMemberCandidatesDocument, { appId });
|
|
98
98
|
return data.appGrantMemberCandidates;
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
@@ -106,7 +106,7 @@ export class AppAccessAPI {
|
|
|
106
106
|
* @returns The caller's new {@link AppUserAccess} record.
|
|
107
107
|
*/
|
|
108
108
|
async claimFree(appId) {
|
|
109
|
-
const data = await this.
|
|
109
|
+
const data = await this.api.request(ClaimFreeAppAccessDocument, {
|
|
110
110
|
appId,
|
|
111
111
|
});
|
|
112
112
|
return data.claimFreeAppAccess;
|
|
@@ -119,7 +119,7 @@ export class AppAccessAPI {
|
|
|
119
119
|
* @returns The caller's new {@link AppUserAccess} record.
|
|
120
120
|
*/
|
|
121
121
|
async grantMine(appId) {
|
|
122
|
-
const data = await this.
|
|
122
|
+
const data = await this.api.request(GrantMyAppAccessDocument, {
|
|
123
123
|
appId,
|
|
124
124
|
});
|
|
125
125
|
return data.grantMyAppAccess;
|
|
@@ -133,7 +133,7 @@ export class AppAccessAPI {
|
|
|
133
133
|
* @returns The created tier.
|
|
134
134
|
*/
|
|
135
135
|
async createTier(input) {
|
|
136
|
-
const data = await this.
|
|
136
|
+
const data = await this.api.request(CreateAccessTierDocument, {
|
|
137
137
|
input,
|
|
138
138
|
});
|
|
139
139
|
return data.createAccessTier;
|
|
@@ -147,7 +147,7 @@ export class AppAccessAPI {
|
|
|
147
147
|
* @returns The updated tier.
|
|
148
148
|
*/
|
|
149
149
|
async updateTier(tierId, input) {
|
|
150
|
-
const data = await this.
|
|
150
|
+
const data = await this.api.request(UpdateAccessTierDocument, {
|
|
151
151
|
tierId,
|
|
152
152
|
input,
|
|
153
153
|
});
|
|
@@ -161,7 +161,7 @@ export class AppAccessAPI {
|
|
|
161
161
|
* @returns The archived tier's new status.
|
|
162
162
|
*/
|
|
163
163
|
async archiveTier(tierId) {
|
|
164
|
-
const data = await this.
|
|
164
|
+
const data = await this.api.request(ArchiveAccessTierDocument, {
|
|
165
165
|
tierId,
|
|
166
166
|
});
|
|
167
167
|
return data.archiveAccessTier;
|
|
@@ -175,7 +175,7 @@ export class AppAccessAPI {
|
|
|
175
175
|
* @returns The created/updated access record.
|
|
176
176
|
*/
|
|
177
177
|
async grant(input) {
|
|
178
|
-
const data = await this.
|
|
178
|
+
const data = await this.api.request(GrantAppAccessDocument, {
|
|
179
179
|
input,
|
|
180
180
|
});
|
|
181
181
|
return data.grantAppAccess;
|
|
@@ -189,7 +189,7 @@ export class AppAccessAPI {
|
|
|
189
189
|
* @returns `true` on success.
|
|
190
190
|
*/
|
|
191
191
|
async revoke(appId, userId) {
|
|
192
|
-
const data = await this.
|
|
192
|
+
const data = await this.api.request(RevokeAppAccessDocument, {
|
|
193
193
|
appId,
|
|
194
194
|
userId,
|
|
195
195
|
});
|
package/dist/domains/apps.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export interface AppRoute {
|
|
|
30
30
|
/**
|
|
31
31
|
* App discovery & game-api routing — exposed as `client.apps`.
|
|
32
32
|
*
|
|
33
|
-
*
|
|
33
|
+
* Part of the management surface, where
|
|
34
34
|
* the apps catalog lives. After the database split an app may be served by its
|
|
35
35
|
* own per-tenant cks-game-api; the catalog returns each app's `gameApiUrl` so
|
|
36
36
|
* you can build a per-app `CrowdyClient` against the correct endpoint (see
|
|
@@ -45,17 +45,13 @@ export interface AppRoute {
|
|
|
45
45
|
*
|
|
46
46
|
* @example
|
|
47
47
|
* ```ts
|
|
48
|
-
* const base = createCrowdyClient({
|
|
49
|
-
* managementUrl: 'https://api.example.com',
|
|
50
|
-
* httpUrl: 'https://legacy-game-api.example.com', // pre-split fallback
|
|
51
|
-
* });
|
|
48
|
+
* const base = createCrowdyClient({ httpUrl: 'https://api.example.com/graphql' });
|
|
52
49
|
* await base.auth.login({ email, password });
|
|
53
50
|
*
|
|
54
51
|
* const route = await base.apps.routeFor(appId);
|
|
55
52
|
* if (route.gameApiUrl) {
|
|
56
53
|
* // route gameplay to the app's resolved game-api endpoint
|
|
57
54
|
* const perAppClient = createCrowdyClient({
|
|
58
|
-
* managementUrl: 'https://api.example.com',
|
|
59
55
|
* httpUrl: route.gameApiUrl,
|
|
60
56
|
* wsUrl: route.gameApiUrl.replace(/^http/, 'ws'),
|
|
61
57
|
* tokenStore: base.session.tokenStore,
|
|
@@ -64,8 +60,8 @@ export interface AppRoute {
|
|
|
64
60
|
* ```
|
|
65
61
|
*/
|
|
66
62
|
export declare class AppsAPI {
|
|
67
|
-
private readonly
|
|
68
|
-
constructor(
|
|
63
|
+
private readonly api;
|
|
64
|
+
constructor(api: GraphQLClient);
|
|
69
65
|
/**
|
|
70
66
|
* Read the app's player-code admission mode. Requires
|
|
71
67
|
* `view_compute_diagnostics`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAgBL,KAAK,QAAQ,EAEb,KAAK,cAAc,EAEnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EAEnC,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAgBD
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"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"}
|
package/dist/domains/apps.js
CHANGED
|
@@ -15,7 +15,7 @@ function appRouteFromAppRow(row) {
|
|
|
15
15
|
/**
|
|
16
16
|
* App discovery & game-api routing — exposed as `client.apps`.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* Part of the management surface, where
|
|
19
19
|
* the apps catalog lives. After the database split an app may be served by its
|
|
20
20
|
* own per-tenant cks-game-api; the catalog returns each app's `gameApiUrl` so
|
|
21
21
|
* you can build a per-app `CrowdyClient` against the correct endpoint (see
|
|
@@ -30,17 +30,13 @@ function appRouteFromAppRow(row) {
|
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
* ```ts
|
|
33
|
-
* const base = createCrowdyClient({
|
|
34
|
-
* managementUrl: 'https://api.example.com',
|
|
35
|
-
* httpUrl: 'https://legacy-game-api.example.com', // pre-split fallback
|
|
36
|
-
* });
|
|
33
|
+
* const base = createCrowdyClient({ httpUrl: 'https://api.example.com/graphql' });
|
|
37
34
|
* await base.auth.login({ email, password });
|
|
38
35
|
*
|
|
39
36
|
* const route = await base.apps.routeFor(appId);
|
|
40
37
|
* if (route.gameApiUrl) {
|
|
41
38
|
* // route gameplay to the app's resolved game-api endpoint
|
|
42
39
|
* const perAppClient = createCrowdyClient({
|
|
43
|
-
* managementUrl: 'https://api.example.com',
|
|
44
40
|
* httpUrl: route.gameApiUrl,
|
|
45
41
|
* wsUrl: route.gameApiUrl.replace(/^http/, 'ws'),
|
|
46
42
|
* tokenStore: base.session.tokenStore,
|
|
@@ -49,15 +45,15 @@ function appRouteFromAppRow(row) {
|
|
|
49
45
|
* ```
|
|
50
46
|
*/
|
|
51
47
|
export class AppsAPI {
|
|
52
|
-
constructor(
|
|
53
|
-
this.
|
|
48
|
+
constructor(api) {
|
|
49
|
+
this.api = api;
|
|
54
50
|
}
|
|
55
51
|
/**
|
|
56
52
|
* Read the app's player-code admission mode. Requires
|
|
57
53
|
* `view_compute_diagnostics`.
|
|
58
54
|
*/
|
|
59
55
|
async codeAdmissionMode(appId) {
|
|
60
|
-
const data = await this.
|
|
56
|
+
const data = await this.api.request(AppCodeAdmissionModeDocument, {
|
|
61
57
|
appId,
|
|
62
58
|
});
|
|
63
59
|
return data.appCodeAdmissionMode;
|
|
@@ -72,7 +68,7 @@ export class AppsAPI {
|
|
|
72
68
|
appId,
|
|
73
69
|
includeRevoked,
|
|
74
70
|
};
|
|
75
|
-
const data = await this.
|
|
71
|
+
const data = await this.api.request(AppCodeAdmissionsDocument, variables);
|
|
76
72
|
return data.appCodeAdmissions;
|
|
77
73
|
}
|
|
78
74
|
/**
|
|
@@ -81,7 +77,7 @@ export class AppsAPI {
|
|
|
81
77
|
* `manage_compute`.
|
|
82
78
|
*/
|
|
83
79
|
async setCodeAdmissionMode(appId, mode) {
|
|
84
|
-
const data = await this.
|
|
80
|
+
const data = await this.api.request(SetAppCodeAdmissionModeDocument, {
|
|
85
81
|
appId,
|
|
86
82
|
mode,
|
|
87
83
|
});
|
|
@@ -92,7 +88,7 @@ export class AppsAPI {
|
|
|
92
88
|
* controls execution only and never grants source visibility.
|
|
93
89
|
*/
|
|
94
90
|
async admitCode(input) {
|
|
95
|
-
const data = await this.
|
|
91
|
+
const data = await this.api.request(AdmitAppCodeDocument, { input });
|
|
96
92
|
return data.admitAppCode;
|
|
97
93
|
}
|
|
98
94
|
/**
|
|
@@ -100,7 +96,7 @@ export class AppsAPI {
|
|
|
100
96
|
* change, then drains affected server modules and blocks client artifacts.
|
|
101
97
|
*/
|
|
102
98
|
async revokeCodeAdmission(appId, admissionId) {
|
|
103
|
-
const data = await this.
|
|
99
|
+
const data = await this.api.request(RevokeAppCodeAdmissionDocument, { appId, admissionId });
|
|
104
100
|
return data.revokeAppCodeAdmission;
|
|
105
101
|
}
|
|
106
102
|
/**
|
|
@@ -114,7 +110,7 @@ export class AppsAPI {
|
|
|
114
110
|
* @throws {CrowdyGraphQLError} `UNAUTHENTICATED` if the caller is not signed in.
|
|
115
111
|
*/
|
|
116
112
|
async app(appId) {
|
|
117
|
-
const data = await this.
|
|
113
|
+
const data = await this.api.request(AppDocument, { appId });
|
|
118
114
|
return data.app;
|
|
119
115
|
}
|
|
120
116
|
/**
|
|
@@ -131,7 +127,7 @@ export class AppsAPI {
|
|
|
131
127
|
* @throws {CrowdyGraphQLError} on transport/validation failures.
|
|
132
128
|
*/
|
|
133
129
|
async appBySlug(orgSlug, appSlug) {
|
|
134
|
-
const data = await this.
|
|
130
|
+
const data = await this.api.request(AppBySlugDocument, { orgSlug, appSlug });
|
|
135
131
|
return data.appBySlug;
|
|
136
132
|
}
|
|
137
133
|
/**
|
|
@@ -144,7 +140,7 @@ export class AppsAPI {
|
|
|
144
140
|
* @throws {CrowdyGraphQLError} `UNAUTHENTICATED` if the caller is not signed in.
|
|
145
141
|
*/
|
|
146
142
|
async myApps() {
|
|
147
|
-
const data = await this.
|
|
143
|
+
const data = await this.api.request(MyAppsDocument, {});
|
|
148
144
|
return data.myApps;
|
|
149
145
|
}
|
|
150
146
|
/**
|
|
@@ -179,7 +175,7 @@ export class AppsAPI {
|
|
|
179
175
|
* @throws {CrowdyGraphQLError} `UNAUTHENTICATED` / `FORBIDDEN`.
|
|
180
176
|
*/
|
|
181
177
|
async forOrg(orgSlug) {
|
|
182
|
-
const data = await this.
|
|
178
|
+
const data = await this.api.request(AppsForOrgDocument, { orgSlug });
|
|
183
179
|
return data.appsForOrg;
|
|
184
180
|
}
|
|
185
181
|
/**
|
|
@@ -193,7 +189,7 @@ export class AppsAPI {
|
|
|
193
189
|
* large catalogs; the offset args here are deprecated server-side.
|
|
194
190
|
*/
|
|
195
191
|
async marketplace(opts = {}) {
|
|
196
|
-
const data = await this.
|
|
192
|
+
const data = await this.api.request(MarketplaceAppsDocument, opts);
|
|
197
193
|
return data.apps;
|
|
198
194
|
}
|
|
199
195
|
/**
|
|
@@ -205,7 +201,7 @@ export class AppsAPI {
|
|
|
205
201
|
* @returns An apps connection.
|
|
206
202
|
*/
|
|
207
203
|
async marketplaceConnection(args = {}) {
|
|
208
|
-
const data = await this.
|
|
204
|
+
const data = await this.api.request(AppsConnectionDocument, args);
|
|
209
205
|
return data.appsConnection;
|
|
210
206
|
}
|
|
211
207
|
/**
|
|
@@ -219,7 +215,7 @@ export class AppsAPI {
|
|
|
219
215
|
* `manage_apps`, or `BAD_USER_INPUT` (e.g. duplicate slug).
|
|
220
216
|
*/
|
|
221
217
|
async create(input) {
|
|
222
|
-
const data = await this.
|
|
218
|
+
const data = await this.api.request(CreateAppDocument, { input });
|
|
223
219
|
return data.createApp;
|
|
224
220
|
}
|
|
225
221
|
/**
|
|
@@ -232,7 +228,7 @@ export class AppsAPI {
|
|
|
232
228
|
* `manage_apps`.
|
|
233
229
|
*/
|
|
234
230
|
async update(appId, input) {
|
|
235
|
-
const data = await this.
|
|
231
|
+
const data = await this.api.request(UpdateAppDocument, {
|
|
236
232
|
appId,
|
|
237
233
|
input,
|
|
238
234
|
});
|
|
@@ -247,7 +243,7 @@ export class AppsAPI {
|
|
|
247
243
|
* `manage_apps`.
|
|
248
244
|
*/
|
|
249
245
|
async archive(appId) {
|
|
250
|
-
const data = await this.
|
|
246
|
+
const data = await this.api.request(ArchiveAppDocument, { appId });
|
|
251
247
|
return data.archiveApp;
|
|
252
248
|
}
|
|
253
249
|
/**
|
|
@@ -259,7 +255,7 @@ export class AppsAPI {
|
|
|
259
255
|
* @throws {CrowdyGraphQLError} `FORBIDDEN` for non-super-admins.
|
|
260
256
|
*/
|
|
261
257
|
async setVisibility(appId, visibility) {
|
|
262
|
-
const data = await this.
|
|
258
|
+
const data = await this.api.request(SetAppVisibilityDocument, {
|
|
263
259
|
appId,
|
|
264
260
|
visibility,
|
|
265
261
|
});
|
package/dist/domains/auth.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { AuthState } from '../auth-state.js';
|
|
|
9
9
|
* SESSION token (management-plane), which is stored on the shared session state
|
|
10
10
|
* automatically. Gameplay tokens are minted separately via `client.portal`.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* Part of the management surface.
|
|
13
13
|
*
|
|
14
14
|
* **Public (no session):** {@link requestLoginLink}, {@link completeLoginLink},
|
|
15
15
|
* {@link socialLoginStart}, {@link socialLoginComplete}, {@link devLogin},
|
|
@@ -4,7 +4,7 @@ import { type WalletBalanceQuery, type WalletTransactionsQuery, type WalletTrans
|
|
|
4
4
|
* Org wallet + per-app budgets — exposed as `client.billing` (and grouped under
|
|
5
5
|
* `client.admin`).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Part of the management surface. Reads require the `view_billing` org/app
|
|
8
8
|
* permission; {@link setAppBudget} requires `manage_billing`. Monetary values
|
|
9
9
|
* are minor currency units (`*Cents`) and serialized as `BigInt` decimal
|
|
10
10
|
* strings.
|
|
@@ -13,8 +13,8 @@ import { type WalletBalanceQuery, type WalletTransactionsQuery, type WalletTrans
|
|
|
13
13
|
* per the permission notes above.
|
|
14
14
|
*/
|
|
15
15
|
export declare class BillingAPI {
|
|
16
|
-
private readonly
|
|
17
|
-
constructor(
|
|
16
|
+
private readonly api;
|
|
17
|
+
constructor(api: GraphQLClient);
|
|
18
18
|
/**
|
|
19
19
|
* Return an organization's wallet balance. Requires the `view_billing` org
|
|
20
20
|
* permission.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/domains/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAOL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/domains/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAOL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAE/C;;;;;;OAMG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAK/C;;;;;;;OAOG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC7C,OAAO,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IASzD;;;;;;;OAOG;IACG,SAAS,CACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAQvC;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAKvE;;;;;;;;;OASG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAShD;;;;;;;;OAQG;IACG,4BAA4B,CAChC,IAAI,EAAE,0CAA0C,GAC/C,OAAO,CACR,iCAAiC,CAAC,8BAA8B,CAAC,CAClE;CAWF"}
|
package/dist/domains/billing.js
CHANGED
|
@@ -3,7 +3,7 @@ import { WalletBalanceDocument, WalletTransactionsDocument, WalletTransactionsCo
|
|
|
3
3
|
* Org wallet + per-app budgets — exposed as `client.billing` (and grouped under
|
|
4
4
|
* `client.admin`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Part of the management surface. Reads require the `view_billing` org/app
|
|
7
7
|
* permission; {@link setAppBudget} requires `manage_billing`. Monetary values
|
|
8
8
|
* are minor currency units (`*Cents`) and serialized as `BigInt` decimal
|
|
9
9
|
* strings.
|
|
@@ -12,8 +12,8 @@ import { WalletBalanceDocument, WalletTransactionsDocument, WalletTransactionsCo
|
|
|
12
12
|
* per the permission notes above.
|
|
13
13
|
*/
|
|
14
14
|
export class BillingAPI {
|
|
15
|
-
constructor(
|
|
16
|
-
this.
|
|
15
|
+
constructor(api) {
|
|
16
|
+
this.api = api;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Return an organization's wallet balance. Requires the `view_billing` org
|
|
@@ -23,7 +23,7 @@ export class BillingAPI {
|
|
|
23
23
|
* @returns The wallet balance (cents as a decimal string).
|
|
24
24
|
*/
|
|
25
25
|
async walletBalance(orgId) {
|
|
26
|
-
const data = await this.
|
|
26
|
+
const data = await this.api.request(WalletBalanceDocument, { orgId });
|
|
27
27
|
return data.walletBalance;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
@@ -35,7 +35,7 @@ export class BillingAPI {
|
|
|
35
35
|
* @returns The wallet transactions.
|
|
36
36
|
*/
|
|
37
37
|
async walletTransactions(orgId, opts = {}) {
|
|
38
|
-
const data = await this.
|
|
38
|
+
const data = await this.api.request(WalletTransactionsDocument, {
|
|
39
39
|
orgId,
|
|
40
40
|
limit: opts.limit,
|
|
41
41
|
offset: opts.offset,
|
|
@@ -51,7 +51,7 @@ export class BillingAPI {
|
|
|
51
51
|
* @returns The app budget, or `null` if unset.
|
|
52
52
|
*/
|
|
53
53
|
async appBudget(orgId, appId) {
|
|
54
|
-
const data = await this.
|
|
54
|
+
const data = await this.api.request(AppBudgetDocument, {
|
|
55
55
|
orgId,
|
|
56
56
|
appId,
|
|
57
57
|
});
|
|
@@ -65,7 +65,7 @@ export class BillingAPI {
|
|
|
65
65
|
* @returns The app budgets.
|
|
66
66
|
*/
|
|
67
67
|
async appBudgets(orgId) {
|
|
68
|
-
const data = await this.
|
|
68
|
+
const data = await this.api.request(AppBudgetsDocument, { orgId });
|
|
69
69
|
return data.appBudgets;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -79,7 +79,7 @@ export class BillingAPI {
|
|
|
79
79
|
* @returns The updated app budget.
|
|
80
80
|
*/
|
|
81
81
|
async setAppBudget(orgId, appId, monthlyLimitCents) {
|
|
82
|
-
const data = await this.
|
|
82
|
+
const data = await this.api.request(SetAppBudgetDocument, {
|
|
83
83
|
orgId,
|
|
84
84
|
appId,
|
|
85
85
|
monthlyLimitCents,
|
|
@@ -96,7 +96,7 @@ export class BillingAPI {
|
|
|
96
96
|
* @returns A wallet-transactions connection.
|
|
97
97
|
*/
|
|
98
98
|
async walletTransactionsConnection(args) {
|
|
99
|
-
const data = await this.
|
|
99
|
+
const data = await this.api.request(WalletTransactionsConnectionDocument, args);
|
|
100
100
|
return data.walletTransactionsConnection;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -14,8 +14,8 @@ import { type CpComputePlatformCeilingsQuery, type CpSetComputePlatformCeilingsM
|
|
|
14
14
|
* when the caller is not an operator.
|
|
15
15
|
*/
|
|
16
16
|
export declare class ControlPlaneAPI {
|
|
17
|
-
private readonly
|
|
18
|
-
constructor(
|
|
17
|
+
private readonly api;
|
|
18
|
+
constructor(api: GraphQLClient);
|
|
19
19
|
/**
|
|
20
20
|
* The platform-wide compute ceilings (max modules, tick rates, fuel,
|
|
21
21
|
* memory, run time, db-op and egress budgets).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlPlane.d.ts","sourceRoot":"","sources":["../../src/domains/controlPlane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,iCAAiC,EACvC,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"controlPlane.d.ts","sourceRoot":"","sources":["../../src/domains/controlPlane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,iCAAiC,EACvC,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAE/C;;;;;OAKG;IACG,uBAAuB,IAAI,OAAO,CACtC,8BAA8B,CAAC,2BAA2B,CAAC,CAC5D;IAOD;;;;;;;;;OASG;IACG,0BAA0B,CAC9B,KAAK,EAAE,iCAAiC,GACvC,OAAO,CACR,oCAAoC,CAAC,8BAA8B,CAAC,CACrE;CAOF"}
|
|
@@ -13,8 +13,8 @@ import { CpComputePlatformCeilingsDocument, CpSetComputePlatformCeilingsDocument
|
|
|
13
13
|
* when the caller is not an operator.
|
|
14
14
|
*/
|
|
15
15
|
export class ControlPlaneAPI {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
16
|
+
constructor(api) {
|
|
17
|
+
this.api = api;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* The platform-wide compute ceilings (max modules, tick rates, fuel,
|
|
@@ -23,7 +23,7 @@ export class ControlPlaneAPI {
|
|
|
23
23
|
* @returns The stored ceilings row.
|
|
24
24
|
*/
|
|
25
25
|
async computePlatformCeilings() {
|
|
26
|
-
const data = await this.
|
|
26
|
+
const data = await this.api.request(CpComputePlatformCeilingsDocument);
|
|
27
27
|
return data.cpComputePlatformCeilings;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
@@ -37,7 +37,7 @@ export class ControlPlaneAPI {
|
|
|
37
37
|
* @returns The stored ceilings after the patch.
|
|
38
38
|
*/
|
|
39
39
|
async setComputePlatformCeilings(input) {
|
|
40
|
-
const data = await this.
|
|
40
|
+
const data = await this.api.request(CpSetComputePlatformCeilingsDocument, { input });
|
|
41
41
|
return data.cpSetComputePlatformCeilings;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where each app lives — the call a client makes BEFORE it authenticates.
|
|
3
|
+
*
|
|
4
|
+
* WHY IT COMES FIRST. `ck.<tier>.cp.cks-env.com` is a multivalue DNS record over every
|
|
5
|
+
* datacenter's load balancer, so a cold client's first request lands wherever DNS
|
|
6
|
+
* pointed it — and roughly half the time that is not the datacenter hosting the app.
|
|
7
|
+
* Authenticating there writes the session in the wrong place and then mints the app
|
|
8
|
+
* token across a WAN.
|
|
9
|
+
*
|
|
10
|
+
* A client already knows its app id before it has any credential: it is a build-time
|
|
11
|
+
* constant. So it can ask this, move to the returned origin, and log in locally. That is
|
|
12
|
+
* the whole trick, and it is why this query takes no token.
|
|
13
|
+
*
|
|
14
|
+
* PLURAL. A launcher or in-game switcher resolves every game it might offer in one call
|
|
15
|
+
* and caches the answer, so switching games is instant instead of a round trip at click
|
|
16
|
+
* time. Placement changes rarely and only an operator can change it.
|
|
17
|
+
*
|
|
18
|
+
* An app with no placement comes back with null endpoints, which means "stay on the
|
|
19
|
+
* shared origin" — not "this app is broken".
|
|
20
|
+
*/
|
|
21
|
+
import type { GraphQLClient } from '../client.js';
|
|
22
|
+
export interface AppEndpoint {
|
|
23
|
+
/** The app this entry describes (decimal string). */
|
|
24
|
+
appId: string;
|
|
25
|
+
/** Datacenter code, e.g. `or` / `va`. Null when the app has no placement. */
|
|
26
|
+
datacenterCode: string | null;
|
|
27
|
+
/** HTTPS GraphQL origin for the app's own datacenter, or null if unplaced. */
|
|
28
|
+
gameApiUrl: string | null;
|
|
29
|
+
/** The wss:// form of gameApiUrl. */
|
|
30
|
+
gameApiWsUrl: string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare class DiscoveryDomain {
|
|
33
|
+
private readonly gql;
|
|
34
|
+
constructor(gql: GraphQLClient);
|
|
35
|
+
/**
|
|
36
|
+
* Resolve where one or more apps are placed. No authentication required.
|
|
37
|
+
*
|
|
38
|
+
* Call this against the SHARED origin — that is the name every datacenter answers, and
|
|
39
|
+
* the only one a client can rely on before it knows where it belongs.
|
|
40
|
+
*/
|
|
41
|
+
apps(appIds: Array<string | number | bigint>): Promise<AppEndpoint[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Resolve one app, or null if it has no placement.
|
|
44
|
+
*
|
|
45
|
+
* Convenience over {@link apps}; prefer the plural form when you have more than one,
|
|
46
|
+
* because it is one round trip rather than N.
|
|
47
|
+
*/
|
|
48
|
+
app(appId: string | number | bigint): Promise<AppEndpoint | null>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/domains/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qCAAqC;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAE/C;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAY3E;;;;;OAKG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;CAKxE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AppDiscoveryDocument } from '../generated/graphql.js';
|
|
2
|
+
export class DiscoveryDomain {
|
|
3
|
+
constructor(gql) {
|
|
4
|
+
this.gql = gql;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resolve where one or more apps are placed. No authentication required.
|
|
8
|
+
*
|
|
9
|
+
* Call this against the SHARED origin — that is the name every datacenter answers, and
|
|
10
|
+
* the only one a client can rely on before it knows where it belongs.
|
|
11
|
+
*/
|
|
12
|
+
async apps(appIds) {
|
|
13
|
+
const data = await this.gql.request(AppDiscoveryDocument, {
|
|
14
|
+
appIds: appIds.map((id) => String(id)),
|
|
15
|
+
});
|
|
16
|
+
return data.appDiscovery.map((entry) => ({
|
|
17
|
+
appId: String(entry.appId),
|
|
18
|
+
datacenterCode: entry.datacenterCode ?? null,
|
|
19
|
+
gameApiUrl: entry.gameApiUrl ?? null,
|
|
20
|
+
gameApiWsUrl: entry.gameApiWsUrl ?? null,
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve one app, or null if it has no placement.
|
|
25
|
+
*
|
|
26
|
+
* Convenience over {@link apps}; prefer the plural form when you have more than one,
|
|
27
|
+
* because it is one round trip rather than N.
|
|
28
|
+
*/
|
|
29
|
+
async app(appId) {
|
|
30
|
+
const [entry] = await this.apps([appId]);
|
|
31
|
+
if (!entry || !entry.gameApiUrl)
|
|
32
|
+
return null;
|
|
33
|
+
return entry;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -3,9 +3,9 @@ import { type MarketplaceCreateAccountSessionMutation, type MarketplaceCreateAcc
|
|
|
3
3
|
/**
|
|
4
4
|
* The P4a player-code marketplace (free mode) — exposed as
|
|
5
5
|
* `client.marketplace`. Player-facing browse/publish/acquire/install/consent
|
|
6
|
-
* and the D4 grid claim flows
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* and the D4 grid claim flows, plus studio moderation (admission queue, catalog
|
|
7
|
+
* administration, ownership transfer, claim-policy config). Player and moderation
|
|
8
|
+
* operations differ by the permissions they require, not by endpoint.
|
|
9
9
|
*
|
|
10
10
|
* No money moves through any of these calls: every listing is free in P4a,
|
|
11
11
|
* an acquisition is an entitlement write, and the paid modes ship with P4b.
|
|
@@ -14,8 +14,7 @@ import { type MarketplaceCreateAccountSessionMutation, type MarketplaceCreateAcc
|
|
|
14
14
|
*/
|
|
15
15
|
export declare class MarketplaceAPI {
|
|
16
16
|
private readonly game;
|
|
17
|
-
|
|
18
|
-
constructor(game: GraphQLClient, management: GraphQLClient);
|
|
17
|
+
constructor(game: GraphQLClient);
|
|
19
18
|
/** Browse the app's active listings with admission standing per listing. */
|
|
20
19
|
listings(variables: MarketplaceListingsQueryVariables): Promise<MarketplaceListingsQuery['playerCodeListings']>;
|
|
21
20
|
/** Published versions of one listing (capability summaries + consent hashes). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/domains/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAsCL,KAAK,uCAAuC,EAC5C,KAAK,gDAAgD,EACrD,KAAK,0CAA0C,EAC/C,KAAK,mDAAmD,EAOxD,KAAK,4CAA4C,EACjD,KAAK,4CAA4C,EACjD,KAAK,6CAA6C,EAClD,KAAK,qCAAqC,EAC1C,KAAK,wCAAwC,EAC7C,KAAK,6CAA6C,EAClD,KAAK,uCAAuC,EAC5C,KAAK,iDAAiD,EACtD,KAAK,oDAAoD,EACzD,KAAK,yCAAyC,EAC9C,KAAK,+CAA+C,EACpD,KAAK,0CAA0C,EAC/C,KAAK,0CAA0C,EAC/C,KAAK,6CAA6C,EAClD,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,KAAK,wCAAwC,EAC7C,KAAK,2CAA2C,EAChD,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,oCAAoC,EACzC,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,+BAA+B,EACpC,KAAK,wCAAwC,EAC7C,KAAK,8BAA8B,EACnC,KAAK,uCAAuC,EAC5C,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,uCAAuC,EAC5C,KAAK,8BAA8B,EACnC,KAAK,uCAAuC,EAC5C,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,gDAAgD,EACrD,KAAK,kCAAkC,EACvC,KAAK,2CAA2C,EAChD,KAAK,+BAA+B,EACpC,KAAK,wCAAwC,EAC7C,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,qCAAqC,EAC1C,KAAK,8CAA8C,EACnD,KAAK,iCAAiC,EACtC,KAAK,0CAA0C,EAC/C,KAAK,qCAAqC,EAC1C,KAAK,8CAA8C,EACnD,KAAK,kCAAkC,EACvC,KAAK,2CAA2C,EAChD,KAAK,gDAAgD,EACrD,KAAK,8BAA8B,EACnC,KAAK,uCAAuC,EAC5C,KAAK,2BAA2B,EAChC,KAAK,oCAAoC,EACzC,KAAK,+BAA+B,EACpC,KAAK,wCAAwC,EAC7C,KAAK,kCAAkC,EACvC,KAAK,2CAA2C,EAChD,KAAK,mCAAmC,EACxC,KAAK,4CAA4C,EACjD,KAAK,qCAAqC,EAC1C,KAAK,8CAA8C,EACpD,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/domains/marketplace.ts"],"names":[],"mappings":"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"}
|