@rivetkit/engine-api-full 2.0.4-rc.1

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