@rivetkit/engine-api-full 0.0.0-main.d6a0ba8

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