@rivetkit/engine-api-full 0.0.0-main.31c444e

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 (274) hide show
  1. package/dist/browser/cjs/core.js +2338 -0
  2. package/dist/browser/cjs/index.js +4514 -0
  3. package/dist/browser/cjs/serialization.js +1995 -0
  4. package/dist/browser/esm/core.js +2312 -0
  5. package/dist/browser/esm/index.js +4488 -0
  6. package/dist/browser/esm/serialization.js +1968 -0
  7. package/dist/node/cjs/core.js +2353 -0
  8. package/dist/node/cjs/index.js +4527 -0
  9. package/dist/node/cjs/serialization.js +2064 -0
  10. package/dist/node/esm/core.js +2317 -0
  11. package/dist/node/esm/index.js +4493 -0
  12. package/dist/node/esm/serialization.js +1969 -0
  13. package/package.json +68 -0
  14. package/types/Client.d.ts +281 -0
  15. package/types/api/client/index.d.ts +1 -0
  16. package/types/api/client/requests/ActorsCreateRequest.d.ts +23 -0
  17. package/types/api/client/requests/ActorsDeleteRequest.d.ts +12 -0
  18. package/types/api/client/requests/ActorsGetOrCreateRequest.d.ts +23 -0
  19. package/types/api/client/requests/ActorsKvGetRequest.d.ts +12 -0
  20. package/types/api/client/requests/ActorsListNamesRequest.d.ts +14 -0
  21. package/types/api/client/requests/ActorsListRequest.d.ts +23 -0
  22. package/types/api/client/requests/ActorsRescheduleRequest.d.ts +17 -0
  23. package/types/api/client/requests/ActorsSleepRequest.d.ts +17 -0
  24. package/types/api/client/requests/RunnerConfigsDeleteRequest.d.ts +12 -0
  25. package/types/api/client/requests/RunnerConfigsListRequest.d.ts +21 -0
  26. package/types/api/client/requests/RunnerConfigsRefreshMetadataRequest.d.ts +17 -0
  27. package/types/api/client/requests/RunnerConfigsServerlessHealthCheckRequest.d.ts +15 -0
  28. package/types/api/client/requests/RunnerConfigsUpsertRequestBody.d.ts +17 -0
  29. package/types/api/client/requests/index.d.ts +13 -0
  30. package/types/api/index.d.ts +3 -0
  31. package/types/api/resources/datacenters/client/Client.d.ts +36 -0
  32. package/types/api/resources/datacenters/client/index.d.ts +1 -0
  33. package/types/api/resources/datacenters/index.d.ts +1 -0
  34. package/types/api/resources/envoys/client/Client.d.ts +39 -0
  35. package/types/api/resources/envoys/client/index.d.ts +1 -0
  36. package/types/api/resources/envoys/client/requests/EnvoysListRequest.d.ts +16 -0
  37. package/types/api/resources/envoys/client/requests/index.d.ts +1 -0
  38. package/types/api/resources/envoys/index.d.ts +1 -0
  39. package/types/api/resources/health/client/Client.d.ts +36 -0
  40. package/types/api/resources/health/client/index.d.ts +1 -0
  41. package/types/api/resources/health/index.d.ts +1 -0
  42. package/types/api/resources/index.d.ts +9 -0
  43. package/types/api/resources/metadata/client/Client.d.ts +36 -0
  44. package/types/api/resources/metadata/client/index.d.ts +1 -0
  45. package/types/api/resources/metadata/index.d.ts +1 -0
  46. package/types/api/resources/namespaces/client/Client.d.ts +48 -0
  47. package/types/api/resources/namespaces/client/index.d.ts +1 -0
  48. package/types/api/resources/namespaces/client/requests/NamespacesCreateRequest.d.ts +14 -0
  49. package/types/api/resources/namespaces/client/requests/NamespacesListRequest.d.ts +18 -0
  50. package/types/api/resources/namespaces/client/requests/index.d.ts +2 -0
  51. package/types/api/resources/namespaces/index.d.ts +1 -0
  52. package/types/api/resources/runners/client/Client.d.ts +54 -0
  53. package/types/api/resources/runners/client/index.d.ts +1 -0
  54. package/types/api/resources/runners/client/requests/RunnersListNamesRequest.d.ts +14 -0
  55. package/types/api/resources/runners/client/requests/RunnersListRequest.d.ts +22 -0
  56. package/types/api/resources/runners/client/requests/index.d.ts +2 -0
  57. package/types/api/resources/runners/index.d.ts +1 -0
  58. package/types/api/types/Actor.d.ts +32 -0
  59. package/types/api/types/ActorName.d.ts +6 -0
  60. package/types/api/types/ActorsCreateResponse.d.ts +7 -0
  61. package/types/api/types/ActorsDeleteResponse.d.ts +4 -0
  62. package/types/api/types/ActorsGetOrCreateResponse.d.ts +8 -0
  63. package/types/api/types/ActorsKvGetResponse.d.ts +7 -0
  64. package/types/api/types/ActorsListNamesResponse.d.ts +8 -0
  65. package/types/api/types/ActorsListResponse.d.ts +8 -0
  66. package/types/api/types/ActorsRescheduleRequestBody.d.ts +4 -0
  67. package/types/api/types/ActorsRescheduleResponse.d.ts +4 -0
  68. package/types/api/types/ActorsSleepRequestBody.d.ts +4 -0
  69. package/types/api/types/ActorsSleepResponse.d.ts +4 -0
  70. package/types/api/types/CrashPolicy.d.ts +9 -0
  71. package/types/api/types/Datacenter.d.ts +8 -0
  72. package/types/api/types/DatacenterHealth.d.ts +12 -0
  73. package/types/api/types/DatacentersListResponse.d.ts +8 -0
  74. package/types/api/types/Envoy.d.ts +18 -0
  75. package/types/api/types/EnvoysListResponse.d.ts +8 -0
  76. package/types/api/types/HealthFanoutResponse.d.ts +7 -0
  77. package/types/api/types/HealthResponse.d.ts +8 -0
  78. package/types/api/types/HealthStatus.d.ts +8 -0
  79. package/types/api/types/MetadataGetResponse.d.ts +13 -0
  80. package/types/api/types/Namespace.d.ts +10 -0
  81. package/types/api/types/NamespaceListResponse.d.ts +8 -0
  82. package/types/api/types/NamespacesCreateResponse.d.ts +7 -0
  83. package/types/api/types/Pagination.d.ts +6 -0
  84. package/types/api/types/RivetId.d.ts +4 -0
  85. package/types/api/types/Runner.d.ts +21 -0
  86. package/types/api/types/RunnerConfig.d.ts +10 -0
  87. package/types/api/types/RunnerConfigKind.d.ts +5 -0
  88. package/types/api/types/RunnerConfigKindNormal.d.ts +6 -0
  89. package/types/api/types/RunnerConfigKindServerless.d.ts +7 -0
  90. package/types/api/types/RunnerConfigKindServerlessServerless.d.ts +16 -0
  91. package/types/api/types/RunnerConfigResponse.d.ts +7 -0
  92. package/types/api/types/RunnerConfigServerless.d.ts +16 -0
  93. package/types/api/types/RunnerConfigVariant.d.ts +8 -0
  94. package/types/api/types/RunnerConfigsDeleteResponse.d.ts +4 -0
  95. package/types/api/types/RunnerConfigsListResponse.d.ts +8 -0
  96. package/types/api/types/RunnerConfigsListResponseRunnerConfigsValue.d.ts +7 -0
  97. package/types/api/types/RunnerConfigsRefreshMetadataRequestBody.d.ts +4 -0
  98. package/types/api/types/RunnerConfigsRefreshMetadataResponse.d.ts +4 -0
  99. package/types/api/types/RunnerConfigsServerlessHealthCheckResponse.d.ts +5 -0
  100. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseFailure.d.ts +7 -0
  101. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.d.ts +7 -0
  102. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseSuccess.d.ts +7 -0
  103. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.d.ts +6 -0
  104. package/types/api/types/RunnerConfigsServerlessMetadataError.d.ts +5 -0
  105. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.d.ts +6 -0
  106. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.d.ts +7 -0
  107. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.d.ts +6 -0
  108. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.d.ts +7 -0
  109. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.d.ts +7 -0
  110. package/types/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.d.ts +7 -0
  111. package/types/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.d.ts +7 -0
  112. package/types/api/types/RunnerConfigsServerlessMetadataErrorRequestFailed.d.ts +6 -0
  113. package/types/api/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.d.ts +6 -0
  114. package/types/api/types/RunnerConfigsUpsertResponse.d.ts +6 -0
  115. package/types/api/types/RunnersListNamesResponse.d.ts +8 -0
  116. package/types/api/types/RunnersListResponse.d.ts +8 -0
  117. package/types/api/types/index.d.ts +59 -0
  118. package/types/core/auth/BasicAuth.d.ts +8 -0
  119. package/types/core/auth/BearerToken.d.ts +5 -0
  120. package/types/core/auth/index.d.ts +2 -0
  121. package/types/core/fetcher/APIResponse.d.ts +10 -0
  122. package/types/core/fetcher/Fetcher.d.ts +39 -0
  123. package/types/core/fetcher/Supplier.d.ts +4 -0
  124. package/types/core/fetcher/createRequestUrl.d.ts +1 -0
  125. package/types/core/fetcher/getFetchFn.d.ts +4 -0
  126. package/types/core/fetcher/getHeader.d.ts +1 -0
  127. package/types/core/fetcher/getRequestBody.d.ts +7 -0
  128. package/types/core/fetcher/getResponseBody.d.ts +1 -0
  129. package/types/core/fetcher/index.d.ts +5 -0
  130. package/types/core/fetcher/makeRequest.d.ts +1 -0
  131. package/types/core/fetcher/requestWithRetries.d.ts +1 -0
  132. package/types/core/fetcher/signals.d.ts +11 -0
  133. package/types/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.d.ts +30 -0
  134. package/types/core/fetcher/stream-wrappers/NodePre18StreamWrapper.d.ts +21 -0
  135. package/types/core/fetcher/stream-wrappers/UndiciStreamWrapper.d.ts +31 -0
  136. package/types/core/fetcher/stream-wrappers/chooseStreamWrapper.d.ts +18 -0
  137. package/types/core/index.d.ts +4 -0
  138. package/types/core/json.d.ts +15 -0
  139. package/types/core/runtime/index.d.ts +1 -0
  140. package/types/core/runtime/runtime.d.ts +9 -0
  141. package/types/core/schemas/Schema.d.ts +87 -0
  142. package/types/core/schemas/builders/bigint/bigint.d.ts +2 -0
  143. package/types/core/schemas/builders/bigint/index.d.ts +1 -0
  144. package/types/core/schemas/builders/date/date.d.ts +2 -0
  145. package/types/core/schemas/builders/date/index.d.ts +1 -0
  146. package/types/core/schemas/builders/enum/enum.d.ts +2 -0
  147. package/types/core/schemas/builders/enum/index.d.ts +1 -0
  148. package/types/core/schemas/builders/index.d.ts +14 -0
  149. package/types/core/schemas/builders/lazy/index.d.ts +3 -0
  150. package/types/core/schemas/builders/lazy/lazy.d.ts +5 -0
  151. package/types/core/schemas/builders/lazy/lazyObject.d.ts +3 -0
  152. package/types/core/schemas/builders/list/index.d.ts +1 -0
  153. package/types/core/schemas/builders/list/list.d.ts +2 -0
  154. package/types/core/schemas/builders/literals/booleanLiteral.d.ts +2 -0
  155. package/types/core/schemas/builders/literals/index.d.ts +2 -0
  156. package/types/core/schemas/builders/literals/stringLiteral.d.ts +2 -0
  157. package/types/core/schemas/builders/object/index.d.ts +6 -0
  158. package/types/core/schemas/builders/object/object.d.ts +3 -0
  159. package/types/core/schemas/builders/object/objectWithoutOptionalProperties.d.ts +6 -0
  160. package/types/core/schemas/builders/object/property.d.ts +8 -0
  161. package/types/core/schemas/builders/object/types.d.ts +31 -0
  162. package/types/core/schemas/builders/object-like/getObjectLikeUtils.d.ts +9 -0
  163. package/types/core/schemas/builders/object-like/index.d.ts +2 -0
  164. package/types/core/schemas/builders/object-like/types.d.ts +7 -0
  165. package/types/core/schemas/builders/primitives/any.d.ts +1 -0
  166. package/types/core/schemas/builders/primitives/boolean.d.ts +1 -0
  167. package/types/core/schemas/builders/primitives/index.d.ts +5 -0
  168. package/types/core/schemas/builders/primitives/number.d.ts +1 -0
  169. package/types/core/schemas/builders/primitives/string.d.ts +1 -0
  170. package/types/core/schemas/builders/primitives/unknown.d.ts +1 -0
  171. package/types/core/schemas/builders/record/index.d.ts +2 -0
  172. package/types/core/schemas/builders/record/record.d.ts +3 -0
  173. package/types/core/schemas/builders/record/types.d.ts +4 -0
  174. package/types/core/schemas/builders/schema-utils/JsonError.d.ts +5 -0
  175. package/types/core/schemas/builders/schema-utils/ParseError.d.ts +5 -0
  176. package/types/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +21 -0
  177. package/types/core/schemas/builders/schema-utils/index.d.ts +4 -0
  178. package/types/core/schemas/builders/schema-utils/stringifyValidationErrors.d.ts +2 -0
  179. package/types/core/schemas/builders/set/index.d.ts +1 -0
  180. package/types/core/schemas/builders/set/set.d.ts +2 -0
  181. package/types/core/schemas/builders/undiscriminated-union/index.d.ts +2 -0
  182. package/types/core/schemas/builders/undiscriminated-union/types.d.ts +4 -0
  183. package/types/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.d.ts +3 -0
  184. package/types/core/schemas/builders/union/discriminant.d.ts +5 -0
  185. package/types/core/schemas/builders/union/index.d.ts +4 -0
  186. package/types/core/schemas/builders/union/types.d.ts +13 -0
  187. package/types/core/schemas/builders/union/union.d.ts +4 -0
  188. package/types/core/schemas/index.d.ts +2 -0
  189. package/types/core/schemas/utils/MaybePromise.d.ts +1 -0
  190. package/types/core/schemas/utils/addQuestionMarksToNullableProperties.d.ts +7 -0
  191. package/types/core/schemas/utils/createIdentitySchemaCreator.d.ts +2 -0
  192. package/types/core/schemas/utils/entries.d.ts +1 -0
  193. package/types/core/schemas/utils/filterObject.d.ts +1 -0
  194. package/types/core/schemas/utils/getErrorMessageForIncorrectType.d.ts +1 -0
  195. package/types/core/schemas/utils/isPlainObject.d.ts +1 -0
  196. package/types/core/schemas/utils/keys.d.ts +1 -0
  197. package/types/core/schemas/utils/maybeSkipValidation.d.ts +2 -0
  198. package/types/core/schemas/utils/partition.d.ts +1 -0
  199. package/types/errors/RivetError.d.ts +12 -0
  200. package/types/errors/RivetTimeoutError.d.ts +6 -0
  201. package/types/errors/index.d.ts +2 -0
  202. package/types/index.d.ts +4 -0
  203. package/types/serialization/client/index.d.ts +1 -0
  204. package/types/serialization/client/requests/ActorsCreateRequest.d.ts +18 -0
  205. package/types/serialization/client/requests/ActorsGetOrCreateRequest.d.ts +18 -0
  206. package/types/serialization/client/requests/RunnerConfigsServerlessHealthCheckRequest.d.ts +13 -0
  207. package/types/serialization/client/requests/RunnerConfigsUpsertRequestBody.d.ts +13 -0
  208. package/types/serialization/client/requests/index.d.ts +4 -0
  209. package/types/serialization/index.d.ts +3 -0
  210. package/types/serialization/resources/index.d.ts +2 -0
  211. package/types/serialization/resources/namespaces/client/index.d.ts +1 -0
  212. package/types/serialization/resources/namespaces/client/requests/NamespacesCreateRequest.d.ts +13 -0
  213. package/types/serialization/resources/namespaces/client/requests/index.d.ts +1 -0
  214. package/types/serialization/resources/namespaces/index.d.ts +1 -0
  215. package/types/serialization/types/Actor.d.ts +28 -0
  216. package/types/serialization/types/ActorName.d.ts +12 -0
  217. package/types/serialization/types/ActorsCreateResponse.d.ts +13 -0
  218. package/types/serialization/types/ActorsDeleteResponse.d.ts +10 -0
  219. package/types/serialization/types/ActorsGetOrCreateResponse.d.ts +14 -0
  220. package/types/serialization/types/ActorsKvGetResponse.d.ts +13 -0
  221. package/types/serialization/types/ActorsListNamesResponse.d.ts +15 -0
  222. package/types/serialization/types/ActorsListResponse.d.ts +15 -0
  223. package/types/serialization/types/ActorsRescheduleRequestBody.d.ts +10 -0
  224. package/types/serialization/types/ActorsRescheduleResponse.d.ts +10 -0
  225. package/types/serialization/types/ActorsSleepRequestBody.d.ts +10 -0
  226. package/types/serialization/types/ActorsSleepResponse.d.ts +10 -0
  227. package/types/serialization/types/CrashPolicy.d.ts +10 -0
  228. package/types/serialization/types/Datacenter.d.ts +14 -0
  229. package/types/serialization/types/DatacenterHealth.d.ts +19 -0
  230. package/types/serialization/types/DatacentersListResponse.d.ts +15 -0
  231. package/types/serialization/types/Envoy.d.ts +24 -0
  232. package/types/serialization/types/EnvoysListResponse.d.ts +15 -0
  233. package/types/serialization/types/HealthFanoutResponse.d.ts +13 -0
  234. package/types/serialization/types/HealthResponse.d.ts +14 -0
  235. package/types/serialization/types/HealthStatus.d.ts +10 -0
  236. package/types/serialization/types/MetadataGetResponse.d.ts +19 -0
  237. package/types/serialization/types/Namespace.d.ts +16 -0
  238. package/types/serialization/types/NamespaceListResponse.d.ts +15 -0
  239. package/types/serialization/types/NamespacesCreateResponse.d.ts +13 -0
  240. package/types/serialization/types/Pagination.d.ts +12 -0
  241. package/types/serialization/types/RivetId.d.ts +10 -0
  242. package/types/serialization/types/Runner.d.ts +27 -0
  243. package/types/serialization/types/RunnerConfig.d.ts +16 -0
  244. package/types/serialization/types/RunnerConfigKind.d.ts +12 -0
  245. package/types/serialization/types/RunnerConfigKindNormal.d.ts +12 -0
  246. package/types/serialization/types/RunnerConfigKindServerless.d.ts +13 -0
  247. package/types/serialization/types/RunnerConfigKindServerlessServerless.d.ts +20 -0
  248. package/types/serialization/types/RunnerConfigResponse.d.ts +13 -0
  249. package/types/serialization/types/RunnerConfigServerless.d.ts +20 -0
  250. package/types/serialization/types/RunnerConfigVariant.d.ts +10 -0
  251. package/types/serialization/types/RunnerConfigsDeleteResponse.d.ts +10 -0
  252. package/types/serialization/types/RunnerConfigsListResponse.d.ts +15 -0
  253. package/types/serialization/types/RunnerConfigsListResponseRunnerConfigsValue.d.ts +13 -0
  254. package/types/serialization/types/RunnerConfigsRefreshMetadataRequestBody.d.ts +10 -0
  255. package/types/serialization/types/RunnerConfigsRefreshMetadataResponse.d.ts +10 -0
  256. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponse.d.ts +12 -0
  257. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailure.d.ts +13 -0
  258. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.d.ts +13 -0
  259. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccess.d.ts +13 -0
  260. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.d.ts +12 -0
  261. package/types/serialization/types/RunnerConfigsServerlessMetadataError.d.ts +16 -0
  262. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.d.ts +12 -0
  263. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.d.ts +13 -0
  264. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.d.ts +12 -0
  265. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.d.ts +13 -0
  266. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.d.ts +13 -0
  267. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.d.ts +13 -0
  268. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.d.ts +13 -0
  269. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorRequestFailed.d.ts +12 -0
  270. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.d.ts +12 -0
  271. package/types/serialization/types/RunnerConfigsUpsertResponse.d.ts +12 -0
  272. package/types/serialization/types/RunnersListNamesResponse.d.ts +14 -0
  273. package/types/serialization/types/RunnersListResponse.d.ts +15 -0
  274. package/types/serialization/types/index.d.ts +59 -0
