@rivetkit/engine-api-full 2.0.21

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