@bedrock-rbx/ocale 0.1.0-beta.2 → 0.1.0-beta.21
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/README.md +129 -0
- package/dist/badges.d.mts +33 -2
- package/dist/badges.d.mts.map +1 -1
- package/dist/badges.mjs +12 -4
- package/dist/badges.mjs.map +1 -1
- package/dist/{data.generated-BtkDGH8C.d.mts → data.generated-B2ceLfSn.d.mts} +9 -1
- package/dist/data.generated-B2ceLfSn.d.mts.map +1 -0
- package/dist/developer-products.d.mts +38 -2
- package/dist/developer-products.d.mts.map +1 -1
- package/dist/developer-products.mjs +22 -5
- package/dist/developer-products.mjs.map +1 -1
- package/dist/game-passes.d.mts +40 -2
- package/dist/game-passes.d.mts.map +1 -1
- package/dist/game-passes.mjs +22 -5
- package/dist/game-passes.mjs.map +1 -1
- package/dist/index.d.mts +110 -12
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -3
- package/dist/locales.d.mts +1 -1
- package/dist/locales.mjs +2 -0
- package/dist/locales.mjs.map +1 -1
- package/dist/luau-execution.d.mts +112 -6
- package/dist/luau-execution.d.mts.map +1 -1
- package/dist/luau-execution.mjs +129 -4
- package/dist/luau-execution.mjs.map +1 -1
- package/dist/places.d.mts +64 -6
- package/dist/places.d.mts.map +1 -1
- package/dist/places.mjs +33 -61
- package/dist/places.mjs.map +1 -1
- package/dist/poll-timeout-C0nmJzOd.mjs +83 -0
- package/dist/poll-timeout-C0nmJzOd.mjs.map +1 -0
- package/dist/polling-helpers-Cb4j4cq7.mjs +787 -0
- package/dist/polling-helpers-Cb4j4cq7.mjs.map +1 -0
- package/dist/polling-rj0dGREg.d.mts +312 -0
- package/dist/polling-rj0dGREg.d.mts.map +1 -0
- package/dist/{price-information-s7DY0GV2.mjs → price-information-Bu87sPyh.mjs} +2 -2
- package/dist/{price-information-s7DY0GV2.mjs.map → price-information-Bu87sPyh.mjs.map} +1 -1
- package/dist/{rate-limit-CKfuhxT1.mjs → rate-limit-Co9i28qi.mjs} +24 -38
- package/dist/rate-limit-Co9i28qi.mjs.map +1 -0
- package/dist/{resource-client-Wi4Mwqy5.mjs → resource-client-lE7Tg3BK.mjs} +349 -241
- package/dist/resource-client-lE7Tg3BK.mjs.map +1 -0
- package/dist/retry-CbHBw60o.mjs +380 -0
- package/dist/retry-CbHBw60o.mjs.map +1 -0
- package/dist/retry-r1TXe5Zd.d.mts +189 -0
- package/dist/retry-r1TXe5Zd.d.mts.map +1 -0
- package/dist/signatures-JF-7Psce.mjs +59 -0
- package/dist/signatures-JF-7Psce.mjs.map +1 -0
- package/dist/storage.d.mts +322 -31
- package/dist/storage.d.mts.map +1 -1
- package/dist/storage.mjs +506 -18
- package/dist/storage.mjs.map +1 -1
- package/dist/testing.d.mts +727 -0
- package/dist/testing.d.mts.map +1 -0
- package/dist/testing.mjs +457 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/{to-blob-1BtHsDGK.mjs → to-blob-RPqMBuft.mjs} +1 -1
- package/dist/{to-blob-1BtHsDGK.mjs.map → to-blob-RPqMBuft.mjs.map} +1 -1
- package/dist/{types-Cp8w8uwA.d.mts → types-CRiJg5EQ.d.mts} +46 -4
- package/dist/types-CRiJg5EQ.d.mts.map +1 -0
- package/dist/universes.d.mts +47 -10
- package/dist/universes.d.mts.map +1 -1
- package/dist/universes.mjs +7 -5
- package/dist/universes.mjs.map +1 -1
- package/dist/{validation-b7KAoEio.mjs → validation-9oU6qNNQ.mjs} +4 -2
- package/dist/validation-9oU6qNNQ.mjs.map +1 -0
- package/dist/wire-D3K-a-UP.d.mts +37 -0
- package/dist/wire-D3K-a-UP.d.mts.map +1 -0
- package/package.json +9 -7
- package/dist/data.generated-BtkDGH8C.d.mts.map +0 -1
- package/dist/is-date-time-string-Cuf1TaSC.mjs +0 -19
- package/dist/is-date-time-string-Cuf1TaSC.mjs.map +0 -1
- package/dist/rate-limit-CKfuhxT1.mjs.map +0 -1
- package/dist/rate-limit-DzHBFwps.d.mts +0 -92
- package/dist/rate-limit-DzHBFwps.d.mts.map +0 -1
- package/dist/resource-client-Wi4Mwqy5.mjs.map +0 -1
- package/dist/specs-Co6qYp_E.mjs +0 -309
- package/dist/specs-Co6qYp_E.mjs.map +0 -1
- package/dist/types-BZ0959rh.d.mts +0 -149
- package/dist/types-BZ0959rh.d.mts.map +0 -1
- package/dist/types-Cp8w8uwA.d.mts.map +0 -1
- package/dist/validation-b7KAoEio.mjs.map +0 -1
|
@@ -0,0 +1,727 @@
|
|
|
1
|
+
import { d as OpenCloudError, l as Result, n as HttpRequest, o as RequestConfig, r as HttpResponse, t as HttpClient, u as SleepFunc } from "./types-CRiJg5EQ.mjs";
|
|
2
|
+
import { r as GetGameIconResponseWire, t as GameIconListWire } from "./wire-D3K-a-UP.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/domains/badges/badges/wire.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Wire shape of
|
|
7
|
+
* `Roblox.Web.Responses.RelatedEntityTypeResponse_Roblox.Platform.Badges.BadgeAwarderType_`.
|
|
8
|
+
*/
|
|
9
|
+
interface BadgeAwarderWire {
|
|
10
|
+
/** Int64 awarder ID. */
|
|
11
|
+
readonly id: number;
|
|
12
|
+
/** Display name of the awarding entity. */
|
|
13
|
+
readonly name: string;
|
|
14
|
+
/** Numeric awarder kind. `1` is `Place`. */
|
|
15
|
+
readonly type: BadgeAwarderTypeWire;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Wire shape of `Roblox.Web.Responses.Badges.BadgeAwardStatisticsResponse`.
|
|
19
|
+
*/
|
|
20
|
+
interface BadgeStatisticsWire {
|
|
21
|
+
/** Int64 lifetime awarded count. */
|
|
22
|
+
readonly awardedCount: number;
|
|
23
|
+
/** Int64 awarded count over the past day. */
|
|
24
|
+
readonly pastDayAwardedCount: number;
|
|
25
|
+
/** Double win-rate percentage in the range `[0, 100]`. */
|
|
26
|
+
readonly winRatePercentage: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Wire shape of `Roblox.Web.Responses.Badges.BadgeResponseV2`: the response
|
|
30
|
+
* body returned by the legacy badges create endpoint.
|
|
31
|
+
*/
|
|
32
|
+
interface BadgeResponseV2Wire {
|
|
33
|
+
/** Int64 badge ID, serialized as a JSON number. */
|
|
34
|
+
readonly id: number;
|
|
35
|
+
/** Display name of the badge. */
|
|
36
|
+
readonly name: string;
|
|
37
|
+
/** Awarding entity block. */
|
|
38
|
+
readonly awarder: BadgeAwarderWire;
|
|
39
|
+
/** ISO timestamp at which the badge was created (`date-time`). */
|
|
40
|
+
readonly created: string;
|
|
41
|
+
/** Source-language description. */
|
|
42
|
+
readonly description: string;
|
|
43
|
+
/** Resolved description for the requesting locale. */
|
|
44
|
+
readonly displayDescription: string;
|
|
45
|
+
/** Int64 resolved icon image asset ID; `0` signals no icon for this locale. */
|
|
46
|
+
readonly displayIconImageId: number;
|
|
47
|
+
/** Resolved name for the requesting locale. */
|
|
48
|
+
readonly displayName: string;
|
|
49
|
+
/** Whether the badge is currently active. Disabled badges cannot be awarded. */
|
|
50
|
+
readonly enabled: boolean;
|
|
51
|
+
/** Int64 source-language icon image asset ID; `0` signals no icon. */
|
|
52
|
+
readonly iconImageId: number;
|
|
53
|
+
/** Award statistics block. */
|
|
54
|
+
readonly statistics: BadgeStatisticsWire;
|
|
55
|
+
/** ISO timestamp of the most recent update (`date-time`). */
|
|
56
|
+
readonly updated: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Wire shape of `Roblox.Platform.Badges.BadgeAwarderType`.
|
|
60
|
+
*/
|
|
61
|
+
type BadgeAwarderTypeWire = 1;
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region tests/helpers/badges.d.ts
|
|
64
|
+
/**
|
|
65
|
+
* Builds a minimally-valid {@link BadgeResponseV2Wire} body. Pass an
|
|
66
|
+
* `overrides` object to tweak individual fields while keeping everything
|
|
67
|
+
* else schema-compliant; useful for parser and integration tests that
|
|
68
|
+
* only care about one field at a time.
|
|
69
|
+
*
|
|
70
|
+
* @param overrides - Fields to override on the default body.
|
|
71
|
+
* @returns A valid wire body with the overrides applied.
|
|
72
|
+
*/
|
|
73
|
+
declare function validBadgeBody(overrides?: Partial<BadgeResponseV2Wire>): BadgeResponseV2Wire;
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/internal/price-information.d.ts
|
|
76
|
+
/**
|
|
77
|
+
* Wire shape shared by every Roblox commerce resource that carries a
|
|
78
|
+
* `priceInformation` block (game passes, developer products, ...). Resources
|
|
79
|
+
* vary in the literal set their `enabledFeatures` may contain, so the feature
|
|
80
|
+
* type is left as a parameter `F`.
|
|
81
|
+
*
|
|
82
|
+
* @template F - The string-literal union for this resource's pricing-feature flags.
|
|
83
|
+
*/
|
|
84
|
+
interface PriceInformationLike<F extends string> {
|
|
85
|
+
/** Default Robux price; `undefined` when the schema returns null. */
|
|
86
|
+
readonly defaultPriceInRobux: number | undefined;
|
|
87
|
+
/** Enabled pricing feature flags, in the order returned by the API. */
|
|
88
|
+
readonly enabledFeatures: ReadonlyArray<F>;
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/domains/developer-products/products/wire.d.ts
|
|
92
|
+
/**
|
|
93
|
+
* Wire-level pricing feature flag, mirroring `DeveloperProducts.PricingFeature`.
|
|
94
|
+
*/
|
|
95
|
+
type DeveloperProductPricingFeatureWire = "Invalid" | "PriceOptimization" | "RegionalPricing" | "UserFixedPrice";
|
|
96
|
+
/**
|
|
97
|
+
* Wire shape of `DeveloperProductConfigV2`: the response body returned by
|
|
98
|
+
* the developer-products read and create endpoints.
|
|
99
|
+
*/
|
|
100
|
+
interface DeveloperProductConfigV2 {
|
|
101
|
+
/** Display name of the developer product. */
|
|
102
|
+
readonly name: string;
|
|
103
|
+
/** ISO timestamp at which the developer product was created (`date-time`). */
|
|
104
|
+
readonly createdTimestamp: string;
|
|
105
|
+
/** Consumer-facing description shown on the storefront. */
|
|
106
|
+
readonly description: string;
|
|
107
|
+
/** Int64 icon image asset ID; `undefined` when no icon is uploaded. */
|
|
108
|
+
readonly iconImageAssetId: number | undefined;
|
|
109
|
+
/** Whether the developer product is currently purchasable. */
|
|
110
|
+
readonly isForSale: boolean;
|
|
111
|
+
/** Whether the developer product is locked from configuration changes. */
|
|
112
|
+
readonly isImmutable: boolean;
|
|
113
|
+
/** Pricing block; `undefined` when the schema returns null. */
|
|
114
|
+
readonly priceInformation: DeveloperProductPriceInformationWire | undefined;
|
|
115
|
+
/** Int64 developer product ID, serialized as a JSON number. */
|
|
116
|
+
readonly productId: number;
|
|
117
|
+
/** Whether the developer product appears on the external store page. */
|
|
118
|
+
readonly storePageEnabled: boolean;
|
|
119
|
+
/** Int64 universe ID that owns the developer product. */
|
|
120
|
+
readonly universeId: number;
|
|
121
|
+
/** ISO timestamp of the most recent update (`date-time`). */
|
|
122
|
+
readonly updatedTimestamp: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Wire shape of `DeveloperProducts.PriceInformationStruct`.
|
|
126
|
+
*/
|
|
127
|
+
type DeveloperProductPriceInformationWire = PriceInformationLike<DeveloperProductPricingFeatureWire>;
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region tests/helpers/developer-products.d.ts
|
|
130
|
+
/**
|
|
131
|
+
* Builds a minimally-valid {@link DeveloperProductConfigV2} wire body. Pass
|
|
132
|
+
* an `overrides` object to tweak individual fields while keeping everything
|
|
133
|
+
* else schema-compliant; useful for parser and integration tests that
|
|
134
|
+
* only care about one field at a time.
|
|
135
|
+
*
|
|
136
|
+
* @param overrides - Fields to override on the default body.
|
|
137
|
+
* @returns A valid wire body with the overrides applied.
|
|
138
|
+
*/
|
|
139
|
+
declare function validDeveloperProductBody(overrides?: Partial<DeveloperProductConfigV2>): DeveloperProductConfigV2;
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region tests/helpers/fake-http-client.d.ts
|
|
142
|
+
/**
|
|
143
|
+
* A request captured by {@link FakeHttpClient} for later assertion.
|
|
144
|
+
*/
|
|
145
|
+
interface CapturedRequest {
|
|
146
|
+
/** The per-request config passed alongside the request. */
|
|
147
|
+
readonly config: RequestConfig;
|
|
148
|
+
/** The request passed to {@link HttpClient.request}. */
|
|
149
|
+
readonly request: HttpRequest;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* A fluent fake for the {@link HttpClient} boundary. Mocks are queued in
|
|
153
|
+
* FIFO order and consumed by each `request()` call. Records every
|
|
154
|
+
* request and config for later assertion. Throws
|
|
155
|
+
* {@link FakeHttpClientError} if the queue is empty when `request()` is
|
|
156
|
+
* called — surfaces missing mocks as test setup bugs instead of silently
|
|
157
|
+
* repeating the last response.
|
|
158
|
+
*/
|
|
159
|
+
interface FakeHttpClient extends HttpClient {
|
|
160
|
+
/** Queues an {@link ApiError} with the given status code and optional message/code. */
|
|
161
|
+
mockApiError(options: {
|
|
162
|
+
code?: string;
|
|
163
|
+
message?: string;
|
|
164
|
+
statusCode: number;
|
|
165
|
+
}): this;
|
|
166
|
+
/** Queues an error Result with the given error instance. */
|
|
167
|
+
mockError(error: OpenCloudError): this;
|
|
168
|
+
/** Queues a {@link NetworkError}. Preserves `cause` when provided. */
|
|
169
|
+
mockNetworkError(options?: {
|
|
170
|
+
cause?: unknown;
|
|
171
|
+
message?: string;
|
|
172
|
+
}): this;
|
|
173
|
+
/** Queues a {@link RateLimitError} with the given retry hint. */
|
|
174
|
+
mockRateLimit(options: {
|
|
175
|
+
message?: string;
|
|
176
|
+
retryAfterSeconds: number;
|
|
177
|
+
}): this;
|
|
178
|
+
/** Queues a successful {@link HttpResponse}. Body defaults to `{}`; headers default to `{}`. */
|
|
179
|
+
mockResponse(options: {
|
|
180
|
+
body?: unknown;
|
|
181
|
+
headers?: Readonly<Record<string, string>>;
|
|
182
|
+
status: number;
|
|
183
|
+
}): this;
|
|
184
|
+
/** Number of queued mocks that have not yet been consumed. */
|
|
185
|
+
readonly pendingMocks: number;
|
|
186
|
+
/** Chronological log of every `(request, config)` pair the fake received. */
|
|
187
|
+
readonly requests: ReadonlyArray<CapturedRequest>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Thrown when {@link FakeHttpClient.request} is called but no mock has
|
|
191
|
+
* been queued. The message names the method, url, and consumed count to
|
|
192
|
+
* aid debugging of missing `.mockResponse`/`.mockError` setup.
|
|
193
|
+
*/
|
|
194
|
+
declare class FakeHttpClientError extends Error {
|
|
195
|
+
override readonly name: string;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Creates a fluent {@link FakeHttpClient} that sits at the
|
|
199
|
+
* {@link HttpClient} seam. Use for integration tests where you need to
|
|
200
|
+
* assert per-request config (apiKey, baseUrl) flows through to HTTP.
|
|
201
|
+
*
|
|
202
|
+
* @returns A fresh fake with an empty mock queue.
|
|
203
|
+
*/
|
|
204
|
+
declare function createFakeHttpClient(): FakeHttpClient;
|
|
205
|
+
//#endregion
|
|
206
|
+
//#region tests/helpers/fake-send.d.ts
|
|
207
|
+
/**
|
|
208
|
+
* The `send` callback shape consumed by `executeWithRetry`. A plain
|
|
209
|
+
* transport function — no `RequestConfig`, no queueing, no retries.
|
|
210
|
+
*/
|
|
211
|
+
type SendFunc = (request: HttpRequest) => Promise<Result<HttpResponse, OpenCloudError>>;
|
|
212
|
+
/**
|
|
213
|
+
* A scripted fake for the `send` callback. Replays responses in order
|
|
214
|
+
* and records every request it receives.
|
|
215
|
+
*/
|
|
216
|
+
interface FakeSend {
|
|
217
|
+
/** Chronological log of every request the fake received. */
|
|
218
|
+
readonly requests: ReadonlyArray<HttpRequest>;
|
|
219
|
+
/** The scripted send callback. */
|
|
220
|
+
readonly send: SendFunc;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Creates a scripted fake for the `send` callback. Each call returns the
|
|
224
|
+
* next queued response; exhausting the queue throws, which surfaces test
|
|
225
|
+
* setup mistakes instead of silently repeating the last response.
|
|
226
|
+
*
|
|
227
|
+
* @param options - The scripted responses to replay, in order.
|
|
228
|
+
* @returns A `send` callback plus a `requests` log.
|
|
229
|
+
* @rejects {Error} When a call is made after all scripted responses are consumed.
|
|
230
|
+
*/
|
|
231
|
+
declare function createFakeSend(options: {
|
|
232
|
+
readonly responses: ReadonlyArray<Result<HttpResponse, OpenCloudError>>;
|
|
233
|
+
}): FakeSend;
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region tests/helpers/fake-sleep.d.ts
|
|
236
|
+
/**
|
|
237
|
+
* A directly-callable sleep double that records its wait arguments without
|
|
238
|
+
* delaying. Assignable to {@link SleepFunc}.
|
|
239
|
+
*/
|
|
240
|
+
interface FakeSleep extends SleepFunc {
|
|
241
|
+
/** Chronological log of every `ms` value the fake was called with. */
|
|
242
|
+
readonly waits: ReadonlyArray<number>;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Creates a {@link FakeSleep} that resolves immediately and records every
|
|
246
|
+
* `ms` value it was called with.
|
|
247
|
+
*
|
|
248
|
+
* @returns A callable sleep function with a `waits` log attached.
|
|
249
|
+
*/
|
|
250
|
+
declare function createFakeSleep(): FakeSleep;
|
|
251
|
+
//#endregion
|
|
252
|
+
//#region tests/helpers/game-icon.d.ts
|
|
253
|
+
/**
|
|
254
|
+
* Builds a minimally-valid {@link GetGameIconResponseWire} entry. Pass an
|
|
255
|
+
* `overrides` object to tweak individual fields while keeping everything
|
|
256
|
+
* else schema-compliant.
|
|
257
|
+
*
|
|
258
|
+
* @param overrides - Fields to override on the default entry.
|
|
259
|
+
* @returns A valid localized-icon entry with the overrides applied.
|
|
260
|
+
*/
|
|
261
|
+
declare function validLocalizedIcon(overrides?: Partial<GetGameIconResponseWire>): GetGameIconResponseWire;
|
|
262
|
+
/**
|
|
263
|
+
* Builds a minimally-valid {@link GameIconListWire} body containing a single
|
|
264
|
+
* default localized icon.
|
|
265
|
+
*
|
|
266
|
+
* @param overrides - Fields to override on the default body.
|
|
267
|
+
* @returns A valid wire body with the overrides applied.
|
|
268
|
+
*/
|
|
269
|
+
declare function validIconListBody(overrides?: Partial<GameIconListWire>): GameIconListWire;
|
|
270
|
+
//#endregion
|
|
271
|
+
//#region src/domains/game-passes/game-passes/wire.d.ts
|
|
272
|
+
/**
|
|
273
|
+
* Wire-level pricing feature flag, mirroring `GamePasses.PricingFeature`.
|
|
274
|
+
*/
|
|
275
|
+
type PricingFeatureWire = "Invalid" | "PriceOptimization" | "RegionalPricing" | "UserFixedPrice";
|
|
276
|
+
/**
|
|
277
|
+
* Wire shape of `GamePassConfigV2` — the response body returned by the
|
|
278
|
+
* Game Passes read endpoint.
|
|
279
|
+
*/
|
|
280
|
+
interface GamePassConfigV2 {
|
|
281
|
+
/** Display name of the game pass. */
|
|
282
|
+
readonly name: string;
|
|
283
|
+
/** ISO timestamp at which the game pass was created (`date-time`). */
|
|
284
|
+
readonly createdTimestamp: string;
|
|
285
|
+
/** Consumer-facing description. */
|
|
286
|
+
readonly description: string;
|
|
287
|
+
/** Int64 game pass ID, serialized as a JSON number. */
|
|
288
|
+
readonly gamePassId: number;
|
|
289
|
+
/** Int64 icon asset ID; `0` signals the pass has no icon uploaded. */
|
|
290
|
+
readonly iconAssetId: number;
|
|
291
|
+
/** Whether the game pass is currently purchasable. */
|
|
292
|
+
readonly isForSale: boolean;
|
|
293
|
+
/** Pricing block; `undefined` when the schema returns null. */
|
|
294
|
+
readonly priceInformation: PriceInformationStructWire | undefined;
|
|
295
|
+
/** ISO timestamp of the most recent update (`date-time`). */
|
|
296
|
+
readonly updatedTimestamp: string;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Wire shape of `GamePasses.PriceInformationStruct`.
|
|
300
|
+
*/
|
|
301
|
+
type PriceInformationStructWire = PriceInformationLike<PricingFeatureWire>;
|
|
302
|
+
//#endregion
|
|
303
|
+
//#region tests/helpers/game-passes.d.ts
|
|
304
|
+
/**
|
|
305
|
+
* Builds a minimally-valid {@link GamePassConfigV2} wire body. Pass an
|
|
306
|
+
* `overrides` object to tweak individual fields while keeping everything
|
|
307
|
+
* else schema-compliant — useful for parser and integration tests that
|
|
308
|
+
* only care about one field at a time.
|
|
309
|
+
*
|
|
310
|
+
* @param overrides - Fields to override on the default body.
|
|
311
|
+
* @returns A valid wire body with the overrides applied.
|
|
312
|
+
*/
|
|
313
|
+
declare function validGamePassBody(overrides?: Partial<GamePassConfigV2>): GamePassConfigV2;
|
|
314
|
+
//#endregion
|
|
315
|
+
//#region src/domains/game-internationalization/game-thumbnails/wire.d.ts
|
|
316
|
+
/**
|
|
317
|
+
* Wire shape of `POST /v1/game-thumbnails/games/{gameId}/language-codes/{languageCode}/image`,
|
|
318
|
+
* mirroring `Roblox.GameInternationalization.Api.Models.Response.UploadImageForGameThumbnailResponse`.
|
|
319
|
+
*/
|
|
320
|
+
interface GameThumbnailUploadWire {
|
|
321
|
+
/** Stringified ID of the freshly uploaded thumbnail. */
|
|
322
|
+
readonly mediaAssetId: string;
|
|
323
|
+
}
|
|
324
|
+
//#endregion
|
|
325
|
+
//#region tests/helpers/game-thumbnails.d.ts
|
|
326
|
+
/**
|
|
327
|
+
* Builds a minimally-valid {@link GameThumbnailUploadWire} body. Pass an
|
|
328
|
+
* `overrides` object to tweak individual fields while keeping everything
|
|
329
|
+
* else schema-compliant; useful for parser and integration tests that
|
|
330
|
+
* only care about one field at a time.
|
|
331
|
+
*
|
|
332
|
+
* @param overrides - Fields to override on the default body.
|
|
333
|
+
* @returns A valid wire body with the overrides applied.
|
|
334
|
+
*/
|
|
335
|
+
declare function validThumbnailUploadBody(overrides?: Partial<GameThumbnailUploadWire>): GameThumbnailUploadWire;
|
|
336
|
+
//#endregion
|
|
337
|
+
//#region src/domains/cloud-v2/luau-execution-task-binary-inputs/wire.d.ts
|
|
338
|
+
/** Wire shape of the binary-input create response body. */
|
|
339
|
+
interface LuauExecutionTaskBinaryInputWire {
|
|
340
|
+
/** Resource path the server assigned to this binary input slot. */
|
|
341
|
+
readonly path: string;
|
|
342
|
+
/** Byte size echoed back from the request. */
|
|
343
|
+
readonly size?: number | undefined;
|
|
344
|
+
/** Presigned PUT URI the caller uses to upload the binary data. */
|
|
345
|
+
readonly uploadUri: string;
|
|
346
|
+
}
|
|
347
|
+
//#endregion
|
|
348
|
+
//#region tests/helpers/luau-execution-task-binary-inputs.d.ts
|
|
349
|
+
/**
|
|
350
|
+
* Builds a minimally-valid {@link LuauExecutionTaskBinaryInputWire} body
|
|
351
|
+
* for tests. Pass an `overrides` object to tweak fields without re-stating
|
|
352
|
+
* the defaults.
|
|
353
|
+
*
|
|
354
|
+
* @param overrides - Fields to override on the default body.
|
|
355
|
+
* @returns A valid wire body with the overrides applied.
|
|
356
|
+
*/
|
|
357
|
+
declare function validBinaryInputBody(overrides?: Partial<LuauExecutionTaskBinaryInputWire>): LuauExecutionTaskBinaryInputWire;
|
|
358
|
+
//#endregion
|
|
359
|
+
//#region src/domains/cloud-v2/luau-execution-task-logs/wire.d.ts
|
|
360
|
+
/**
|
|
361
|
+
* Wire shape of a single structured log message within a
|
|
362
|
+
* {@link LogChunkWire}. The `MESSAGE_TYPE_UNSPECIFIED` sentinel is
|
|
363
|
+
* deliberately excluded; the parser's type guard rejects it at the
|
|
364
|
+
* wire boundary so it never surfaces here.
|
|
365
|
+
*/
|
|
366
|
+
interface LogMessageWire {
|
|
367
|
+
/** ISO timestamp when the log message was produced. */
|
|
368
|
+
readonly createTime: string;
|
|
369
|
+
/** Human-readable log message text. */
|
|
370
|
+
readonly message: string;
|
|
371
|
+
/** Wire enum value for the message type. */
|
|
372
|
+
readonly messageType: "ERROR" | "INFO" | "OUTPUT" | "WARNING";
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Wire shape of a single log chunk returned by the Open Cloud
|
|
376
|
+
* list-logs endpoint. The `structuredMessages` array is populated
|
|
377
|
+
* when `view=STRUCTURED` is requested (which is always the case in
|
|
378
|
+
* this SDK). Other wire fields (`path`, FLAT-mode `messages`) exist
|
|
379
|
+
* on the schema but are not modelled here because they are not
|
|
380
|
+
* surfaced on the public `LogPage` type.
|
|
381
|
+
*/
|
|
382
|
+
interface LogChunkWire {
|
|
383
|
+
/**
|
|
384
|
+
* Structured log messages in this chunk. Optional on the wire;
|
|
385
|
+
* absent when the chunk has no messages.
|
|
386
|
+
*/
|
|
387
|
+
readonly structuredMessages?: ReadonlyArray<LogMessageWire> | undefined;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Wire shape of the list-luau-execution-task-logs response body. Both
|
|
391
|
+
* fields are optional per the OpenAPI spec
|
|
392
|
+
* (`ListLuauExecutionSessionTaskLogsResponse` has no `required` array);
|
|
393
|
+
* the parser also accepts JSON `null` on either field at the wire
|
|
394
|
+
* boundary and normalizes it to `undefined` / `[]`.
|
|
395
|
+
*/
|
|
396
|
+
interface ListLogsResponseWire {
|
|
397
|
+
/**
|
|
398
|
+
* Array of log chunks. Omitted or JSON `null` on an empty page; the
|
|
399
|
+
* parser normalizes both to an empty array.
|
|
400
|
+
*/
|
|
401
|
+
readonly luauExecutionSessionTaskLogs?: ReadonlyArray<LogChunkWire> | undefined;
|
|
402
|
+
/**
|
|
403
|
+
* Opaque continuation token for the next page. Absent or JSON
|
|
404
|
+
* `null` when this is the last page; the parser normalizes both to
|
|
405
|
+
* `undefined`.
|
|
406
|
+
*/
|
|
407
|
+
readonly nextPageToken?: string | undefined;
|
|
408
|
+
}
|
|
409
|
+
//#endregion
|
|
410
|
+
//#region tests/helpers/luau-execution-task-logs.d.ts
|
|
411
|
+
/**
|
|
412
|
+
* Builds a minimally-valid {@link ListLogsResponseWire} body containing
|
|
413
|
+
* one chunk with one structured message. Pass an `overrides` object to
|
|
414
|
+
* tweak fields without re-stating the defaults.
|
|
415
|
+
*
|
|
416
|
+
* @param overrides - Fields to override on the default body.
|
|
417
|
+
* @returns A valid wire body with the overrides applied.
|
|
418
|
+
*/
|
|
419
|
+
declare function validLogPageBody(overrides?: Partial<ListLogsResponseWire>): ListLogsResponseWire;
|
|
420
|
+
//#endregion
|
|
421
|
+
//#region src/domains/cloud-v2/luau-execution-tasks/wire.d.ts
|
|
422
|
+
/**
|
|
423
|
+
* Wire error payload for `FAILED` tasks. Carries the categorical
|
|
424
|
+
* `code` plus a human-readable `message`. The wire enum value
|
|
425
|
+
* `ERROR_CODE_UNSPECIFIED` is excluded here so a malformed sentinel
|
|
426
|
+
* response is rejected at validation time.
|
|
427
|
+
*/
|
|
428
|
+
interface LuauExecutionTaskErrorWire {
|
|
429
|
+
/** Categorical error code; `ERROR_CODE_UNSPECIFIED` is not represented. */
|
|
430
|
+
readonly code: "DEADLINE_EXCEEDED" | "INTERNAL_ERROR" | "OUTPUT_SIZE_LIMIT_EXCEEDED" | "SCRIPT_ERROR";
|
|
431
|
+
/** Human-readable error message. */
|
|
432
|
+
readonly message: string;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Wire output payload for `COMPLETE` tasks. Each entry of `results` is
|
|
436
|
+
* a Roblox-protobuf `Value` whose JSON projection is null, boolean,
|
|
437
|
+
* number, string, JSON array, or JSON object.
|
|
438
|
+
*/
|
|
439
|
+
interface LuauExecutionTaskOutputWire {
|
|
440
|
+
/** JSON projection of the script's `return` values, in order. */
|
|
441
|
+
readonly results: ReadonlyArray<JSONValue>;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Wire shape of the `LuauExecutionSessionTask` response body, narrowed
|
|
445
|
+
* to the fields the current parser slice accepts. View-controlled
|
|
446
|
+
* fields (`script`, `timeout`) are folded in by later slices when
|
|
447
|
+
* they're observed.
|
|
448
|
+
*/
|
|
449
|
+
interface LuauExecutionTaskWire {
|
|
450
|
+
/**
|
|
451
|
+
* Resource path of the binary input attached to this task, when
|
|
452
|
+
* one was supplied at submit time.
|
|
453
|
+
*/
|
|
454
|
+
readonly binaryInput?: string | undefined;
|
|
455
|
+
/**
|
|
456
|
+
* Pre-signed URI from which the binary output blob can be
|
|
457
|
+
* downloaded. Present only after a `COMPLETE` task whose
|
|
458
|
+
* `enableBinaryOutput` was `true`.
|
|
459
|
+
*/
|
|
460
|
+
readonly binaryOutputUri?: string | undefined;
|
|
461
|
+
/** ISO timestamp when the task was created; omitted from the create-task POST response. */
|
|
462
|
+
readonly createTime?: string | undefined;
|
|
463
|
+
/** When `true`, the server writes output to a binary blob. */
|
|
464
|
+
readonly enableBinaryOutput?: boolean | undefined;
|
|
465
|
+
/**
|
|
466
|
+
* Wire error payload. Present only for tasks in the `FAILED`
|
|
467
|
+
* state; absent for in-progress and `COMPLETE` states.
|
|
468
|
+
*/
|
|
469
|
+
readonly error?: LuauExecutionTaskErrorWire | undefined;
|
|
470
|
+
/**
|
|
471
|
+
* Wire output payload. Present only for tasks in the `COMPLETE`
|
|
472
|
+
* state; absent for in-progress and `FAILED` states.
|
|
473
|
+
*/
|
|
474
|
+
readonly output?: LuauExecutionTaskOutputWire | undefined;
|
|
475
|
+
/** Resource path; one of the four x-aep-resource path formats. */
|
|
476
|
+
readonly path: string;
|
|
477
|
+
/**
|
|
478
|
+
* Wire enum value, narrowed to the supported task states. The
|
|
479
|
+
* server-side `STATE_UNSPECIFIED` sentinel is excluded so the
|
|
480
|
+
* validator rejects it.
|
|
481
|
+
*/
|
|
482
|
+
readonly state: "CANCELLED" | "COMPLETE" | "FAILED" | "PROCESSING" | "QUEUED";
|
|
483
|
+
/**
|
|
484
|
+
* Server-side duration string in `"<n>s"` form. Optional; when
|
|
485
|
+
* absent, the server applies its 5-minute default.
|
|
486
|
+
*/
|
|
487
|
+
readonly timeout?: string | undefined;
|
|
488
|
+
/** ISO timestamp of the most recent state change; omitted from the create-task POST response. */
|
|
489
|
+
readonly updateTime?: string | undefined;
|
|
490
|
+
/** Identifier of the user that owns the API key used to create this task. */
|
|
491
|
+
readonly user: string;
|
|
492
|
+
}
|
|
493
|
+
//#endregion
|
|
494
|
+
//#region tests/helpers/luau-execution-tasks.d.ts
|
|
495
|
+
/**
|
|
496
|
+
* Builds a minimally-valid {@link LuauExecutionTaskWire} body for an
|
|
497
|
+
* in-progress task. Pass an `overrides` object to tweak fields without
|
|
498
|
+
* re-stating the defaults.
|
|
499
|
+
*
|
|
500
|
+
* @param overrides - Fields to override on the default body.
|
|
501
|
+
* @returns A valid wire body with the overrides applied.
|
|
502
|
+
*/
|
|
503
|
+
declare function validInProgressTaskBody(overrides?: Partial<LuauExecutionTaskWire>): LuauExecutionTaskWire;
|
|
504
|
+
//#endregion
|
|
505
|
+
//#region src/domains/cloud-v2/memory-store-queues/wire.d.ts
|
|
506
|
+
/**
|
|
507
|
+
* Wire shape of a `MemoryStoreQueueItem` resource: the response body
|
|
508
|
+
* returned by `Cloud_CreateMemoryStoreQueueItem` and the array entry
|
|
509
|
+
* inside `Cloud_ReadMemoryStoreQueueItems`. The server emits `path`,
|
|
510
|
+
* `data`, `expireTime`, and an optional `priority`. Top-level `data`
|
|
511
|
+
* is required server-side (the server returns 400 when absent or
|
|
512
|
+
* `null`); nested `null` inside `data` is preserved on round-trip.
|
|
513
|
+
*/
|
|
514
|
+
interface MemoryStoreQueueItemWire {
|
|
515
|
+
/** The opaque queue payload. Always non-null at the top level. */
|
|
516
|
+
readonly data: Exclude<JSONValue, null>;
|
|
517
|
+
/** ISO 8601 timestamp at which the item is removed from the queue. */
|
|
518
|
+
readonly expireTime: string;
|
|
519
|
+
/** Resource path: `cloud/v2/universes/{u}/memory-store/queues/{q}/items/{i}`. */
|
|
520
|
+
readonly path: string;
|
|
521
|
+
/** Optional priority; higher values are dequeued first. */
|
|
522
|
+
readonly priority?: number | undefined;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Wire shape of the `Cloud_ReadMemoryStoreQueueItems` response. The
|
|
526
|
+
* server emits the items array under `queueItems` (vendored schema
|
|
527
|
+
* names it `items`) and the read identifier under `id` (schema names
|
|
528
|
+
* it `readId`); both deviations are corrected by `apply-schema-patches`,
|
|
529
|
+
* so the wire interface here matches the patched schema.
|
|
530
|
+
*
|
|
531
|
+
* `queueItems` is optional per the OpenAPI spec
|
|
532
|
+
* (`ReadMemoryStoreQueueItemsResponse` has no `required` array); empty
|
|
533
|
+
* queues come back with the field omitted or JSON `null`. `id` is also
|
|
534
|
+
* spec-optional but the server always returns it for a 200 dequeue (it
|
|
535
|
+
* is the `:discard` token), so the parser requires it.
|
|
536
|
+
*/
|
|
537
|
+
interface ReadQueueItemsResponseWire {
|
|
538
|
+
/** Identifier of the read operation, passed back to `:discard`. */
|
|
539
|
+
readonly id: string;
|
|
540
|
+
/**
|
|
541
|
+
* Items at the front of the queue, in dequeue order. Omitted or
|
|
542
|
+
* JSON `null` on an empty queue; the parser normalizes both to an
|
|
543
|
+
* empty array.
|
|
544
|
+
*/
|
|
545
|
+
readonly queueItems?: ReadonlyArray<MemoryStoreQueueItemWire> | undefined;
|
|
546
|
+
}
|
|
547
|
+
//#endregion
|
|
548
|
+
//#region tests/helpers/memory-store-queues.d.ts
|
|
549
|
+
/**
|
|
550
|
+
* Builds a minimally-valid {@link MemoryStoreQueueItemWire} body. Pass
|
|
551
|
+
* an `overrides` object to tweak fields without re-stating the defaults.
|
|
552
|
+
*
|
|
553
|
+
* @param overrides - Fields to override on the default body.
|
|
554
|
+
* @returns A valid wire body with the overrides applied.
|
|
555
|
+
*/
|
|
556
|
+
declare function validQueueItemBody(overrides?: Partial<MemoryStoreQueueItemWire>): MemoryStoreQueueItemWire;
|
|
557
|
+
/**
|
|
558
|
+
* Builds a minimally-valid {@link ReadQueueItemsResponseWire} body
|
|
559
|
+
* carrying a single default queue item. Pass an `overrides` object to
|
|
560
|
+
* change the read identifier or supply a different items array.
|
|
561
|
+
*
|
|
562
|
+
* @param overrides - Fields to override on the default body.
|
|
563
|
+
* @returns A valid dequeue response body with the overrides applied.
|
|
564
|
+
*/
|
|
565
|
+
declare function validDequeueBody(overrides?: Partial<ReadQueueItemsResponseWire>): ReadQueueItemsResponseWire;
|
|
566
|
+
//#endregion
|
|
567
|
+
//#region src/domains/cloud-v2/places/wire.d.ts
|
|
568
|
+
/**
|
|
569
|
+
* Wire shape of the `Place` resource -- the response body returned by
|
|
570
|
+
* `Cloud_GetPlace` and `Cloud_UpdatePlace`. Genuinely optional fields
|
|
571
|
+
* are `T | undefined` so callers can simulate absence under
|
|
572
|
+
* `exactOptionalPropertyTypes`. The parser normalizes JSON `null`
|
|
573
|
+
* values to `undefined` at validation time so consumers only ever
|
|
574
|
+
* observe `undefined`.
|
|
575
|
+
*/
|
|
576
|
+
interface PlaceWire {
|
|
577
|
+
/** ISO timestamp when the place was created (`date-time`). */
|
|
578
|
+
readonly createTime: string;
|
|
579
|
+
/** Long-form description of the place. */
|
|
580
|
+
readonly description: string;
|
|
581
|
+
/** Human-facing name of the place. */
|
|
582
|
+
readonly displayName: string;
|
|
583
|
+
/** Resource path, e.g. `"universes/{uid}/places/{pid}"`. */
|
|
584
|
+
readonly path: string;
|
|
585
|
+
/** Whether this place is the universe's root place. */
|
|
586
|
+
readonly root?: boolean | undefined;
|
|
587
|
+
/** Maximum number of allowed users in a single server. */
|
|
588
|
+
readonly serverSize?: number | undefined;
|
|
589
|
+
/** Whether the place was created in-experience via `AssetService::CreatePlaceAsync()`. */
|
|
590
|
+
readonly universeRuntimeCreation?: boolean | undefined;
|
|
591
|
+
/** ISO timestamp of the most recent update (`date-time`). */
|
|
592
|
+
readonly updateTime: string;
|
|
593
|
+
}
|
|
594
|
+
//#endregion
|
|
595
|
+
//#region src/domains/universes/places/wire.d.ts
|
|
596
|
+
/**
|
|
597
|
+
* Wire shape of the publish-version success response body.
|
|
598
|
+
*/
|
|
599
|
+
interface PlaceVersionWire {
|
|
600
|
+
/** Auto-incrementing version number assigned by Roblox. */
|
|
601
|
+
readonly versionNumber: number;
|
|
602
|
+
}
|
|
603
|
+
//#endregion
|
|
604
|
+
//#region tests/helpers/places.d.ts
|
|
605
|
+
/**
|
|
606
|
+
* Returns a fresh, minimal `.rbxl`-formatted body whose magic bytes
|
|
607
|
+
* match {@link RBXL_SIGNATURE}. Useful when integration tests don't
|
|
608
|
+
* care about the file's contents past the signature.
|
|
609
|
+
*
|
|
610
|
+
* @returns A 14-byte rbxl body matching the binary signature.
|
|
611
|
+
*/
|
|
612
|
+
declare function rbxlBody(): Uint8Array<ArrayBuffer>;
|
|
613
|
+
/**
|
|
614
|
+
* Returns a fresh, minimal `.rbxlx`-formatted body whose magic bytes
|
|
615
|
+
* match {@link RBXLX_SIGNATURE}. Useful when integration tests don't
|
|
616
|
+
* care about the file's contents past the signature.
|
|
617
|
+
*
|
|
618
|
+
* @returns An 8-byte rbxlx body matching the XML signature.
|
|
619
|
+
*/
|
|
620
|
+
declare function rbxlxBody(): Uint8Array<ArrayBuffer>;
|
|
621
|
+
/**
|
|
622
|
+
* Builds a minimally-valid {@link PlaceVersionWire} body. Pass an
|
|
623
|
+
* `overrides` object to tweak fields without re-stating the defaults.
|
|
624
|
+
*
|
|
625
|
+
* @param overrides - Fields to override on the default body.
|
|
626
|
+
* @returns A valid wire body with the overrides applied.
|
|
627
|
+
*/
|
|
628
|
+
declare function validPublishResponseBody(overrides?: Partial<PlaceVersionWire>): PlaceVersionWire;
|
|
629
|
+
/**
|
|
630
|
+
* Builds a minimally-valid {@link PlaceWire} body. Pass an `overrides`
|
|
631
|
+
* object to tweak fields without re-stating the defaults.
|
|
632
|
+
*
|
|
633
|
+
* @param overrides - Fields to override on the default body.
|
|
634
|
+
* @returns A valid wire body with the overrides applied.
|
|
635
|
+
*/
|
|
636
|
+
declare function validPlaceBody(overrides?: Partial<PlaceWire>): PlaceWire;
|
|
637
|
+
//#endregion
|
|
638
|
+
//#region src/domains/cloud-v2/universes/wire.d.ts
|
|
639
|
+
/**
|
|
640
|
+
* Wire-level visibility enum, mirroring the `visibility` field of the
|
|
641
|
+
* `Universe` schema.
|
|
642
|
+
*/
|
|
643
|
+
type VisibilityWire = "PRIVATE" | "PUBLIC" | "VISIBILITY_UNSPECIFIED";
|
|
644
|
+
/**
|
|
645
|
+
* Wire-level age-rating enum, mirroring the `ageRating` field of the
|
|
646
|
+
* `Universe` schema.
|
|
647
|
+
*/
|
|
648
|
+
type AgeRatingWire = "AGE_RATING_9_PLUS" | "AGE_RATING_13_PLUS" | "AGE_RATING_17_PLUS" | "AGE_RATING_ALL" | "AGE_RATING_UNSPECIFIED";
|
|
649
|
+
/**
|
|
650
|
+
* Wire shape of `Universe_SocialLink`.
|
|
651
|
+
*/
|
|
652
|
+
interface SocialLinkWire {
|
|
653
|
+
/** Display title for the link. */
|
|
654
|
+
readonly title: string;
|
|
655
|
+
/** Destination URI. */
|
|
656
|
+
readonly uri: string;
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* Wire shape of the `Universe` resource -- the response body returned
|
|
660
|
+
* by both `Cloud_GetUniverse` and `Cloud_UpdateUniverse`. Genuinely
|
|
661
|
+
* optional fields are `T | undefined` (rather than `T`) so callers
|
|
662
|
+
* can simulate absence by setting a field to `undefined` under
|
|
663
|
+
* `exactOptionalPropertyTypes`.
|
|
664
|
+
*/
|
|
665
|
+
interface UniverseWire {
|
|
666
|
+
/** Age-rating classification. */
|
|
667
|
+
readonly ageRating: AgeRatingWire;
|
|
668
|
+
/** Whether console players can join. */
|
|
669
|
+
readonly consoleEnabled?: boolean | undefined;
|
|
670
|
+
/** ISO timestamp when the universe was created (`date-time`). */
|
|
671
|
+
readonly createTime: string;
|
|
672
|
+
/** Description, derived from the root place's description. */
|
|
673
|
+
readonly description: string;
|
|
674
|
+
/** Whether desktop players can join. */
|
|
675
|
+
readonly desktopEnabled?: boolean | undefined;
|
|
676
|
+
/** Discord social link block. */
|
|
677
|
+
readonly discordSocialLink?: SocialLinkWire | undefined;
|
|
678
|
+
/** Display name, derived from the root place's name. */
|
|
679
|
+
readonly displayName: string;
|
|
680
|
+
/** Facebook social link block. */
|
|
681
|
+
readonly facebookSocialLink?: SocialLinkWire | undefined;
|
|
682
|
+
/** Group-owner resource path when the universe is group-owned. */
|
|
683
|
+
readonly group?: string | undefined;
|
|
684
|
+
/** Guilded social link block. */
|
|
685
|
+
readonly guildedSocialLink?: SocialLinkWire | undefined;
|
|
686
|
+
/** Whether mobile players can join. */
|
|
687
|
+
readonly mobileEnabled?: boolean | undefined;
|
|
688
|
+
/** Resource path, e.g. `"universes/{id}"`. */
|
|
689
|
+
readonly path: string;
|
|
690
|
+
/** Private server price in Robux; absent when private servers are disabled. */
|
|
691
|
+
readonly privateServerPriceRobux?: number | undefined;
|
|
692
|
+
/** Roblox Group social link block. */
|
|
693
|
+
readonly robloxGroupSocialLink?: SocialLinkWire | undefined;
|
|
694
|
+
/** Root place resource path, e.g. `"universes/{id}/places/{pid}"`. */
|
|
695
|
+
readonly rootPlace?: string | undefined;
|
|
696
|
+
/** Whether tablet players can join. */
|
|
697
|
+
readonly tabletEnabled?: boolean | undefined;
|
|
698
|
+
/** Twitch social link block. */
|
|
699
|
+
readonly twitchSocialLink?: SocialLinkWire | undefined;
|
|
700
|
+
/** Twitter social link block. */
|
|
701
|
+
readonly twitterSocialLink?: SocialLinkWire | undefined;
|
|
702
|
+
/** ISO timestamp of the most recent update (`date-time`). */
|
|
703
|
+
readonly updateTime: string;
|
|
704
|
+
/** User-owner resource path when the universe is user-owned. */
|
|
705
|
+
readonly user?: string | undefined;
|
|
706
|
+
/** Current visibility of the universe. */
|
|
707
|
+
readonly visibility: VisibilityWire;
|
|
708
|
+
/** Whether voice chat is enabled. */
|
|
709
|
+
readonly voiceChatEnabled?: boolean | undefined;
|
|
710
|
+
/** Whether VR players can join. */
|
|
711
|
+
readonly vrEnabled?: boolean | undefined;
|
|
712
|
+
/** Youtube social link block. */
|
|
713
|
+
readonly youtubeSocialLink?: SocialLinkWire | undefined;
|
|
714
|
+
}
|
|
715
|
+
//#endregion
|
|
716
|
+
//#region tests/helpers/universes.d.ts
|
|
717
|
+
/**
|
|
718
|
+
* Builds a minimally-valid {@link UniverseWire} body. Pass an
|
|
719
|
+
* `overrides` object to tweak fields without re-stating the defaults.
|
|
720
|
+
*
|
|
721
|
+
* @param overrides - Fields to override on the default body.
|
|
722
|
+
* @returns A valid wire body with the overrides applied.
|
|
723
|
+
*/
|
|
724
|
+
declare function validUniverseBody(overrides?: Partial<UniverseWire>): UniverseWire;
|
|
725
|
+
//#endregion
|
|
726
|
+
export { type CapturedRequest, type FakeHttpClient, FakeHttpClientError, type FakeSend, type FakeSleep, type SendFunc, createFakeHttpClient, createFakeSend, createFakeSleep, rbxlBody, rbxlxBody, validBadgeBody, validBinaryInputBody, validDequeueBody, validDeveloperProductBody, validGamePassBody, validIconListBody, validInProgressTaskBody, validLocalizedIcon, validLogPageBody, validPlaceBody, validPublishResponseBody, validQueueItemBody, validThumbnailUploadBody, validUniverseBody };
|
|
727
|
+
//# sourceMappingURL=testing.d.mts.map
|