@@ -0,0 +1,4488 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res) => function __init() {
4
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
+ };
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+
11
+ // src/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts
12
+ var Node18UniversalStreamWrapper_exports = {};
13
+ __export(Node18UniversalStreamWrapper_exports, {
14
+ Node18UniversalStreamWrapper: () => Node18UniversalStreamWrapper
15
+ });
16
+ var Node18UniversalStreamWrapper;
17
+ var init_Node18UniversalStreamWrapper = __esm({
18
+ "src/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts"() {
19
+ "use strict";
20
+ Node18UniversalStreamWrapper = class _Node18UniversalStreamWrapper {
21
+ readableStream;
22
+ reader;
23
+ events;
24
+ paused;
25
+ resumeCallback;
26
+ encoding;
27
+ constructor(readableStream) {
28
+ this.readableStream = readableStream;
29
+ this.reader = this.readableStream.getReader();
30
+ this.events = {
31
+ data: [],
32
+ end: [],
33
+ error: [],
34
+ readable: [],
35
+ close: [],
36
+ pause: [],
37
+ resume: []
38
+ };
39
+ this.paused = false;
40
+ this.resumeCallback = null;
41
+ this.encoding = null;
42
+ }
43
+ on(event, callback) {
44
+ this.events[event]?.push(callback);
45
+ }
46
+ off(event, callback) {
47
+ this.events[event] = this.events[event]?.filter((cb) => cb !== callback);
48
+ }
49
+ pipe(dest) {
50
+ this.on("data", async (chunk) => {
51
+ if (dest instanceof _Node18UniversalStreamWrapper) {
52
+ dest._write(chunk);
53
+ } else if (dest instanceof WritableStream) {
54
+ const writer = dest.getWriter();
55
+ writer.write(chunk).then(() => writer.releaseLock());
56
+ } else {
57
+ dest.write(chunk);
58
+ }
59
+ });
60
+ this.on("end", async () => {
61
+ if (dest instanceof _Node18UniversalStreamWrapper) {
62
+ dest._end();
63
+ } else if (dest instanceof WritableStream) {
64
+ const writer = dest.getWriter();
65
+ writer.close();
66
+ } else {
67
+ dest.end();
68
+ }
69
+ });
70
+ this.on("error", async (error) => {
71
+ if (dest instanceof _Node18UniversalStreamWrapper) {
72
+ dest._error(error);
73
+ } else if (dest instanceof WritableStream) {
74
+ const writer = dest.getWriter();
75
+ writer.abort(error);
76
+ } else {
77
+ dest.destroy(error);
78
+ }
79
+ });
80
+ this._startReading();
81
+ return dest;
82
+ }
83
+ pipeTo(dest) {
84
+ return this.pipe(dest);
85
+ }
86
+ unpipe(dest) {
87
+ this.off("data", async (chunk) => {
88
+ if (dest instanceof _Node18UniversalStreamWrapper) {
89
+ dest._write(chunk);
90
+ } else if (dest instanceof WritableStream) {
91
+ const writer = dest.getWriter();
92
+ writer.write(chunk).then(() => writer.releaseLock());
93
+ } else {
94
+ dest.write(chunk);
95
+ }
96
+ });
97
+ this.off("end", async () => {
98
+ if (dest instanceof _Node18UniversalStreamWrapper) {
99
+ dest._end();
100
+ } else if (dest instanceof WritableStream) {
101
+ const writer = dest.getWriter();
102
+ writer.close();
103
+ } else {
104
+ dest.end();
105
+ }
106
+ });
107
+ this.off("error", async (error) => {
108
+ if (dest instanceof _Node18UniversalStreamWrapper) {
109
+ dest._error(error);
110
+ } else if (dest instanceof WritableStream) {
111
+ const writer = dest.getWriter();
112
+ writer.abort(error);
113
+ } else {
114
+ dest.destroy(error);
115
+ }
116
+ });
117
+ }
118
+ destroy(error) {
119
+ this.reader.cancel(error).then(() => {
120
+ this._emit("close");
121
+ }).catch((err) => {
122
+ this._emit("error", err);
123
+ });
124
+ }
125
+ pause() {
126
+ this.paused = true;
127
+ this._emit("pause");
128
+ }
129
+ resume() {
130
+ if (this.paused) {
131
+ this.paused = false;
132
+ this._emit("resume");
133
+ if (this.resumeCallback) {
134
+ this.resumeCallback();
135
+ this.resumeCallback = null;
136
+ }
137
+ }
138
+ }
139
+ get isPaused() {
140
+ return this.paused;
141
+ }
142
+ async read() {
143
+ if (this.paused) {
144
+ await new Promise((resolve) => {
145
+ this.resumeCallback = resolve;
146
+ });
147
+ }
148
+ const { done, value } = await this.reader.read();
149
+ if (done) {
150
+ return void 0;
151
+ }
152
+ return value;
153
+ }
154
+ setEncoding(encoding) {
155
+ this.encoding = encoding;
156
+ }
157
+ async text() {
158
+ const chunks = [];
159
+ while (true) {
160
+ const { done, value } = await this.reader.read();
161
+ if (done) {
162
+ break;
163
+ }
164
+ if (value) {
165
+ chunks.push(value);
166
+ }
167
+ }
168
+ const decoder = new TextDecoder(this.encoding || "utf-8");
169
+ return decoder.decode(await new Blob(chunks).arrayBuffer());
170
+ }
171
+ async json() {
172
+ const text = await this.text();
173
+ return JSON.parse(text);
174
+ }
175
+ _write(chunk) {
176
+ this._emit("data", chunk);
177
+ }
178
+ _end() {
179
+ this._emit("end");
180
+ }
181
+ _error(error) {
182
+ this._emit("error", error);
183
+ }
184
+ _emit(event, data) {
185
+ if (this.events[event]) {
186
+ for (const callback of this.events[event] || []) {
187
+ callback(data);
188
+ }
189
+ }
190
+ }
191
+ async _startReading() {
192
+ try {
193
+ this._emit("readable");
194
+ while (true) {
195
+ if (this.paused) {
196
+ await new Promise((resolve) => {
197
+ this.resumeCallback = resolve;
198
+ });
199
+ }
200
+ const { done, value } = await this.reader.read();
201
+ if (done) {
202
+ this._emit("end");
203
+ this._emit("close");
204
+ break;
205
+ }
206
+ if (value) {
207
+ this._emit("data", value);
208
+ }
209
+ }
210
+ } catch (error) {
211
+ this._emit("error", error);
212
+ }
213
+ }
214
+ [Symbol.asyncIterator]() {
215
+ return {
216
+ next: async () => {
217
+ if (this.paused) {
218
+ await new Promise((resolve) => {
219
+ this.resumeCallback = resolve;
220
+ });
221
+ }
222
+ const { done, value } = await this.reader.read();
223
+ if (done) {
224
+ return { done: true, value: void 0 };
225
+ }
226
+ return { done: false, value };
227
+ },
228
+ [Symbol.asyncIterator]() {
229
+ return this;
230
+ }
231
+ };
232
+ }
233
+ };
234
+ }
235
+ });
236
+
237
+ // src/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts
238
+ var UndiciStreamWrapper_exports = {};
239
+ __export(UndiciStreamWrapper_exports, {
240
+ UndiciStreamWrapper: () => UndiciStreamWrapper
241
+ });
242
+ var UndiciStreamWrapper;
243
+ var init_UndiciStreamWrapper = __esm({
244
+ "src/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts"() {
245
+ "use strict";
246
+ UndiciStreamWrapper = class _UndiciStreamWrapper {
247
+ readableStream;
248
+ reader;
249
+ events;
250
+ paused;
251
+ resumeCallback;
252
+ encoding;
253
+ constructor(readableStream) {
254
+ this.readableStream = readableStream;
255
+ this.reader = this.readableStream.getReader();
256
+ this.events = {
257
+ data: [],
258
+ end: [],
259
+ error: [],
260
+ readable: [],
261
+ close: [],
262
+ pause: [],
263
+ resume: []
264
+ };
265
+ this.paused = false;
266
+ this.resumeCallback = null;
267
+ this.encoding = null;
268
+ }
269
+ on(event, callback) {
270
+ this.events[event]?.push(callback);
271
+ }
272
+ off(event, callback) {
273
+ this.events[event] = this.events[event]?.filter((cb) => cb !== callback);
274
+ }
275
+ pipe(dest) {
276
+ this.on("data", (chunk) => {
277
+ if (dest instanceof _UndiciStreamWrapper) {
278
+ dest._write(chunk);
279
+ } else {
280
+ const writer = dest.getWriter();
281
+ writer.write(chunk).then(() => writer.releaseLock());
282
+ }
283
+ });
284
+ this.on("end", () => {
285
+ if (dest instanceof _UndiciStreamWrapper) {
286
+ dest._end();
287
+ } else {
288
+ const writer = dest.getWriter();
289
+ writer.close();
290
+ }
291
+ });
292
+ this.on("error", (error) => {
293
+ if (dest instanceof _UndiciStreamWrapper) {
294
+ dest._error(error);
295
+ } else {
296
+ const writer = dest.getWriter();
297
+ writer.abort(error);
298
+ }
299
+ });
300
+ this._startReading();
301
+ return dest;
302
+ }
303
+ pipeTo(dest) {
304
+ return this.pipe(dest);
305
+ }
306
+ unpipe(dest) {
307
+ this.off("data", (chunk) => {
308
+ if (dest instanceof _UndiciStreamWrapper) {
309
+ dest._write(chunk);
310
+ } else {
311
+ const writer = dest.getWriter();
312
+ writer.write(chunk).then(() => writer.releaseLock());
313
+ }
314
+ });
315
+ this.off("end", () => {
316
+ if (dest instanceof _UndiciStreamWrapper) {
317
+ dest._end();
318
+ } else {
319
+ const writer = dest.getWriter();
320
+ writer.close();
321
+ }
322
+ });
323
+ this.off("error", (error) => {
324
+ if (dest instanceof _UndiciStreamWrapper) {
325
+ dest._error(error);
326
+ } else {
327
+ const writer = dest.getWriter();
328
+ writer.abort(error);
329
+ }
330
+ });
331
+ }
332
+ destroy(error) {
333
+ this.reader.cancel(error).then(() => {
334
+ this._emit("close");
335
+ }).catch((err) => {
336
+ this._emit("error", err);
337
+ });
338
+ }
339
+ pause() {
340
+ this.paused = true;
341
+ this._emit("pause");
342
+ }
343
+ resume() {
344
+ if (this.paused) {
345
+ this.paused = false;
346
+ this._emit("resume");
347
+ if (this.resumeCallback) {
348
+ this.resumeCallback();
349
+ this.resumeCallback = null;
350
+ }
351
+ }
352
+ }
353
+ get isPaused() {
354
+ return this.paused;
355
+ }
356
+ async read() {
357
+ if (this.paused) {
358
+ await new Promise((resolve) => {
359
+ this.resumeCallback = resolve;
360
+ });
361
+ }
362
+ const { done, value } = await this.reader.read();
363
+ if (done) {
364
+ return void 0;
365
+ }
366
+ return value;
367
+ }
368
+ setEncoding(encoding) {
369
+ this.encoding = encoding;
370
+ }
371
+ async text() {
372
+ const chunks = [];
373
+ while (true) {
374
+ const { done, value } = await this.reader.read();
375
+ if (done) {
376
+ break;
377
+ }
378
+ if (value) {
379
+ chunks.push(value);
380
+ }
381
+ }
382
+ const decoder = new TextDecoder(this.encoding || "utf-8");
383
+ return decoder.decode(await new Blob(chunks).arrayBuffer());
384
+ }
385
+ async json() {
386
+ const text = await this.text();
387
+ return JSON.parse(text);
388
+ }
389
+ _write(chunk) {
390
+ this._emit("data", chunk);
391
+ }
392
+ _end() {
393
+ this._emit("end");
394
+ }
395
+ _error(error) {
396
+ this._emit("error", error);
397
+ }
398
+ _emit(event, data) {
399
+ if (this.events[event]) {
400
+ for (const callback of this.events[event] || []) {
401
+ callback(data);
402
+ }
403
+ }
404
+ }
405
+ async _startReading() {
406
+ try {
407
+ this._emit("readable");
408
+ while (true) {
409
+ if (this.paused) {
410
+ await new Promise((resolve) => {
411
+ this.resumeCallback = resolve;
412
+ });
413
+ }
414
+ const { done, value } = await this.reader.read();
415
+ if (done) {
416
+ this._emit("end");
417
+ this._emit("close");
418
+ break;
419
+ }
420
+ if (value) {
421
+ this._emit("data", value);
422
+ }
423
+ }
424
+ } catch (error) {
425
+ this._emit("error", error);
426
+ }
427
+ }
428
+ [Symbol.asyncIterator]() {
429
+ return {
430
+ next: async () => {
431
+ if (this.paused) {
432
+ await new Promise((resolve) => {
433
+ this.resumeCallback = resolve;
434
+ });
435
+ }
436
+ const { done, value } = await this.reader.read();
437
+ if (done) {
438
+ return { done: true, value: void 0 };
439
+ }
440
+ return { done: false, value };
441
+ },
442
+ [Symbol.asyncIterator]() {
443
+ return this;
444
+ }
445
+ };
446
+ }
447
+ };
448
+ }
449
+ });
450
+
451
+ // src/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts
452
+ var NodePre18StreamWrapper_exports = {};
453
+ __export(NodePre18StreamWrapper_exports, {
454
+ NodePre18StreamWrapper: () => NodePre18StreamWrapper
455
+ });
456
+ var NodePre18StreamWrapper;
457
+ var init_NodePre18StreamWrapper = __esm({
458
+ "src/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts"() {
459
+ "use strict";
460
+ NodePre18StreamWrapper = class {
461
+ readableStream;
462
+ encoding;
463
+ constructor(readableStream) {
464
+ this.readableStream = readableStream;
465
+ }
466
+ on(event, callback) {
467
+ this.readableStream.on(event, callback);
468
+ }
469
+ off(event, callback) {
470
+ this.readableStream.off(event, callback);
471
+ }
472
+ pipe(dest) {
473
+ this.readableStream.pipe(dest);
474
+ return dest;
475
+ }
476
+ pipeTo(dest) {
477
+ return this.pipe(dest);
478
+ }
479
+ unpipe(dest) {
480
+ if (dest) {
481
+ this.readableStream.unpipe(dest);
482
+ } else {
483
+ this.readableStream.unpipe();
484
+ }
485
+ }
486
+ destroy(error) {
487
+ this.readableStream.destroy(error);
488
+ }
489
+ pause() {
490
+ this.readableStream.pause();
491
+ }
492
+ resume() {
493
+ this.readableStream.resume();
494
+ }
495
+ get isPaused() {
496
+ return this.readableStream.isPaused();
497
+ }
498
+ async read() {
499
+ return new Promise((resolve, reject) => {
500
+ const chunk = this.readableStream.read();
501
+ if (chunk) {
502
+ resolve(chunk);
503
+ } else {
504
+ this.readableStream.once("readable", () => {
505
+ const chunk2 = this.readableStream.read();
506
+ resolve(chunk2);
507
+ });
508
+ this.readableStream.once("error", reject);
509
+ }
510
+ });
511
+ }
512
+ setEncoding(encoding) {
513
+ this.readableStream.setEncoding(encoding);
514
+ this.encoding = encoding;
515
+ }
516
+ async text() {
517
+ const chunks = [];
518
+ const encoder = new TextEncoder();
519
+ this.readableStream.setEncoding(this.encoding || "utf-8");
520
+ for await (const chunk of this.readableStream) {
521
+ chunks.push(encoder.encode(chunk));
522
+ }
523
+ const decoder = new TextDecoder(this.encoding || "utf-8");
524
+ return decoder.decode(Buffer.concat(chunks));
525
+ }
526
+ async json() {
527
+ const text = await this.text();
528
+ return JSON.parse(text);
529
+ }
530
+ [Symbol.asyncIterator]() {
531
+ const readableStream = this.readableStream;
532
+ const iterator = readableStream[Symbol.asyncIterator]();
533
+ return {
534
+ async next() {
535
+ const { value, done } = await iterator.next();
536
+ return { value, done };
537
+ },
538
+ [Symbol.asyncIterator]() {
539
+ return this;
540
+ }
541
+ };
542
+ }
543
+ };
544
+ }
545
+ });
546
+
547
+ // src/api/index.ts
548
+ var api_exports = {};
549
+ __export(api_exports, {
550
+ CrashPolicy: () => CrashPolicy,
551
+ HealthStatus: () => HealthStatus,
552
+ RunnerConfigVariant: () => RunnerConfigVariant,
553
+ datacenters: () => datacenters_exports,
554
+ envoys: () => envoys_exports,
555
+ health: () => health_exports,
556
+ metadata: () => metadata_exports,
557
+ namespaces: () => namespaces_exports,
558
+ runners: () => runners_exports
559
+ });
560
+
561
+ // src/api/types/CrashPolicy.ts
562
+ var CrashPolicy = {
563
+ Restart: "restart",
564
+ Sleep: "sleep",
565
+ Destroy: "destroy"
566
+ };
567
+
568
+ // src/api/types/HealthStatus.ts
569
+ var HealthStatus = {
570
+ Ok: "ok",
571
+ Error: "error"
572
+ };
573
+
574
+ // src/api/types/RunnerConfigVariant.ts
575
+ var RunnerConfigVariant = {
576
+ Serverless: "serverless",
577
+ Normal: "normal"
578
+ };
579
+
580
+ // src/api/resources/datacenters/index.ts
581
+ var datacenters_exports = {};
582
+
583
+ // src/api/resources/envoys/index.ts
584
+ var envoys_exports = {};
585
+
586
+ // src/api/resources/health/index.ts
587
+ var health_exports = {};
588
+
589
+ // src/api/resources/metadata/index.ts
590
+ var metadata_exports = {};
591
+
592
+ // src/api/resources/namespaces/index.ts
593
+ var namespaces_exports = {};
594
+
595
+ // src/api/resources/runners/index.ts
596
+ var runners_exports = {};
597
+
598
+ // src/core/json.ts
599
+ var toJson = (value, replacer, space) => {
600
+ return JSON.stringify(value, replacer, space);
601
+ };
602
+
603
+ // src/core/fetcher/createRequestUrl.ts
604
+ import qs from "qs";
605
+ function createRequestUrl(baseUrl, queryParameters) {
606
+ return Object.keys(queryParameters ?? {}).length > 0 ? `${baseUrl}?${qs.stringify(queryParameters, { arrayFormat: "repeat" })}` : baseUrl;
607
+ }
608
+
609
+ // src/core/runtime/runtime.ts
610
+ var RUNTIME = evaluateRuntime();
611
+ function evaluateRuntime() {
612
+ const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
613
+ if (isBrowser) {
614
+ return {
615
+ type: "browser",
616
+ version: window.navigator.userAgent
617
+ };
618
+ }
619
+ const isCloudflare = typeof globalThis !== "undefined" && globalThis?.navigator?.userAgent === "Cloudflare-Workers";
620
+ if (isCloudflare) {
621
+ return {
622
+ type: "workerd"
623
+ };
624
+ }
625
+ const isEdgeRuntime = typeof EdgeRuntime === "string";
626
+ if (isEdgeRuntime) {
627
+ return {
628
+ type: "edge-runtime"
629
+ };
630
+ }
631
+ const isWebWorker = typeof self === "object" && // @ts-ignore
632
+ typeof self?.importScripts === "function" && (self.constructor?.name === "DedicatedWorkerGlobalScope" || self.constructor?.name === "ServiceWorkerGlobalScope" || self.constructor?.name === "SharedWorkerGlobalScope");
633
+ if (isWebWorker) {
634
+ return {
635
+ type: "web-worker"
636
+ };
637
+ }
638
+ const isDeno = typeof Deno !== "undefined" && typeof Deno.version !== "undefined" && typeof Deno.version.deno !== "undefined";
639
+ if (isDeno) {
640
+ return {
641
+ type: "deno",
642
+ version: Deno.version.deno
643
+ };
644
+ }
645
+ const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined";
646
+ if (isBun) {
647
+ return {
648
+ type: "bun",
649
+ version: Bun.version
650
+ };
651
+ }
652
+ const isNode = typeof process !== "undefined" && "version" in process && !!process.version && "versions" in process && !!process.versions?.node;
653
+ if (isNode) {
654
+ return {
655
+ type: "node",
656
+ version: process.versions.node,
657
+ parsedVersion: Number(process.versions.node.split(".")[0])
658
+ };
659
+ }
660
+ const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative";
661
+ if (isReactNative) {
662
+ return {
663
+ type: "react-native"
664
+ };
665
+ }
666
+ return {
667
+ type: "unknown"
668
+ };
669
+ }
670
+
671
+ // src/core/fetcher/getFetchFn.ts
672
+ async function getFetchFn() {
673
+ if (RUNTIME.type === "node" && RUNTIME.parsedVersion != null && RUNTIME.parsedVersion >= 18) {
674
+ return fetch;
675
+ }
676
+ if (RUNTIME.type === "node") {
677
+ return (await import("node-fetch")).default;
678
+ }
679
+ if (typeof fetch == "function") {
680
+ return fetch;
681
+ }
682
+ return (await import("node-fetch")).default;
683
+ }
684
+
685
+ // src/core/fetcher/getRequestBody.ts
686
+ async function getRequestBody({ body, type }) {
687
+ if (type.includes("json")) {
688
+ return toJson(body);
689
+ } else {
690
+ return body;
691
+ }
692
+ }
693
+
694
+ // src/core/fetcher/stream-wrappers/chooseStreamWrapper.ts
695
+ async function chooseStreamWrapper(responseBody) {
696
+ if (RUNTIME.type === "node" && RUNTIME.parsedVersion != null && RUNTIME.parsedVersion >= 18) {
697
+ return new (await Promise.resolve().then(() => (init_Node18UniversalStreamWrapper(), Node18UniversalStreamWrapper_exports))).Node18UniversalStreamWrapper(
698
+ responseBody
699
+ );
700
+ } else if (RUNTIME.type !== "node" && typeof fetch === "function") {
701
+ return new (await Promise.resolve().then(() => (init_UndiciStreamWrapper(), UndiciStreamWrapper_exports))).UndiciStreamWrapper(responseBody);
702
+ } else {
703
+ return new (await Promise.resolve().then(() => (init_NodePre18StreamWrapper(), NodePre18StreamWrapper_exports))).NodePre18StreamWrapper(responseBody);
704
+ }
705
+ }
706
+
707
+ // src/core/fetcher/getResponseBody.ts
708
+ async function getResponseBody(response, responseType) {
709
+ if (response.body != null && responseType === "blob") {
710
+ return await response.blob();
711
+ } else if (response.body != null && responseType === "arrayBuffer") {
712
+ return await response.arrayBuffer();
713
+ } else if (response.body != null && responseType === "sse") {
714
+ return response.body;
715
+ } else if (response.body != null && responseType === "streaming") {
716
+ return chooseStreamWrapper(response.body);
717
+ } else if (response.body != null && responseType === "text") {
718
+ return await response.text();
719
+ } else {
720
+ const text = await response.text();
721
+ if (text.length > 0) {
722
+ try {
723
+ let responseBody = JSON.parse(text);
724
+ return responseBody;
725
+ } catch (err) {
726
+ return {
727
+ ok: false,
728
+ error: {
729
+ reason: "non-json",
730
+ statusCode: response.status,
731
+ rawBody: text
732
+ }
733
+ };
734
+ }
735
+ } else {
736
+ return void 0;
737
+ }
738
+ }
739
+ }
740
+
741
+ // src/core/fetcher/signals.ts
742
+ var TIMEOUT = "timeout";
743
+ function getTimeoutSignal(timeoutMs) {
744
+ const controller = new AbortController();
745
+ const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
746
+ return { signal: controller.signal, abortId };
747
+ }
748
+ function anySignal(...args) {
749
+ const signals = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
750
+ const controller = new AbortController();
751
+ for (const signal of signals) {
752
+ if (signal.aborted) {
753
+ controller.abort(signal?.reason);
754
+ break;
755
+ }
756
+ signal.addEventListener("abort", () => controller.abort(signal?.reason), {
757
+ signal: controller.signal
758
+ });
759
+ }
760
+ return controller.signal;
761
+ }
762
+
763
+ // src/core/fetcher/makeRequest.ts
764
+ var makeRequest = async (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex) => {
765
+ const signals = [];
766
+ let timeoutAbortId = void 0;
767
+ if (timeoutMs != null) {
768
+ const { signal, abortId } = getTimeoutSignal(timeoutMs);
769
+ timeoutAbortId = abortId;
770
+ signals.push(signal);
771
+ }
772
+ if (abortSignal != null) {
773
+ signals.push(abortSignal);
774
+ }
775
+ let newSignals = anySignal(signals);
776
+ const response = await fetchFn(url, {
777
+ method,
778
+ headers,
779
+ body: requestBody,
780
+ signal: newSignals,
781
+ credentials: withCredentials ? "include" : void 0,
782
+ // @ts-ignore
783
+ duplex
784
+ });
785
+ if (timeoutAbortId != null) {
786
+ clearTimeout(timeoutAbortId);
787
+ }
788
+ return response;
789
+ };
790
+
791
+ // src/core/fetcher/requestWithRetries.ts
792
+ var INITIAL_RETRY_DELAY = 1e3;
793
+ var MAX_RETRY_DELAY = 6e4;
794
+ var DEFAULT_MAX_RETRIES = 2;
795
+ var JITTER_FACTOR = 0.2;
796
+ function addJitter(delay) {
797
+ const jitterMultiplier = 1 + (Math.random() * 2 - 1) * JITTER_FACTOR;
798
+ return delay * jitterMultiplier;
799
+ }
800
+ async function requestWithRetries(requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
801
+ let response = await requestFn();
802
+ for (let i = 0; i < maxRetries; ++i) {
803
+ if ([408, 429].includes(response.status) || response.status >= 500) {
804
+ const baseDelay = Math.min(INITIAL_RETRY_DELAY * Math.pow(2, i), MAX_RETRY_DELAY);
805
+ const delayWithJitter = addJitter(baseDelay);
806
+ await new Promise((resolve) => setTimeout(resolve, delayWithJitter));
807
+ response = await requestFn();
808
+ } else {
809
+ break;
810
+ }
811
+ }
812
+ return response;
813
+ }
814
+
815
+ // src/core/fetcher/Fetcher.ts
816
+ async function fetcherImpl(args) {
817
+ const headers = {};
818
+ if (args.body !== void 0 && args.contentType != null) {
819
+ headers["Content-Type"] = args.contentType;
820
+ }
821
+ if (args.headers != null) {
822
+ for (const [key, value] of Object.entries(args.headers)) {
823
+ if (value != null) {
824
+ headers[key] = value;
825
+ }
826
+ }
827
+ }
828
+ const url = createRequestUrl(args.url, args.queryParameters);
829
+ const requestBody = await getRequestBody({
830
+ body: args.body,
831
+ type: args.requestType === "json" ? "json" : "other"
832
+ });
833
+ const fetchFn = await getFetchFn();
834
+ try {
835
+ const response = await requestWithRetries(
836
+ async () => makeRequest(
837
+ fetchFn,
838
+ url,
839
+ args.method,
840
+ headers,
841
+ requestBody,
842
+ args.timeoutMs,
843
+ args.abortSignal,
844
+ args.withCredentials,
845
+ args.duplex
846
+ ),
847
+ args.maxRetries
848
+ );
849
+ const responseBody = await getResponseBody(response, args.responseType);
850
+ if (response.status >= 200 && response.status < 400) {
851
+ return {
852
+ ok: true,
853
+ body: responseBody,
854
+ headers: response.headers
855
+ };
856
+ } else {
857
+ return {
858
+ ok: false,
859
+ error: {
860
+ reason: "status-code",
861
+ statusCode: response.status,
862
+ body: responseBody
863
+ }
864
+ };
865
+ }
866
+ } catch (error) {
867
+ if (args.abortSignal != null && args.abortSignal.aborted) {
868
+ return {
869
+ ok: false,
870
+ error: {
871
+ reason: "unknown",
872
+ errorMessage: "The user aborted a request"
873
+ }
874
+ };
875
+ } else if (error instanceof Error && error.name === "AbortError") {
876
+ return {
877
+ ok: false,
878
+ error: {
879
+ reason: "timeout"
880
+ }
881
+ };
882
+ } else if (error instanceof Error) {
883
+ return {
884
+ ok: false,
885
+ error: {
886
+ reason: "unknown",
887
+ errorMessage: error.message
888
+ }
889
+ };
890
+ }
891
+ return {
892
+ ok: false,
893
+ error: {
894
+ reason: "unknown",
895
+ errorMessage: toJson(error)
896
+ }
897
+ };
898
+ }
899
+ }
900
+ var fetcher = fetcherImpl;
901
+
902
+ // src/core/fetcher/Supplier.ts
903
+ var Supplier = {
904
+ get: async (supplier) => {
905
+ if (typeof supplier === "function") {
906
+ return supplier();
907
+ } else {
908
+ return supplier;
909
+ }
910
+ }
911
+ };
912
+
913
+ // src/core/auth/BasicAuth.ts
914
+ import { Base64 } from "js-base64";
915
+
916
+ // src/core/schemas/index.ts
917
+ var schemas_exports = {};
918
+ __export(schemas_exports, {
919
+ JsonError: () => JsonError,
920
+ ParseError: () => ParseError,
921
+ any: () => any,
922
+ bigint: () => bigint,
923
+ boolean: () => boolean,
924
+ booleanLiteral: () => booleanLiteral,
925
+ date: () => date,
926
+ discriminant: () => discriminant,
927
+ enum_: () => enum_,
928
+ getObjectLikeUtils: () => getObjectLikeUtils,
929
+ getObjectUtils: () => getObjectUtils,
930
+ getSchemaUtils: () => getSchemaUtils,
931
+ isProperty: () => isProperty,
932
+ lazy: () => lazy,
933
+ lazyObject: () => lazyObject,
934
+ list: () => list,
935
+ number: () => number,
936
+ object: () => object,
937
+ objectWithoutOptionalProperties: () => objectWithoutOptionalProperties,
938
+ optional: () => optional,
939
+ property: () => property,
940
+ record: () => record,
941
+ set: () => set,
942
+ string: () => string,
943
+ stringLiteral: () => stringLiteral,
944
+ transform: () => transform,
945
+ undiscriminatedUnion: () => undiscriminatedUnion,
946
+ union: () => union,
947
+ unknown: () => unknown,
948
+ withParsedProperties: () => withParsedProperties
949
+ });
950
+
951
+ // src/core/schemas/Schema.ts
952
+ var SchemaType = {
953
+ BIGINT: "bigint",
954
+ DATE: "date",
955
+ ENUM: "enum",
956
+ LIST: "list",
957
+ STRING_LITERAL: "stringLiteral",
958
+ BOOLEAN_LITERAL: "booleanLiteral",
959
+ OBJECT: "object",
960
+ ANY: "any",
961
+ BOOLEAN: "boolean",
962
+ NUMBER: "number",
963
+ STRING: "string",
964
+ UNKNOWN: "unknown",
965
+ RECORD: "record",
966
+ SET: "set",
967
+ UNION: "union",
968
+ UNDISCRIMINATED_UNION: "undiscriminatedUnion",
969
+ NULLABLE: "nullable",
970
+ OPTIONAL: "optional",
971
+ OPTIONAL_NULLABLE: "optionalNullable"
972
+ };
973
+
974
+ // src/core/schemas/utils/getErrorMessageForIncorrectType.ts
975
+ function getErrorMessageForIncorrectType(value, expectedType) {
976
+ return `Expected ${expectedType}. Received ${getTypeAsString(value)}.`;
977
+ }
978
+ function getTypeAsString(value) {
979
+ if (Array.isArray(value)) {
980
+ return "list";
981
+ }
982
+ if (value === null) {
983
+ return "null";
984
+ }
985
+ if (value instanceof BigInt) {
986
+ return "BigInt";
987
+ }
988
+ switch (typeof value) {
989
+ case "string":
990
+ return `"${value}"`;
991
+ case "bigint":
992
+ case "number":
993
+ case "boolean":
994
+ case "undefined":
995
+ return `${value}`;
996
+ }
997
+ return typeof value;
998
+ }
999
+
1000
+ // src/core/schemas/utils/maybeSkipValidation.ts
1001
+ function maybeSkipValidation(schema) {
1002
+ return {
1003
+ ...schema,
1004
+ json: transformAndMaybeSkipValidation(schema.json),
1005
+ parse: transformAndMaybeSkipValidation(schema.parse)
1006
+ };
1007
+ }
1008
+ function transformAndMaybeSkipValidation(transform2) {
1009
+ return (value, opts) => {
1010
+ const transformed = transform2(value, opts);
1011
+ const { skipValidation = false } = opts ?? {};
1012
+ if (!transformed.ok && skipValidation) {
1013
+ console.warn(
1014
+ [
1015
+ "Failed to validate.",
1016
+ ...transformed.errors.map(
1017
+ (error) => " - " + (error.path.length > 0 ? `${error.path.join(".")}: ${error.message}` : error.message)
1018
+ )
1019
+ ].join("\n")
1020
+ );
1021
+ return {
1022
+ ok: true,
1023
+ value
1024
+ };
1025
+ } else {
1026
+ return transformed;
1027
+ }
1028
+ };
1029
+ }
1030
+
1031
+ // src/core/schemas/builders/schema-utils/stringifyValidationErrors.ts
1032
+ function stringifyValidationError(error) {
1033
+ if (error.path.length === 0) {
1034
+ return error.message;
1035
+ }
1036
+ return `${error.path.join(" -> ")}: ${error.message}`;
1037
+ }
1038
+
1039
+ // src/core/schemas/builders/schema-utils/JsonError.ts
1040
+ var JsonError = class _JsonError extends Error {
1041
+ constructor(errors) {
1042
+ super(errors.map(stringifyValidationError).join("; "));
1043
+ this.errors = errors;
1044
+ Object.setPrototypeOf(this, _JsonError.prototype);
1045
+ }
1046
+ };
1047
+
1048
+ // src/core/schemas/builders/schema-utils/ParseError.ts
1049
+ var ParseError = class _ParseError extends Error {
1050
+ constructor(errors) {
1051
+ super(errors.map(stringifyValidationError).join("; "));
1052
+ this.errors = errors;
1053
+ Object.setPrototypeOf(this, _ParseError.prototype);
1054
+ }
1055
+ };
1056
+
1057
+ // src/core/schemas/builders/schema-utils/getSchemaUtils.ts
1058
+ function getSchemaUtils(schema) {
1059
+ return {
1060
+ nullable: () => nullable(schema),
1061
+ optional: () => optional(schema),
1062
+ optionalNullable: () => optionalNullable(schema),
1063
+ transform: (transformer) => transform(schema, transformer),
1064
+ parseOrThrow: (raw, opts) => {
1065
+ const parsed = schema.parse(raw, opts);
1066
+ if (parsed.ok) {
1067
+ return parsed.value;
1068
+ }
1069
+ throw new ParseError(parsed.errors);
1070
+ },
1071
+ jsonOrThrow: (parsed, opts) => {
1072
+ const raw = schema.json(parsed, opts);
1073
+ if (raw.ok) {
1074
+ return raw.value;
1075
+ }
1076
+ throw new JsonError(raw.errors);
1077
+ }
1078
+ };
1079
+ }
1080
+ function nullable(schema) {
1081
+ const baseSchema = {
1082
+ parse: (raw, opts) => {
1083
+ if (raw == null) {
1084
+ return {
1085
+ ok: true,
1086
+ value: null
1087
+ };
1088
+ }
1089
+ return schema.parse(raw, opts);
1090
+ },
1091
+ json: (parsed, opts) => {
1092
+ if (parsed == null) {
1093
+ return {
1094
+ ok: true,
1095
+ value: null
1096
+ };
1097
+ }
1098
+ return schema.json(parsed, opts);
1099
+ },
1100
+ getType: () => SchemaType.NULLABLE
1101
+ };
1102
+ return {
1103
+ ...baseSchema,
1104
+ ...getSchemaUtils(baseSchema)
1105
+ };
1106
+ }
1107
+ function optional(schema) {
1108
+ const baseSchema = {
1109
+ parse: (raw, opts) => {
1110
+ if (raw == null) {
1111
+ return {
1112
+ ok: true,
1113
+ value: void 0
1114
+ };
1115
+ }
1116
+ return schema.parse(raw, opts);
1117
+ },
1118
+ json: (parsed, opts) => {
1119
+ if (opts?.omitUndefined && parsed === void 0) {
1120
+ return {
1121
+ ok: true,
1122
+ value: void 0
1123
+ };
1124
+ }
1125
+ if (parsed == null) {
1126
+ return {
1127
+ ok: true,
1128
+ value: null
1129
+ };
1130
+ }
1131
+ return schema.json(parsed, opts);
1132
+ },
1133
+ getType: () => SchemaType.OPTIONAL
1134
+ };
1135
+ return {
1136
+ ...baseSchema,
1137
+ ...getSchemaUtils(baseSchema)
1138
+ };
1139
+ }
1140
+ function optionalNullable(schema) {
1141
+ const baseSchema = {
1142
+ parse: (raw, opts) => {
1143
+ if (raw === void 0) {
1144
+ return {
1145
+ ok: true,
1146
+ value: void 0
1147
+ };
1148
+ }
1149
+ if (raw === null) {
1150
+ return {
1151
+ ok: true,
1152
+ value: null
1153
+ };
1154
+ }
1155
+ return schema.parse(raw, opts);
1156
+ },
1157
+ json: (parsed, opts) => {
1158
+ if (parsed === void 0) {
1159
+ return {
1160
+ ok: true,
1161
+ value: void 0
1162
+ };
1163
+ }
1164
+ if (parsed === null) {
1165
+ return {
1166
+ ok: true,
1167
+ value: null
1168
+ };
1169
+ }
1170
+ return schema.json(parsed, opts);
1171
+ },
1172
+ getType: () => SchemaType.OPTIONAL_NULLABLE
1173
+ };
1174
+ return {
1175
+ ...baseSchema,
1176
+ ...getSchemaUtils(baseSchema)
1177
+ };
1178
+ }
1179
+ function transform(schema, transformer) {
1180
+ const baseSchema = {
1181
+ parse: (raw, opts) => {
1182
+ const parsed = schema.parse(raw, opts);
1183
+ if (!parsed.ok) {
1184
+ return parsed;
1185
+ }
1186
+ return {
1187
+ ok: true,
1188
+ value: transformer.transform(parsed.value)
1189
+ };
1190
+ },
1191
+ json: (transformed, opts) => {
1192
+ const parsed = transformer.untransform(transformed);
1193
+ return schema.json(parsed, opts);
1194
+ },
1195
+ getType: () => schema.getType()
1196
+ };
1197
+ return {
1198
+ ...baseSchema,
1199
+ ...getSchemaUtils(baseSchema)
1200
+ };
1201
+ }
1202
+
1203
+ // src/core/schemas/builders/bigint/bigint.ts
1204
+ function bigint() {
1205
+ const baseSchema = {
1206
+ parse: (raw, { breadcrumbsPrefix = [] } = {}) => {
1207
+ if (typeof raw === "bigint") {
1208
+ return {
1209
+ ok: true,
1210
+ value: raw
1211
+ };
1212
+ }
1213
+ if (typeof raw === "number") {
1214
+ return {
1215
+ ok: true,
1216
+ value: BigInt(raw)
1217
+ };
1218
+ }
1219
+ return {
1220
+ ok: false,
1221
+ errors: [
1222
+ {
1223
+ path: breadcrumbsPrefix,
1224
+ message: getErrorMessageForIncorrectType(raw, "bigint | number")
1225
+ }
1226
+ ]
1227
+ };
1228
+ },
1229
+ json: (bigint2, { breadcrumbsPrefix = [] } = {}) => {
1230
+ if (typeof bigint2 !== "bigint") {
1231
+ return {
1232
+ ok: false,
1233
+ errors: [
1234
+ {
1235
+ path: breadcrumbsPrefix,
1236
+ message: getErrorMessageForIncorrectType(bigint2, "bigint")
1237
+ }
1238
+ ]
1239
+ };
1240
+ }
1241
+ return {
1242
+ ok: true,
1243
+ value: bigint2
1244
+ };
1245
+ },
1246
+ getType: () => SchemaType.BIGINT
1247
+ };
1248
+ return {
1249
+ ...maybeSkipValidation(baseSchema),
1250
+ ...getSchemaUtils(baseSchema)
1251
+ };
1252
+ }
1253
+
1254
+ // src/core/schemas/builders/date/date.ts
1255
+ var ISO_8601_REGEX = /^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
1256
+ function date() {
1257
+ const baseSchema = {
1258
+ parse: (raw, { breadcrumbsPrefix = [] } = {}) => {
1259
+ if (typeof raw !== "string") {
1260
+ return {
1261
+ ok: false,
1262
+ errors: [
1263
+ {
1264
+ path: breadcrumbsPrefix,
1265
+ message: getErrorMessageForIncorrectType(raw, "string")
1266
+ }
1267
+ ]
1268
+ };
1269
+ }
1270
+ if (!ISO_8601_REGEX.test(raw)) {
1271
+ return {
1272
+ ok: false,
1273
+ errors: [
1274
+ {
1275
+ path: breadcrumbsPrefix,
1276
+ message: getErrorMessageForIncorrectType(raw, "ISO 8601 date string")
1277
+ }
1278
+ ]
1279
+ };
1280
+ }
1281
+ return {
1282
+ ok: true,
1283
+ value: new Date(raw)
1284
+ };
1285
+ },
1286
+ json: (date2, { breadcrumbsPrefix = [] } = {}) => {
1287
+ if (date2 instanceof Date) {
1288
+ return {
1289
+ ok: true,
1290
+ value: date2.toISOString()
1291
+ };
1292
+ } else {
1293
+ return {
1294
+ ok: false,
1295
+ errors: [
1296
+ {
1297
+ path: breadcrumbsPrefix,
1298
+ message: getErrorMessageForIncorrectType(date2, "Date object")
1299
+ }
1300
+ ]
1301
+ };
1302
+ }
1303
+ },
1304
+ getType: () => SchemaType.DATE
1305
+ };
1306
+ return {
1307
+ ...maybeSkipValidation(baseSchema),
1308
+ ...getSchemaUtils(baseSchema)
1309
+ };
1310
+ }
1311
+
1312
+ // src/core/schemas/utils/createIdentitySchemaCreator.ts
1313
+ function createIdentitySchemaCreator(schemaType, validate) {
1314
+ return () => {
1315
+ const baseSchema = {
1316
+ parse: validate,
1317
+ json: validate,
1318
+ getType: () => schemaType
1319
+ };
1320
+ return {
1321
+ ...maybeSkipValidation(baseSchema),
1322
+ ...getSchemaUtils(baseSchema)
1323
+ };
1324
+ };
1325
+ }
1326
+
1327
+ // src/core/schemas/builders/enum/enum.ts
1328
+ function enum_(values) {
1329
+ const validValues = new Set(values);
1330
+ const schemaCreator = createIdentitySchemaCreator(
1331
+ SchemaType.ENUM,
1332
+ (value, { allowUnrecognizedEnumValues, breadcrumbsPrefix = [] } = {}) => {
1333
+ if (typeof value !== "string") {
1334
+ return {
1335
+ ok: false,
1336
+ errors: [
1337
+ {
1338
+ path: breadcrumbsPrefix,
1339
+ message: getErrorMessageForIncorrectType(value, "string")
1340
+ }
1341
+ ]
1342
+ };
1343
+ }
1344
+ if (!validValues.has(value) && !allowUnrecognizedEnumValues) {
1345
+ return {
1346
+ ok: false,
1347
+ errors: [
1348
+ {
1349
+ path: breadcrumbsPrefix,
1350
+ message: getErrorMessageForIncorrectType(value, "enum")
1351
+ }
1352
+ ]
1353
+ };
1354
+ }
1355
+ return {
1356
+ ok: true,
1357
+ value
1358
+ };
1359
+ }
1360
+ );
1361
+ return schemaCreator();
1362
+ }
1363
+
1364
+ // src/core/schemas/builders/lazy/lazy.ts
1365
+ function lazy(getter) {
1366
+ const baseSchema = constructLazyBaseSchema(getter);
1367
+ return {
1368
+ ...baseSchema,
1369
+ ...getSchemaUtils(baseSchema)
1370
+ };
1371
+ }
1372
+ function constructLazyBaseSchema(getter) {
1373
+ return {
1374
+ parse: (raw, opts) => getMemoizedSchema(getter).parse(raw, opts),
1375
+ json: (parsed, opts) => getMemoizedSchema(getter).json(parsed, opts),
1376
+ getType: () => getMemoizedSchema(getter).getType()
1377
+ };
1378
+ }
1379
+ function getMemoizedSchema(getter) {
1380
+ const castedGetter = getter;
1381
+ if (castedGetter.__zurg_memoized == null) {
1382
+ castedGetter.__zurg_memoized = getter();
1383
+ }
1384
+ return castedGetter.__zurg_memoized;
1385
+ }
1386
+
1387
+ // src/core/schemas/utils/entries.ts
1388
+ function entries(object2) {
1389
+ return Object.entries(object2);
1390
+ }
1391
+
1392
+ // src/core/schemas/utils/filterObject.ts
1393
+ function filterObject(obj, keysToInclude) {
1394
+ const keysToIncludeSet = new Set(keysToInclude);
1395
+ return Object.entries(obj).reduce(
1396
+ (acc, [key, value]) => {
1397
+ if (keysToIncludeSet.has(key)) {
1398
+ acc[key] = value;
1399
+ }
1400
+ return acc;
1401
+ },
1402
+ {}
1403
+ );
1404
+ }
1405
+
1406
+ // src/core/schemas/utils/isPlainObject.ts
1407
+ function isPlainObject(value) {
1408
+ if (typeof value !== "object" || value === null) {
1409
+ return false;
1410
+ }
1411
+ if (Object.getPrototypeOf(value) === null) {
1412
+ return true;
1413
+ }
1414
+ let proto = value;
1415
+ while (Object.getPrototypeOf(proto) !== null) {
1416
+ proto = Object.getPrototypeOf(proto);
1417
+ }
1418
+ return Object.getPrototypeOf(value) === proto;
1419
+ }
1420
+
1421
+ // src/core/schemas/utils/keys.ts
1422
+ function keys(object2) {
1423
+ return Object.keys(object2);
1424
+ }
1425
+
1426
+ // src/core/schemas/utils/partition.ts
1427
+ function partition(items, predicate) {
1428
+ const trueItems = [], falseItems = [];
1429
+ for (const item of items) {
1430
+ if (predicate(item)) {
1431
+ trueItems.push(item);
1432
+ } else {
1433
+ falseItems.push(item);
1434
+ }
1435
+ }
1436
+ return [trueItems, falseItems];
1437
+ }
1438
+
1439
+ // src/core/schemas/builders/object-like/getObjectLikeUtils.ts
1440
+ function getObjectLikeUtils(schema) {
1441
+ return {
1442
+ withParsedProperties: (properties) => withParsedProperties(schema, properties)
1443
+ };
1444
+ }
1445
+ function withParsedProperties(objectLike, properties) {
1446
+ const objectSchema = {
1447
+ parse: (raw, opts) => {
1448
+ const parsedObject = objectLike.parse(raw, opts);
1449
+ if (!parsedObject.ok) {
1450
+ return parsedObject;
1451
+ }
1452
+ const additionalProperties = Object.entries(properties).reduce(
1453
+ (processed, [key, value]) => {
1454
+ return {
1455
+ ...processed,
1456
+ [key]: typeof value === "function" ? value(parsedObject.value) : value
1457
+ };
1458
+ },
1459
+ {}
1460
+ );
1461
+ return {
1462
+ ok: true,
1463
+ value: {
1464
+ ...parsedObject.value,
1465
+ ...additionalProperties
1466
+ }
1467
+ };
1468
+ },
1469
+ json: (parsed, opts) => {
1470
+ if (!isPlainObject(parsed)) {
1471
+ return {
1472
+ ok: false,
1473
+ errors: [
1474
+ {
1475
+ path: opts?.breadcrumbsPrefix ?? [],
1476
+ message: getErrorMessageForIncorrectType(parsed, "object")
1477
+ }
1478
+ ]
1479
+ };
1480
+ }
1481
+ const addedPropertyKeys = new Set(Object.keys(properties));
1482
+ const parsedWithoutAddedProperties = filterObject(
1483
+ parsed,
1484
+ Object.keys(parsed).filter((key) => !addedPropertyKeys.has(key))
1485
+ );
1486
+ return objectLike.json(parsedWithoutAddedProperties, opts);
1487
+ },
1488
+ getType: () => objectLike.getType()
1489
+ };
1490
+ return {
1491
+ ...objectSchema,
1492
+ ...getSchemaUtils(objectSchema),
1493
+ ...getObjectLikeUtils(objectSchema)
1494
+ };
1495
+ }
1496
+
1497
+ // src/core/schemas/builders/object/property.ts
1498
+ function property(rawKey, valueSchema) {
1499
+ return {
1500
+ rawKey,
1501
+ valueSchema,
1502
+ isProperty: true
1503
+ };
1504
+ }
1505
+ function isProperty(maybeProperty) {
1506
+ return maybeProperty.isProperty;
1507
+ }
1508
+
1509
+ // src/core/schemas/builders/object/object.ts
1510
+ function object(schemas) {
1511
+ const baseSchema = {
1512
+ _getRawProperties: () => Object.entries(schemas).map(
1513
+ ([parsedKey, propertySchema]) => isProperty(propertySchema) ? propertySchema.rawKey : parsedKey
1514
+ ),
1515
+ _getParsedProperties: () => keys(schemas),
1516
+ parse: (raw, opts) => {
1517
+ const rawKeyToProperty = {};
1518
+ const requiredKeys = [];
1519
+ for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
1520
+ const rawKey = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.rawKey : parsedKey;
1521
+ const valueSchema = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.valueSchema : schemaOrObjectProperty;
1522
+ const property2 = {
1523
+ rawKey,
1524
+ parsedKey,
1525
+ valueSchema
1526
+ };
1527
+ rawKeyToProperty[rawKey] = property2;
1528
+ if (isSchemaRequired(valueSchema)) {
1529
+ requiredKeys.push(rawKey);
1530
+ }
1531
+ }
1532
+ return validateAndTransformObject({
1533
+ value: raw,
1534
+ requiredKeys,
1535
+ getProperty: (rawKey) => {
1536
+ const property2 = rawKeyToProperty[rawKey];
1537
+ if (property2 == null) {
1538
+ return void 0;
1539
+ }
1540
+ return {
1541
+ transformedKey: property2.parsedKey,
1542
+ transform: (propertyValue) => property2.valueSchema.parse(propertyValue, {
1543
+ ...opts,
1544
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], rawKey]
1545
+ })
1546
+ };
1547
+ },
1548
+ unrecognizedObjectKeys: opts?.unrecognizedObjectKeys,
1549
+ skipValidation: opts?.skipValidation,
1550
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix,
1551
+ omitUndefined: opts?.omitUndefined
1552
+ });
1553
+ },
1554
+ json: (parsed, opts) => {
1555
+ const requiredKeys = [];
1556
+ for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
1557
+ const valueSchema = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.valueSchema : schemaOrObjectProperty;
1558
+ if (isSchemaRequired(valueSchema)) {
1559
+ requiredKeys.push(parsedKey);
1560
+ }
1561
+ }
1562
+ return validateAndTransformObject({
1563
+ value: parsed,
1564
+ requiredKeys,
1565
+ getProperty: (parsedKey) => {
1566
+ const property2 = schemas[parsedKey];
1567
+ if (property2 == null) {
1568
+ return void 0;
1569
+ }
1570
+ if (isProperty(property2)) {
1571
+ return {
1572
+ transformedKey: property2.rawKey,
1573
+ transform: (propertyValue) => property2.valueSchema.json(propertyValue, {
1574
+ ...opts,
1575
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], parsedKey]
1576
+ })
1577
+ };
1578
+ } else {
1579
+ return {
1580
+ transformedKey: parsedKey,
1581
+ transform: (propertyValue) => property2.json(propertyValue, {
1582
+ ...opts,
1583
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], parsedKey]
1584
+ })
1585
+ };
1586
+ }
1587
+ },
1588
+ unrecognizedObjectKeys: opts?.unrecognizedObjectKeys,
1589
+ skipValidation: opts?.skipValidation,
1590
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix,
1591
+ omitUndefined: opts?.omitUndefined
1592
+ });
1593
+ },
1594
+ getType: () => SchemaType.OBJECT
1595
+ };
1596
+ return {
1597
+ ...maybeSkipValidation(baseSchema),
1598
+ ...getSchemaUtils(baseSchema),
1599
+ ...getObjectLikeUtils(baseSchema),
1600
+ ...getObjectUtils(baseSchema)
1601
+ };
1602
+ }
1603
+ function validateAndTransformObject({
1604
+ value,
1605
+ requiredKeys,
1606
+ getProperty,
1607
+ unrecognizedObjectKeys = "fail",
1608
+ skipValidation = false,
1609
+ breadcrumbsPrefix = []
1610
+ }) {
1611
+ if (!isPlainObject(value)) {
1612
+ return {
1613
+ ok: false,
1614
+ errors: [
1615
+ {
1616
+ path: breadcrumbsPrefix,
1617
+ message: getErrorMessageForIncorrectType(value, "object")
1618
+ }
1619
+ ]
1620
+ };
1621
+ }
1622
+ const missingRequiredKeys = new Set(requiredKeys);
1623
+ const errors = [];
1624
+ const transformed = {};
1625
+ for (const [preTransformedKey, preTransformedItemValue] of Object.entries(value)) {
1626
+ const property2 = getProperty(preTransformedKey);
1627
+ if (property2 != null) {
1628
+ missingRequiredKeys.delete(preTransformedKey);
1629
+ const value2 = property2.transform(preTransformedItemValue);
1630
+ if (value2.ok) {
1631
+ transformed[property2.transformedKey] = value2.value;
1632
+ } else {
1633
+ transformed[preTransformedKey] = preTransformedItemValue;
1634
+ errors.push(...value2.errors);
1635
+ }
1636
+ } else {
1637
+ switch (unrecognizedObjectKeys) {
1638
+ case "fail":
1639
+ errors.push({
1640
+ path: [...breadcrumbsPrefix, preTransformedKey],
1641
+ message: `Unexpected key "${preTransformedKey}"`
1642
+ });
1643
+ break;
1644
+ case "strip":
1645
+ break;
1646
+ case "passthrough":
1647
+ transformed[preTransformedKey] = preTransformedItemValue;
1648
+ break;
1649
+ }
1650
+ }
1651
+ }
1652
+ errors.push(
1653
+ ...requiredKeys.filter((key) => missingRequiredKeys.has(key)).map((key) => ({
1654
+ path: breadcrumbsPrefix,
1655
+ message: `Missing required key "${key}"`
1656
+ }))
1657
+ );
1658
+ if (errors.length === 0 || skipValidation) {
1659
+ return {
1660
+ ok: true,
1661
+ value: transformed
1662
+ };
1663
+ } else {
1664
+ return {
1665
+ ok: false,
1666
+ errors
1667
+ };
1668
+ }
1669
+ }
1670
+ function getObjectUtils(schema) {
1671
+ return {
1672
+ extend: (extension) => {
1673
+ const baseSchema = {
1674
+ _getParsedProperties: () => [...schema._getParsedProperties(), ...extension._getParsedProperties()],
1675
+ _getRawProperties: () => [...schema._getRawProperties(), ...extension._getRawProperties()],
1676
+ parse: (raw, opts) => {
1677
+ return validateAndTransformExtendedObject({
1678
+ extensionKeys: extension._getRawProperties(),
1679
+ value: raw,
1680
+ transformBase: (rawBase) => schema.parse(rawBase, opts),
1681
+ transformExtension: (rawExtension) => extension.parse(rawExtension, opts)
1682
+ });
1683
+ },
1684
+ json: (parsed, opts) => {
1685
+ return validateAndTransformExtendedObject({
1686
+ extensionKeys: extension._getParsedProperties(),
1687
+ value: parsed,
1688
+ transformBase: (parsedBase) => schema.json(parsedBase, opts),
1689
+ transformExtension: (parsedExtension) => extension.json(parsedExtension, opts)
1690
+ });
1691
+ },
1692
+ getType: () => SchemaType.OBJECT
1693
+ };
1694
+ return {
1695
+ ...baseSchema,
1696
+ ...getSchemaUtils(baseSchema),
1697
+ ...getObjectLikeUtils(baseSchema),
1698
+ ...getObjectUtils(baseSchema)
1699
+ };
1700
+ },
1701
+ passthrough: () => {
1702
+ const baseSchema = {
1703
+ _getParsedProperties: () => schema._getParsedProperties(),
1704
+ _getRawProperties: () => schema._getRawProperties(),
1705
+ parse: (raw, opts) => {
1706
+ const transformed = schema.parse(raw, { ...opts, unrecognizedObjectKeys: "passthrough" });
1707
+ if (!transformed.ok) {
1708
+ return transformed;
1709
+ }
1710
+ return {
1711
+ ok: true,
1712
+ value: {
1713
+ ...raw,
1714
+ ...transformed.value
1715
+ }
1716
+ };
1717
+ },
1718
+ json: (parsed, opts) => {
1719
+ const transformed = schema.json(parsed, { ...opts, unrecognizedObjectKeys: "passthrough" });
1720
+ if (!transformed.ok) {
1721
+ return transformed;
1722
+ }
1723
+ return {
1724
+ ok: true,
1725
+ value: {
1726
+ ...parsed,
1727
+ ...transformed.value
1728
+ }
1729
+ };
1730
+ },
1731
+ getType: () => SchemaType.OBJECT
1732
+ };
1733
+ return {
1734
+ ...baseSchema,
1735
+ ...getSchemaUtils(baseSchema),
1736
+ ...getObjectLikeUtils(baseSchema),
1737
+ ...getObjectUtils(baseSchema)
1738
+ };
1739
+ }
1740
+ };
1741
+ }
1742
+ function validateAndTransformExtendedObject({
1743
+ extensionKeys,
1744
+ value,
1745
+ transformBase,
1746
+ transformExtension
1747
+ }) {
1748
+ const extensionPropertiesSet = new Set(extensionKeys);
1749
+ const [extensionProperties, baseProperties] = partition(
1750
+ keys(value),
1751
+ (key) => extensionPropertiesSet.has(key)
1752
+ );
1753
+ const transformedBase = transformBase(filterObject(value, baseProperties));
1754
+ const transformedExtension = transformExtension(filterObject(value, extensionProperties));
1755
+ if (transformedBase.ok && transformedExtension.ok) {
1756
+ return {
1757
+ ok: true,
1758
+ value: {
1759
+ ...transformedBase.value,
1760
+ ...transformedExtension.value
1761
+ }
1762
+ };
1763
+ } else {
1764
+ return {
1765
+ ok: false,
1766
+ errors: [
1767
+ ...transformedBase.ok ? [] : transformedBase.errors,
1768
+ ...transformedExtension.ok ? [] : transformedExtension.errors
1769
+ ]
1770
+ };
1771
+ }
1772
+ }
1773
+ function isSchemaRequired(schema) {
1774
+ return !isSchemaOptional(schema);
1775
+ }
1776
+ function isSchemaOptional(schema) {
1777
+ switch (schema.getType()) {
1778
+ case SchemaType.ANY:
1779
+ case SchemaType.UNKNOWN:
1780
+ case SchemaType.OPTIONAL:
1781
+ case SchemaType.OPTIONAL_NULLABLE:
1782
+ return true;
1783
+ default:
1784
+ return false;
1785
+ }
1786
+ }
1787
+
1788
+ // src/core/schemas/builders/object/objectWithoutOptionalProperties.ts
1789
+ function objectWithoutOptionalProperties(schemas) {
1790
+ return object(schemas);
1791
+ }
1792
+
1793
+ // src/core/schemas/builders/lazy/lazyObject.ts
1794
+ function lazyObject(getter) {
1795
+ const baseSchema = {
1796
+ ...constructLazyBaseSchema(getter),
1797
+ _getRawProperties: () => getMemoizedSchema(getter)._getRawProperties(),
1798
+ _getParsedProperties: () => getMemoizedSchema(getter)._getParsedProperties()
1799
+ };
1800
+ return {
1801
+ ...baseSchema,
1802
+ ...getSchemaUtils(baseSchema),
1803
+ ...getObjectLikeUtils(baseSchema),
1804
+ ...getObjectUtils(baseSchema)
1805
+ };
1806
+ }
1807
+
1808
+ // src/core/schemas/builders/list/list.ts
1809
+ function list(schema) {
1810
+ const baseSchema = {
1811
+ parse: (raw, opts) => validateAndTransformArray(
1812
+ raw,
1813
+ (item, index) => schema.parse(item, {
1814
+ ...opts,
1815
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `[${index}]`]
1816
+ })
1817
+ ),
1818
+ json: (parsed, opts) => validateAndTransformArray(
1819
+ parsed,
1820
+ (item, index) => schema.json(item, {
1821
+ ...opts,
1822
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `[${index}]`]
1823
+ })
1824
+ ),
1825
+ getType: () => SchemaType.LIST
1826
+ };
1827
+ return {
1828
+ ...maybeSkipValidation(baseSchema),
1829
+ ...getSchemaUtils(baseSchema)
1830
+ };
1831
+ }
1832
+ function validateAndTransformArray(value, transformItem) {
1833
+ if (!Array.isArray(value)) {
1834
+ return {
1835
+ ok: false,
1836
+ errors: [
1837
+ {
1838
+ message: getErrorMessageForIncorrectType(value, "list"),
1839
+ path: []
1840
+ }
1841
+ ]
1842
+ };
1843
+ }
1844
+ const maybeValidItems = value.map((item, index) => transformItem(item, index));
1845
+ return maybeValidItems.reduce(
1846
+ (acc, item) => {
1847
+ if (acc.ok && item.ok) {
1848
+ return {
1849
+ ok: true,
1850
+ value: [...acc.value, item.value]
1851
+ };
1852
+ }
1853
+ const errors = [];
1854
+ if (!acc.ok) {
1855
+ errors.push(...acc.errors);
1856
+ }
1857
+ if (!item.ok) {
1858
+ errors.push(...item.errors);
1859
+ }
1860
+ return {
1861
+ ok: false,
1862
+ errors
1863
+ };
1864
+ },
1865
+ { ok: true, value: [] }
1866
+ );
1867
+ }
1868
+
1869
+ // src/core/schemas/builders/literals/stringLiteral.ts
1870
+ function stringLiteral(literal) {
1871
+ const schemaCreator = createIdentitySchemaCreator(
1872
+ SchemaType.STRING_LITERAL,
1873
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1874
+ if (value === literal) {
1875
+ return {
1876
+ ok: true,
1877
+ value: literal
1878
+ };
1879
+ } else {
1880
+ return {
1881
+ ok: false,
1882
+ errors: [
1883
+ {
1884
+ path: breadcrumbsPrefix,
1885
+ message: getErrorMessageForIncorrectType(value, `"${literal}"`)
1886
+ }
1887
+ ]
1888
+ };
1889
+ }
1890
+ }
1891
+ );
1892
+ return schemaCreator();
1893
+ }
1894
+
1895
+ // src/core/schemas/builders/literals/booleanLiteral.ts
1896
+ function booleanLiteral(literal) {
1897
+ const schemaCreator = createIdentitySchemaCreator(
1898
+ SchemaType.BOOLEAN_LITERAL,
1899
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1900
+ if (value === literal) {
1901
+ return {
1902
+ ok: true,
1903
+ value: literal
1904
+ };
1905
+ } else {
1906
+ return {
1907
+ ok: false,
1908
+ errors: [
1909
+ {
1910
+ path: breadcrumbsPrefix,
1911
+ message: getErrorMessageForIncorrectType(value, `${literal.toString()}`)
1912
+ }
1913
+ ]
1914
+ };
1915
+ }
1916
+ }
1917
+ );
1918
+ return schemaCreator();
1919
+ }
1920
+
1921
+ // src/core/schemas/builders/primitives/any.ts
1922
+ var any = createIdentitySchemaCreator(SchemaType.ANY, (value) => ({ ok: true, value }));
1923
+
1924
+ // src/core/schemas/builders/primitives/boolean.ts
1925
+ var boolean = createIdentitySchemaCreator(
1926
+ SchemaType.BOOLEAN,
1927
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1928
+ if (typeof value === "boolean") {
1929
+ return {
1930
+ ok: true,
1931
+ value
1932
+ };
1933
+ } else {
1934
+ return {
1935
+ ok: false,
1936
+ errors: [
1937
+ {
1938
+ path: breadcrumbsPrefix,
1939
+ message: getErrorMessageForIncorrectType(value, "boolean")
1940
+ }
1941
+ ]
1942
+ };
1943
+ }
1944
+ }
1945
+ );
1946
+
1947
+ // src/core/schemas/builders/primitives/number.ts
1948
+ var number = createIdentitySchemaCreator(
1949
+ SchemaType.NUMBER,
1950
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1951
+ if (typeof value === "number") {
1952
+ return {
1953
+ ok: true,
1954
+ value
1955
+ };
1956
+ } else {
1957
+ return {
1958
+ ok: false,
1959
+ errors: [
1960
+ {
1961
+ path: breadcrumbsPrefix,
1962
+ message: getErrorMessageForIncorrectType(value, "number")
1963
+ }
1964
+ ]
1965
+ };
1966
+ }
1967
+ }
1968
+ );
1969
+
1970
+ // src/core/schemas/builders/primitives/string.ts
1971
+ var string = createIdentitySchemaCreator(
1972
+ SchemaType.STRING,
1973
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1974
+ if (typeof value === "string") {
1975
+ return {
1976
+ ok: true,
1977
+ value
1978
+ };
1979
+ } else {
1980
+ return {
1981
+ ok: false,
1982
+ errors: [
1983
+ {
1984
+ path: breadcrumbsPrefix,
1985
+ message: getErrorMessageForIncorrectType(value, "string")
1986
+ }
1987
+ ]
1988
+ };
1989
+ }
1990
+ }
1991
+ );
1992
+
1993
+ // src/core/schemas/builders/primitives/unknown.ts
1994
+ var unknown = createIdentitySchemaCreator(SchemaType.UNKNOWN, (value) => ({ ok: true, value }));
1995
+
1996
+ // src/core/schemas/builders/record/record.ts
1997
+ function record(keySchema, valueSchema) {
1998
+ const baseSchema = {
1999
+ parse: (raw, opts) => {
2000
+ return validateAndTransformRecord({
2001
+ value: raw,
2002
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
2003
+ transformKey: (key) => keySchema.parse(key, {
2004
+ ...opts,
2005
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `${key} (key)`]
2006
+ }),
2007
+ transformValue: (value, key) => valueSchema.parse(value, {
2008
+ ...opts,
2009
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `${key}`]
2010
+ }),
2011
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix
2012
+ });
2013
+ },
2014
+ json: (parsed, opts) => {
2015
+ return validateAndTransformRecord({
2016
+ value: parsed,
2017
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
2018
+ transformKey: (key) => keySchema.json(key, {
2019
+ ...opts,
2020
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `${key} (key)`]
2021
+ }),
2022
+ transformValue: (value, key) => valueSchema.json(value, {
2023
+ ...opts,
2024
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], `${key}`]
2025
+ }),
2026
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix
2027
+ });
2028
+ },
2029
+ getType: () => SchemaType.RECORD
2030
+ };
2031
+ return {
2032
+ ...maybeSkipValidation(baseSchema),
2033
+ ...getSchemaUtils(baseSchema)
2034
+ };
2035
+ }
2036
+ function validateAndTransformRecord({
2037
+ value,
2038
+ isKeyNumeric,
2039
+ transformKey,
2040
+ transformValue,
2041
+ breadcrumbsPrefix = []
2042
+ }) {
2043
+ if (!isPlainObject(value)) {
2044
+ return {
2045
+ ok: false,
2046
+ errors: [
2047
+ {
2048
+ path: breadcrumbsPrefix,
2049
+ message: getErrorMessageForIncorrectType(value, "object")
2050
+ }
2051
+ ]
2052
+ };
2053
+ }
2054
+ return entries(value).reduce(
2055
+ (accPromise, [stringKey, value2]) => {
2056
+ if (value2 === void 0) {
2057
+ return accPromise;
2058
+ }
2059
+ const acc = accPromise;
2060
+ let key = stringKey;
2061
+ if (isKeyNumeric) {
2062
+ const numberKey = stringKey.length > 0 ? Number(stringKey) : NaN;
2063
+ if (!isNaN(numberKey)) {
2064
+ key = numberKey;
2065
+ }
2066
+ }
2067
+ const transformedKey = transformKey(key);
2068
+ const transformedValue = transformValue(value2, key);
2069
+ if (acc.ok && transformedKey.ok && transformedValue.ok) {
2070
+ return {
2071
+ ok: true,
2072
+ value: {
2073
+ ...acc.value,
2074
+ [transformedKey.value]: transformedValue.value
2075
+ }
2076
+ };
2077
+ }
2078
+ const errors = [];
2079
+ if (!acc.ok) {
2080
+ errors.push(...acc.errors);
2081
+ }
2082
+ if (!transformedKey.ok) {
2083
+ errors.push(...transformedKey.errors);
2084
+ }
2085
+ if (!transformedValue.ok) {
2086
+ errors.push(...transformedValue.errors);
2087
+ }
2088
+ return {
2089
+ ok: false,
2090
+ errors
2091
+ };
2092
+ },
2093
+ { ok: true, value: {} }
2094
+ );
2095
+ }
2096
+
2097
+ // src/core/schemas/builders/set/set.ts
2098
+ function set(schema) {
2099
+ const listSchema = list(schema);
2100
+ const baseSchema = {
2101
+ parse: (raw, opts) => {
2102
+ const parsedList = listSchema.parse(raw, opts);
2103
+ if (parsedList.ok) {
2104
+ return {
2105
+ ok: true,
2106
+ value: new Set(parsedList.value)
2107
+ };
2108
+ } else {
2109
+ return parsedList;
2110
+ }
2111
+ },
2112
+ json: (parsed, opts) => {
2113
+ if (!(parsed instanceof Set)) {
2114
+ return {
2115
+ ok: false,
2116
+ errors: [
2117
+ {
2118
+ path: opts?.breadcrumbsPrefix ?? [],
2119
+ message: getErrorMessageForIncorrectType(parsed, "Set")
2120
+ }
2121
+ ]
2122
+ };
2123
+ }
2124
+ const jsonList = listSchema.json([...parsed], opts);
2125
+ return jsonList;
2126
+ },
2127
+ getType: () => SchemaType.SET
2128
+ };
2129
+ return {
2130
+ ...maybeSkipValidation(baseSchema),
2131
+ ...getSchemaUtils(baseSchema)
2132
+ };
2133
+ }
2134
+
2135
+ // src/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.ts
2136
+ function undiscriminatedUnion(schemas) {
2137
+ const baseSchema = {
2138
+ parse: (raw, opts) => {
2139
+ return validateAndTransformUndiscriminatedUnion(
2140
+ (schema, opts2) => schema.parse(raw, opts2),
2141
+ schemas,
2142
+ opts
2143
+ );
2144
+ },
2145
+ json: (parsed, opts) => {
2146
+ return validateAndTransformUndiscriminatedUnion(
2147
+ (schema, opts2) => schema.json(parsed, opts2),
2148
+ schemas,
2149
+ opts
2150
+ );
2151
+ },
2152
+ getType: () => SchemaType.UNDISCRIMINATED_UNION
2153
+ };
2154
+ return {
2155
+ ...maybeSkipValidation(baseSchema),
2156
+ ...getSchemaUtils(baseSchema)
2157
+ };
2158
+ }
2159
+ function validateAndTransformUndiscriminatedUnion(transform2, schemas, opts) {
2160
+ const errors = [];
2161
+ for (const [index, schema] of schemas.entries()) {
2162
+ const transformed = transform2(schema, { ...opts, skipValidation: false });
2163
+ if (transformed.ok) {
2164
+ return transformed;
2165
+ } else {
2166
+ for (const error of transformed.errors) {
2167
+ errors.push({
2168
+ path: error.path,
2169
+ message: `[Variant ${index}] ${error.message}`
2170
+ });
2171
+ }
2172
+ }
2173
+ }
2174
+ return {
2175
+ ok: false,
2176
+ errors
2177
+ };
2178
+ }
2179
+
2180
+ // src/core/schemas/builders/union/discriminant.ts
2181
+ function discriminant(parsedDiscriminant, rawDiscriminant) {
2182
+ return {
2183
+ parsedDiscriminant,
2184
+ rawDiscriminant
2185
+ };
2186
+ }
2187
+
2188
+ // src/core/schemas/builders/union/union.ts
2189
+ function union(discriminant2, union2) {
2190
+ const rawDiscriminant = typeof discriminant2 === "string" ? discriminant2 : discriminant2.rawDiscriminant;
2191
+ const parsedDiscriminant = typeof discriminant2 === "string" ? discriminant2 : discriminant2.parsedDiscriminant;
2192
+ const discriminantValueSchema = enum_(keys(union2));
2193
+ const baseSchema = {
2194
+ parse: (raw, opts) => {
2195
+ return transformAndValidateUnion({
2196
+ value: raw,
2197
+ discriminant: rawDiscriminant,
2198
+ transformedDiscriminant: parsedDiscriminant,
2199
+ transformDiscriminantValue: (discriminantValue) => discriminantValueSchema.parse(discriminantValue, {
2200
+ allowUnrecognizedEnumValues: opts?.allowUnrecognizedUnionMembers,
2201
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], rawDiscriminant]
2202
+ }),
2203
+ getAdditionalPropertiesSchema: (discriminantValue) => union2[discriminantValue],
2204
+ allowUnrecognizedUnionMembers: opts?.allowUnrecognizedUnionMembers,
2205
+ transformAdditionalProperties: (additionalProperties, additionalPropertiesSchema) => additionalPropertiesSchema.parse(additionalProperties, opts),
2206
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix
2207
+ });
2208
+ },
2209
+ json: (parsed, opts) => {
2210
+ return transformAndValidateUnion({
2211
+ value: parsed,
2212
+ discriminant: parsedDiscriminant,
2213
+ transformedDiscriminant: rawDiscriminant,
2214
+ transformDiscriminantValue: (discriminantValue) => discriminantValueSchema.json(discriminantValue, {
2215
+ allowUnrecognizedEnumValues: opts?.allowUnrecognizedUnionMembers,
2216
+ breadcrumbsPrefix: [...opts?.breadcrumbsPrefix ?? [], parsedDiscriminant]
2217
+ }),
2218
+ getAdditionalPropertiesSchema: (discriminantValue) => union2[discriminantValue],
2219
+ allowUnrecognizedUnionMembers: opts?.allowUnrecognizedUnionMembers,
2220
+ transformAdditionalProperties: (additionalProperties, additionalPropertiesSchema) => additionalPropertiesSchema.json(additionalProperties, opts),
2221
+ breadcrumbsPrefix: opts?.breadcrumbsPrefix
2222
+ });
2223
+ },
2224
+ getType: () => SchemaType.UNION
2225
+ };
2226
+ return {
2227
+ ...maybeSkipValidation(baseSchema),
2228
+ ...getSchemaUtils(baseSchema),
2229
+ ...getObjectLikeUtils(baseSchema)
2230
+ };
2231
+ }
2232
+ function transformAndValidateUnion({
2233
+ value,
2234
+ discriminant: discriminant2,
2235
+ transformedDiscriminant,
2236
+ transformDiscriminantValue,
2237
+ getAdditionalPropertiesSchema,
2238
+ allowUnrecognizedUnionMembers = false,
2239
+ transformAdditionalProperties,
2240
+ breadcrumbsPrefix = []
2241
+ }) {
2242
+ if (!isPlainObject(value)) {
2243
+ return {
2244
+ ok: false,
2245
+ errors: [
2246
+ {
2247
+ path: breadcrumbsPrefix,
2248
+ message: getErrorMessageForIncorrectType(value, "object")
2249
+ }
2250
+ ]
2251
+ };
2252
+ }
2253
+ const { [discriminant2]: discriminantValue, ...additionalProperties } = value;
2254
+ if (discriminantValue == null) {
2255
+ return {
2256
+ ok: false,
2257
+ errors: [
2258
+ {
2259
+ path: breadcrumbsPrefix,
2260
+ message: `Missing discriminant ("${discriminant2}")`
2261
+ }
2262
+ ]
2263
+ };
2264
+ }
2265
+ const transformedDiscriminantValue = transformDiscriminantValue(discriminantValue);
2266
+ if (!transformedDiscriminantValue.ok) {
2267
+ return {
2268
+ ok: false,
2269
+ errors: transformedDiscriminantValue.errors
2270
+ };
2271
+ }
2272
+ const additionalPropertiesSchema = getAdditionalPropertiesSchema(transformedDiscriminantValue.value);
2273
+ if (additionalPropertiesSchema == null) {
2274
+ if (allowUnrecognizedUnionMembers) {
2275
+ return {
2276
+ ok: true,
2277
+ value: {
2278
+ [transformedDiscriminant]: transformedDiscriminantValue.value,
2279
+ ...additionalProperties
2280
+ }
2281
+ };
2282
+ } else {
2283
+ return {
2284
+ ok: false,
2285
+ errors: [
2286
+ {
2287
+ path: [...breadcrumbsPrefix, discriminant2],
2288
+ message: "Unexpected discriminant value"
2289
+ }
2290
+ ]
2291
+ };
2292
+ }
2293
+ }
2294
+ const transformedAdditionalProperties = transformAdditionalProperties(
2295
+ additionalProperties,
2296
+ additionalPropertiesSchema
2297
+ );
2298
+ if (!transformedAdditionalProperties.ok) {
2299
+ return transformedAdditionalProperties;
2300
+ }
2301
+ return {
2302
+ ok: true,
2303
+ value: {
2304
+ [transformedDiscriminant]: discriminantValue,
2305
+ ...transformedAdditionalProperties.value
2306
+ }
2307
+ };
2308
+ }
2309
+
2310
+ // src/serialization/index.ts
2311
+ var serialization_exports = {};
2312
+ __export(serialization_exports, {
2313
+ Actor: () => Actor,
2314
+ ActorName: () => ActorName,
2315
+ ActorsCreateRequest: () => ActorsCreateRequest,
2316
+ ActorsCreateResponse: () => ActorsCreateResponse,
2317
+ ActorsDeleteResponse: () => ActorsDeleteResponse,
2318
+ ActorsGetOrCreateRequest: () => ActorsGetOrCreateRequest,
2319
+ ActorsGetOrCreateResponse: () => ActorsGetOrCreateResponse,
2320
+ ActorsKvGetResponse: () => ActorsKvGetResponse,
2321
+ ActorsListNamesResponse: () => ActorsListNamesResponse,
2322
+ ActorsListResponse: () => ActorsListResponse,
2323
+ ActorsRescheduleRequestBody: () => ActorsRescheduleRequestBody,
2324
+ ActorsRescheduleResponse: () => ActorsRescheduleResponse,
2325
+ ActorsSleepRequestBody: () => ActorsSleepRequestBody,
2326
+ ActorsSleepResponse: () => ActorsSleepResponse,
2327
+ CrashPolicy: () => CrashPolicy2,
2328
+ Datacenter: () => Datacenter,
2329
+ DatacenterHealth: () => DatacenterHealth,
2330
+ DatacentersListResponse: () => DatacentersListResponse,
2331
+ Envoy: () => Envoy,
2332
+ EnvoysListResponse: () => EnvoysListResponse,
2333
+ HealthFanoutResponse: () => HealthFanoutResponse,
2334
+ HealthResponse: () => HealthResponse,
2335
+ HealthStatus: () => HealthStatus2,
2336
+ MetadataGetResponse: () => MetadataGetResponse,
2337
+ Namespace: () => Namespace,
2338
+ NamespaceListResponse: () => NamespaceListResponse,
2339
+ NamespacesCreateRequest: () => NamespacesCreateRequest,
2340
+ NamespacesCreateResponse: () => NamespacesCreateResponse,
2341
+ Pagination: () => Pagination,
2342
+ RivetId: () => RivetId,
2343
+ Runner: () => Runner,
2344
+ RunnerConfig: () => RunnerConfig,
2345
+ RunnerConfigKind: () => RunnerConfigKind,
2346
+ RunnerConfigKindNormal: () => RunnerConfigKindNormal,
2347
+ RunnerConfigKindServerless: () => RunnerConfigKindServerless,
2348
+ RunnerConfigKindServerlessServerless: () => RunnerConfigKindServerlessServerless,
2349
+ RunnerConfigResponse: () => RunnerConfigResponse,
2350
+ RunnerConfigServerless: () => RunnerConfigServerless,
2351
+ RunnerConfigVariant: () => RunnerConfigVariant2,
2352
+ RunnerConfigsDeleteResponse: () => RunnerConfigsDeleteResponse,
2353
+ RunnerConfigsListResponse: () => RunnerConfigsListResponse,
2354
+ RunnerConfigsListResponseRunnerConfigsValue: () => RunnerConfigsListResponseRunnerConfigsValue,
2355
+ RunnerConfigsRefreshMetadataRequestBody: () => RunnerConfigsRefreshMetadataRequestBody,
2356
+ RunnerConfigsRefreshMetadataResponse: () => RunnerConfigsRefreshMetadataResponse,
2357
+ RunnerConfigsServerlessHealthCheckRequest: () => RunnerConfigsServerlessHealthCheckRequest,
2358
+ RunnerConfigsServerlessHealthCheckResponse: () => RunnerConfigsServerlessHealthCheckResponse,
2359
+ RunnerConfigsServerlessHealthCheckResponseFailure: () => RunnerConfigsServerlessHealthCheckResponseFailure,
2360
+ RunnerConfigsServerlessHealthCheckResponseFailureFailure: () => RunnerConfigsServerlessHealthCheckResponseFailureFailure,
2361
+ RunnerConfigsServerlessHealthCheckResponseSuccess: () => RunnerConfigsServerlessHealthCheckResponseSuccess,
2362
+ RunnerConfigsServerlessHealthCheckResponseSuccessSuccess: () => RunnerConfigsServerlessHealthCheckResponseSuccessSuccess,
2363
+ RunnerConfigsServerlessMetadataError: () => RunnerConfigsServerlessMetadataError,
2364
+ RunnerConfigsServerlessMetadataErrorInvalidRequest: () => RunnerConfigsServerlessMetadataErrorInvalidRequest,
2365
+ RunnerConfigsServerlessMetadataErrorInvalidResponseJson: () => RunnerConfigsServerlessMetadataErrorInvalidResponseJson,
2366
+ RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson: () => RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson,
2367
+ RunnerConfigsServerlessMetadataErrorInvalidResponseSchema: () => RunnerConfigsServerlessMetadataErrorInvalidResponseSchema,
2368
+ RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema: () => RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema,
2369
+ RunnerConfigsServerlessMetadataErrorNonSuccessStatus: () => RunnerConfigsServerlessMetadataErrorNonSuccessStatus,
2370
+ RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus: () => RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus,
2371
+ RunnerConfigsServerlessMetadataErrorRequestFailed: () => RunnerConfigsServerlessMetadataErrorRequestFailed,
2372
+ RunnerConfigsServerlessMetadataErrorRequestTimedOut: () => RunnerConfigsServerlessMetadataErrorRequestTimedOut,
2373
+ RunnerConfigsUpsertRequestBody: () => RunnerConfigsUpsertRequestBody,
2374
+ RunnerConfigsUpsertResponse: () => RunnerConfigsUpsertResponse,
2375
+ RunnersListNamesResponse: () => RunnersListNamesResponse,
2376
+ RunnersListResponse: () => RunnersListResponse,
2377
+ namespaces: () => namespaces_exports2
2378
+ });
2379
+
2380
+ // src/serialization/types/RivetId.ts
2381
+ var RivetId = schemas_exports.string();
2382
+
2383
+ // src/serialization/types/CrashPolicy.ts
2384
+ var CrashPolicy2 = schemas_exports.enum_(["restart", "sleep", "destroy"]);
2385
+
2386
+ // src/serialization/types/Actor.ts
2387
+ var Actor = schemas_exports.object({
2388
+ actorId: schemas_exports.property("actor_id", RivetId),
2389
+ connectableTs: schemas_exports.property("connectable_ts", schemas_exports.number().optional()),
2390
+ crashPolicy: schemas_exports.property("crash_policy", CrashPolicy2),
2391
+ createTs: schemas_exports.property("create_ts", schemas_exports.number()),
2392
+ datacenter: schemas_exports.string(),
2393
+ destroyTs: schemas_exports.property("destroy_ts", schemas_exports.number().optional()),
2394
+ error: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown()).optional(),
2395
+ key: schemas_exports.string().optional(),
2396
+ name: schemas_exports.string(),
2397
+ namespaceId: schemas_exports.property("namespace_id", RivetId),
2398
+ pendingAllocationTs: schemas_exports.property("pending_allocation_ts", schemas_exports.number().optional()),
2399
+ rescheduleTs: schemas_exports.property("reschedule_ts", schemas_exports.number().optional()),
2400
+ runnerNameSelector: schemas_exports.property("runner_name_selector", schemas_exports.string()),
2401
+ sleepTs: schemas_exports.property("sleep_ts", schemas_exports.number().optional()),
2402
+ startTs: schemas_exports.property("start_ts", schemas_exports.number().optional())
2403
+ });
2404
+
2405
+ // src/serialization/types/ActorName.ts
2406
+ var ActorName = schemas_exports.object({
2407
+ metadata: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown())
2408
+ });
2409
+
2410
+ // src/serialization/types/ActorsCreateResponse.ts
2411
+ var ActorsCreateResponse = schemas_exports.object({
2412
+ actor: Actor
2413
+ });
2414
+
2415
+ // src/serialization/types/ActorsDeleteResponse.ts
2416
+ var ActorsDeleteResponse = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2417
+
2418
+ // src/serialization/types/ActorsGetOrCreateResponse.ts
2419
+ var ActorsGetOrCreateResponse = schemas_exports.object({
2420
+ actor: Actor,
2421
+ created: schemas_exports.boolean()
2422
+ });
2423
+
2424
+ // src/serialization/types/ActorsKvGetResponse.ts
2425
+ var ActorsKvGetResponse = schemas_exports.object({
2426
+ updateTs: schemas_exports.property("update_ts", schemas_exports.number()),
2427
+ value: schemas_exports.string()
2428
+ });
2429
+
2430
+ // src/serialization/types/Pagination.ts
2431
+ var Pagination = schemas_exports.object({
2432
+ cursor: schemas_exports.string().optional()
2433
+ });
2434
+
2435
+ // src/serialization/types/ActorsListNamesResponse.ts
2436
+ var ActorsListNamesResponse = schemas_exports.object({
2437
+ names: schemas_exports.record(schemas_exports.string(), ActorName),
2438
+ pagination: Pagination
2439
+ });
2440
+
2441
+ // src/serialization/types/ActorsListResponse.ts
2442
+ var ActorsListResponse = schemas_exports.object({
2443
+ actors: schemas_exports.list(Actor),
2444
+ pagination: Pagination
2445
+ });
2446
+
2447
+ // src/serialization/types/ActorsRescheduleRequestBody.ts
2448
+ var ActorsRescheduleRequestBody = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2449
+
2450
+ // src/serialization/types/ActorsRescheduleResponse.ts
2451
+ var ActorsRescheduleResponse = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2452
+
2453
+ // src/serialization/types/ActorsSleepRequestBody.ts
2454
+ var ActorsSleepRequestBody = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2455
+
2456
+ // src/serialization/types/ActorsSleepResponse.ts
2457
+ var ActorsSleepResponse = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2458
+
2459
+ // src/serialization/types/Datacenter.ts
2460
+ var Datacenter = schemas_exports.object({
2461
+ label: schemas_exports.number(),
2462
+ name: schemas_exports.string(),
2463
+ url: schemas_exports.string()
2464
+ });
2465
+
2466
+ // src/serialization/types/HealthResponse.ts
2467
+ var HealthResponse = schemas_exports.object({
2468
+ runtime: schemas_exports.string(),
2469
+ status: schemas_exports.string(),
2470
+ version: schemas_exports.string()
2471
+ });
2472
+
2473
+ // src/serialization/types/HealthStatus.ts
2474
+ var HealthStatus2 = schemas_exports.enum_(["ok", "error"]);
2475
+
2476
+ // src/serialization/types/DatacenterHealth.ts
2477
+ var DatacenterHealth = schemas_exports.object({
2478
+ datacenterLabel: schemas_exports.property("datacenter_label", schemas_exports.number()),
2479
+ datacenterName: schemas_exports.property("datacenter_name", schemas_exports.string()),
2480
+ error: schemas_exports.string().optional(),
2481
+ response: HealthResponse.optional(),
2482
+ rttMs: schemas_exports.property("rtt_ms", schemas_exports.number().optional()),
2483
+ status: HealthStatus2
2484
+ });
2485
+
2486
+ // src/serialization/types/DatacentersListResponse.ts
2487
+ var DatacentersListResponse = schemas_exports.object({
2488
+ datacenters: schemas_exports.list(Datacenter),
2489
+ pagination: Pagination
2490
+ });
2491
+
2492
+ // src/serialization/types/Envoy.ts
2493
+ var Envoy = schemas_exports.object({
2494
+ createTs: schemas_exports.property("create_ts", schemas_exports.number()),
2495
+ datacenter: schemas_exports.string(),
2496
+ envoyKey: schemas_exports.property("envoy_key", schemas_exports.string()),
2497
+ lastConnectedTs: schemas_exports.property("last_connected_ts", schemas_exports.number().optional()),
2498
+ lastPingTs: schemas_exports.property("last_ping_ts", schemas_exports.number()),
2499
+ lastRtt: schemas_exports.property("last_rtt", schemas_exports.number()),
2500
+ metadata: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown()).optional(),
2501
+ namespaceId: schemas_exports.property("namespace_id", RivetId),
2502
+ poolName: schemas_exports.property("pool_name", schemas_exports.string()),
2503
+ slots: schemas_exports.number(),
2504
+ stopTs: schemas_exports.property("stop_ts", schemas_exports.number().optional()),
2505
+ version: schemas_exports.number()
2506
+ });
2507
+
2508
+ // src/serialization/types/EnvoysListResponse.ts
2509
+ var EnvoysListResponse = schemas_exports.object({
2510
+ envoys: schemas_exports.list(Envoy),
2511
+ pagination: Pagination
2512
+ });
2513
+
2514
+ // src/serialization/types/HealthFanoutResponse.ts
2515
+ var HealthFanoutResponse = schemas_exports.object({
2516
+ datacenters: schemas_exports.list(DatacenterHealth)
2517
+ });
2518
+
2519
+ // src/serialization/types/MetadataGetResponse.ts
2520
+ var MetadataGetResponse = schemas_exports.object({
2521
+ buildTimestamp: schemas_exports.property("build_timestamp", schemas_exports.string()),
2522
+ cargoProfile: schemas_exports.property("cargo_profile", schemas_exports.string()),
2523
+ cargoTarget: schemas_exports.property("cargo_target", schemas_exports.string()),
2524
+ gitSha: schemas_exports.property("git_sha", schemas_exports.string()),
2525
+ runtime: schemas_exports.string(),
2526
+ rustcHost: schemas_exports.property("rustc_host", schemas_exports.string()),
2527
+ rustcVersion: schemas_exports.property("rustc_version", schemas_exports.string()),
2528
+ version: schemas_exports.string()
2529
+ });
2530
+
2531
+ // src/serialization/types/Namespace.ts
2532
+ var Namespace = schemas_exports.object({
2533
+ createTs: schemas_exports.property("create_ts", schemas_exports.number()),
2534
+ displayName: schemas_exports.property("display_name", schemas_exports.string()),
2535
+ name: schemas_exports.string(),
2536
+ namespaceId: schemas_exports.property("namespace_id", RivetId)
2537
+ });
2538
+
2539
+ // src/serialization/types/NamespaceListResponse.ts
2540
+ var NamespaceListResponse = schemas_exports.object({
2541
+ namespaces: schemas_exports.list(Namespace),
2542
+ pagination: Pagination
2543
+ });
2544
+
2545
+ // src/serialization/types/NamespacesCreateResponse.ts
2546
+ var NamespacesCreateResponse = schemas_exports.object({
2547
+ namespace: Namespace
2548
+ });
2549
+
2550
+ // src/serialization/types/Runner.ts
2551
+ var Runner = schemas_exports.object({
2552
+ createTs: schemas_exports.property("create_ts", schemas_exports.number()),
2553
+ datacenter: schemas_exports.string(),
2554
+ drainTs: schemas_exports.property("drain_ts", schemas_exports.number().optional()),
2555
+ key: schemas_exports.string(),
2556
+ lastConnectedTs: schemas_exports.property("last_connected_ts", schemas_exports.number().optional()),
2557
+ lastPingTs: schemas_exports.property("last_ping_ts", schemas_exports.number()),
2558
+ lastRtt: schemas_exports.property("last_rtt", schemas_exports.number()),
2559
+ metadata: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown()).optional(),
2560
+ name: schemas_exports.string(),
2561
+ namespaceId: schemas_exports.property("namespace_id", RivetId),
2562
+ remainingSlots: schemas_exports.property("remaining_slots", schemas_exports.number()),
2563
+ runnerId: schemas_exports.property("runner_id", RivetId),
2564
+ stopTs: schemas_exports.property("stop_ts", schemas_exports.number().optional()),
2565
+ totalSlots: schemas_exports.property("total_slots", schemas_exports.number()),
2566
+ version: schemas_exports.number()
2567
+ });
2568
+
2569
+ // src/serialization/types/RunnerConfigServerless.ts
2570
+ var RunnerConfigServerless = schemas_exports.object({
2571
+ headers: schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
2572
+ maxConcurrentActors: schemas_exports.property("max_concurrent_actors", schemas_exports.number().optional()),
2573
+ maxRunners: schemas_exports.property("max_runners", schemas_exports.number()),
2574
+ metadataPollInterval: schemas_exports.property("metadata_poll_interval", schemas_exports.number().optional()),
2575
+ minRunners: schemas_exports.property("min_runners", schemas_exports.number().optional()),
2576
+ requestLifespan: schemas_exports.property("request_lifespan", schemas_exports.number()),
2577
+ runnersMargin: schemas_exports.property("runners_margin", schemas_exports.number().optional()),
2578
+ slotsPerRunner: schemas_exports.property("slots_per_runner", schemas_exports.number()),
2579
+ url: schemas_exports.string()
2580
+ });
2581
+
2582
+ // src/serialization/types/RunnerConfig.ts
2583
+ var RunnerConfig = schemas_exports.object({
2584
+ normal: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown()).optional(),
2585
+ serverless: RunnerConfigServerless.optional(),
2586
+ drainOnVersionUpgrade: schemas_exports.property(
2587
+ "drain_on_version_upgrade",
2588
+ schemas_exports.boolean().optional()
2589
+ ),
2590
+ metadata: schemas_exports.unknown().optional()
2591
+ });
2592
+
2593
+ // src/serialization/types/RunnerConfigKindNormal.ts
2594
+ var RunnerConfigKindNormal = schemas_exports.object({
2595
+ normal: schemas_exports.record(schemas_exports.string(), schemas_exports.unknown())
2596
+ });
2597
+
2598
+ // src/serialization/types/RunnerConfigKindServerlessServerless.ts
2599
+ var RunnerConfigKindServerlessServerless = schemas_exports.object({
2600
+ headers: schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
2601
+ maxConcurrentActors: schemas_exports.property("max_concurrent_actors", schemas_exports.number().optional()),
2602
+ maxRunners: schemas_exports.property("max_runners", schemas_exports.number()),
2603
+ metadataPollInterval: schemas_exports.property("metadata_poll_interval", schemas_exports.number().optional()),
2604
+ minRunners: schemas_exports.property("min_runners", schemas_exports.number().optional()),
2605
+ requestLifespan: schemas_exports.property("request_lifespan", schemas_exports.number()),
2606
+ runnersMargin: schemas_exports.property("runners_margin", schemas_exports.number().optional()),
2607
+ slotsPerRunner: schemas_exports.property("slots_per_runner", schemas_exports.number()),
2608
+ url: schemas_exports.string()
2609
+ });
2610
+
2611
+ // src/serialization/types/RunnerConfigKindServerless.ts
2612
+ var RunnerConfigKindServerless = schemas_exports.object({
2613
+ serverless: RunnerConfigKindServerlessServerless
2614
+ });
2615
+
2616
+ // src/serialization/types/RunnerConfigKind.ts
2617
+ var RunnerConfigKind = schemas_exports.undiscriminatedUnion([RunnerConfigKindNormal, RunnerConfigKindServerless]);
2618
+
2619
+ // src/serialization/types/RunnerConfigResponse.ts
2620
+ var RunnerConfigResponse = schemas_exports.object({
2621
+ runnerPoolError: schemas_exports.property(
2622
+ "runner_pool_error",
2623
+ schemas_exports.record(schemas_exports.string(), schemas_exports.unknown()).optional()
2624
+ )
2625
+ }).extend(RunnerConfig);
2626
+
2627
+ // src/serialization/types/RunnerConfigVariant.ts
2628
+ var RunnerConfigVariant2 = schemas_exports.enum_(["serverless", "normal"]);
2629
+
2630
+ // src/serialization/types/RunnerConfigsDeleteResponse.ts
2631
+ var RunnerConfigsDeleteResponse = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2632
+
2633
+ // src/serialization/types/RunnerConfigsListResponseRunnerConfigsValue.ts
2634
+ var RunnerConfigsListResponseRunnerConfigsValue = schemas_exports.object({
2635
+ datacenters: schemas_exports.record(schemas_exports.string(), RunnerConfigResponse)
2636
+ });
2637
+
2638
+ // src/serialization/types/RunnerConfigsListResponse.ts
2639
+ var RunnerConfigsListResponse = schemas_exports.object({
2640
+ pagination: Pagination,
2641
+ runnerConfigs: schemas_exports.property(
2642
+ "runner_configs",
2643
+ schemas_exports.record(schemas_exports.string(), RunnerConfigsListResponseRunnerConfigsValue)
2644
+ )
2645
+ });
2646
+
2647
+ // src/serialization/types/RunnerConfigsRefreshMetadataRequestBody.ts
2648
+ var RunnerConfigsRefreshMetadataRequestBody = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2649
+
2650
+ // src/serialization/types/RunnerConfigsRefreshMetadataResponse.ts
2651
+ var RunnerConfigsRefreshMetadataResponse = schemas_exports.record(schemas_exports.string(), schemas_exports.unknown());
2652
+
2653
+ // src/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.ts
2654
+ var RunnerConfigsServerlessHealthCheckResponseSuccessSuccess = schemas_exports.object({
2655
+ version: schemas_exports.string()
2656
+ });
2657
+
2658
+ // src/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccess.ts
2659
+ var RunnerConfigsServerlessHealthCheckResponseSuccess = schemas_exports.object({
2660
+ success: RunnerConfigsServerlessHealthCheckResponseSuccessSuccess
2661
+ });
2662
+
2663
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.ts
2664
+ var RunnerConfigsServerlessMetadataErrorInvalidRequest = schemas_exports.object({
2665
+ invalidRequest: schemas_exports.property(
2666
+ "invalid_request",
2667
+ schemas_exports.record(schemas_exports.string(), schemas_exports.unknown())
2668
+ )
2669
+ });
2670
+
2671
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorRequestFailed.ts
2672
+ var RunnerConfigsServerlessMetadataErrorRequestFailed = schemas_exports.object({
2673
+ requestFailed: schemas_exports.property(
2674
+ "request_failed",
2675
+ schemas_exports.record(schemas_exports.string(), schemas_exports.unknown())
2676
+ )
2677
+ });
2678
+
2679
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.ts
2680
+ var RunnerConfigsServerlessMetadataErrorRequestTimedOut = schemas_exports.object({
2681
+ requestTimedOut: schemas_exports.property(
2682
+ "request_timed_out",
2683
+ schemas_exports.record(schemas_exports.string(), schemas_exports.unknown())
2684
+ )
2685
+ });
2686
+
2687
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.ts
2688
+ var RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus = schemas_exports.object({
2689
+ body: schemas_exports.string(),
2690
+ statusCode: schemas_exports.property("status_code", schemas_exports.number())
2691
+ });
2692
+
2693
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.ts
2694
+ var RunnerConfigsServerlessMetadataErrorNonSuccessStatus = schemas_exports.object({
2695
+ nonSuccessStatus: schemas_exports.property(
2696
+ "non_success_status",
2697
+ RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus
2698
+ )
2699
+ });
2700
+
2701
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.ts
2702
+ var RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson = schemas_exports.object({
2703
+ body: schemas_exports.string()
2704
+ });
2705
+
2706
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.ts
2707
+ var RunnerConfigsServerlessMetadataErrorInvalidResponseJson = schemas_exports.object({
2708
+ invalidResponseJson: schemas_exports.property(
2709
+ "invalid_response_json",
2710
+ RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson
2711
+ )
2712
+ });
2713
+
2714
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.ts
2715
+ var RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema = schemas_exports.object({
2716
+ runtime: schemas_exports.string(),
2717
+ version: schemas_exports.string()
2718
+ });
2719
+
2720
+ // src/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.ts
2721
+ var RunnerConfigsServerlessMetadataErrorInvalidResponseSchema = schemas_exports.object({
2722
+ invalidResponseSchema: schemas_exports.property(
2723
+ "invalid_response_schema",
2724
+ RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema
2725
+ )
2726
+ });
2727
+
2728
+ // src/serialization/types/RunnerConfigsServerlessMetadataError.ts
2729
+ var RunnerConfigsServerlessMetadataError = schemas_exports.undiscriminatedUnion([
2730
+ RunnerConfigsServerlessMetadataErrorInvalidRequest,
2731
+ RunnerConfigsServerlessMetadataErrorRequestFailed,
2732
+ RunnerConfigsServerlessMetadataErrorRequestTimedOut,
2733
+ RunnerConfigsServerlessMetadataErrorNonSuccessStatus,
2734
+ RunnerConfigsServerlessMetadataErrorInvalidResponseJson,
2735
+ RunnerConfigsServerlessMetadataErrorInvalidResponseSchema
2736
+ ]);
2737
+
2738
+ // src/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.ts
2739
+ var RunnerConfigsServerlessHealthCheckResponseFailureFailure = schemas_exports.object({
2740
+ error: RunnerConfigsServerlessMetadataError
2741
+ });
2742
+
2743
+ // src/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailure.ts
2744
+ var RunnerConfigsServerlessHealthCheckResponseFailure = schemas_exports.object({
2745
+ failure: RunnerConfigsServerlessHealthCheckResponseFailureFailure
2746
+ });
2747
+
2748
+ // src/serialization/types/RunnerConfigsServerlessHealthCheckResponse.ts
2749
+ var RunnerConfigsServerlessHealthCheckResponse = schemas_exports.undiscriminatedUnion([
2750
+ RunnerConfigsServerlessHealthCheckResponseSuccess,
2751
+ RunnerConfigsServerlessHealthCheckResponseFailure
2752
+ ]);
2753
+
2754
+ // src/serialization/types/RunnerConfigsUpsertResponse.ts
2755
+ var RunnerConfigsUpsertResponse = schemas_exports.object({
2756
+ endpointConfigChanged: schemas_exports.property("endpoint_config_changed", schemas_exports.boolean())
2757
+ });
2758
+
2759
+ // src/serialization/types/RunnersListNamesResponse.ts
2760
+ var RunnersListNamesResponse = schemas_exports.object({
2761
+ names: schemas_exports.list(schemas_exports.string()),
2762
+ pagination: Pagination
2763
+ });
2764
+
2765
+ // src/serialization/types/RunnersListResponse.ts
2766
+ var RunnersListResponse = schemas_exports.object({
2767
+ pagination: Pagination,
2768
+ runners: schemas_exports.list(Runner)
2769
+ });
2770
+
2771
+ // src/serialization/client/requests/ActorsCreateRequest.ts
2772
+ var ActorsCreateRequest = schemas_exports.object({
2773
+ crashPolicy: schemas_exports.property("crash_policy", CrashPolicy2),
2774
+ datacenter: schemas_exports.string().optional(),
2775
+ input: schemas_exports.string().optional(),
2776
+ key: schemas_exports.string().optional(),
2777
+ name: schemas_exports.string(),
2778
+ runnerNameSelector: schemas_exports.property("runner_name_selector", schemas_exports.string())
2779
+ });
2780
+
2781
+ // src/serialization/client/requests/ActorsGetOrCreateRequest.ts
2782
+ var ActorsGetOrCreateRequest = schemas_exports.object({
2783
+ crashPolicy: schemas_exports.property("crash_policy", CrashPolicy2),
2784
+ datacenter: schemas_exports.string().optional(),
2785
+ input: schemas_exports.string().optional(),
2786
+ key: schemas_exports.string(),
2787
+ name: schemas_exports.string(),
2788
+ runnerNameSelector: schemas_exports.property("runner_name_selector", schemas_exports.string())
2789
+ });
2790
+
2791
+ // src/serialization/client/requests/RunnerConfigsServerlessHealthCheckRequest.ts
2792
+ var RunnerConfigsServerlessHealthCheckRequest = schemas_exports.object({
2793
+ headers: schemas_exports.record(schemas_exports.string(), schemas_exports.string()).optional(),
2794
+ url: schemas_exports.string()
2795
+ });
2796
+
2797
+ // src/serialization/client/requests/RunnerConfigsUpsertRequestBody.ts
2798
+ var RunnerConfigsUpsertRequestBody = schemas_exports.object({
2799
+ datacenters: schemas_exports.record(schemas_exports.string(), RunnerConfig)
2800
+ });
2801
+
2802
+ // src/serialization/resources/namespaces/index.ts
2803
+ var namespaces_exports2 = {};
2804
+ __export(namespaces_exports2, {
2805
+ NamespacesCreateRequest: () => NamespacesCreateRequest
2806
+ });
2807
+
2808
+ // src/serialization/resources/namespaces/client/requests/NamespacesCreateRequest.ts
2809
+ var NamespacesCreateRequest = schemas_exports.object({
2810
+ displayName: schemas_exports.property("display_name", schemas_exports.string()),
2811
+ name: schemas_exports.string()
2812
+ });
2813
+
2814
+ // src/Client.ts
2815
+ import urlJoin7 from "url-join";
2816
+
2817
+ // src/errors/RivetError.ts
2818
+ var RivetError = class _RivetError extends Error {
2819
+ statusCode;
2820
+ body;
2821
+ constructor({ message, statusCode, body }) {
2822
+ super(buildMessage({ message, statusCode, body }));
2823
+ Object.setPrototypeOf(this, _RivetError.prototype);
2824
+ if (statusCode != null) {
2825
+ this.statusCode = statusCode;
2826
+ }
2827
+ if (body !== void 0) {
2828
+ this.body = body;
2829
+ }
2830
+ }
2831
+ };
2832
+ function buildMessage({
2833
+ message,
2834
+ statusCode,
2835
+ body
2836
+ }) {
2837
+ let lines = [];
2838
+ if (message != null) {
2839
+ lines.push(message);
2840
+ }
2841
+ if (statusCode != null) {
2842
+ lines.push(`Status code: ${statusCode.toString()}`);
2843
+ }
2844
+ if (body != null) {
2845
+ lines.push(`Body: ${toJson(body, void 0, 2)}`);
2846
+ }
2847
+ return lines.join("\n");
2848
+ }
2849
+
2850
+ // src/errors/RivetTimeoutError.ts
2851
+ var RivetTimeoutError = class _RivetTimeoutError extends Error {
2852
+ constructor(message) {
2853
+ super(message);
2854
+ Object.setPrototypeOf(this, _RivetTimeoutError.prototype);
2855
+ }
2856
+ };
2857
+
2858
+ // src/api/resources/datacenters/client/Client.ts
2859
+ import urlJoin from "url-join";
2860
+ var Datacenters = class {
2861
+ constructor(_options) {
2862
+ this._options = _options;
2863
+ }
2864
+ /**
2865
+ * @param {Datacenters.RequestOptions} requestOptions - Request-specific configuration.
2866
+ *
2867
+ * @example
2868
+ * await client.datacenters.list()
2869
+ */
2870
+ async list(requestOptions) {
2871
+ const _response = await (this._options.fetcher ?? fetcher)({
2872
+ url: urlJoin(
2873
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
2874
+ "datacenters"
2875
+ ),
2876
+ method: "GET",
2877
+ headers: {
2878
+ Authorization: await this._getAuthorizationHeader(),
2879
+ "X-Fern-Language": "JavaScript",
2880
+ "X-Fern-Runtime": RUNTIME.type,
2881
+ "X-Fern-Runtime-Version": RUNTIME.version,
2882
+ ...requestOptions?.headers
2883
+ },
2884
+ contentType: "application/json",
2885
+ requestType: "json",
2886
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
2887
+ maxRetries: requestOptions?.maxRetries,
2888
+ abortSignal: requestOptions?.abortSignal
2889
+ });
2890
+ if (_response.ok) {
2891
+ return DatacentersListResponse.parseOrThrow(_response.body, {
2892
+ unrecognizedObjectKeys: "passthrough",
2893
+ allowUnrecognizedUnionMembers: true,
2894
+ allowUnrecognizedEnumValues: true,
2895
+ skipValidation: true,
2896
+ breadcrumbsPrefix: ["response"]
2897
+ });
2898
+ }
2899
+ if (_response.error.reason === "status-code") {
2900
+ throw new RivetError({
2901
+ statusCode: _response.error.statusCode,
2902
+ body: _response.error.body
2903
+ });
2904
+ }
2905
+ switch (_response.error.reason) {
2906
+ case "non-json":
2907
+ throw new RivetError({
2908
+ statusCode: _response.error.statusCode,
2909
+ body: _response.error.rawBody
2910
+ });
2911
+ case "timeout":
2912
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /datacenters.");
2913
+ case "unknown":
2914
+ throw new RivetError({
2915
+ message: _response.error.errorMessage
2916
+ });
2917
+ }
2918
+ }
2919
+ async _getAuthorizationHeader() {
2920
+ return `Bearer ${await Supplier.get(this._options.token)}`;
2921
+ }
2922
+ };
2923
+
2924
+ // src/api/resources/envoys/client/Client.ts
2925
+ import urlJoin2 from "url-join";
2926
+ var Envoys = class {
2927
+ constructor(_options) {
2928
+ this._options = _options;
2929
+ }
2930
+ /**
2931
+ * @param {Rivet.EnvoysListRequest} request
2932
+ * @param {Envoys.RequestOptions} requestOptions - Request-specific configuration.
2933
+ *
2934
+ * @example
2935
+ * await client.envoys.list({
2936
+ * namespace: "namespace"
2937
+ * })
2938
+ */
2939
+ async list(request, requestOptions) {
2940
+ const { namespace, name, envoyKey, limit, cursor } = request;
2941
+ const _queryParams = {};
2942
+ _queryParams["namespace"] = namespace;
2943
+ if (name != null) {
2944
+ _queryParams["name"] = name;
2945
+ }
2946
+ if (envoyKey != null) {
2947
+ if (Array.isArray(envoyKey)) {
2948
+ _queryParams["envoy_key"] = envoyKey.map((item) => item);
2949
+ } else {
2950
+ _queryParams["envoy_key"] = envoyKey;
2951
+ }
2952
+ }
2953
+ if (limit != null) {
2954
+ _queryParams["limit"] = limit.toString();
2955
+ }
2956
+ if (cursor != null) {
2957
+ _queryParams["cursor"] = cursor;
2958
+ }
2959
+ const _response = await (this._options.fetcher ?? fetcher)({
2960
+ url: urlJoin2(
2961
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
2962
+ "envoys"
2963
+ ),
2964
+ method: "GET",
2965
+ headers: {
2966
+ Authorization: await this._getAuthorizationHeader(),
2967
+ "X-Fern-Language": "JavaScript",
2968
+ "X-Fern-Runtime": RUNTIME.type,
2969
+ "X-Fern-Runtime-Version": RUNTIME.version,
2970
+ ...requestOptions?.headers
2971
+ },
2972
+ contentType: "application/json",
2973
+ queryParameters: _queryParams,
2974
+ requestType: "json",
2975
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
2976
+ maxRetries: requestOptions?.maxRetries,
2977
+ abortSignal: requestOptions?.abortSignal
2978
+ });
2979
+ if (_response.ok) {
2980
+ return EnvoysListResponse.parseOrThrow(_response.body, {
2981
+ unrecognizedObjectKeys: "passthrough",
2982
+ allowUnrecognizedUnionMembers: true,
2983
+ allowUnrecognizedEnumValues: true,
2984
+ skipValidation: true,
2985
+ breadcrumbsPrefix: ["response"]
2986
+ });
2987
+ }
2988
+ if (_response.error.reason === "status-code") {
2989
+ throw new RivetError({
2990
+ statusCode: _response.error.statusCode,
2991
+ body: _response.error.body
2992
+ });
2993
+ }
2994
+ switch (_response.error.reason) {
2995
+ case "non-json":
2996
+ throw new RivetError({
2997
+ statusCode: _response.error.statusCode,
2998
+ body: _response.error.rawBody
2999
+ });
3000
+ case "timeout":
3001
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /envoys.");
3002
+ case "unknown":
3003
+ throw new RivetError({
3004
+ message: _response.error.errorMessage
3005
+ });
3006
+ }
3007
+ }
3008
+ async _getAuthorizationHeader() {
3009
+ return `Bearer ${await Supplier.get(this._options.token)}`;
3010
+ }
3011
+ };
3012
+
3013
+ // src/api/resources/health/client/Client.ts
3014
+ import urlJoin3 from "url-join";
3015
+ var Health = class {
3016
+ constructor(_options) {
3017
+ this._options = _options;
3018
+ }
3019
+ /**
3020
+ * @param {Health.RequestOptions} requestOptions - Request-specific configuration.
3021
+ *
3022
+ * @example
3023
+ * await client.health.fanout()
3024
+ */
3025
+ async fanout(requestOptions) {
3026
+ const _response = await (this._options.fetcher ?? fetcher)({
3027
+ url: urlJoin3(
3028
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3029
+ "health/fanout"
3030
+ ),
3031
+ method: "GET",
3032
+ headers: {
3033
+ Authorization: await this._getAuthorizationHeader(),
3034
+ "X-Fern-Language": "JavaScript",
3035
+ "X-Fern-Runtime": RUNTIME.type,
3036
+ "X-Fern-Runtime-Version": RUNTIME.version,
3037
+ ...requestOptions?.headers
3038
+ },
3039
+ contentType: "application/json",
3040
+ requestType: "json",
3041
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3042
+ maxRetries: requestOptions?.maxRetries,
3043
+ abortSignal: requestOptions?.abortSignal
3044
+ });
3045
+ if (_response.ok) {
3046
+ return HealthFanoutResponse.parseOrThrow(_response.body, {
3047
+ unrecognizedObjectKeys: "passthrough",
3048
+ allowUnrecognizedUnionMembers: true,
3049
+ allowUnrecognizedEnumValues: true,
3050
+ skipValidation: true,
3051
+ breadcrumbsPrefix: ["response"]
3052
+ });
3053
+ }
3054
+ if (_response.error.reason === "status-code") {
3055
+ throw new RivetError({
3056
+ statusCode: _response.error.statusCode,
3057
+ body: _response.error.body
3058
+ });
3059
+ }
3060
+ switch (_response.error.reason) {
3061
+ case "non-json":
3062
+ throw new RivetError({
3063
+ statusCode: _response.error.statusCode,
3064
+ body: _response.error.rawBody
3065
+ });
3066
+ case "timeout":
3067
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /health/fanout.");
3068
+ case "unknown":
3069
+ throw new RivetError({
3070
+ message: _response.error.errorMessage
3071
+ });
3072
+ }
3073
+ }
3074
+ async _getAuthorizationHeader() {
3075
+ return `Bearer ${await Supplier.get(this._options.token)}`;
3076
+ }
3077
+ };
3078
+
3079
+ // src/api/resources/metadata/client/Client.ts
3080
+ import urlJoin4 from "url-join";
3081
+ var Metadata = class {
3082
+ constructor(_options) {
3083
+ this._options = _options;
3084
+ }
3085
+ /**
3086
+ * @param {Metadata.RequestOptions} requestOptions - Request-specific configuration.
3087
+ *
3088
+ * @example
3089
+ * await client.metadata.get()
3090
+ */
3091
+ async get(requestOptions) {
3092
+ const _response = await (this._options.fetcher ?? fetcher)({
3093
+ url: urlJoin4(
3094
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3095
+ "metadata"
3096
+ ),
3097
+ method: "GET",
3098
+ headers: {
3099
+ Authorization: await this._getAuthorizationHeader(),
3100
+ "X-Fern-Language": "JavaScript",
3101
+ "X-Fern-Runtime": RUNTIME.type,
3102
+ "X-Fern-Runtime-Version": RUNTIME.version,
3103
+ ...requestOptions?.headers
3104
+ },
3105
+ contentType: "application/json",
3106
+ requestType: "json",
3107
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3108
+ maxRetries: requestOptions?.maxRetries,
3109
+ abortSignal: requestOptions?.abortSignal
3110
+ });
3111
+ if (_response.ok) {
3112
+ return MetadataGetResponse.parseOrThrow(_response.body, {
3113
+ unrecognizedObjectKeys: "passthrough",
3114
+ allowUnrecognizedUnionMembers: true,
3115
+ allowUnrecognizedEnumValues: true,
3116
+ skipValidation: true,
3117
+ breadcrumbsPrefix: ["response"]
3118
+ });
3119
+ }
3120
+ if (_response.error.reason === "status-code") {
3121
+ throw new RivetError({
3122
+ statusCode: _response.error.statusCode,
3123
+ body: _response.error.body
3124
+ });
3125
+ }
3126
+ switch (_response.error.reason) {
3127
+ case "non-json":
3128
+ throw new RivetError({
3129
+ statusCode: _response.error.statusCode,
3130
+ body: _response.error.rawBody
3131
+ });
3132
+ case "timeout":
3133
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /metadata.");
3134
+ case "unknown":
3135
+ throw new RivetError({
3136
+ message: _response.error.errorMessage
3137
+ });
3138
+ }
3139
+ }
3140
+ async _getAuthorizationHeader() {
3141
+ return `Bearer ${await Supplier.get(this._options.token)}`;
3142
+ }
3143
+ };
3144
+
3145
+ // src/api/resources/namespaces/client/Client.ts
3146
+ import urlJoin5 from "url-join";
3147
+ var Namespaces = class {
3148
+ constructor(_options) {
3149
+ this._options = _options;
3150
+ }
3151
+ /**
3152
+ * @param {Rivet.NamespacesListRequest} request
3153
+ * @param {Namespaces.RequestOptions} requestOptions - Request-specific configuration.
3154
+ *
3155
+ * @example
3156
+ * await client.namespaces.list()
3157
+ */
3158
+ async list(request = {}, requestOptions) {
3159
+ const { limit, cursor, name, namespaceIds, namespaceId } = request;
3160
+ const _queryParams = {};
3161
+ if (limit != null) {
3162
+ _queryParams["limit"] = limit.toString();
3163
+ }
3164
+ if (cursor != null) {
3165
+ _queryParams["cursor"] = cursor;
3166
+ }
3167
+ if (name != null) {
3168
+ _queryParams["name"] = name;
3169
+ }
3170
+ if (namespaceIds != null) {
3171
+ _queryParams["namespace_ids"] = namespaceIds;
3172
+ }
3173
+ if (namespaceId != null) {
3174
+ if (Array.isArray(namespaceId)) {
3175
+ _queryParams["namespace_id"] = namespaceId.map(
3176
+ (item) => RivetId.jsonOrThrow(item, { unrecognizedObjectKeys: "strip" })
3177
+ );
3178
+ } else {
3179
+ _queryParams["namespace_id"] = namespaceId;
3180
+ }
3181
+ }
3182
+ const _response = await (this._options.fetcher ?? fetcher)({
3183
+ url: urlJoin5(
3184
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3185
+ "namespaces"
3186
+ ),
3187
+ method: "GET",
3188
+ headers: {
3189
+ Authorization: await this._getAuthorizationHeader(),
3190
+ "X-Fern-Language": "JavaScript",
3191
+ "X-Fern-Runtime": RUNTIME.type,
3192
+ "X-Fern-Runtime-Version": RUNTIME.version,
3193
+ ...requestOptions?.headers
3194
+ },
3195
+ contentType: "application/json",
3196
+ queryParameters: _queryParams,
3197
+ requestType: "json",
3198
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3199
+ maxRetries: requestOptions?.maxRetries,
3200
+ abortSignal: requestOptions?.abortSignal
3201
+ });
3202
+ if (_response.ok) {
3203
+ return NamespaceListResponse.parseOrThrow(_response.body, {
3204
+ unrecognizedObjectKeys: "passthrough",
3205
+ allowUnrecognizedUnionMembers: true,
3206
+ allowUnrecognizedEnumValues: true,
3207
+ skipValidation: true,
3208
+ breadcrumbsPrefix: ["response"]
3209
+ });
3210
+ }
3211
+ if (_response.error.reason === "status-code") {
3212
+ throw new RivetError({
3213
+ statusCode: _response.error.statusCode,
3214
+ body: _response.error.body
3215
+ });
3216
+ }
3217
+ switch (_response.error.reason) {
3218
+ case "non-json":
3219
+ throw new RivetError({
3220
+ statusCode: _response.error.statusCode,
3221
+ body: _response.error.rawBody
3222
+ });
3223
+ case "timeout":
3224
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /namespaces.");
3225
+ case "unknown":
3226
+ throw new RivetError({
3227
+ message: _response.error.errorMessage
3228
+ });
3229
+ }
3230
+ }
3231
+ /**
3232
+ * @param {Rivet.NamespacesCreateRequest} request
3233
+ * @param {Namespaces.RequestOptions} requestOptions - Request-specific configuration.
3234
+ *
3235
+ * @example
3236
+ * await client.namespaces.create({
3237
+ * displayName: "display_name",
3238
+ * name: "name"
3239
+ * })
3240
+ */
3241
+ async create(request, requestOptions) {
3242
+ const _response = await (this._options.fetcher ?? fetcher)({
3243
+ url: urlJoin5(
3244
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3245
+ "namespaces"
3246
+ ),
3247
+ method: "POST",
3248
+ headers: {
3249
+ Authorization: await this._getAuthorizationHeader(),
3250
+ "X-Fern-Language": "JavaScript",
3251
+ "X-Fern-Runtime": RUNTIME.type,
3252
+ "X-Fern-Runtime-Version": RUNTIME.version,
3253
+ ...requestOptions?.headers
3254
+ },
3255
+ contentType: "application/json",
3256
+ requestType: "json",
3257
+ body: NamespacesCreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }),
3258
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3259
+ maxRetries: requestOptions?.maxRetries,
3260
+ abortSignal: requestOptions?.abortSignal
3261
+ });
3262
+ if (_response.ok) {
3263
+ return NamespacesCreateResponse.parseOrThrow(_response.body, {
3264
+ unrecognizedObjectKeys: "passthrough",
3265
+ allowUnrecognizedUnionMembers: true,
3266
+ allowUnrecognizedEnumValues: true,
3267
+ skipValidation: true,
3268
+ breadcrumbsPrefix: ["response"]
3269
+ });
3270
+ }
3271
+ if (_response.error.reason === "status-code") {
3272
+ throw new RivetError({
3273
+ statusCode: _response.error.statusCode,
3274
+ body: _response.error.body
3275
+ });
3276
+ }
3277
+ switch (_response.error.reason) {
3278
+ case "non-json":
3279
+ throw new RivetError({
3280
+ statusCode: _response.error.statusCode,
3281
+ body: _response.error.rawBody
3282
+ });
3283
+ case "timeout":
3284
+ throw new RivetTimeoutError("Timeout exceeded when calling POST /namespaces.");
3285
+ case "unknown":
3286
+ throw new RivetError({
3287
+ message: _response.error.errorMessage
3288
+ });
3289
+ }
3290
+ }
3291
+ async _getAuthorizationHeader() {
3292
+ return `Bearer ${await Supplier.get(this._options.token)}`;
3293
+ }
3294
+ };
3295
+
3296
+ // src/api/resources/runners/client/Client.ts
3297
+ import urlJoin6 from "url-join";
3298
+ var Runners = class {
3299
+ constructor(_options) {
3300
+ this._options = _options;
3301
+ }
3302
+ /**
3303
+ * @param {Rivet.RunnersListRequest} request
3304
+ * @param {Runners.RequestOptions} requestOptions - Request-specific configuration.
3305
+ *
3306
+ * @example
3307
+ * await client.runners.list({
3308
+ * namespace: "namespace"
3309
+ * })
3310
+ */
3311
+ async list(request, requestOptions) {
3312
+ const { namespace, name, runnerIds, runnerId, includeStopped, limit, cursor } = request;
3313
+ const _queryParams = {};
3314
+ _queryParams["namespace"] = namespace;
3315
+ if (name != null) {
3316
+ _queryParams["name"] = name;
3317
+ }
3318
+ if (runnerIds != null) {
3319
+ _queryParams["runner_ids"] = runnerIds;
3320
+ }
3321
+ if (runnerId != null) {
3322
+ if (Array.isArray(runnerId)) {
3323
+ _queryParams["runner_id"] = runnerId.map(
3324
+ (item) => RivetId.jsonOrThrow(item, { unrecognizedObjectKeys: "strip" })
3325
+ );
3326
+ } else {
3327
+ _queryParams["runner_id"] = runnerId;
3328
+ }
3329
+ }
3330
+ if (includeStopped != null) {
3331
+ _queryParams["include_stopped"] = includeStopped.toString();
3332
+ }
3333
+ if (limit != null) {
3334
+ _queryParams["limit"] = limit.toString();
3335
+ }
3336
+ if (cursor != null) {
3337
+ _queryParams["cursor"] = cursor;
3338
+ }
3339
+ const _response = await (this._options.fetcher ?? fetcher)({
3340
+ url: urlJoin6(
3341
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3342
+ "runners"
3343
+ ),
3344
+ method: "GET",
3345
+ headers: {
3346
+ Authorization: await this._getAuthorizationHeader(),
3347
+ "X-Fern-Language": "JavaScript",
3348
+ "X-Fern-Runtime": RUNTIME.type,
3349
+ "X-Fern-Runtime-Version": RUNTIME.version,
3350
+ ...requestOptions?.headers
3351
+ },
3352
+ contentType: "application/json",
3353
+ queryParameters: _queryParams,
3354
+ requestType: "json",
3355
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3356
+ maxRetries: requestOptions?.maxRetries,
3357
+ abortSignal: requestOptions?.abortSignal
3358
+ });
3359
+ if (_response.ok) {
3360
+ return RunnersListResponse.parseOrThrow(_response.body, {
3361
+ unrecognizedObjectKeys: "passthrough",
3362
+ allowUnrecognizedUnionMembers: true,
3363
+ allowUnrecognizedEnumValues: true,
3364
+ skipValidation: true,
3365
+ breadcrumbsPrefix: ["response"]
3366
+ });
3367
+ }
3368
+ if (_response.error.reason === "status-code") {
3369
+ throw new RivetError({
3370
+ statusCode: _response.error.statusCode,
3371
+ body: _response.error.body
3372
+ });
3373
+ }
3374
+ switch (_response.error.reason) {
3375
+ case "non-json":
3376
+ throw new RivetError({
3377
+ statusCode: _response.error.statusCode,
3378
+ body: _response.error.rawBody
3379
+ });
3380
+ case "timeout":
3381
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /runners.");
3382
+ case "unknown":
3383
+ throw new RivetError({
3384
+ message: _response.error.errorMessage
3385
+ });
3386
+ }
3387
+ }
3388
+ /**
3389
+ * 2 round trips:
3390
+ *
3391
+ * - GET /runners/names (fanout)
3392
+ * - [api-peer] namespace::ops::resolve_for_name_global
3393
+ *
3394
+ * @param {Rivet.RunnersListNamesRequest} request
3395
+ * @param {Runners.RequestOptions} requestOptions - Request-specific configuration.
3396
+ *
3397
+ * @example
3398
+ * await client.runners.listNames({
3399
+ * namespace: "namespace"
3400
+ * })
3401
+ */
3402
+ async listNames(request, requestOptions) {
3403
+ const { namespace, limit, cursor } = request;
3404
+ const _queryParams = {};
3405
+ _queryParams["namespace"] = namespace;
3406
+ if (limit != null) {
3407
+ _queryParams["limit"] = limit.toString();
3408
+ }
3409
+ if (cursor != null) {
3410
+ _queryParams["cursor"] = cursor;
3411
+ }
3412
+ const _response = await (this._options.fetcher ?? fetcher)({
3413
+ url: urlJoin6(
3414
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3415
+ "runners/names"
3416
+ ),
3417
+ method: "GET",
3418
+ headers: {
3419
+ Authorization: await this._getAuthorizationHeader(),
3420
+ "X-Fern-Language": "JavaScript",
3421
+ "X-Fern-Runtime": RUNTIME.type,
3422
+ "X-Fern-Runtime-Version": RUNTIME.version,
3423
+ ...requestOptions?.headers
3424
+ },
3425
+ contentType: "application/json",
3426
+ queryParameters: _queryParams,
3427
+ requestType: "json",
3428
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3429
+ maxRetries: requestOptions?.maxRetries,
3430
+ abortSignal: requestOptions?.abortSignal
3431
+ });
3432
+ if (_response.ok) {
3433
+ return RunnersListNamesResponse.parseOrThrow(_response.body, {
3434
+ unrecognizedObjectKeys: "passthrough",
3435
+ allowUnrecognizedUnionMembers: true,
3436
+ allowUnrecognizedEnumValues: true,
3437
+ skipValidation: true,
3438
+ breadcrumbsPrefix: ["response"]
3439
+ });
3440
+ }
3441
+ if (_response.error.reason === "status-code") {
3442
+ throw new RivetError({
3443
+ statusCode: _response.error.statusCode,
3444
+ body: _response.error.body
3445
+ });
3446
+ }
3447
+ switch (_response.error.reason) {
3448
+ case "non-json":
3449
+ throw new RivetError({
3450
+ statusCode: _response.error.statusCode,
3451
+ body: _response.error.rawBody
3452
+ });
3453
+ case "timeout":
3454
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /runners/names.");
3455
+ case "unknown":
3456
+ throw new RivetError({
3457
+ message: _response.error.errorMessage
3458
+ });
3459
+ }
3460
+ }
3461
+ async _getAuthorizationHeader() {
3462
+ return `Bearer ${await Supplier.get(this._options.token)}`;
3463
+ }
3464
+ };
3465
+
3466
+ // src/Client.ts
3467
+ var RivetClient = class {
3468
+ constructor(_options) {
3469
+ this._options = _options;
3470
+ }
3471
+ _datacenters;
3472
+ _envoys;
3473
+ _health;
3474
+ _metadata;
3475
+ _namespaces;
3476
+ _runners;
3477
+ get datacenters() {
3478
+ return this._datacenters ??= new Datacenters(this._options);
3479
+ }
3480
+ get envoys() {
3481
+ return this._envoys ??= new Envoys(this._options);
3482
+ }
3483
+ get health() {
3484
+ return this._health ??= new Health(this._options);
3485
+ }
3486
+ get metadata() {
3487
+ return this._metadata ??= new Metadata(this._options);
3488
+ }
3489
+ get namespaces() {
3490
+ return this._namespaces ??= new Namespaces(this._options);
3491
+ }
3492
+ get runners() {
3493
+ return this._runners ??= new Runners(this._options);
3494
+ }
3495
+ /**
3496
+ * **If key is some & `include_destroyed` is false**
3497
+ *
3498
+ * 2 round trips:
3499
+ *
3500
+ * - namespace::ops::resolve_for_name_global
3501
+ * - GET /actors (multiple DCs based on actor IDs)
3502
+ *
3503
+ * This path is optimized because we can read the actor IDs fro the key directly from Epoxy with
3504
+ * stale consistency to determine which datacenter the actor lives in. Under most circumstances,
3505
+ * this means we don't need to fan out to all datacenters (like normal list does).
3506
+ *
3507
+ * The reason `include_destroyed` has to be false is Epoxy only stores currently active actors. If
3508
+ * `include_destroyed` is true, we show all previous iterations of actors with the same key.
3509
+ *
3510
+ * **Otherwise**
3511
+ *
3512
+ * 2 round trips:
3513
+ *
3514
+ * - namespace::ops::resolve_for_name_global
3515
+ * - GET /actors (fanout)
3516
+ *
3517
+ * ## Optimized Alternative Routes
3518
+ *
3519
+ * @param {Rivet.ActorsListRequest} request
3520
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3521
+ *
3522
+ * @example
3523
+ * await client.actorsList({
3524
+ * namespace: "namespace"
3525
+ * })
3526
+ */
3527
+ async actorsList(request, requestOptions) {
3528
+ const { namespace, name, key, actorIds, actorId, includeDestroyed, limit, cursor } = request;
3529
+ const _queryParams = {};
3530
+ _queryParams["namespace"] = namespace;
3531
+ if (name != null) {
3532
+ _queryParams["name"] = name;
3533
+ }
3534
+ if (key != null) {
3535
+ _queryParams["key"] = key;
3536
+ }
3537
+ if (actorIds != null) {
3538
+ _queryParams["actor_ids"] = actorIds;
3539
+ }
3540
+ if (actorId != null) {
3541
+ if (Array.isArray(actorId)) {
3542
+ _queryParams["actor_id"] = actorId.map(
3543
+ (item) => RivetId.jsonOrThrow(item, { unrecognizedObjectKeys: "strip" })
3544
+ );
3545
+ } else {
3546
+ _queryParams["actor_id"] = actorId;
3547
+ }
3548
+ }
3549
+ if (includeDestroyed != null) {
3550
+ _queryParams["include_destroyed"] = includeDestroyed.toString();
3551
+ }
3552
+ if (limit != null) {
3553
+ _queryParams["limit"] = limit.toString();
3554
+ }
3555
+ if (cursor != null) {
3556
+ _queryParams["cursor"] = cursor;
3557
+ }
3558
+ const _response = await (this._options.fetcher ?? fetcher)({
3559
+ url: urlJoin7(
3560
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3561
+ "actors"
3562
+ ),
3563
+ method: "GET",
3564
+ headers: {
3565
+ Authorization: await this._getAuthorizationHeader(),
3566
+ "X-Fern-Language": "JavaScript",
3567
+ "X-Fern-Runtime": RUNTIME.type,
3568
+ "X-Fern-Runtime-Version": RUNTIME.version,
3569
+ ...requestOptions?.headers
3570
+ },
3571
+ contentType: "application/json",
3572
+ queryParameters: _queryParams,
3573
+ requestType: "json",
3574
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3575
+ maxRetries: requestOptions?.maxRetries,
3576
+ abortSignal: requestOptions?.abortSignal
3577
+ });
3578
+ if (_response.ok) {
3579
+ return ActorsListResponse.parseOrThrow(_response.body, {
3580
+ unrecognizedObjectKeys: "passthrough",
3581
+ allowUnrecognizedUnionMembers: true,
3582
+ allowUnrecognizedEnumValues: true,
3583
+ skipValidation: true,
3584
+ breadcrumbsPrefix: ["response"]
3585
+ });
3586
+ }
3587
+ if (_response.error.reason === "status-code") {
3588
+ throw new RivetError({
3589
+ statusCode: _response.error.statusCode,
3590
+ body: _response.error.body
3591
+ });
3592
+ }
3593
+ switch (_response.error.reason) {
3594
+ case "non-json":
3595
+ throw new RivetError({
3596
+ statusCode: _response.error.statusCode,
3597
+ body: _response.error.rawBody
3598
+ });
3599
+ case "timeout":
3600
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /actors.");
3601
+ case "unknown":
3602
+ throw new RivetError({
3603
+ message: _response.error.errorMessage
3604
+ });
3605
+ }
3606
+ }
3607
+ /**
3608
+ * **If actor is created in the current datacenter:**
3609
+ *
3610
+ * 2 round trips:
3611
+ *
3612
+ * - namespace::ops::resolve_for_name_global
3613
+ * - [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)
3614
+ *
3615
+ * **If actor is created in a different datacenter:**
3616
+ *
3617
+ * 3 round trips:
3618
+ *
3619
+ * - namespace::ops::resolve_for_name_global
3620
+ * - POST /actors to remote datacenter
3621
+ * - [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)
3622
+ *
3623
+ * actor::get will always be in the same datacenter.
3624
+ *
3625
+ * @param {Rivet.ActorsCreateRequest} request
3626
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3627
+ *
3628
+ * @example
3629
+ * await client.actorsCreate({
3630
+ * namespace: "namespace",
3631
+ * crashPolicy: "restart",
3632
+ * name: "name",
3633
+ * runnerNameSelector: "runner_name_selector"
3634
+ * })
3635
+ */
3636
+ async actorsCreate(request, requestOptions) {
3637
+ const { namespace, ..._body } = request;
3638
+ const _queryParams = {};
3639
+ _queryParams["namespace"] = namespace;
3640
+ const _response = await (this._options.fetcher ?? fetcher)({
3641
+ url: urlJoin7(
3642
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3643
+ "actors"
3644
+ ),
3645
+ method: "POST",
3646
+ headers: {
3647
+ Authorization: await this._getAuthorizationHeader(),
3648
+ "X-Fern-Language": "JavaScript",
3649
+ "X-Fern-Runtime": RUNTIME.type,
3650
+ "X-Fern-Runtime-Version": RUNTIME.version,
3651
+ ...requestOptions?.headers
3652
+ },
3653
+ contentType: "application/json",
3654
+ queryParameters: _queryParams,
3655
+ requestType: "json",
3656
+ body: ActorsCreateRequest.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }),
3657
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3658
+ maxRetries: requestOptions?.maxRetries,
3659
+ abortSignal: requestOptions?.abortSignal
3660
+ });
3661
+ if (_response.ok) {
3662
+ return ActorsCreateResponse.parseOrThrow(_response.body, {
3663
+ unrecognizedObjectKeys: "passthrough",
3664
+ allowUnrecognizedUnionMembers: true,
3665
+ allowUnrecognizedEnumValues: true,
3666
+ skipValidation: true,
3667
+ breadcrumbsPrefix: ["response"]
3668
+ });
3669
+ }
3670
+ if (_response.error.reason === "status-code") {
3671
+ throw new RivetError({
3672
+ statusCode: _response.error.statusCode,
3673
+ body: _response.error.body
3674
+ });
3675
+ }
3676
+ switch (_response.error.reason) {
3677
+ case "non-json":
3678
+ throw new RivetError({
3679
+ statusCode: _response.error.statusCode,
3680
+ body: _response.error.rawBody
3681
+ });
3682
+ case "timeout":
3683
+ throw new RivetTimeoutError("Timeout exceeded when calling POST /actors.");
3684
+ case "unknown":
3685
+ throw new RivetError({
3686
+ message: _response.error.errorMessage
3687
+ });
3688
+ }
3689
+ }
3690
+ /**
3691
+ * **If actor exists**
3692
+ *
3693
+ * 2 round trips:
3694
+ *
3695
+ * - namespace::ops::resolve_for_name_global
3696
+ * - GET /actors/{}
3697
+ *
3698
+ * **If actor does not exist and is created in the current datacenter:**
3699
+ *
3700
+ * 2 round trips:
3701
+ *
3702
+ * - namespace::ops::resolve_for_name_global
3703
+ * - [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)
3704
+ *
3705
+ * **If actor does not exist and is created in a different datacenter:**
3706
+ *
3707
+ * 3 round trips:
3708
+ *
3709
+ * - namespace::ops::resolve_for_name_global
3710
+ * - POST /actors to remote datacenter
3711
+ * - [pegboard::workflows::actor] Create actor workflow (includes Epoxy key allocation)
3712
+ *
3713
+ * actor::get will always be in the same datacenter.
3714
+ *
3715
+ * ## Optimized Alternative Routes
3716
+ *
3717
+ * @param {Rivet.ActorsGetOrCreateRequest} request
3718
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3719
+ *
3720
+ * @example
3721
+ * await client.actorsGetOrCreate({
3722
+ * namespace: "namespace",
3723
+ * crashPolicy: "restart",
3724
+ * key: "key",
3725
+ * name: "name",
3726
+ * runnerNameSelector: "runner_name_selector"
3727
+ * })
3728
+ */
3729
+ async actorsGetOrCreate(request, requestOptions) {
3730
+ const { namespace, ..._body } = request;
3731
+ const _queryParams = {};
3732
+ _queryParams["namespace"] = namespace;
3733
+ const _response = await (this._options.fetcher ?? fetcher)({
3734
+ url: urlJoin7(
3735
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3736
+ "actors"
3737
+ ),
3738
+ method: "PUT",
3739
+ headers: {
3740
+ Authorization: await this._getAuthorizationHeader(),
3741
+ "X-Fern-Language": "JavaScript",
3742
+ "X-Fern-Runtime": RUNTIME.type,
3743
+ "X-Fern-Runtime-Version": RUNTIME.version,
3744
+ ...requestOptions?.headers
3745
+ },
3746
+ contentType: "application/json",
3747
+ queryParameters: _queryParams,
3748
+ requestType: "json",
3749
+ body: ActorsGetOrCreateRequest.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }),
3750
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3751
+ maxRetries: requestOptions?.maxRetries,
3752
+ abortSignal: requestOptions?.abortSignal
3753
+ });
3754
+ if (_response.ok) {
3755
+ return ActorsGetOrCreateResponse.parseOrThrow(_response.body, {
3756
+ unrecognizedObjectKeys: "passthrough",
3757
+ allowUnrecognizedUnionMembers: true,
3758
+ allowUnrecognizedEnumValues: true,
3759
+ skipValidation: true,
3760
+ breadcrumbsPrefix: ["response"]
3761
+ });
3762
+ }
3763
+ if (_response.error.reason === "status-code") {
3764
+ throw new RivetError({
3765
+ statusCode: _response.error.statusCode,
3766
+ body: _response.error.body
3767
+ });
3768
+ }
3769
+ switch (_response.error.reason) {
3770
+ case "non-json":
3771
+ throw new RivetError({
3772
+ statusCode: _response.error.statusCode,
3773
+ body: _response.error.rawBody
3774
+ });
3775
+ case "timeout":
3776
+ throw new RivetTimeoutError("Timeout exceeded when calling PUT /actors.");
3777
+ case "unknown":
3778
+ throw new RivetError({
3779
+ message: _response.error.errorMessage
3780
+ });
3781
+ }
3782
+ }
3783
+ /**
3784
+ * 2 round trips:
3785
+ *
3786
+ * - GET /actors/names (fanout)
3787
+ * - [api-peer] namespace::ops::resolve_for_name_global
3788
+ *
3789
+ * @param {Rivet.ActorsListNamesRequest} request
3790
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3791
+ *
3792
+ * @example
3793
+ * await client.actorsListNames({
3794
+ * namespace: "namespace"
3795
+ * })
3796
+ */
3797
+ async actorsListNames(request, requestOptions) {
3798
+ const { namespace, limit, cursor } = request;
3799
+ const _queryParams = {};
3800
+ _queryParams["namespace"] = namespace;
3801
+ if (limit != null) {
3802
+ _queryParams["limit"] = limit.toString();
3803
+ }
3804
+ if (cursor != null) {
3805
+ _queryParams["cursor"] = cursor;
3806
+ }
3807
+ const _response = await (this._options.fetcher ?? fetcher)({
3808
+ url: urlJoin7(
3809
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3810
+ "actors/names"
3811
+ ),
3812
+ method: "GET",
3813
+ headers: {
3814
+ Authorization: await this._getAuthorizationHeader(),
3815
+ "X-Fern-Language": "JavaScript",
3816
+ "X-Fern-Runtime": RUNTIME.type,
3817
+ "X-Fern-Runtime-Version": RUNTIME.version,
3818
+ ...requestOptions?.headers
3819
+ },
3820
+ contentType: "application/json",
3821
+ queryParameters: _queryParams,
3822
+ requestType: "json",
3823
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3824
+ maxRetries: requestOptions?.maxRetries,
3825
+ abortSignal: requestOptions?.abortSignal
3826
+ });
3827
+ if (_response.ok) {
3828
+ return ActorsListNamesResponse.parseOrThrow(_response.body, {
3829
+ unrecognizedObjectKeys: "passthrough",
3830
+ allowUnrecognizedUnionMembers: true,
3831
+ allowUnrecognizedEnumValues: true,
3832
+ skipValidation: true,
3833
+ breadcrumbsPrefix: ["response"]
3834
+ });
3835
+ }
3836
+ if (_response.error.reason === "status-code") {
3837
+ throw new RivetError({
3838
+ statusCode: _response.error.statusCode,
3839
+ body: _response.error.body
3840
+ });
3841
+ }
3842
+ switch (_response.error.reason) {
3843
+ case "non-json":
3844
+ throw new RivetError({
3845
+ statusCode: _response.error.statusCode,
3846
+ body: _response.error.rawBody
3847
+ });
3848
+ case "timeout":
3849
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /actors/names.");
3850
+ case "unknown":
3851
+ throw new RivetError({
3852
+ message: _response.error.errorMessage
3853
+ });
3854
+ }
3855
+ }
3856
+ /**
3857
+ * 2 round trip:
3858
+ *
3859
+ * - DELETE /actors/{}
3860
+ * - [api-peer] namespace::ops::resolve_for_name_global
3861
+ *
3862
+ * @param {Rivet.RivetId} actorId
3863
+ * @param {Rivet.ActorsDeleteRequest} request
3864
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3865
+ *
3866
+ * @example
3867
+ * await client.actorsDelete("actor_id", {
3868
+ * namespace: "namespace"
3869
+ * })
3870
+ */
3871
+ async actorsDelete(actorId, request, requestOptions) {
3872
+ const { namespace } = request;
3873
+ const _queryParams = {};
3874
+ _queryParams["namespace"] = namespace;
3875
+ const _response = await (this._options.fetcher ?? fetcher)({
3876
+ url: urlJoin7(
3877
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3878
+ `actors/${encodeURIComponent(RivetId.jsonOrThrow(actorId))}`
3879
+ ),
3880
+ method: "DELETE",
3881
+ headers: {
3882
+ Authorization: await this._getAuthorizationHeader(),
3883
+ "X-Fern-Language": "JavaScript",
3884
+ "X-Fern-Runtime": RUNTIME.type,
3885
+ "X-Fern-Runtime-Version": RUNTIME.version,
3886
+ ...requestOptions?.headers
3887
+ },
3888
+ contentType: "application/json",
3889
+ queryParameters: _queryParams,
3890
+ requestType: "json",
3891
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3892
+ maxRetries: requestOptions?.maxRetries,
3893
+ abortSignal: requestOptions?.abortSignal
3894
+ });
3895
+ if (_response.ok) {
3896
+ return ActorsDeleteResponse.parseOrThrow(_response.body, {
3897
+ unrecognizedObjectKeys: "passthrough",
3898
+ allowUnrecognizedUnionMembers: true,
3899
+ allowUnrecognizedEnumValues: true,
3900
+ skipValidation: true,
3901
+ breadcrumbsPrefix: ["response"]
3902
+ });
3903
+ }
3904
+ if (_response.error.reason === "status-code") {
3905
+ throw new RivetError({
3906
+ statusCode: _response.error.statusCode,
3907
+ body: _response.error.body
3908
+ });
3909
+ }
3910
+ switch (_response.error.reason) {
3911
+ case "non-json":
3912
+ throw new RivetError({
3913
+ statusCode: _response.error.statusCode,
3914
+ body: _response.error.rawBody
3915
+ });
3916
+ case "timeout":
3917
+ throw new RivetTimeoutError("Timeout exceeded when calling DELETE /actors/{actor_id}.");
3918
+ case "unknown":
3919
+ throw new RivetError({
3920
+ message: _response.error.errorMessage
3921
+ });
3922
+ }
3923
+ }
3924
+ /**
3925
+ * @param {Rivet.RivetId} actorId
3926
+ * @param {string} key
3927
+ * @param {Rivet.ActorsKvGetRequest} request
3928
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3929
+ *
3930
+ * @example
3931
+ * await client.actorsKvGet("actor_id", "key", {
3932
+ * namespace: "namespace"
3933
+ * })
3934
+ */
3935
+ async actorsKvGet(actorId, key, request, requestOptions) {
3936
+ const { namespace } = request;
3937
+ const _queryParams = {};
3938
+ _queryParams["namespace"] = namespace;
3939
+ const _response = await (this._options.fetcher ?? fetcher)({
3940
+ url: urlJoin7(
3941
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
3942
+ `actors/${encodeURIComponent(RivetId.jsonOrThrow(actorId))}/kv/keys/${encodeURIComponent(key)}`
3943
+ ),
3944
+ method: "GET",
3945
+ headers: {
3946
+ Authorization: await this._getAuthorizationHeader(),
3947
+ "X-Fern-Language": "JavaScript",
3948
+ "X-Fern-Runtime": RUNTIME.type,
3949
+ "X-Fern-Runtime-Version": RUNTIME.version,
3950
+ ...requestOptions?.headers
3951
+ },
3952
+ contentType: "application/json",
3953
+ queryParameters: _queryParams,
3954
+ requestType: "json",
3955
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
3956
+ maxRetries: requestOptions?.maxRetries,
3957
+ abortSignal: requestOptions?.abortSignal
3958
+ });
3959
+ if (_response.ok) {
3960
+ return ActorsKvGetResponse.parseOrThrow(_response.body, {
3961
+ unrecognizedObjectKeys: "passthrough",
3962
+ allowUnrecognizedUnionMembers: true,
3963
+ allowUnrecognizedEnumValues: true,
3964
+ skipValidation: true,
3965
+ breadcrumbsPrefix: ["response"]
3966
+ });
3967
+ }
3968
+ if (_response.error.reason === "status-code") {
3969
+ throw new RivetError({
3970
+ statusCode: _response.error.statusCode,
3971
+ body: _response.error.body
3972
+ });
3973
+ }
3974
+ switch (_response.error.reason) {
3975
+ case "non-json":
3976
+ throw new RivetError({
3977
+ statusCode: _response.error.statusCode,
3978
+ body: _response.error.rawBody
3979
+ });
3980
+ case "timeout":
3981
+ throw new RivetTimeoutError(
3982
+ "Timeout exceeded when calling GET /actors/{actor_id}/kv/keys/{key}."
3983
+ );
3984
+ case "unknown":
3985
+ throw new RivetError({
3986
+ message: _response.error.errorMessage
3987
+ });
3988
+ }
3989
+ }
3990
+ /**
3991
+ * @param {Rivet.RivetId} actorId
3992
+ * @param {Rivet.ActorsRescheduleRequest} request
3993
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
3994
+ *
3995
+ * @example
3996
+ * await client.actorsReschedule("actor_id", {
3997
+ * namespace: "namespace",
3998
+ * body: {
3999
+ * "key": "value"
4000
+ * }
4001
+ * })
4002
+ */
4003
+ async actorsReschedule(actorId, request, requestOptions) {
4004
+ const { namespace, body: _body } = request;
4005
+ const _queryParams = {};
4006
+ _queryParams["namespace"] = namespace;
4007
+ const _response = await (this._options.fetcher ?? fetcher)({
4008
+ url: urlJoin7(
4009
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4010
+ `actors/${encodeURIComponent(RivetId.jsonOrThrow(actorId))}/reschedule`
4011
+ ),
4012
+ method: "POST",
4013
+ headers: {
4014
+ Authorization: await this._getAuthorizationHeader(),
4015
+ "X-Fern-Language": "JavaScript",
4016
+ "X-Fern-Runtime": RUNTIME.type,
4017
+ "X-Fern-Runtime-Version": RUNTIME.version,
4018
+ ...requestOptions?.headers
4019
+ },
4020
+ contentType: "application/json",
4021
+ queryParameters: _queryParams,
4022
+ requestType: "json",
4023
+ body: ActorsRescheduleRequestBody.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }),
4024
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4025
+ maxRetries: requestOptions?.maxRetries,
4026
+ abortSignal: requestOptions?.abortSignal
4027
+ });
4028
+ if (_response.ok) {
4029
+ return ActorsRescheduleResponse.parseOrThrow(_response.body, {
4030
+ unrecognizedObjectKeys: "passthrough",
4031
+ allowUnrecognizedUnionMembers: true,
4032
+ allowUnrecognizedEnumValues: true,
4033
+ skipValidation: true,
4034
+ breadcrumbsPrefix: ["response"]
4035
+ });
4036
+ }
4037
+ if (_response.error.reason === "status-code") {
4038
+ throw new RivetError({
4039
+ statusCode: _response.error.statusCode,
4040
+ body: _response.error.body
4041
+ });
4042
+ }
4043
+ switch (_response.error.reason) {
4044
+ case "non-json":
4045
+ throw new RivetError({
4046
+ statusCode: _response.error.statusCode,
4047
+ body: _response.error.rawBody
4048
+ });
4049
+ case "timeout":
4050
+ throw new RivetTimeoutError("Timeout exceeded when calling POST /actors/{actor_id}/reschedule.");
4051
+ case "unknown":
4052
+ throw new RivetError({
4053
+ message: _response.error.errorMessage
4054
+ });
4055
+ }
4056
+ }
4057
+ /**
4058
+ * @param {Rivet.RivetId} actorId
4059
+ * @param {Rivet.ActorsSleepRequest} request
4060
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4061
+ *
4062
+ * @example
4063
+ * await client.actorsSleep("actor_id", {
4064
+ * namespace: "namespace",
4065
+ * body: {
4066
+ * "key": "value"
4067
+ * }
4068
+ * })
4069
+ */
4070
+ async actorsSleep(actorId, request, requestOptions) {
4071
+ const { namespace, body: _body } = request;
4072
+ const _queryParams = {};
4073
+ _queryParams["namespace"] = namespace;
4074
+ const _response = await (this._options.fetcher ?? fetcher)({
4075
+ url: urlJoin7(
4076
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4077
+ `actors/${encodeURIComponent(RivetId.jsonOrThrow(actorId))}/sleep`
4078
+ ),
4079
+ method: "POST",
4080
+ headers: {
4081
+ Authorization: await this._getAuthorizationHeader(),
4082
+ "X-Fern-Language": "JavaScript",
4083
+ "X-Fern-Runtime": RUNTIME.type,
4084
+ "X-Fern-Runtime-Version": RUNTIME.version,
4085
+ ...requestOptions?.headers
4086
+ },
4087
+ contentType: "application/json",
4088
+ queryParameters: _queryParams,
4089
+ requestType: "json",
4090
+ body: ActorsSleepRequestBody.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }),
4091
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4092
+ maxRetries: requestOptions?.maxRetries,
4093
+ abortSignal: requestOptions?.abortSignal
4094
+ });
4095
+ if (_response.ok) {
4096
+ return ActorsSleepResponse.parseOrThrow(_response.body, {
4097
+ unrecognizedObjectKeys: "passthrough",
4098
+ allowUnrecognizedUnionMembers: true,
4099
+ allowUnrecognizedEnumValues: true,
4100
+ skipValidation: true,
4101
+ breadcrumbsPrefix: ["response"]
4102
+ });
4103
+ }
4104
+ if (_response.error.reason === "status-code") {
4105
+ throw new RivetError({
4106
+ statusCode: _response.error.statusCode,
4107
+ body: _response.error.body
4108
+ });
4109
+ }
4110
+ switch (_response.error.reason) {
4111
+ case "non-json":
4112
+ throw new RivetError({
4113
+ statusCode: _response.error.statusCode,
4114
+ body: _response.error.rawBody
4115
+ });
4116
+ case "timeout":
4117
+ throw new RivetTimeoutError("Timeout exceeded when calling POST /actors/{actor_id}/sleep.");
4118
+ case "unknown":
4119
+ throw new RivetError({
4120
+ message: _response.error.errorMessage
4121
+ });
4122
+ }
4123
+ }
4124
+ /**
4125
+ * @param {Rivet.RunnerConfigsListRequest} request
4126
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4127
+ *
4128
+ * @example
4129
+ * await client.runnerConfigsList({
4130
+ * namespace: "namespace"
4131
+ * })
4132
+ */
4133
+ async runnerConfigsList(request, requestOptions) {
4134
+ const { namespace, limit, cursor, variant, runnerNames, runnerName } = request;
4135
+ const _queryParams = {};
4136
+ _queryParams["namespace"] = namespace;
4137
+ if (limit != null) {
4138
+ _queryParams["limit"] = limit.toString();
4139
+ }
4140
+ if (cursor != null) {
4141
+ _queryParams["cursor"] = cursor;
4142
+ }
4143
+ if (variant != null) {
4144
+ _queryParams["variant"] = RunnerConfigVariant2.jsonOrThrow(variant, {
4145
+ unrecognizedObjectKeys: "strip"
4146
+ });
4147
+ }
4148
+ if (runnerNames != null) {
4149
+ _queryParams["runner_names"] = runnerNames;
4150
+ }
4151
+ if (runnerName != null) {
4152
+ if (Array.isArray(runnerName)) {
4153
+ _queryParams["runner_name"] = runnerName.map((item) => item);
4154
+ } else {
4155
+ _queryParams["runner_name"] = runnerName;
4156
+ }
4157
+ }
4158
+ const _response = await (this._options.fetcher ?? fetcher)({
4159
+ url: urlJoin7(
4160
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4161
+ "runner-configs"
4162
+ ),
4163
+ method: "GET",
4164
+ headers: {
4165
+ Authorization: await this._getAuthorizationHeader(),
4166
+ "X-Fern-Language": "JavaScript",
4167
+ "X-Fern-Runtime": RUNTIME.type,
4168
+ "X-Fern-Runtime-Version": RUNTIME.version,
4169
+ ...requestOptions?.headers
4170
+ },
4171
+ contentType: "application/json",
4172
+ queryParameters: _queryParams,
4173
+ requestType: "json",
4174
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4175
+ maxRetries: requestOptions?.maxRetries,
4176
+ abortSignal: requestOptions?.abortSignal
4177
+ });
4178
+ if (_response.ok) {
4179
+ return RunnerConfigsListResponse.parseOrThrow(_response.body, {
4180
+ unrecognizedObjectKeys: "passthrough",
4181
+ allowUnrecognizedUnionMembers: true,
4182
+ allowUnrecognizedEnumValues: true,
4183
+ skipValidation: true,
4184
+ breadcrumbsPrefix: ["response"]
4185
+ });
4186
+ }
4187
+ if (_response.error.reason === "status-code") {
4188
+ throw new RivetError({
4189
+ statusCode: _response.error.statusCode,
4190
+ body: _response.error.body
4191
+ });
4192
+ }
4193
+ switch (_response.error.reason) {
4194
+ case "non-json":
4195
+ throw new RivetError({
4196
+ statusCode: _response.error.statusCode,
4197
+ body: _response.error.rawBody
4198
+ });
4199
+ case "timeout":
4200
+ throw new RivetTimeoutError("Timeout exceeded when calling GET /runner-configs.");
4201
+ case "unknown":
4202
+ throw new RivetError({
4203
+ message: _response.error.errorMessage
4204
+ });
4205
+ }
4206
+ }
4207
+ /**
4208
+ * @param {Rivet.RunnerConfigsServerlessHealthCheckRequest} request
4209
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4210
+ *
4211
+ * @example
4212
+ * await client.runnerConfigsServerlessHealthCheck({
4213
+ * namespace: "namespace",
4214
+ * url: "url"
4215
+ * })
4216
+ */
4217
+ async runnerConfigsServerlessHealthCheck(request, requestOptions) {
4218
+ const { namespace, ..._body } = request;
4219
+ const _queryParams = {};
4220
+ _queryParams["namespace"] = namespace;
4221
+ const _response = await (this._options.fetcher ?? fetcher)({
4222
+ url: urlJoin7(
4223
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4224
+ "runner-configs/serverless-health-check"
4225
+ ),
4226
+ method: "POST",
4227
+ headers: {
4228
+ Authorization: await this._getAuthorizationHeader(),
4229
+ "X-Fern-Language": "JavaScript",
4230
+ "X-Fern-Runtime": RUNTIME.type,
4231
+ "X-Fern-Runtime-Version": RUNTIME.version,
4232
+ ...requestOptions?.headers
4233
+ },
4234
+ contentType: "application/json",
4235
+ queryParameters: _queryParams,
4236
+ requestType: "json",
4237
+ body: RunnerConfigsServerlessHealthCheckRequest.jsonOrThrow(_body, {
4238
+ unrecognizedObjectKeys: "strip"
4239
+ }),
4240
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4241
+ maxRetries: requestOptions?.maxRetries,
4242
+ abortSignal: requestOptions?.abortSignal
4243
+ });
4244
+ if (_response.ok) {
4245
+ return RunnerConfigsServerlessHealthCheckResponse.parseOrThrow(_response.body, {
4246
+ unrecognizedObjectKeys: "passthrough",
4247
+ allowUnrecognizedUnionMembers: true,
4248
+ allowUnrecognizedEnumValues: true,
4249
+ skipValidation: true,
4250
+ breadcrumbsPrefix: ["response"]
4251
+ });
4252
+ }
4253
+ if (_response.error.reason === "status-code") {
4254
+ throw new RivetError({
4255
+ statusCode: _response.error.statusCode,
4256
+ body: _response.error.body
4257
+ });
4258
+ }
4259
+ switch (_response.error.reason) {
4260
+ case "non-json":
4261
+ throw new RivetError({
4262
+ statusCode: _response.error.statusCode,
4263
+ body: _response.error.rawBody
4264
+ });
4265
+ case "timeout":
4266
+ throw new RivetTimeoutError(
4267
+ "Timeout exceeded when calling POST /runner-configs/serverless-health-check."
4268
+ );
4269
+ case "unknown":
4270
+ throw new RivetError({
4271
+ message: _response.error.errorMessage
4272
+ });
4273
+ }
4274
+ }
4275
+ /**
4276
+ * @param {string} runnerName
4277
+ * @param {Rivet.RunnerConfigsUpsertRequestBody} request
4278
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4279
+ *
4280
+ * @example
4281
+ * await client.runnerConfigsUpsert("runner_name", {
4282
+ * namespace: "namespace",
4283
+ * datacenters: {
4284
+ * "key": {}
4285
+ * }
4286
+ * })
4287
+ */
4288
+ async runnerConfigsUpsert(runnerName, request, requestOptions) {
4289
+ const { namespace, ..._body } = request;
4290
+ const _queryParams = {};
4291
+ _queryParams["namespace"] = namespace;
4292
+ const _response = await (this._options.fetcher ?? fetcher)({
4293
+ url: urlJoin7(
4294
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4295
+ `runner-configs/${encodeURIComponent(runnerName)}`
4296
+ ),
4297
+ method: "PUT",
4298
+ headers: {
4299
+ Authorization: await this._getAuthorizationHeader(),
4300
+ "X-Fern-Language": "JavaScript",
4301
+ "X-Fern-Runtime": RUNTIME.type,
4302
+ "X-Fern-Runtime-Version": RUNTIME.version,
4303
+ ...requestOptions?.headers
4304
+ },
4305
+ contentType: "application/json",
4306
+ queryParameters: _queryParams,
4307
+ requestType: "json",
4308
+ body: RunnerConfigsUpsertRequestBody.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }),
4309
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4310
+ maxRetries: requestOptions?.maxRetries,
4311
+ abortSignal: requestOptions?.abortSignal
4312
+ });
4313
+ if (_response.ok) {
4314
+ return RunnerConfigsUpsertResponse.parseOrThrow(_response.body, {
4315
+ unrecognizedObjectKeys: "passthrough",
4316
+ allowUnrecognizedUnionMembers: true,
4317
+ allowUnrecognizedEnumValues: true,
4318
+ skipValidation: true,
4319
+ breadcrumbsPrefix: ["response"]
4320
+ });
4321
+ }
4322
+ if (_response.error.reason === "status-code") {
4323
+ throw new RivetError({
4324
+ statusCode: _response.error.statusCode,
4325
+ body: _response.error.body
4326
+ });
4327
+ }
4328
+ switch (_response.error.reason) {
4329
+ case "non-json":
4330
+ throw new RivetError({
4331
+ statusCode: _response.error.statusCode,
4332
+ body: _response.error.rawBody
4333
+ });
4334
+ case "timeout":
4335
+ throw new RivetTimeoutError("Timeout exceeded when calling PUT /runner-configs/{runner_name}.");
4336
+ case "unknown":
4337
+ throw new RivetError({
4338
+ message: _response.error.errorMessage
4339
+ });
4340
+ }
4341
+ }
4342
+ /**
4343
+ * @param {string} runnerName
4344
+ * @param {Rivet.RunnerConfigsDeleteRequest} request
4345
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4346
+ *
4347
+ * @example
4348
+ * await client.runnerConfigsDelete("runner_name", {
4349
+ * namespace: "namespace"
4350
+ * })
4351
+ */
4352
+ async runnerConfigsDelete(runnerName, request, requestOptions) {
4353
+ const { namespace } = request;
4354
+ const _queryParams = {};
4355
+ _queryParams["namespace"] = namespace;
4356
+ const _response = await (this._options.fetcher ?? fetcher)({
4357
+ url: urlJoin7(
4358
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4359
+ `runner-configs/${encodeURIComponent(runnerName)}`
4360
+ ),
4361
+ method: "DELETE",
4362
+ headers: {
4363
+ Authorization: await this._getAuthorizationHeader(),
4364
+ "X-Fern-Language": "JavaScript",
4365
+ "X-Fern-Runtime": RUNTIME.type,
4366
+ "X-Fern-Runtime-Version": RUNTIME.version,
4367
+ ...requestOptions?.headers
4368
+ },
4369
+ contentType: "application/json",
4370
+ queryParameters: _queryParams,
4371
+ requestType: "json",
4372
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4373
+ maxRetries: requestOptions?.maxRetries,
4374
+ abortSignal: requestOptions?.abortSignal
4375
+ });
4376
+ if (_response.ok) {
4377
+ return RunnerConfigsDeleteResponse.parseOrThrow(_response.body, {
4378
+ unrecognizedObjectKeys: "passthrough",
4379
+ allowUnrecognizedUnionMembers: true,
4380
+ allowUnrecognizedEnumValues: true,
4381
+ skipValidation: true,
4382
+ breadcrumbsPrefix: ["response"]
4383
+ });
4384
+ }
4385
+ if (_response.error.reason === "status-code") {
4386
+ throw new RivetError({
4387
+ statusCode: _response.error.statusCode,
4388
+ body: _response.error.body
4389
+ });
4390
+ }
4391
+ switch (_response.error.reason) {
4392
+ case "non-json":
4393
+ throw new RivetError({
4394
+ statusCode: _response.error.statusCode,
4395
+ body: _response.error.rawBody
4396
+ });
4397
+ case "timeout":
4398
+ throw new RivetTimeoutError(
4399
+ "Timeout exceeded when calling DELETE /runner-configs/{runner_name}."
4400
+ );
4401
+ case "unknown":
4402
+ throw new RivetError({
4403
+ message: _response.error.errorMessage
4404
+ });
4405
+ }
4406
+ }
4407
+ /**
4408
+ * @param {string} runnerName
4409
+ * @param {Rivet.RunnerConfigsRefreshMetadataRequest} request
4410
+ * @param {RivetClient.RequestOptions} requestOptions - Request-specific configuration.
4411
+ *
4412
+ * @example
4413
+ * await client.runnerConfigsRefreshMetadata("runner_name", {
4414
+ * namespace: "namespace",
4415
+ * body: {
4416
+ * "key": "value"
4417
+ * }
4418
+ * })
4419
+ */
4420
+ async runnerConfigsRefreshMetadata(runnerName, request, requestOptions) {
4421
+ const { namespace, body: _body } = request;
4422
+ const _queryParams = {};
4423
+ _queryParams["namespace"] = namespace;
4424
+ const _response = await (this._options.fetcher ?? fetcher)({
4425
+ url: urlJoin7(
4426
+ await Supplier.get(this._options.baseUrl) ?? await Supplier.get(this._options.environment),
4427
+ `runner-configs/${encodeURIComponent(runnerName)}/refresh-metadata`
4428
+ ),
4429
+ method: "POST",
4430
+ headers: {
4431
+ Authorization: await this._getAuthorizationHeader(),
4432
+ "X-Fern-Language": "JavaScript",
4433
+ "X-Fern-Runtime": RUNTIME.type,
4434
+ "X-Fern-Runtime-Version": RUNTIME.version,
4435
+ ...requestOptions?.headers
4436
+ },
4437
+ contentType: "application/json",
4438
+ queryParameters: _queryParams,
4439
+ requestType: "json",
4440
+ body: RunnerConfigsRefreshMetadataRequestBody.jsonOrThrow(_body, {
4441
+ unrecognizedObjectKeys: "strip"
4442
+ }),
4443
+ timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1e3 : 18e4,
4444
+ maxRetries: requestOptions?.maxRetries,
4445
+ abortSignal: requestOptions?.abortSignal
4446
+ });
4447
+ if (_response.ok) {
4448
+ return RunnerConfigsRefreshMetadataResponse.parseOrThrow(_response.body, {
4449
+ unrecognizedObjectKeys: "passthrough",
4450
+ allowUnrecognizedUnionMembers: true,
4451
+ allowUnrecognizedEnumValues: true,
4452
+ skipValidation: true,
4453
+ breadcrumbsPrefix: ["response"]
4454
+ });
4455
+ }
4456
+ if (_response.error.reason === "status-code") {
4457
+ throw new RivetError({
4458
+ statusCode: _response.error.statusCode,
4459
+ body: _response.error.body
4460
+ });
4461
+ }
4462
+ switch (_response.error.reason) {
4463
+ case "non-json":
4464
+ throw new RivetError({
4465
+ statusCode: _response.error.statusCode,
4466
+ body: _response.error.rawBody
4467
+ });
4468
+ case "timeout":
4469
+ throw new RivetTimeoutError(
4470
+ "Timeout exceeded when calling POST /runner-configs/{runner_name}/refresh-metadata."
4471
+ );
4472
+ case "unknown":
4473
+ throw new RivetError({
4474
+ message: _response.error.errorMessage
4475
+ });
4476
+ }
4477
+ }
4478
+ async _getAuthorizationHeader() {
4479
+ return `Bearer ${await Supplier.get(this._options.token)}`;
4480
+ }
4481
+ };
4482
+ export {
4483
+ api_exports as Rivet,
4484
+ RivetClient,
4485
+ RivetError,
4486
+ RivetTimeoutError,
4487
+ serialization_exports as serialization
4488
+ };