@rivetkit/engine-api-full 2.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/LICENSE +203 -0
  2. package/dist/browser/cjs/core.js +2338 -0
  3. package/dist/browser/cjs/index.js +4030 -0
  4. package/dist/browser/cjs/serialization.js +1916 -0
  5. package/dist/browser/esm/core.js +2312 -0
  6. package/dist/browser/esm/index.js +4004 -0
  7. package/dist/browser/esm/serialization.js +1889 -0
  8. package/dist/node/core.js +2353 -0
  9. package/dist/node/index.js +4043 -0
  10. package/dist/node/serialization.js +1976 -0
  11. package/package.json +58 -0
  12. package/types/Client.d.ts +233 -0
  13. package/types/api/client/index.d.ts +1 -0
  14. package/types/api/client/requests/ActorsCreateRequest.d.ts +22 -0
  15. package/types/api/client/requests/ActorsDeleteRequest.d.ts +10 -0
  16. package/types/api/client/requests/ActorsGetOrCreateRequest.d.ts +23 -0
  17. package/types/api/client/requests/ActorsListNamesRequest.d.ts +14 -0
  18. package/types/api/client/requests/ActorsListRequest.d.ts +18 -0
  19. package/types/api/client/requests/RunnerConfigsDeleteRequest.d.ts +12 -0
  20. package/types/api/client/requests/RunnerConfigsListRequest.d.ts +17 -0
  21. package/types/api/client/requests/RunnerConfigsRefreshMetadataRequest.d.ts +17 -0
  22. package/types/api/client/requests/RunnerConfigsServerlessHealthCheckRequest.d.ts +15 -0
  23. package/types/api/client/requests/RunnerConfigsUpsertRequestBody.d.ts +17 -0
  24. package/types/api/client/requests/index.d.ts +10 -0
  25. package/types/api/index.d.ts +3 -0
  26. package/types/api/resources/datacenters/client/Client.d.ts +36 -0
  27. package/types/api/resources/datacenters/client/index.d.ts +1 -0
  28. package/types/api/resources/datacenters/index.d.ts +1 -0
  29. package/types/api/resources/health/client/Client.d.ts +36 -0
  30. package/types/api/resources/health/client/index.d.ts +1 -0
  31. package/types/api/resources/health/index.d.ts +1 -0
  32. package/types/api/resources/index.d.ts +6 -0
  33. package/types/api/resources/namespaces/client/Client.d.ts +48 -0
  34. package/types/api/resources/namespaces/client/index.d.ts +1 -0
  35. package/types/api/resources/namespaces/client/requests/NamespacesCreateRequest.d.ts +14 -0
  36. package/types/api/resources/namespaces/client/requests/NamespacesListRequest.d.ts +13 -0
  37. package/types/api/resources/namespaces/client/requests/index.d.ts +2 -0
  38. package/types/api/resources/namespaces/index.d.ts +1 -0
  39. package/types/api/resources/runners/client/Client.d.ts +54 -0
  40. package/types/api/resources/runners/client/index.d.ts +1 -0
  41. package/types/api/resources/runners/client/requests/RunnersListNamesRequest.d.ts +14 -0
  42. package/types/api/resources/runners/client/requests/RunnersListRequest.d.ts +17 -0
  43. package/types/api/resources/runners/client/requests/index.d.ts +2 -0
  44. package/types/api/resources/runners/index.d.ts +1 -0
  45. package/types/api/types/Actor.d.ts +19 -0
  46. package/types/api/types/ActorName.d.ts +6 -0
  47. package/types/api/types/ActorsCreateResponse.d.ts +7 -0
  48. package/types/api/types/ActorsDeleteResponse.d.ts +4 -0
  49. package/types/api/types/ActorsGetOrCreateResponse.d.ts +8 -0
  50. package/types/api/types/ActorsListNamesResponse.d.ts +8 -0
  51. package/types/api/types/ActorsListResponse.d.ts +8 -0
  52. package/types/api/types/CrashPolicy.d.ts +9 -0
  53. package/types/api/types/Datacenter.d.ts +8 -0
  54. package/types/api/types/DatacenterHealth.d.ts +12 -0
  55. package/types/api/types/DatacentersListResponse.d.ts +8 -0
  56. package/types/api/types/HealthFanoutResponse.d.ts +7 -0
  57. package/types/api/types/HealthResponse.d.ts +8 -0
  58. package/types/api/types/HealthStatus.d.ts +8 -0
  59. package/types/api/types/Namespace.d.ts +10 -0
  60. package/types/api/types/NamespaceListResponse.d.ts +8 -0
  61. package/types/api/types/NamespacesCreateResponse.d.ts +7 -0
  62. package/types/api/types/Pagination.d.ts +6 -0
  63. package/types/api/types/RivetId.d.ts +4 -0
  64. package/types/api/types/Runner.d.ts +21 -0
  65. package/types/api/types/RunnerConfig.d.ts +9 -0
  66. package/types/api/types/RunnerConfigKind.d.ts +5 -0
  67. package/types/api/types/RunnerConfigKindNormal.d.ts +6 -0
  68. package/types/api/types/RunnerConfigKindServerless.d.ts +7 -0
  69. package/types/api/types/RunnerConfigKindServerlessServerless.d.ts +13 -0
  70. package/types/api/types/RunnerConfigServerless.d.ts +13 -0
  71. package/types/api/types/RunnerConfigVariant.d.ts +8 -0
  72. package/types/api/types/RunnerConfigsDeleteResponse.d.ts +4 -0
  73. package/types/api/types/RunnerConfigsListResponse.d.ts +8 -0
  74. package/types/api/types/RunnerConfigsListResponseRunnerConfigsValue.d.ts +7 -0
  75. package/types/api/types/RunnerConfigsRefreshMetadataRequestBody.d.ts +4 -0
  76. package/types/api/types/RunnerConfigsRefreshMetadataResponse.d.ts +4 -0
  77. package/types/api/types/RunnerConfigsServerlessHealthCheckResponse.d.ts +5 -0
  78. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseFailure.d.ts +7 -0
  79. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.d.ts +7 -0
  80. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseSuccess.d.ts +7 -0
  81. package/types/api/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.d.ts +6 -0
  82. package/types/api/types/RunnerConfigsServerlessMetadataError.d.ts +5 -0
  83. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.d.ts +6 -0
  84. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.d.ts +7 -0
  85. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.d.ts +6 -0
  86. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.d.ts +7 -0
  87. package/types/api/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.d.ts +7 -0
  88. package/types/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.d.ts +7 -0
  89. package/types/api/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.d.ts +7 -0
  90. package/types/api/types/RunnerConfigsServerlessMetadataErrorRequestFailed.d.ts +6 -0
  91. package/types/api/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.d.ts +6 -0
  92. package/types/api/types/RunnerConfigsUpsertResponse.d.ts +6 -0
  93. package/types/api/types/RunnersListNamesResponse.d.ts +8 -0
  94. package/types/api/types/RunnersListResponse.d.ts +8 -0
  95. package/types/api/types/index.d.ts +50 -0
  96. package/types/core/auth/BasicAuth.d.ts +8 -0
  97. package/types/core/auth/BearerToken.d.ts +5 -0
  98. package/types/core/auth/index.d.ts +2 -0
  99. package/types/core/fetcher/APIResponse.d.ts +10 -0
  100. package/types/core/fetcher/Fetcher.d.ts +39 -0
  101. package/types/core/fetcher/Supplier.d.ts +4 -0
  102. package/types/core/fetcher/createRequestUrl.d.ts +1 -0
  103. package/types/core/fetcher/getFetchFn.d.ts +4 -0
  104. package/types/core/fetcher/getHeader.d.ts +1 -0
  105. package/types/core/fetcher/getRequestBody.d.ts +7 -0
  106. package/types/core/fetcher/getResponseBody.d.ts +1 -0
  107. package/types/core/fetcher/index.d.ts +5 -0
  108. package/types/core/fetcher/makeRequest.d.ts +1 -0
  109. package/types/core/fetcher/requestWithRetries.d.ts +1 -0
  110. package/types/core/fetcher/signals.d.ts +11 -0
  111. package/types/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.d.ts +30 -0
  112. package/types/core/fetcher/stream-wrappers/NodePre18StreamWrapper.d.ts +21 -0
  113. package/types/core/fetcher/stream-wrappers/UndiciStreamWrapper.d.ts +31 -0
  114. package/types/core/fetcher/stream-wrappers/chooseStreamWrapper.d.ts +18 -0
  115. package/types/core/index.d.ts +4 -0
  116. package/types/core/json.d.ts +15 -0
  117. package/types/core/runtime/index.d.ts +1 -0
  118. package/types/core/runtime/runtime.d.ts +9 -0
  119. package/types/core/schemas/Schema.d.ts +87 -0
  120. package/types/core/schemas/builders/bigint/bigint.d.ts +2 -0
  121. package/types/core/schemas/builders/bigint/index.d.ts +1 -0
  122. package/types/core/schemas/builders/date/date.d.ts +2 -0
  123. package/types/core/schemas/builders/date/index.d.ts +1 -0
  124. package/types/core/schemas/builders/enum/enum.d.ts +2 -0
  125. package/types/core/schemas/builders/enum/index.d.ts +1 -0
  126. package/types/core/schemas/builders/index.d.ts +14 -0
  127. package/types/core/schemas/builders/lazy/index.d.ts +3 -0
  128. package/types/core/schemas/builders/lazy/lazy.d.ts +5 -0
  129. package/types/core/schemas/builders/lazy/lazyObject.d.ts +3 -0
  130. package/types/core/schemas/builders/list/index.d.ts +1 -0
  131. package/types/core/schemas/builders/list/list.d.ts +2 -0
  132. package/types/core/schemas/builders/literals/booleanLiteral.d.ts +2 -0
  133. package/types/core/schemas/builders/literals/index.d.ts +2 -0
  134. package/types/core/schemas/builders/literals/stringLiteral.d.ts +2 -0
  135. package/types/core/schemas/builders/object/index.d.ts +6 -0
  136. package/types/core/schemas/builders/object/object.d.ts +3 -0
  137. package/types/core/schemas/builders/object/objectWithoutOptionalProperties.d.ts +6 -0
  138. package/types/core/schemas/builders/object/property.d.ts +8 -0
  139. package/types/core/schemas/builders/object/types.d.ts +31 -0
  140. package/types/core/schemas/builders/object-like/getObjectLikeUtils.d.ts +9 -0
  141. package/types/core/schemas/builders/object-like/index.d.ts +2 -0
  142. package/types/core/schemas/builders/object-like/types.d.ts +7 -0
  143. package/types/core/schemas/builders/primitives/any.d.ts +1 -0
  144. package/types/core/schemas/builders/primitives/boolean.d.ts +1 -0
  145. package/types/core/schemas/builders/primitives/index.d.ts +5 -0
  146. package/types/core/schemas/builders/primitives/number.d.ts +1 -0
  147. package/types/core/schemas/builders/primitives/string.d.ts +1 -0
  148. package/types/core/schemas/builders/primitives/unknown.d.ts +1 -0
  149. package/types/core/schemas/builders/record/index.d.ts +2 -0
  150. package/types/core/schemas/builders/record/record.d.ts +3 -0
  151. package/types/core/schemas/builders/record/types.d.ts +4 -0
  152. package/types/core/schemas/builders/schema-utils/JsonError.d.ts +5 -0
  153. package/types/core/schemas/builders/schema-utils/ParseError.d.ts +5 -0
  154. package/types/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +21 -0
  155. package/types/core/schemas/builders/schema-utils/index.d.ts +4 -0
  156. package/types/core/schemas/builders/schema-utils/stringifyValidationErrors.d.ts +2 -0
  157. package/types/core/schemas/builders/set/index.d.ts +1 -0
  158. package/types/core/schemas/builders/set/set.d.ts +2 -0
  159. package/types/core/schemas/builders/undiscriminated-union/index.d.ts +2 -0
  160. package/types/core/schemas/builders/undiscriminated-union/types.d.ts +4 -0
  161. package/types/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.d.ts +3 -0
  162. package/types/core/schemas/builders/union/discriminant.d.ts +5 -0
  163. package/types/core/schemas/builders/union/index.d.ts +4 -0
  164. package/types/core/schemas/builders/union/types.d.ts +13 -0
  165. package/types/core/schemas/builders/union/union.d.ts +4 -0
  166. package/types/core/schemas/index.d.ts +2 -0
  167. package/types/core/schemas/utils/MaybePromise.d.ts +1 -0
  168. package/types/core/schemas/utils/addQuestionMarksToNullableProperties.d.ts +7 -0
  169. package/types/core/schemas/utils/createIdentitySchemaCreator.d.ts +2 -0
  170. package/types/core/schemas/utils/entries.d.ts +1 -0
  171. package/types/core/schemas/utils/filterObject.d.ts +1 -0
  172. package/types/core/schemas/utils/getErrorMessageForIncorrectType.d.ts +1 -0
  173. package/types/core/schemas/utils/isPlainObject.d.ts +1 -0
  174. package/types/core/schemas/utils/keys.d.ts +1 -0
  175. package/types/core/schemas/utils/maybeSkipValidation.d.ts +2 -0
  176. package/types/core/schemas/utils/partition.d.ts +1 -0
  177. package/types/errors/RivetError.d.ts +12 -0
  178. package/types/errors/RivetTimeoutError.d.ts +6 -0
  179. package/types/errors/index.d.ts +2 -0
  180. package/types/index.d.ts +4 -0
  181. package/types/serialization/client/index.d.ts +1 -0
  182. package/types/serialization/client/requests/ActorsCreateRequest.d.ts +18 -0
  183. package/types/serialization/client/requests/ActorsGetOrCreateRequest.d.ts +18 -0
  184. package/types/serialization/client/requests/RunnerConfigsServerlessHealthCheckRequest.d.ts +13 -0
  185. package/types/serialization/client/requests/RunnerConfigsUpsertRequestBody.d.ts +13 -0
  186. package/types/serialization/client/requests/index.d.ts +4 -0
  187. package/types/serialization/index.d.ts +3 -0
  188. package/types/serialization/resources/index.d.ts +2 -0
  189. package/types/serialization/resources/namespaces/client/index.d.ts +1 -0
  190. package/types/serialization/resources/namespaces/client/requests/NamespacesCreateRequest.d.ts +13 -0
  191. package/types/serialization/resources/namespaces/client/requests/index.d.ts +1 -0
  192. package/types/serialization/resources/namespaces/index.d.ts +1 -0
  193. package/types/serialization/types/Actor.d.ts +26 -0
  194. package/types/serialization/types/ActorName.d.ts +12 -0
  195. package/types/serialization/types/ActorsCreateResponse.d.ts +13 -0
  196. package/types/serialization/types/ActorsDeleteResponse.d.ts +10 -0
  197. package/types/serialization/types/ActorsGetOrCreateResponse.d.ts +14 -0
  198. package/types/serialization/types/ActorsListNamesResponse.d.ts +15 -0
  199. package/types/serialization/types/ActorsListResponse.d.ts +15 -0
  200. package/types/serialization/types/CrashPolicy.d.ts +10 -0
  201. package/types/serialization/types/Datacenter.d.ts +14 -0
  202. package/types/serialization/types/DatacenterHealth.d.ts +19 -0
  203. package/types/serialization/types/DatacentersListResponse.d.ts +15 -0
  204. package/types/serialization/types/HealthFanoutResponse.d.ts +13 -0
  205. package/types/serialization/types/HealthResponse.d.ts +14 -0
  206. package/types/serialization/types/HealthStatus.d.ts +10 -0
  207. package/types/serialization/types/Namespace.d.ts +16 -0
  208. package/types/serialization/types/NamespaceListResponse.d.ts +15 -0
  209. package/types/serialization/types/NamespacesCreateResponse.d.ts +13 -0
  210. package/types/serialization/types/Pagination.d.ts +12 -0
  211. package/types/serialization/types/RivetId.d.ts +10 -0
  212. package/types/serialization/types/Runner.d.ts +27 -0
  213. package/types/serialization/types/RunnerConfig.d.ts +15 -0
  214. package/types/serialization/types/RunnerConfigKind.d.ts +12 -0
  215. package/types/serialization/types/RunnerConfigKindNormal.d.ts +12 -0
  216. package/types/serialization/types/RunnerConfigKindServerless.d.ts +13 -0
  217. package/types/serialization/types/RunnerConfigKindServerlessServerless.d.ts +18 -0
  218. package/types/serialization/types/RunnerConfigServerless.d.ts +18 -0
  219. package/types/serialization/types/RunnerConfigVariant.d.ts +10 -0
  220. package/types/serialization/types/RunnerConfigsDeleteResponse.d.ts +10 -0
  221. package/types/serialization/types/RunnerConfigsListResponse.d.ts +15 -0
  222. package/types/serialization/types/RunnerConfigsListResponseRunnerConfigsValue.d.ts +13 -0
  223. package/types/serialization/types/RunnerConfigsRefreshMetadataRequestBody.d.ts +10 -0
  224. package/types/serialization/types/RunnerConfigsRefreshMetadataResponse.d.ts +10 -0
  225. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponse.d.ts +12 -0
  226. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailure.d.ts +13 -0
  227. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseFailureFailure.d.ts +13 -0
  228. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccess.d.ts +13 -0
  229. package/types/serialization/types/RunnerConfigsServerlessHealthCheckResponseSuccessSuccess.d.ts +12 -0
  230. package/types/serialization/types/RunnerConfigsServerlessMetadataError.d.ts +16 -0
  231. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidRequest.d.ts +12 -0
  232. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJson.d.ts +13 -0
  233. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseJsonInvalidResponseJson.d.ts +12 -0
  234. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchema.d.ts +13 -0
  235. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorInvalidResponseSchemaInvalidResponseSchema.d.ts +13 -0
  236. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatus.d.ts +13 -0
  237. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorNonSuccessStatusNonSuccessStatus.d.ts +13 -0
  238. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorRequestFailed.d.ts +12 -0
  239. package/types/serialization/types/RunnerConfigsServerlessMetadataErrorRequestTimedOut.d.ts +12 -0
  240. package/types/serialization/types/RunnerConfigsUpsertResponse.d.ts +12 -0
  241. package/types/serialization/types/RunnersListNamesResponse.d.ts +14 -0
  242. package/types/serialization/types/RunnersListResponse.d.ts +15 -0
  243. package/types/serialization/types/index.d.ts +50 -0
@@ -0,0 +1,2353 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __esm = (fn, res) => function __init() {
9
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
+ };
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
24
+ // If the importer is in node compatibility mode or this is not an ESM
25
+ // file that has been converted to a CommonJS file using a Babel-
26
+ // compatible transform (i.e. "__esModule" has not been set), then set
27
+ // "default" to the CommonJS "module.exports" for node compatibility.
28
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
29
+ mod
30
+ ));
31
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
+
33
+ // src/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts
34
+ var Node18UniversalStreamWrapper_exports = {};
35
+ __export(Node18UniversalStreamWrapper_exports, {
36
+ Node18UniversalStreamWrapper: () => Node18UniversalStreamWrapper
37
+ });
38
+ var Node18UniversalStreamWrapper;
39
+ var init_Node18UniversalStreamWrapper = __esm({
40
+ "src/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts"() {
41
+ "use strict";
42
+ Node18UniversalStreamWrapper = class _Node18UniversalStreamWrapper {
43
+ readableStream;
44
+ reader;
45
+ events;
46
+ paused;
47
+ resumeCallback;
48
+ encoding;
49
+ constructor(readableStream) {
50
+ this.readableStream = readableStream;
51
+ this.reader = this.readableStream.getReader();
52
+ this.events = {
53
+ data: [],
54
+ end: [],
55
+ error: [],
56
+ readable: [],
57
+ close: [],
58
+ pause: [],
59
+ resume: []
60
+ };
61
+ this.paused = false;
62
+ this.resumeCallback = null;
63
+ this.encoding = null;
64
+ }
65
+ on(event, callback) {
66
+ var _a;
67
+ (_a = this.events[event]) == null ? void 0 : _a.push(callback);
68
+ }
69
+ off(event, callback) {
70
+ var _a;
71
+ this.events[event] = (_a = this.events[event]) == null ? void 0 : _a.filter((cb) => cb !== callback);
72
+ }
73
+ pipe(dest) {
74
+ this.on("data", async (chunk) => {
75
+ if (dest instanceof _Node18UniversalStreamWrapper) {
76
+ dest._write(chunk);
77
+ } else if (dest instanceof WritableStream) {
78
+ const writer = dest.getWriter();
79
+ writer.write(chunk).then(() => writer.releaseLock());
80
+ } else {
81
+ dest.write(chunk);
82
+ }
83
+ });
84
+ this.on("end", async () => {
85
+ if (dest instanceof _Node18UniversalStreamWrapper) {
86
+ dest._end();
87
+ } else if (dest instanceof WritableStream) {
88
+ const writer = dest.getWriter();
89
+ writer.close();
90
+ } else {
91
+ dest.end();
92
+ }
93
+ });
94
+ this.on("error", async (error) => {
95
+ if (dest instanceof _Node18UniversalStreamWrapper) {
96
+ dest._error(error);
97
+ } else if (dest instanceof WritableStream) {
98
+ const writer = dest.getWriter();
99
+ writer.abort(error);
100
+ } else {
101
+ dest.destroy(error);
102
+ }
103
+ });
104
+ this._startReading();
105
+ return dest;
106
+ }
107
+ pipeTo(dest) {
108
+ return this.pipe(dest);
109
+ }
110
+ unpipe(dest) {
111
+ this.off("data", async (chunk) => {
112
+ if (dest instanceof _Node18UniversalStreamWrapper) {
113
+ dest._write(chunk);
114
+ } else if (dest instanceof WritableStream) {
115
+ const writer = dest.getWriter();
116
+ writer.write(chunk).then(() => writer.releaseLock());
117
+ } else {
118
+ dest.write(chunk);
119
+ }
120
+ });
121
+ this.off("end", async () => {
122
+ if (dest instanceof _Node18UniversalStreamWrapper) {
123
+ dest._end();
124
+ } else if (dest instanceof WritableStream) {
125
+ const writer = dest.getWriter();
126
+ writer.close();
127
+ } else {
128
+ dest.end();
129
+ }
130
+ });
131
+ this.off("error", async (error) => {
132
+ if (dest instanceof _Node18UniversalStreamWrapper) {
133
+ dest._error(error);
134
+ } else if (dest instanceof WritableStream) {
135
+ const writer = dest.getWriter();
136
+ writer.abort(error);
137
+ } else {
138
+ dest.destroy(error);
139
+ }
140
+ });
141
+ }
142
+ destroy(error) {
143
+ this.reader.cancel(error).then(() => {
144
+ this._emit("close");
145
+ }).catch((err) => {
146
+ this._emit("error", err);
147
+ });
148
+ }
149
+ pause() {
150
+ this.paused = true;
151
+ this._emit("pause");
152
+ }
153
+ resume() {
154
+ if (this.paused) {
155
+ this.paused = false;
156
+ this._emit("resume");
157
+ if (this.resumeCallback) {
158
+ this.resumeCallback();
159
+ this.resumeCallback = null;
160
+ }
161
+ }
162
+ }
163
+ get isPaused() {
164
+ return this.paused;
165
+ }
166
+ async read() {
167
+ if (this.paused) {
168
+ await new Promise((resolve) => {
169
+ this.resumeCallback = resolve;
170
+ });
171
+ }
172
+ const { done, value } = await this.reader.read();
173
+ if (done) {
174
+ return void 0;
175
+ }
176
+ return value;
177
+ }
178
+ setEncoding(encoding) {
179
+ this.encoding = encoding;
180
+ }
181
+ async text() {
182
+ const chunks = [];
183
+ while (true) {
184
+ const { done, value } = await this.reader.read();
185
+ if (done) {
186
+ break;
187
+ }
188
+ if (value) {
189
+ chunks.push(value);
190
+ }
191
+ }
192
+ const decoder = new TextDecoder(this.encoding || "utf-8");
193
+ return decoder.decode(await new Blob(chunks).arrayBuffer());
194
+ }
195
+ async json() {
196
+ const text = await this.text();
197
+ return JSON.parse(text);
198
+ }
199
+ _write(chunk) {
200
+ this._emit("data", chunk);
201
+ }
202
+ _end() {
203
+ this._emit("end");
204
+ }
205
+ _error(error) {
206
+ this._emit("error", error);
207
+ }
208
+ _emit(event, data) {
209
+ if (this.events[event]) {
210
+ for (const callback of this.events[event] || []) {
211
+ callback(data);
212
+ }
213
+ }
214
+ }
215
+ async _startReading() {
216
+ try {
217
+ this._emit("readable");
218
+ while (true) {
219
+ if (this.paused) {
220
+ await new Promise((resolve) => {
221
+ this.resumeCallback = resolve;
222
+ });
223
+ }
224
+ const { done, value } = await this.reader.read();
225
+ if (done) {
226
+ this._emit("end");
227
+ this._emit("close");
228
+ break;
229
+ }
230
+ if (value) {
231
+ this._emit("data", value);
232
+ }
233
+ }
234
+ } catch (error) {
235
+ this._emit("error", error);
236
+ }
237
+ }
238
+ [Symbol.asyncIterator]() {
239
+ return {
240
+ next: async () => {
241
+ if (this.paused) {
242
+ await new Promise((resolve) => {
243
+ this.resumeCallback = resolve;
244
+ });
245
+ }
246
+ const { done, value } = await this.reader.read();
247
+ if (done) {
248
+ return { done: true, value: void 0 };
249
+ }
250
+ return { done: false, value };
251
+ },
252
+ [Symbol.asyncIterator]() {
253
+ return this;
254
+ }
255
+ };
256
+ }
257
+ };
258
+ }
259
+ });
260
+
261
+ // src/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts
262
+ var UndiciStreamWrapper_exports = {};
263
+ __export(UndiciStreamWrapper_exports, {
264
+ UndiciStreamWrapper: () => UndiciStreamWrapper
265
+ });
266
+ var UndiciStreamWrapper;
267
+ var init_UndiciStreamWrapper = __esm({
268
+ "src/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts"() {
269
+ "use strict";
270
+ UndiciStreamWrapper = class _UndiciStreamWrapper {
271
+ readableStream;
272
+ reader;
273
+ events;
274
+ paused;
275
+ resumeCallback;
276
+ encoding;
277
+ constructor(readableStream) {
278
+ this.readableStream = readableStream;
279
+ this.reader = this.readableStream.getReader();
280
+ this.events = {
281
+ data: [],
282
+ end: [],
283
+ error: [],
284
+ readable: [],
285
+ close: [],
286
+ pause: [],
287
+ resume: []
288
+ };
289
+ this.paused = false;
290
+ this.resumeCallback = null;
291
+ this.encoding = null;
292
+ }
293
+ on(event, callback) {
294
+ var _a;
295
+ (_a = this.events[event]) == null ? void 0 : _a.push(callback);
296
+ }
297
+ off(event, callback) {
298
+ var _a;
299
+ this.events[event] = (_a = this.events[event]) == null ? void 0 : _a.filter((cb) => cb !== callback);
300
+ }
301
+ pipe(dest) {
302
+ this.on("data", (chunk) => {
303
+ if (dest instanceof _UndiciStreamWrapper) {
304
+ dest._write(chunk);
305
+ } else {
306
+ const writer = dest.getWriter();
307
+ writer.write(chunk).then(() => writer.releaseLock());
308
+ }
309
+ });
310
+ this.on("end", () => {
311
+ if (dest instanceof _UndiciStreamWrapper) {
312
+ dest._end();
313
+ } else {
314
+ const writer = dest.getWriter();
315
+ writer.close();
316
+ }
317
+ });
318
+ this.on("error", (error) => {
319
+ if (dest instanceof _UndiciStreamWrapper) {
320
+ dest._error(error);
321
+ } else {
322
+ const writer = dest.getWriter();
323
+ writer.abort(error);
324
+ }
325
+ });
326
+ this._startReading();
327
+ return dest;
328
+ }
329
+ pipeTo(dest) {
330
+ return this.pipe(dest);
331
+ }
332
+ unpipe(dest) {
333
+ this.off("data", (chunk) => {
334
+ if (dest instanceof _UndiciStreamWrapper) {
335
+ dest._write(chunk);
336
+ } else {
337
+ const writer = dest.getWriter();
338
+ writer.write(chunk).then(() => writer.releaseLock());
339
+ }
340
+ });
341
+ this.off("end", () => {
342
+ if (dest instanceof _UndiciStreamWrapper) {
343
+ dest._end();
344
+ } else {
345
+ const writer = dest.getWriter();
346
+ writer.close();
347
+ }
348
+ });
349
+ this.off("error", (error) => {
350
+ if (dest instanceof _UndiciStreamWrapper) {
351
+ dest._error(error);
352
+ } else {
353
+ const writer = dest.getWriter();
354
+ writer.abort(error);
355
+ }
356
+ });
357
+ }
358
+ destroy(error) {
359
+ this.reader.cancel(error).then(() => {
360
+ this._emit("close");
361
+ }).catch((err) => {
362
+ this._emit("error", err);
363
+ });
364
+ }
365
+ pause() {
366
+ this.paused = true;
367
+ this._emit("pause");
368
+ }
369
+ resume() {
370
+ if (this.paused) {
371
+ this.paused = false;
372
+ this._emit("resume");
373
+ if (this.resumeCallback) {
374
+ this.resumeCallback();
375
+ this.resumeCallback = null;
376
+ }
377
+ }
378
+ }
379
+ get isPaused() {
380
+ return this.paused;
381
+ }
382
+ async read() {
383
+ if (this.paused) {
384
+ await new Promise((resolve) => {
385
+ this.resumeCallback = resolve;
386
+ });
387
+ }
388
+ const { done, value } = await this.reader.read();
389
+ if (done) {
390
+ return void 0;
391
+ }
392
+ return value;
393
+ }
394
+ setEncoding(encoding) {
395
+ this.encoding = encoding;
396
+ }
397
+ async text() {
398
+ const chunks = [];
399
+ while (true) {
400
+ const { done, value } = await this.reader.read();
401
+ if (done) {
402
+ break;
403
+ }
404
+ if (value) {
405
+ chunks.push(value);
406
+ }
407
+ }
408
+ const decoder = new TextDecoder(this.encoding || "utf-8");
409
+ return decoder.decode(await new Blob(chunks).arrayBuffer());
410
+ }
411
+ async json() {
412
+ const text = await this.text();
413
+ return JSON.parse(text);
414
+ }
415
+ _write(chunk) {
416
+ this._emit("data", chunk);
417
+ }
418
+ _end() {
419
+ this._emit("end");
420
+ }
421
+ _error(error) {
422
+ this._emit("error", error);
423
+ }
424
+ _emit(event, data) {
425
+ if (this.events[event]) {
426
+ for (const callback of this.events[event] || []) {
427
+ callback(data);
428
+ }
429
+ }
430
+ }
431
+ async _startReading() {
432
+ try {
433
+ this._emit("readable");
434
+ while (true) {
435
+ if (this.paused) {
436
+ await new Promise((resolve) => {
437
+ this.resumeCallback = resolve;
438
+ });
439
+ }
440
+ const { done, value } = await this.reader.read();
441
+ if (done) {
442
+ this._emit("end");
443
+ this._emit("close");
444
+ break;
445
+ }
446
+ if (value) {
447
+ this._emit("data", value);
448
+ }
449
+ }
450
+ } catch (error) {
451
+ this._emit("error", error);
452
+ }
453
+ }
454
+ [Symbol.asyncIterator]() {
455
+ return {
456
+ next: async () => {
457
+ if (this.paused) {
458
+ await new Promise((resolve) => {
459
+ this.resumeCallback = resolve;
460
+ });
461
+ }
462
+ const { done, value } = await this.reader.read();
463
+ if (done) {
464
+ return { done: true, value: void 0 };
465
+ }
466
+ return { done: false, value };
467
+ },
468
+ [Symbol.asyncIterator]() {
469
+ return this;
470
+ }
471
+ };
472
+ }
473
+ };
474
+ }
475
+ });
476
+
477
+ // src/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts
478
+ var NodePre18StreamWrapper_exports = {};
479
+ __export(NodePre18StreamWrapper_exports, {
480
+ NodePre18StreamWrapper: () => NodePre18StreamWrapper
481
+ });
482
+ var NodePre18StreamWrapper;
483
+ var init_NodePre18StreamWrapper = __esm({
484
+ "src/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts"() {
485
+ "use strict";
486
+ NodePre18StreamWrapper = class {
487
+ readableStream;
488
+ encoding;
489
+ constructor(readableStream) {
490
+ this.readableStream = readableStream;
491
+ }
492
+ on(event, callback) {
493
+ this.readableStream.on(event, callback);
494
+ }
495
+ off(event, callback) {
496
+ this.readableStream.off(event, callback);
497
+ }
498
+ pipe(dest) {
499
+ this.readableStream.pipe(dest);
500
+ return dest;
501
+ }
502
+ pipeTo(dest) {
503
+ return this.pipe(dest);
504
+ }
505
+ unpipe(dest) {
506
+ if (dest) {
507
+ this.readableStream.unpipe(dest);
508
+ } else {
509
+ this.readableStream.unpipe();
510
+ }
511
+ }
512
+ destroy(error) {
513
+ this.readableStream.destroy(error);
514
+ }
515
+ pause() {
516
+ this.readableStream.pause();
517
+ }
518
+ resume() {
519
+ this.readableStream.resume();
520
+ }
521
+ get isPaused() {
522
+ return this.readableStream.isPaused();
523
+ }
524
+ async read() {
525
+ return new Promise((resolve, reject) => {
526
+ const chunk = this.readableStream.read();
527
+ if (chunk) {
528
+ resolve(chunk);
529
+ } else {
530
+ this.readableStream.once("readable", () => {
531
+ const chunk2 = this.readableStream.read();
532
+ resolve(chunk2);
533
+ });
534
+ this.readableStream.once("error", reject);
535
+ }
536
+ });
537
+ }
538
+ setEncoding(encoding) {
539
+ this.readableStream.setEncoding(encoding);
540
+ this.encoding = encoding;
541
+ }
542
+ async text() {
543
+ const chunks = [];
544
+ const encoder = new TextEncoder();
545
+ this.readableStream.setEncoding(this.encoding || "utf-8");
546
+ for await (const chunk of this.readableStream) {
547
+ chunks.push(encoder.encode(chunk));
548
+ }
549
+ const decoder = new TextDecoder(this.encoding || "utf-8");
550
+ return decoder.decode(Buffer.concat(chunks));
551
+ }
552
+ async json() {
553
+ const text = await this.text();
554
+ return JSON.parse(text);
555
+ }
556
+ [Symbol.asyncIterator]() {
557
+ const readableStream = this.readableStream;
558
+ const iterator = readableStream[Symbol.asyncIterator]();
559
+ return {
560
+ async next() {
561
+ const { value, done } = await iterator.next();
562
+ return { value, done };
563
+ },
564
+ [Symbol.asyncIterator]() {
565
+ return this;
566
+ }
567
+ };
568
+ }
569
+ };
570
+ }
571
+ });
572
+
573
+ // src/core/index.ts
574
+ var core_exports = {};
575
+ __export(core_exports, {
576
+ BasicAuth: () => BasicAuth,
577
+ BearerToken: () => BearerToken,
578
+ RUNTIME: () => RUNTIME,
579
+ Supplier: () => Supplier,
580
+ fetcher: () => fetcher,
581
+ getHeader: () => getHeader,
582
+ serialization: () => schemas_exports
583
+ });
584
+ module.exports = __toCommonJS(core_exports);
585
+
586
+ // src/core/json.ts
587
+ var toJson = (value, replacer, space) => {
588
+ return JSON.stringify(value, replacer, space);
589
+ };
590
+
591
+ // src/core/fetcher/createRequestUrl.ts
592
+ var import_qs = __toESM(require("qs"));
593
+ function createRequestUrl(baseUrl, queryParameters) {
594
+ return Object.keys(queryParameters ?? {}).length > 0 ? `${baseUrl}?${import_qs.default.stringify(queryParameters, { arrayFormat: "repeat" })}` : baseUrl;
595
+ }
596
+
597
+ // src/core/runtime/runtime.ts
598
+ var RUNTIME = evaluateRuntime();
599
+ function evaluateRuntime() {
600
+ var _a, _b, _c, _d, _e;
601
+ const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
602
+ if (isBrowser) {
603
+ return {
604
+ type: "browser",
605
+ version: window.navigator.userAgent
606
+ };
607
+ }
608
+ const isCloudflare = typeof globalThis !== "undefined" && ((_a = globalThis == null ? void 0 : globalThis.navigator) == null ? void 0 : _a.userAgent) === "Cloudflare-Workers";
609
+ if (isCloudflare) {
610
+ return {
611
+ type: "workerd"
612
+ };
613
+ }
614
+ const isEdgeRuntime = typeof EdgeRuntime === "string";
615
+ if (isEdgeRuntime) {
616
+ return {
617
+ type: "edge-runtime"
618
+ };
619
+ }
620
+ const isWebWorker = typeof self === "object" && // @ts-ignore
621
+ 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");
622
+ if (isWebWorker) {
623
+ return {
624
+ type: "web-worker"
625
+ };
626
+ }
627
+ const isDeno = typeof Deno !== "undefined" && typeof Deno.version !== "undefined" && typeof Deno.version.deno !== "undefined";
628
+ if (isDeno) {
629
+ return {
630
+ type: "deno",
631
+ version: Deno.version.deno
632
+ };
633
+ }
634
+ const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined";
635
+ if (isBun) {
636
+ return {
637
+ type: "bun",
638
+ version: Bun.version
639
+ };
640
+ }
641
+ const isNode = typeof process !== "undefined" && "version" in process && !!process.version && "versions" in process && !!((_e = process.versions) == null ? void 0 : _e.node);
642
+ if (isNode) {
643
+ return {
644
+ type: "node",
645
+ version: process.versions.node,
646
+ parsedVersion: Number(process.versions.node.split(".")[0])
647
+ };
648
+ }
649
+ const isReactNative = typeof navigator !== "undefined" && (navigator == null ? void 0 : navigator.product) === "ReactNative";
650
+ if (isReactNative) {
651
+ return {
652
+ type: "react-native"
653
+ };
654
+ }
655
+ return {
656
+ type: "unknown"
657
+ };
658
+ }
659
+
660
+ // src/core/fetcher/getFetchFn.ts
661
+ async function getFetchFn() {
662
+ if (RUNTIME.type === "node" && RUNTIME.parsedVersion != null && RUNTIME.parsedVersion >= 18) {
663
+ return fetch;
664
+ }
665
+ if (RUNTIME.type === "node") {
666
+ return (await import("node-fetch")).default;
667
+ }
668
+ if (typeof fetch == "function") {
669
+ return fetch;
670
+ }
671
+ return (await import("node-fetch")).default;
672
+ }
673
+
674
+ // src/core/fetcher/getRequestBody.ts
675
+ async function getRequestBody({ body, type }) {
676
+ if (type.includes("json")) {
677
+ return toJson(body);
678
+ } else {
679
+ return body;
680
+ }
681
+ }
682
+
683
+ // src/core/fetcher/stream-wrappers/chooseStreamWrapper.ts
684
+ async function chooseStreamWrapper(responseBody) {
685
+ if (RUNTIME.type === "node" && RUNTIME.parsedVersion != null && RUNTIME.parsedVersion >= 18) {
686
+ return new (await Promise.resolve().then(() => (init_Node18UniversalStreamWrapper(), Node18UniversalStreamWrapper_exports))).Node18UniversalStreamWrapper(
687
+ responseBody
688
+ );
689
+ } else if (RUNTIME.type !== "node" && typeof fetch === "function") {
690
+ return new (await Promise.resolve().then(() => (init_UndiciStreamWrapper(), UndiciStreamWrapper_exports))).UndiciStreamWrapper(responseBody);
691
+ } else {
692
+ return new (await Promise.resolve().then(() => (init_NodePre18StreamWrapper(), NodePre18StreamWrapper_exports))).NodePre18StreamWrapper(responseBody);
693
+ }
694
+ }
695
+
696
+ // src/core/fetcher/getResponseBody.ts
697
+ async function getResponseBody(response, responseType) {
698
+ if (response.body != null && responseType === "blob") {
699
+ return await response.blob();
700
+ } else if (response.body != null && responseType === "arrayBuffer") {
701
+ return await response.arrayBuffer();
702
+ } else if (response.body != null && responseType === "sse") {
703
+ return response.body;
704
+ } else if (response.body != null && responseType === "streaming") {
705
+ return chooseStreamWrapper(response.body);
706
+ } else if (response.body != null && responseType === "text") {
707
+ return await response.text();
708
+ } else {
709
+ const text = await response.text();
710
+ if (text.length > 0) {
711
+ try {
712
+ let responseBody = JSON.parse(text);
713
+ return responseBody;
714
+ } catch (err) {
715
+ return {
716
+ ok: false,
717
+ error: {
718
+ reason: "non-json",
719
+ statusCode: response.status,
720
+ rawBody: text
721
+ }
722
+ };
723
+ }
724
+ } else {
725
+ return void 0;
726
+ }
727
+ }
728
+ }
729
+
730
+ // src/core/fetcher/signals.ts
731
+ var TIMEOUT = "timeout";
732
+ function getTimeoutSignal(timeoutMs) {
733
+ const controller = new AbortController();
734
+ const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
735
+ return { signal: controller.signal, abortId };
736
+ }
737
+ function anySignal(...args) {
738
+ const signals = args.length === 1 && Array.isArray(args[0]) ? args[0] : args;
739
+ const controller = new AbortController();
740
+ for (const signal of signals) {
741
+ if (signal.aborted) {
742
+ controller.abort(signal == null ? void 0 : signal.reason);
743
+ break;
744
+ }
745
+ signal.addEventListener("abort", () => controller.abort(signal == null ? void 0 : signal.reason), {
746
+ signal: controller.signal
747
+ });
748
+ }
749
+ return controller.signal;
750
+ }
751
+
752
+ // src/core/fetcher/makeRequest.ts
753
+ var makeRequest = async (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex) => {
754
+ const signals = [];
755
+ let timeoutAbortId = void 0;
756
+ if (timeoutMs != null) {
757
+ const { signal, abortId } = getTimeoutSignal(timeoutMs);
758
+ timeoutAbortId = abortId;
759
+ signals.push(signal);
760
+ }
761
+ if (abortSignal != null) {
762
+ signals.push(abortSignal);
763
+ }
764
+ let newSignals = anySignal(signals);
765
+ const response = await fetchFn(url, {
766
+ method,
767
+ headers,
768
+ body: requestBody,
769
+ signal: newSignals,
770
+ credentials: withCredentials ? "include" : void 0,
771
+ // @ts-ignore
772
+ duplex
773
+ });
774
+ if (timeoutAbortId != null) {
775
+ clearTimeout(timeoutAbortId);
776
+ }
777
+ return response;
778
+ };
779
+
780
+ // src/core/fetcher/requestWithRetries.ts
781
+ var INITIAL_RETRY_DELAY = 1e3;
782
+ var MAX_RETRY_DELAY = 6e4;
783
+ var DEFAULT_MAX_RETRIES = 2;
784
+ var JITTER_FACTOR = 0.2;
785
+ function addJitter(delay) {
786
+ const jitterMultiplier = 1 + (Math.random() * 2 - 1) * JITTER_FACTOR;
787
+ return delay * jitterMultiplier;
788
+ }
789
+ async function requestWithRetries(requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
790
+ let response = await requestFn();
791
+ for (let i = 0; i < maxRetries; ++i) {
792
+ if ([408, 429].includes(response.status) || response.status >= 500) {
793
+ const baseDelay = Math.min(INITIAL_RETRY_DELAY * Math.pow(2, i), MAX_RETRY_DELAY);
794
+ const delayWithJitter = addJitter(baseDelay);
795
+ await new Promise((resolve) => setTimeout(resolve, delayWithJitter));
796
+ response = await requestFn();
797
+ } else {
798
+ break;
799
+ }
800
+ }
801
+ return response;
802
+ }
803
+
804
+ // src/core/fetcher/Fetcher.ts
805
+ async function fetcherImpl(args) {
806
+ const headers = {};
807
+ if (args.body !== void 0 && args.contentType != null) {
808
+ headers["Content-Type"] = args.contentType;
809
+ }
810
+ if (args.headers != null) {
811
+ for (const [key, value] of Object.entries(args.headers)) {
812
+ if (value != null) {
813
+ headers[key] = value;
814
+ }
815
+ }
816
+ }
817
+ const url = createRequestUrl(args.url, args.queryParameters);
818
+ const requestBody = await getRequestBody({
819
+ body: args.body,
820
+ type: args.requestType === "json" ? "json" : "other"
821
+ });
822
+ const fetchFn = await getFetchFn();
823
+ try {
824
+ const response = await requestWithRetries(
825
+ async () => makeRequest(
826
+ fetchFn,
827
+ url,
828
+ args.method,
829
+ headers,
830
+ requestBody,
831
+ args.timeoutMs,
832
+ args.abortSignal,
833
+ args.withCredentials,
834
+ args.duplex
835
+ ),
836
+ args.maxRetries
837
+ );
838
+ const responseBody = await getResponseBody(response, args.responseType);
839
+ if (response.status >= 200 && response.status < 400) {
840
+ return {
841
+ ok: true,
842
+ body: responseBody,
843
+ headers: response.headers
844
+ };
845
+ } else {
846
+ return {
847
+ ok: false,
848
+ error: {
849
+ reason: "status-code",
850
+ statusCode: response.status,
851
+ body: responseBody
852
+ }
853
+ };
854
+ }
855
+ } catch (error) {
856
+ if (args.abortSignal != null && args.abortSignal.aborted) {
857
+ return {
858
+ ok: false,
859
+ error: {
860
+ reason: "unknown",
861
+ errorMessage: "The user aborted a request"
862
+ }
863
+ };
864
+ } else if (error instanceof Error && error.name === "AbortError") {
865
+ return {
866
+ ok: false,
867
+ error: {
868
+ reason: "timeout"
869
+ }
870
+ };
871
+ } else if (error instanceof Error) {
872
+ return {
873
+ ok: false,
874
+ error: {
875
+ reason: "unknown",
876
+ errorMessage: error.message
877
+ }
878
+ };
879
+ }
880
+ return {
881
+ ok: false,
882
+ error: {
883
+ reason: "unknown",
884
+ errorMessage: toJson(error)
885
+ }
886
+ };
887
+ }
888
+ }
889
+ var fetcher = fetcherImpl;
890
+
891
+ // src/core/fetcher/getHeader.ts
892
+ function getHeader(headers, header) {
893
+ for (const [headerKey, headerValue] of Object.entries(headers)) {
894
+ if (headerKey.toLowerCase() === header.toLowerCase()) {
895
+ return headerValue;
896
+ }
897
+ }
898
+ return void 0;
899
+ }
900
+
901
+ // src/core/fetcher/Supplier.ts
902
+ var Supplier = {
903
+ get: async (supplier) => {
904
+ if (typeof supplier === "function") {
905
+ return supplier();
906
+ } else {
907
+ return supplier;
908
+ }
909
+ }
910
+ };
911
+
912
+ // src/core/auth/BasicAuth.ts
913
+ var import_js_base64 = require("js-base64");
914
+ var BASIC_AUTH_HEADER_PREFIX = /^Basic /i;
915
+ var BasicAuth = {
916
+ toAuthorizationHeader: (basicAuth) => {
917
+ if (basicAuth == null) {
918
+ return void 0;
919
+ }
920
+ const token = import_js_base64.Base64.encode(`${basicAuth.username}:${basicAuth.password}`);
921
+ return `Basic ${token}`;
922
+ },
923
+ fromAuthorizationHeader: (header) => {
924
+ const credentials = header.replace(BASIC_AUTH_HEADER_PREFIX, "");
925
+ const decoded = import_js_base64.Base64.decode(credentials);
926
+ const [username, password] = decoded.split(":", 2);
927
+ if (username == null || password == null) {
928
+ throw new Error("Invalid basic auth");
929
+ }
930
+ return {
931
+ username,
932
+ password
933
+ };
934
+ }
935
+ };
936
+
937
+ // src/core/auth/BearerToken.ts
938
+ var BEARER_AUTH_HEADER_PREFIX = /^Bearer /i;
939
+ var BearerToken = {
940
+ toAuthorizationHeader: (token) => {
941
+ if (token == null) {
942
+ return void 0;
943
+ }
944
+ return `Bearer ${token}`;
945
+ },
946
+ fromAuthorizationHeader: (header) => {
947
+ return header.replace(BEARER_AUTH_HEADER_PREFIX, "").trim();
948
+ }
949
+ };
950
+
951
+ // src/core/schemas/index.ts
952
+ var schemas_exports = {};
953
+ __export(schemas_exports, {
954
+ JsonError: () => JsonError,
955
+ ParseError: () => ParseError,
956
+ any: () => any,
957
+ bigint: () => bigint,
958
+ boolean: () => boolean,
959
+ booleanLiteral: () => booleanLiteral,
960
+ date: () => date,
961
+ discriminant: () => discriminant,
962
+ enum_: () => enum_,
963
+ getObjectLikeUtils: () => getObjectLikeUtils,
964
+ getObjectUtils: () => getObjectUtils,
965
+ getSchemaUtils: () => getSchemaUtils,
966
+ isProperty: () => isProperty,
967
+ lazy: () => lazy,
968
+ lazyObject: () => lazyObject,
969
+ list: () => list,
970
+ number: () => number,
971
+ object: () => object,
972
+ objectWithoutOptionalProperties: () => objectWithoutOptionalProperties,
973
+ optional: () => optional,
974
+ property: () => property,
975
+ record: () => record,
976
+ set: () => set,
977
+ string: () => string,
978
+ stringLiteral: () => stringLiteral,
979
+ transform: () => transform,
980
+ undiscriminatedUnion: () => undiscriminatedUnion,
981
+ union: () => union,
982
+ unknown: () => unknown,
983
+ withParsedProperties: () => withParsedProperties
984
+ });
985
+
986
+ // src/core/schemas/Schema.ts
987
+ var SchemaType = {
988
+ BIGINT: "bigint",
989
+ DATE: "date",
990
+ ENUM: "enum",
991
+ LIST: "list",
992
+ STRING_LITERAL: "stringLiteral",
993
+ BOOLEAN_LITERAL: "booleanLiteral",
994
+ OBJECT: "object",
995
+ ANY: "any",
996
+ BOOLEAN: "boolean",
997
+ NUMBER: "number",
998
+ STRING: "string",
999
+ UNKNOWN: "unknown",
1000
+ RECORD: "record",
1001
+ SET: "set",
1002
+ UNION: "union",
1003
+ UNDISCRIMINATED_UNION: "undiscriminatedUnion",
1004
+ NULLABLE: "nullable",
1005
+ OPTIONAL: "optional",
1006
+ OPTIONAL_NULLABLE: "optionalNullable"
1007
+ };
1008
+
1009
+ // src/core/schemas/utils/getErrorMessageForIncorrectType.ts
1010
+ function getErrorMessageForIncorrectType(value, expectedType) {
1011
+ return `Expected ${expectedType}. Received ${getTypeAsString(value)}.`;
1012
+ }
1013
+ function getTypeAsString(value) {
1014
+ if (Array.isArray(value)) {
1015
+ return "list";
1016
+ }
1017
+ if (value === null) {
1018
+ return "null";
1019
+ }
1020
+ if (value instanceof BigInt) {
1021
+ return "BigInt";
1022
+ }
1023
+ switch (typeof value) {
1024
+ case "string":
1025
+ return `"${value}"`;
1026
+ case "bigint":
1027
+ case "number":
1028
+ case "boolean":
1029
+ case "undefined":
1030
+ return `${value}`;
1031
+ }
1032
+ return typeof value;
1033
+ }
1034
+
1035
+ // src/core/schemas/utils/maybeSkipValidation.ts
1036
+ function maybeSkipValidation(schema) {
1037
+ return {
1038
+ ...schema,
1039
+ json: transformAndMaybeSkipValidation(schema.json),
1040
+ parse: transformAndMaybeSkipValidation(schema.parse)
1041
+ };
1042
+ }
1043
+ function transformAndMaybeSkipValidation(transform2) {
1044
+ return (value, opts) => {
1045
+ const transformed = transform2(value, opts);
1046
+ const { skipValidation = false } = opts ?? {};
1047
+ if (!transformed.ok && skipValidation) {
1048
+ console.warn(
1049
+ [
1050
+ "Failed to validate.",
1051
+ ...transformed.errors.map(
1052
+ (error) => " - " + (error.path.length > 0 ? `${error.path.join(".")}: ${error.message}` : error.message)
1053
+ )
1054
+ ].join("\n")
1055
+ );
1056
+ return {
1057
+ ok: true,
1058
+ value
1059
+ };
1060
+ } else {
1061
+ return transformed;
1062
+ }
1063
+ };
1064
+ }
1065
+
1066
+ // src/core/schemas/builders/schema-utils/stringifyValidationErrors.ts
1067
+ function stringifyValidationError(error) {
1068
+ if (error.path.length === 0) {
1069
+ return error.message;
1070
+ }
1071
+ return `${error.path.join(" -> ")}: ${error.message}`;
1072
+ }
1073
+
1074
+ // src/core/schemas/builders/schema-utils/JsonError.ts
1075
+ var JsonError = class _JsonError extends Error {
1076
+ constructor(errors) {
1077
+ super(errors.map(stringifyValidationError).join("; "));
1078
+ this.errors = errors;
1079
+ Object.setPrototypeOf(this, _JsonError.prototype);
1080
+ }
1081
+ };
1082
+
1083
+ // src/core/schemas/builders/schema-utils/ParseError.ts
1084
+ var ParseError = class _ParseError extends Error {
1085
+ constructor(errors) {
1086
+ super(errors.map(stringifyValidationError).join("; "));
1087
+ this.errors = errors;
1088
+ Object.setPrototypeOf(this, _ParseError.prototype);
1089
+ }
1090
+ };
1091
+
1092
+ // src/core/schemas/builders/schema-utils/getSchemaUtils.ts
1093
+ function getSchemaUtils(schema) {
1094
+ return {
1095
+ nullable: () => nullable(schema),
1096
+ optional: () => optional(schema),
1097
+ optionalNullable: () => optionalNullable(schema),
1098
+ transform: (transformer) => transform(schema, transformer),
1099
+ parseOrThrow: (raw, opts) => {
1100
+ const parsed = schema.parse(raw, opts);
1101
+ if (parsed.ok) {
1102
+ return parsed.value;
1103
+ }
1104
+ throw new ParseError(parsed.errors);
1105
+ },
1106
+ jsonOrThrow: (parsed, opts) => {
1107
+ const raw = schema.json(parsed, opts);
1108
+ if (raw.ok) {
1109
+ return raw.value;
1110
+ }
1111
+ throw new JsonError(raw.errors);
1112
+ }
1113
+ };
1114
+ }
1115
+ function nullable(schema) {
1116
+ const baseSchema = {
1117
+ parse: (raw, opts) => {
1118
+ if (raw == null) {
1119
+ return {
1120
+ ok: true,
1121
+ value: null
1122
+ };
1123
+ }
1124
+ return schema.parse(raw, opts);
1125
+ },
1126
+ json: (parsed, opts) => {
1127
+ if (parsed == null) {
1128
+ return {
1129
+ ok: true,
1130
+ value: null
1131
+ };
1132
+ }
1133
+ return schema.json(parsed, opts);
1134
+ },
1135
+ getType: () => SchemaType.NULLABLE
1136
+ };
1137
+ return {
1138
+ ...baseSchema,
1139
+ ...getSchemaUtils(baseSchema)
1140
+ };
1141
+ }
1142
+ function optional(schema) {
1143
+ const baseSchema = {
1144
+ parse: (raw, opts) => {
1145
+ if (raw == null) {
1146
+ return {
1147
+ ok: true,
1148
+ value: void 0
1149
+ };
1150
+ }
1151
+ return schema.parse(raw, opts);
1152
+ },
1153
+ json: (parsed, opts) => {
1154
+ if ((opts == null ? void 0 : opts.omitUndefined) && parsed === void 0) {
1155
+ return {
1156
+ ok: true,
1157
+ value: void 0
1158
+ };
1159
+ }
1160
+ if (parsed == null) {
1161
+ return {
1162
+ ok: true,
1163
+ value: null
1164
+ };
1165
+ }
1166
+ return schema.json(parsed, opts);
1167
+ },
1168
+ getType: () => SchemaType.OPTIONAL
1169
+ };
1170
+ return {
1171
+ ...baseSchema,
1172
+ ...getSchemaUtils(baseSchema)
1173
+ };
1174
+ }
1175
+ function optionalNullable(schema) {
1176
+ const baseSchema = {
1177
+ parse: (raw, opts) => {
1178
+ if (raw === void 0) {
1179
+ return {
1180
+ ok: true,
1181
+ value: void 0
1182
+ };
1183
+ }
1184
+ if (raw === null) {
1185
+ return {
1186
+ ok: true,
1187
+ value: null
1188
+ };
1189
+ }
1190
+ return schema.parse(raw, opts);
1191
+ },
1192
+ json: (parsed, opts) => {
1193
+ if (parsed === void 0) {
1194
+ return {
1195
+ ok: true,
1196
+ value: void 0
1197
+ };
1198
+ }
1199
+ if (parsed === null) {
1200
+ return {
1201
+ ok: true,
1202
+ value: null
1203
+ };
1204
+ }
1205
+ return schema.json(parsed, opts);
1206
+ },
1207
+ getType: () => SchemaType.OPTIONAL_NULLABLE
1208
+ };
1209
+ return {
1210
+ ...baseSchema,
1211
+ ...getSchemaUtils(baseSchema)
1212
+ };
1213
+ }
1214
+ function transform(schema, transformer) {
1215
+ const baseSchema = {
1216
+ parse: (raw, opts) => {
1217
+ const parsed = schema.parse(raw, opts);
1218
+ if (!parsed.ok) {
1219
+ return parsed;
1220
+ }
1221
+ return {
1222
+ ok: true,
1223
+ value: transformer.transform(parsed.value)
1224
+ };
1225
+ },
1226
+ json: (transformed, opts) => {
1227
+ const parsed = transformer.untransform(transformed);
1228
+ return schema.json(parsed, opts);
1229
+ },
1230
+ getType: () => schema.getType()
1231
+ };
1232
+ return {
1233
+ ...baseSchema,
1234
+ ...getSchemaUtils(baseSchema)
1235
+ };
1236
+ }
1237
+
1238
+ // src/core/schemas/builders/bigint/bigint.ts
1239
+ function bigint() {
1240
+ const baseSchema = {
1241
+ parse: (raw, { breadcrumbsPrefix = [] } = {}) => {
1242
+ if (typeof raw === "bigint") {
1243
+ return {
1244
+ ok: true,
1245
+ value: raw
1246
+ };
1247
+ }
1248
+ if (typeof raw === "number") {
1249
+ return {
1250
+ ok: true,
1251
+ value: BigInt(raw)
1252
+ };
1253
+ }
1254
+ return {
1255
+ ok: false,
1256
+ errors: [
1257
+ {
1258
+ path: breadcrumbsPrefix,
1259
+ message: getErrorMessageForIncorrectType(raw, "bigint | number")
1260
+ }
1261
+ ]
1262
+ };
1263
+ },
1264
+ json: (bigint2, { breadcrumbsPrefix = [] } = {}) => {
1265
+ if (typeof bigint2 !== "bigint") {
1266
+ return {
1267
+ ok: false,
1268
+ errors: [
1269
+ {
1270
+ path: breadcrumbsPrefix,
1271
+ message: getErrorMessageForIncorrectType(bigint2, "bigint")
1272
+ }
1273
+ ]
1274
+ };
1275
+ }
1276
+ return {
1277
+ ok: true,
1278
+ value: bigint2
1279
+ };
1280
+ },
1281
+ getType: () => SchemaType.BIGINT
1282
+ };
1283
+ return {
1284
+ ...maybeSkipValidation(baseSchema),
1285
+ ...getSchemaUtils(baseSchema)
1286
+ };
1287
+ }
1288
+
1289
+ // src/core/schemas/builders/date/date.ts
1290
+ 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)?)?)?)?$/;
1291
+ function date() {
1292
+ const baseSchema = {
1293
+ parse: (raw, { breadcrumbsPrefix = [] } = {}) => {
1294
+ if (typeof raw !== "string") {
1295
+ return {
1296
+ ok: false,
1297
+ errors: [
1298
+ {
1299
+ path: breadcrumbsPrefix,
1300
+ message: getErrorMessageForIncorrectType(raw, "string")
1301
+ }
1302
+ ]
1303
+ };
1304
+ }
1305
+ if (!ISO_8601_REGEX.test(raw)) {
1306
+ return {
1307
+ ok: false,
1308
+ errors: [
1309
+ {
1310
+ path: breadcrumbsPrefix,
1311
+ message: getErrorMessageForIncorrectType(raw, "ISO 8601 date string")
1312
+ }
1313
+ ]
1314
+ };
1315
+ }
1316
+ return {
1317
+ ok: true,
1318
+ value: new Date(raw)
1319
+ };
1320
+ },
1321
+ json: (date2, { breadcrumbsPrefix = [] } = {}) => {
1322
+ if (date2 instanceof Date) {
1323
+ return {
1324
+ ok: true,
1325
+ value: date2.toISOString()
1326
+ };
1327
+ } else {
1328
+ return {
1329
+ ok: false,
1330
+ errors: [
1331
+ {
1332
+ path: breadcrumbsPrefix,
1333
+ message: getErrorMessageForIncorrectType(date2, "Date object")
1334
+ }
1335
+ ]
1336
+ };
1337
+ }
1338
+ },
1339
+ getType: () => SchemaType.DATE
1340
+ };
1341
+ return {
1342
+ ...maybeSkipValidation(baseSchema),
1343
+ ...getSchemaUtils(baseSchema)
1344
+ };
1345
+ }
1346
+
1347
+ // src/core/schemas/utils/createIdentitySchemaCreator.ts
1348
+ function createIdentitySchemaCreator(schemaType, validate) {
1349
+ return () => {
1350
+ const baseSchema = {
1351
+ parse: validate,
1352
+ json: validate,
1353
+ getType: () => schemaType
1354
+ };
1355
+ return {
1356
+ ...maybeSkipValidation(baseSchema),
1357
+ ...getSchemaUtils(baseSchema)
1358
+ };
1359
+ };
1360
+ }
1361
+
1362
+ // src/core/schemas/builders/enum/enum.ts
1363
+ function enum_(values) {
1364
+ const validValues = new Set(values);
1365
+ const schemaCreator = createIdentitySchemaCreator(
1366
+ SchemaType.ENUM,
1367
+ (value, { allowUnrecognizedEnumValues, breadcrumbsPrefix = [] } = {}) => {
1368
+ if (typeof value !== "string") {
1369
+ return {
1370
+ ok: false,
1371
+ errors: [
1372
+ {
1373
+ path: breadcrumbsPrefix,
1374
+ message: getErrorMessageForIncorrectType(value, "string")
1375
+ }
1376
+ ]
1377
+ };
1378
+ }
1379
+ if (!validValues.has(value) && !allowUnrecognizedEnumValues) {
1380
+ return {
1381
+ ok: false,
1382
+ errors: [
1383
+ {
1384
+ path: breadcrumbsPrefix,
1385
+ message: getErrorMessageForIncorrectType(value, "enum")
1386
+ }
1387
+ ]
1388
+ };
1389
+ }
1390
+ return {
1391
+ ok: true,
1392
+ value
1393
+ };
1394
+ }
1395
+ );
1396
+ return schemaCreator();
1397
+ }
1398
+
1399
+ // src/core/schemas/builders/lazy/lazy.ts
1400
+ function lazy(getter) {
1401
+ const baseSchema = constructLazyBaseSchema(getter);
1402
+ return {
1403
+ ...baseSchema,
1404
+ ...getSchemaUtils(baseSchema)
1405
+ };
1406
+ }
1407
+ function constructLazyBaseSchema(getter) {
1408
+ return {
1409
+ parse: (raw, opts) => getMemoizedSchema(getter).parse(raw, opts),
1410
+ json: (parsed, opts) => getMemoizedSchema(getter).json(parsed, opts),
1411
+ getType: () => getMemoizedSchema(getter).getType()
1412
+ };
1413
+ }
1414
+ function getMemoizedSchema(getter) {
1415
+ const castedGetter = getter;
1416
+ if (castedGetter.__zurg_memoized == null) {
1417
+ castedGetter.__zurg_memoized = getter();
1418
+ }
1419
+ return castedGetter.__zurg_memoized;
1420
+ }
1421
+
1422
+ // src/core/schemas/utils/entries.ts
1423
+ function entries(object2) {
1424
+ return Object.entries(object2);
1425
+ }
1426
+
1427
+ // src/core/schemas/utils/filterObject.ts
1428
+ function filterObject(obj, keysToInclude) {
1429
+ const keysToIncludeSet = new Set(keysToInclude);
1430
+ return Object.entries(obj).reduce(
1431
+ (acc, [key, value]) => {
1432
+ if (keysToIncludeSet.has(key)) {
1433
+ acc[key] = value;
1434
+ }
1435
+ return acc;
1436
+ },
1437
+ {}
1438
+ );
1439
+ }
1440
+
1441
+ // src/core/schemas/utils/isPlainObject.ts
1442
+ function isPlainObject(value) {
1443
+ if (typeof value !== "object" || value === null) {
1444
+ return false;
1445
+ }
1446
+ if (Object.getPrototypeOf(value) === null) {
1447
+ return true;
1448
+ }
1449
+ let proto = value;
1450
+ while (Object.getPrototypeOf(proto) !== null) {
1451
+ proto = Object.getPrototypeOf(proto);
1452
+ }
1453
+ return Object.getPrototypeOf(value) === proto;
1454
+ }
1455
+
1456
+ // src/core/schemas/utils/keys.ts
1457
+ function keys(object2) {
1458
+ return Object.keys(object2);
1459
+ }
1460
+
1461
+ // src/core/schemas/utils/partition.ts
1462
+ function partition(items, predicate) {
1463
+ const trueItems = [], falseItems = [];
1464
+ for (const item of items) {
1465
+ if (predicate(item)) {
1466
+ trueItems.push(item);
1467
+ } else {
1468
+ falseItems.push(item);
1469
+ }
1470
+ }
1471
+ return [trueItems, falseItems];
1472
+ }
1473
+
1474
+ // src/core/schemas/builders/object-like/getObjectLikeUtils.ts
1475
+ function getObjectLikeUtils(schema) {
1476
+ return {
1477
+ withParsedProperties: (properties) => withParsedProperties(schema, properties)
1478
+ };
1479
+ }
1480
+ function withParsedProperties(objectLike, properties) {
1481
+ const objectSchema = {
1482
+ parse: (raw, opts) => {
1483
+ const parsedObject = objectLike.parse(raw, opts);
1484
+ if (!parsedObject.ok) {
1485
+ return parsedObject;
1486
+ }
1487
+ const additionalProperties = Object.entries(properties).reduce(
1488
+ (processed, [key, value]) => {
1489
+ return {
1490
+ ...processed,
1491
+ [key]: typeof value === "function" ? value(parsedObject.value) : value
1492
+ };
1493
+ },
1494
+ {}
1495
+ );
1496
+ return {
1497
+ ok: true,
1498
+ value: {
1499
+ ...parsedObject.value,
1500
+ ...additionalProperties
1501
+ }
1502
+ };
1503
+ },
1504
+ json: (parsed, opts) => {
1505
+ if (!isPlainObject(parsed)) {
1506
+ return {
1507
+ ok: false,
1508
+ errors: [
1509
+ {
1510
+ path: (opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [],
1511
+ message: getErrorMessageForIncorrectType(parsed, "object")
1512
+ }
1513
+ ]
1514
+ };
1515
+ }
1516
+ const addedPropertyKeys = new Set(Object.keys(properties));
1517
+ const parsedWithoutAddedProperties = filterObject(
1518
+ parsed,
1519
+ Object.keys(parsed).filter((key) => !addedPropertyKeys.has(key))
1520
+ );
1521
+ return objectLike.json(parsedWithoutAddedProperties, opts);
1522
+ },
1523
+ getType: () => objectLike.getType()
1524
+ };
1525
+ return {
1526
+ ...objectSchema,
1527
+ ...getSchemaUtils(objectSchema),
1528
+ ...getObjectLikeUtils(objectSchema)
1529
+ };
1530
+ }
1531
+
1532
+ // src/core/schemas/builders/object/property.ts
1533
+ function property(rawKey, valueSchema) {
1534
+ return {
1535
+ rawKey,
1536
+ valueSchema,
1537
+ isProperty: true
1538
+ };
1539
+ }
1540
+ function isProperty(maybeProperty) {
1541
+ return maybeProperty.isProperty;
1542
+ }
1543
+
1544
+ // src/core/schemas/builders/object/object.ts
1545
+ function object(schemas) {
1546
+ const baseSchema = {
1547
+ _getRawProperties: () => Object.entries(schemas).map(
1548
+ ([parsedKey, propertySchema]) => isProperty(propertySchema) ? propertySchema.rawKey : parsedKey
1549
+ ),
1550
+ _getParsedProperties: () => keys(schemas),
1551
+ parse: (raw, opts) => {
1552
+ const rawKeyToProperty = {};
1553
+ const requiredKeys = [];
1554
+ for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
1555
+ const rawKey = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.rawKey : parsedKey;
1556
+ const valueSchema = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.valueSchema : schemaOrObjectProperty;
1557
+ const property2 = {
1558
+ rawKey,
1559
+ parsedKey,
1560
+ valueSchema
1561
+ };
1562
+ rawKeyToProperty[rawKey] = property2;
1563
+ if (isSchemaRequired(valueSchema)) {
1564
+ requiredKeys.push(rawKey);
1565
+ }
1566
+ }
1567
+ return validateAndTransformObject({
1568
+ value: raw,
1569
+ requiredKeys,
1570
+ getProperty: (rawKey) => {
1571
+ const property2 = rawKeyToProperty[rawKey];
1572
+ if (property2 == null) {
1573
+ return void 0;
1574
+ }
1575
+ return {
1576
+ transformedKey: property2.parsedKey,
1577
+ transform: (propertyValue) => property2.valueSchema.parse(propertyValue, {
1578
+ ...opts,
1579
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], rawKey]
1580
+ })
1581
+ };
1582
+ },
1583
+ unrecognizedObjectKeys: opts == null ? void 0 : opts.unrecognizedObjectKeys,
1584
+ skipValidation: opts == null ? void 0 : opts.skipValidation,
1585
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix,
1586
+ omitUndefined: opts == null ? void 0 : opts.omitUndefined
1587
+ });
1588
+ },
1589
+ json: (parsed, opts) => {
1590
+ const requiredKeys = [];
1591
+ for (const [parsedKey, schemaOrObjectProperty] of entries(schemas)) {
1592
+ const valueSchema = isProperty(schemaOrObjectProperty) ? schemaOrObjectProperty.valueSchema : schemaOrObjectProperty;
1593
+ if (isSchemaRequired(valueSchema)) {
1594
+ requiredKeys.push(parsedKey);
1595
+ }
1596
+ }
1597
+ return validateAndTransformObject({
1598
+ value: parsed,
1599
+ requiredKeys,
1600
+ getProperty: (parsedKey) => {
1601
+ const property2 = schemas[parsedKey];
1602
+ if (property2 == null) {
1603
+ return void 0;
1604
+ }
1605
+ if (isProperty(property2)) {
1606
+ return {
1607
+ transformedKey: property2.rawKey,
1608
+ transform: (propertyValue) => property2.valueSchema.json(propertyValue, {
1609
+ ...opts,
1610
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], parsedKey]
1611
+ })
1612
+ };
1613
+ } else {
1614
+ return {
1615
+ transformedKey: parsedKey,
1616
+ transform: (propertyValue) => property2.json(propertyValue, {
1617
+ ...opts,
1618
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], parsedKey]
1619
+ })
1620
+ };
1621
+ }
1622
+ },
1623
+ unrecognizedObjectKeys: opts == null ? void 0 : opts.unrecognizedObjectKeys,
1624
+ skipValidation: opts == null ? void 0 : opts.skipValidation,
1625
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix,
1626
+ omitUndefined: opts == null ? void 0 : opts.omitUndefined
1627
+ });
1628
+ },
1629
+ getType: () => SchemaType.OBJECT
1630
+ };
1631
+ return {
1632
+ ...maybeSkipValidation(baseSchema),
1633
+ ...getSchemaUtils(baseSchema),
1634
+ ...getObjectLikeUtils(baseSchema),
1635
+ ...getObjectUtils(baseSchema)
1636
+ };
1637
+ }
1638
+ function validateAndTransformObject({
1639
+ value,
1640
+ requiredKeys,
1641
+ getProperty,
1642
+ unrecognizedObjectKeys = "fail",
1643
+ skipValidation = false,
1644
+ breadcrumbsPrefix = []
1645
+ }) {
1646
+ if (!isPlainObject(value)) {
1647
+ return {
1648
+ ok: false,
1649
+ errors: [
1650
+ {
1651
+ path: breadcrumbsPrefix,
1652
+ message: getErrorMessageForIncorrectType(value, "object")
1653
+ }
1654
+ ]
1655
+ };
1656
+ }
1657
+ const missingRequiredKeys = new Set(requiredKeys);
1658
+ const errors = [];
1659
+ const transformed = {};
1660
+ for (const [preTransformedKey, preTransformedItemValue] of Object.entries(value)) {
1661
+ const property2 = getProperty(preTransformedKey);
1662
+ if (property2 != null) {
1663
+ missingRequiredKeys.delete(preTransformedKey);
1664
+ const value2 = property2.transform(preTransformedItemValue);
1665
+ if (value2.ok) {
1666
+ transformed[property2.transformedKey] = value2.value;
1667
+ } else {
1668
+ transformed[preTransformedKey] = preTransformedItemValue;
1669
+ errors.push(...value2.errors);
1670
+ }
1671
+ } else {
1672
+ switch (unrecognizedObjectKeys) {
1673
+ case "fail":
1674
+ errors.push({
1675
+ path: [...breadcrumbsPrefix, preTransformedKey],
1676
+ message: `Unexpected key "${preTransformedKey}"`
1677
+ });
1678
+ break;
1679
+ case "strip":
1680
+ break;
1681
+ case "passthrough":
1682
+ transformed[preTransformedKey] = preTransformedItemValue;
1683
+ break;
1684
+ }
1685
+ }
1686
+ }
1687
+ errors.push(
1688
+ ...requiredKeys.filter((key) => missingRequiredKeys.has(key)).map((key) => ({
1689
+ path: breadcrumbsPrefix,
1690
+ message: `Missing required key "${key}"`
1691
+ }))
1692
+ );
1693
+ if (errors.length === 0 || skipValidation) {
1694
+ return {
1695
+ ok: true,
1696
+ value: transformed
1697
+ };
1698
+ } else {
1699
+ return {
1700
+ ok: false,
1701
+ errors
1702
+ };
1703
+ }
1704
+ }
1705
+ function getObjectUtils(schema) {
1706
+ return {
1707
+ extend: (extension) => {
1708
+ const baseSchema = {
1709
+ _getParsedProperties: () => [...schema._getParsedProperties(), ...extension._getParsedProperties()],
1710
+ _getRawProperties: () => [...schema._getRawProperties(), ...extension._getRawProperties()],
1711
+ parse: (raw, opts) => {
1712
+ return validateAndTransformExtendedObject({
1713
+ extensionKeys: extension._getRawProperties(),
1714
+ value: raw,
1715
+ transformBase: (rawBase) => schema.parse(rawBase, opts),
1716
+ transformExtension: (rawExtension) => extension.parse(rawExtension, opts)
1717
+ });
1718
+ },
1719
+ json: (parsed, opts) => {
1720
+ return validateAndTransformExtendedObject({
1721
+ extensionKeys: extension._getParsedProperties(),
1722
+ value: parsed,
1723
+ transformBase: (parsedBase) => schema.json(parsedBase, opts),
1724
+ transformExtension: (parsedExtension) => extension.json(parsedExtension, opts)
1725
+ });
1726
+ },
1727
+ getType: () => SchemaType.OBJECT
1728
+ };
1729
+ return {
1730
+ ...baseSchema,
1731
+ ...getSchemaUtils(baseSchema),
1732
+ ...getObjectLikeUtils(baseSchema),
1733
+ ...getObjectUtils(baseSchema)
1734
+ };
1735
+ },
1736
+ passthrough: () => {
1737
+ const baseSchema = {
1738
+ _getParsedProperties: () => schema._getParsedProperties(),
1739
+ _getRawProperties: () => schema._getRawProperties(),
1740
+ parse: (raw, opts) => {
1741
+ const transformed = schema.parse(raw, { ...opts, unrecognizedObjectKeys: "passthrough" });
1742
+ if (!transformed.ok) {
1743
+ return transformed;
1744
+ }
1745
+ return {
1746
+ ok: true,
1747
+ value: {
1748
+ ...raw,
1749
+ ...transformed.value
1750
+ }
1751
+ };
1752
+ },
1753
+ json: (parsed, opts) => {
1754
+ const transformed = schema.json(parsed, { ...opts, unrecognizedObjectKeys: "passthrough" });
1755
+ if (!transformed.ok) {
1756
+ return transformed;
1757
+ }
1758
+ return {
1759
+ ok: true,
1760
+ value: {
1761
+ ...parsed,
1762
+ ...transformed.value
1763
+ }
1764
+ };
1765
+ },
1766
+ getType: () => SchemaType.OBJECT
1767
+ };
1768
+ return {
1769
+ ...baseSchema,
1770
+ ...getSchemaUtils(baseSchema),
1771
+ ...getObjectLikeUtils(baseSchema),
1772
+ ...getObjectUtils(baseSchema)
1773
+ };
1774
+ }
1775
+ };
1776
+ }
1777
+ function validateAndTransformExtendedObject({
1778
+ extensionKeys,
1779
+ value,
1780
+ transformBase,
1781
+ transformExtension
1782
+ }) {
1783
+ const extensionPropertiesSet = new Set(extensionKeys);
1784
+ const [extensionProperties, baseProperties] = partition(
1785
+ keys(value),
1786
+ (key) => extensionPropertiesSet.has(key)
1787
+ );
1788
+ const transformedBase = transformBase(filterObject(value, baseProperties));
1789
+ const transformedExtension = transformExtension(filterObject(value, extensionProperties));
1790
+ if (transformedBase.ok && transformedExtension.ok) {
1791
+ return {
1792
+ ok: true,
1793
+ value: {
1794
+ ...transformedBase.value,
1795
+ ...transformedExtension.value
1796
+ }
1797
+ };
1798
+ } else {
1799
+ return {
1800
+ ok: false,
1801
+ errors: [
1802
+ ...transformedBase.ok ? [] : transformedBase.errors,
1803
+ ...transformedExtension.ok ? [] : transformedExtension.errors
1804
+ ]
1805
+ };
1806
+ }
1807
+ }
1808
+ function isSchemaRequired(schema) {
1809
+ return !isSchemaOptional(schema);
1810
+ }
1811
+ function isSchemaOptional(schema) {
1812
+ switch (schema.getType()) {
1813
+ case SchemaType.ANY:
1814
+ case SchemaType.UNKNOWN:
1815
+ case SchemaType.OPTIONAL:
1816
+ case SchemaType.OPTIONAL_NULLABLE:
1817
+ return true;
1818
+ default:
1819
+ return false;
1820
+ }
1821
+ }
1822
+
1823
+ // src/core/schemas/builders/object/objectWithoutOptionalProperties.ts
1824
+ function objectWithoutOptionalProperties(schemas) {
1825
+ return object(schemas);
1826
+ }
1827
+
1828
+ // src/core/schemas/builders/lazy/lazyObject.ts
1829
+ function lazyObject(getter) {
1830
+ const baseSchema = {
1831
+ ...constructLazyBaseSchema(getter),
1832
+ _getRawProperties: () => getMemoizedSchema(getter)._getRawProperties(),
1833
+ _getParsedProperties: () => getMemoizedSchema(getter)._getParsedProperties()
1834
+ };
1835
+ return {
1836
+ ...baseSchema,
1837
+ ...getSchemaUtils(baseSchema),
1838
+ ...getObjectLikeUtils(baseSchema),
1839
+ ...getObjectUtils(baseSchema)
1840
+ };
1841
+ }
1842
+
1843
+ // src/core/schemas/builders/list/list.ts
1844
+ function list(schema) {
1845
+ const baseSchema = {
1846
+ parse: (raw, opts) => validateAndTransformArray(
1847
+ raw,
1848
+ (item, index) => schema.parse(item, {
1849
+ ...opts,
1850
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `[${index}]`]
1851
+ })
1852
+ ),
1853
+ json: (parsed, opts) => validateAndTransformArray(
1854
+ parsed,
1855
+ (item, index) => schema.json(item, {
1856
+ ...opts,
1857
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `[${index}]`]
1858
+ })
1859
+ ),
1860
+ getType: () => SchemaType.LIST
1861
+ };
1862
+ return {
1863
+ ...maybeSkipValidation(baseSchema),
1864
+ ...getSchemaUtils(baseSchema)
1865
+ };
1866
+ }
1867
+ function validateAndTransformArray(value, transformItem) {
1868
+ if (!Array.isArray(value)) {
1869
+ return {
1870
+ ok: false,
1871
+ errors: [
1872
+ {
1873
+ message: getErrorMessageForIncorrectType(value, "list"),
1874
+ path: []
1875
+ }
1876
+ ]
1877
+ };
1878
+ }
1879
+ const maybeValidItems = value.map((item, index) => transformItem(item, index));
1880
+ return maybeValidItems.reduce(
1881
+ (acc, item) => {
1882
+ if (acc.ok && item.ok) {
1883
+ return {
1884
+ ok: true,
1885
+ value: [...acc.value, item.value]
1886
+ };
1887
+ }
1888
+ const errors = [];
1889
+ if (!acc.ok) {
1890
+ errors.push(...acc.errors);
1891
+ }
1892
+ if (!item.ok) {
1893
+ errors.push(...item.errors);
1894
+ }
1895
+ return {
1896
+ ok: false,
1897
+ errors
1898
+ };
1899
+ },
1900
+ { ok: true, value: [] }
1901
+ );
1902
+ }
1903
+
1904
+ // src/core/schemas/builders/literals/stringLiteral.ts
1905
+ function stringLiteral(literal) {
1906
+ const schemaCreator = createIdentitySchemaCreator(
1907
+ SchemaType.STRING_LITERAL,
1908
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1909
+ if (value === literal) {
1910
+ return {
1911
+ ok: true,
1912
+ value: literal
1913
+ };
1914
+ } else {
1915
+ return {
1916
+ ok: false,
1917
+ errors: [
1918
+ {
1919
+ path: breadcrumbsPrefix,
1920
+ message: getErrorMessageForIncorrectType(value, `"${literal}"`)
1921
+ }
1922
+ ]
1923
+ };
1924
+ }
1925
+ }
1926
+ );
1927
+ return schemaCreator();
1928
+ }
1929
+
1930
+ // src/core/schemas/builders/literals/booleanLiteral.ts
1931
+ function booleanLiteral(literal) {
1932
+ const schemaCreator = createIdentitySchemaCreator(
1933
+ SchemaType.BOOLEAN_LITERAL,
1934
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1935
+ if (value === literal) {
1936
+ return {
1937
+ ok: true,
1938
+ value: literal
1939
+ };
1940
+ } else {
1941
+ return {
1942
+ ok: false,
1943
+ errors: [
1944
+ {
1945
+ path: breadcrumbsPrefix,
1946
+ message: getErrorMessageForIncorrectType(value, `${literal.toString()}`)
1947
+ }
1948
+ ]
1949
+ };
1950
+ }
1951
+ }
1952
+ );
1953
+ return schemaCreator();
1954
+ }
1955
+
1956
+ // src/core/schemas/builders/primitives/any.ts
1957
+ var any = createIdentitySchemaCreator(SchemaType.ANY, (value) => ({ ok: true, value }));
1958
+
1959
+ // src/core/schemas/builders/primitives/boolean.ts
1960
+ var boolean = createIdentitySchemaCreator(
1961
+ SchemaType.BOOLEAN,
1962
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1963
+ if (typeof value === "boolean") {
1964
+ return {
1965
+ ok: true,
1966
+ value
1967
+ };
1968
+ } else {
1969
+ return {
1970
+ ok: false,
1971
+ errors: [
1972
+ {
1973
+ path: breadcrumbsPrefix,
1974
+ message: getErrorMessageForIncorrectType(value, "boolean")
1975
+ }
1976
+ ]
1977
+ };
1978
+ }
1979
+ }
1980
+ );
1981
+
1982
+ // src/core/schemas/builders/primitives/number.ts
1983
+ var number = createIdentitySchemaCreator(
1984
+ SchemaType.NUMBER,
1985
+ (value, { breadcrumbsPrefix = [] } = {}) => {
1986
+ if (typeof value === "number") {
1987
+ return {
1988
+ ok: true,
1989
+ value
1990
+ };
1991
+ } else {
1992
+ return {
1993
+ ok: false,
1994
+ errors: [
1995
+ {
1996
+ path: breadcrumbsPrefix,
1997
+ message: getErrorMessageForIncorrectType(value, "number")
1998
+ }
1999
+ ]
2000
+ };
2001
+ }
2002
+ }
2003
+ );
2004
+
2005
+ // src/core/schemas/builders/primitives/string.ts
2006
+ var string = createIdentitySchemaCreator(
2007
+ SchemaType.STRING,
2008
+ (value, { breadcrumbsPrefix = [] } = {}) => {
2009
+ if (typeof value === "string") {
2010
+ return {
2011
+ ok: true,
2012
+ value
2013
+ };
2014
+ } else {
2015
+ return {
2016
+ ok: false,
2017
+ errors: [
2018
+ {
2019
+ path: breadcrumbsPrefix,
2020
+ message: getErrorMessageForIncorrectType(value, "string")
2021
+ }
2022
+ ]
2023
+ };
2024
+ }
2025
+ }
2026
+ );
2027
+
2028
+ // src/core/schemas/builders/primitives/unknown.ts
2029
+ var unknown = createIdentitySchemaCreator(SchemaType.UNKNOWN, (value) => ({ ok: true, value }));
2030
+
2031
+ // src/core/schemas/builders/record/record.ts
2032
+ function record(keySchema, valueSchema) {
2033
+ const baseSchema = {
2034
+ parse: (raw, opts) => {
2035
+ return validateAndTransformRecord({
2036
+ value: raw,
2037
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
2038
+ transformKey: (key) => keySchema.parse(key, {
2039
+ ...opts,
2040
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `${key} (key)`]
2041
+ }),
2042
+ transformValue: (value, key) => valueSchema.parse(value, {
2043
+ ...opts,
2044
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `${key}`]
2045
+ }),
2046
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix
2047
+ });
2048
+ },
2049
+ json: (parsed, opts) => {
2050
+ return validateAndTransformRecord({
2051
+ value: parsed,
2052
+ isKeyNumeric: keySchema.getType() === SchemaType.NUMBER,
2053
+ transformKey: (key) => keySchema.json(key, {
2054
+ ...opts,
2055
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `${key} (key)`]
2056
+ }),
2057
+ transformValue: (value, key) => valueSchema.json(value, {
2058
+ ...opts,
2059
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], `${key}`]
2060
+ }),
2061
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix
2062
+ });
2063
+ },
2064
+ getType: () => SchemaType.RECORD
2065
+ };
2066
+ return {
2067
+ ...maybeSkipValidation(baseSchema),
2068
+ ...getSchemaUtils(baseSchema)
2069
+ };
2070
+ }
2071
+ function validateAndTransformRecord({
2072
+ value,
2073
+ isKeyNumeric,
2074
+ transformKey,
2075
+ transformValue,
2076
+ breadcrumbsPrefix = []
2077
+ }) {
2078
+ if (!isPlainObject(value)) {
2079
+ return {
2080
+ ok: false,
2081
+ errors: [
2082
+ {
2083
+ path: breadcrumbsPrefix,
2084
+ message: getErrorMessageForIncorrectType(value, "object")
2085
+ }
2086
+ ]
2087
+ };
2088
+ }
2089
+ return entries(value).reduce(
2090
+ (accPromise, [stringKey, value2]) => {
2091
+ if (value2 === void 0) {
2092
+ return accPromise;
2093
+ }
2094
+ const acc = accPromise;
2095
+ let key = stringKey;
2096
+ if (isKeyNumeric) {
2097
+ const numberKey = stringKey.length > 0 ? Number(stringKey) : NaN;
2098
+ if (!isNaN(numberKey)) {
2099
+ key = numberKey;
2100
+ }
2101
+ }
2102
+ const transformedKey = transformKey(key);
2103
+ const transformedValue = transformValue(value2, key);
2104
+ if (acc.ok && transformedKey.ok && transformedValue.ok) {
2105
+ return {
2106
+ ok: true,
2107
+ value: {
2108
+ ...acc.value,
2109
+ [transformedKey.value]: transformedValue.value
2110
+ }
2111
+ };
2112
+ }
2113
+ const errors = [];
2114
+ if (!acc.ok) {
2115
+ errors.push(...acc.errors);
2116
+ }
2117
+ if (!transformedKey.ok) {
2118
+ errors.push(...transformedKey.errors);
2119
+ }
2120
+ if (!transformedValue.ok) {
2121
+ errors.push(...transformedValue.errors);
2122
+ }
2123
+ return {
2124
+ ok: false,
2125
+ errors
2126
+ };
2127
+ },
2128
+ { ok: true, value: {} }
2129
+ );
2130
+ }
2131
+
2132
+ // src/core/schemas/builders/set/set.ts
2133
+ function set(schema) {
2134
+ const listSchema = list(schema);
2135
+ const baseSchema = {
2136
+ parse: (raw, opts) => {
2137
+ const parsedList = listSchema.parse(raw, opts);
2138
+ if (parsedList.ok) {
2139
+ return {
2140
+ ok: true,
2141
+ value: new Set(parsedList.value)
2142
+ };
2143
+ } else {
2144
+ return parsedList;
2145
+ }
2146
+ },
2147
+ json: (parsed, opts) => {
2148
+ if (!(parsed instanceof Set)) {
2149
+ return {
2150
+ ok: false,
2151
+ errors: [
2152
+ {
2153
+ path: (opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [],
2154
+ message: getErrorMessageForIncorrectType(parsed, "Set")
2155
+ }
2156
+ ]
2157
+ };
2158
+ }
2159
+ const jsonList = listSchema.json([...parsed], opts);
2160
+ return jsonList;
2161
+ },
2162
+ getType: () => SchemaType.SET
2163
+ };
2164
+ return {
2165
+ ...maybeSkipValidation(baseSchema),
2166
+ ...getSchemaUtils(baseSchema)
2167
+ };
2168
+ }
2169
+
2170
+ // src/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.ts
2171
+ function undiscriminatedUnion(schemas) {
2172
+ const baseSchema = {
2173
+ parse: (raw, opts) => {
2174
+ return validateAndTransformUndiscriminatedUnion(
2175
+ (schema, opts2) => schema.parse(raw, opts2),
2176
+ schemas,
2177
+ opts
2178
+ );
2179
+ },
2180
+ json: (parsed, opts) => {
2181
+ return validateAndTransformUndiscriminatedUnion(
2182
+ (schema, opts2) => schema.json(parsed, opts2),
2183
+ schemas,
2184
+ opts
2185
+ );
2186
+ },
2187
+ getType: () => SchemaType.UNDISCRIMINATED_UNION
2188
+ };
2189
+ return {
2190
+ ...maybeSkipValidation(baseSchema),
2191
+ ...getSchemaUtils(baseSchema)
2192
+ };
2193
+ }
2194
+ function validateAndTransformUndiscriminatedUnion(transform2, schemas, opts) {
2195
+ const errors = [];
2196
+ for (const [index, schema] of schemas.entries()) {
2197
+ const transformed = transform2(schema, { ...opts, skipValidation: false });
2198
+ if (transformed.ok) {
2199
+ return transformed;
2200
+ } else {
2201
+ for (const error of transformed.errors) {
2202
+ errors.push({
2203
+ path: error.path,
2204
+ message: `[Variant ${index}] ${error.message}`
2205
+ });
2206
+ }
2207
+ }
2208
+ }
2209
+ return {
2210
+ ok: false,
2211
+ errors
2212
+ };
2213
+ }
2214
+
2215
+ // src/core/schemas/builders/union/discriminant.ts
2216
+ function discriminant(parsedDiscriminant, rawDiscriminant) {
2217
+ return {
2218
+ parsedDiscriminant,
2219
+ rawDiscriminant
2220
+ };
2221
+ }
2222
+
2223
+ // src/core/schemas/builders/union/union.ts
2224
+ function union(discriminant2, union2) {
2225
+ const rawDiscriminant = typeof discriminant2 === "string" ? discriminant2 : discriminant2.rawDiscriminant;
2226
+ const parsedDiscriminant = typeof discriminant2 === "string" ? discriminant2 : discriminant2.parsedDiscriminant;
2227
+ const discriminantValueSchema = enum_(keys(union2));
2228
+ const baseSchema = {
2229
+ parse: (raw, opts) => {
2230
+ return transformAndValidateUnion({
2231
+ value: raw,
2232
+ discriminant: rawDiscriminant,
2233
+ transformedDiscriminant: parsedDiscriminant,
2234
+ transformDiscriminantValue: (discriminantValue) => discriminantValueSchema.parse(discriminantValue, {
2235
+ allowUnrecognizedEnumValues: opts == null ? void 0 : opts.allowUnrecognizedUnionMembers,
2236
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], rawDiscriminant]
2237
+ }),
2238
+ getAdditionalPropertiesSchema: (discriminantValue) => union2[discriminantValue],
2239
+ allowUnrecognizedUnionMembers: opts == null ? void 0 : opts.allowUnrecognizedUnionMembers,
2240
+ transformAdditionalProperties: (additionalProperties, additionalPropertiesSchema) => additionalPropertiesSchema.parse(additionalProperties, opts),
2241
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix
2242
+ });
2243
+ },
2244
+ json: (parsed, opts) => {
2245
+ return transformAndValidateUnion({
2246
+ value: parsed,
2247
+ discriminant: parsedDiscriminant,
2248
+ transformedDiscriminant: rawDiscriminant,
2249
+ transformDiscriminantValue: (discriminantValue) => discriminantValueSchema.json(discriminantValue, {
2250
+ allowUnrecognizedEnumValues: opts == null ? void 0 : opts.allowUnrecognizedUnionMembers,
2251
+ breadcrumbsPrefix: [...(opts == null ? void 0 : opts.breadcrumbsPrefix) ?? [], parsedDiscriminant]
2252
+ }),
2253
+ getAdditionalPropertiesSchema: (discriminantValue) => union2[discriminantValue],
2254
+ allowUnrecognizedUnionMembers: opts == null ? void 0 : opts.allowUnrecognizedUnionMembers,
2255
+ transformAdditionalProperties: (additionalProperties, additionalPropertiesSchema) => additionalPropertiesSchema.json(additionalProperties, opts),
2256
+ breadcrumbsPrefix: opts == null ? void 0 : opts.breadcrumbsPrefix
2257
+ });
2258
+ },
2259
+ getType: () => SchemaType.UNION
2260
+ };
2261
+ return {
2262
+ ...maybeSkipValidation(baseSchema),
2263
+ ...getSchemaUtils(baseSchema),
2264
+ ...getObjectLikeUtils(baseSchema)
2265
+ };
2266
+ }
2267
+ function transformAndValidateUnion({
2268
+ value,
2269
+ discriminant: discriminant2,
2270
+ transformedDiscriminant,
2271
+ transformDiscriminantValue,
2272
+ getAdditionalPropertiesSchema,
2273
+ allowUnrecognizedUnionMembers = false,
2274
+ transformAdditionalProperties,
2275
+ breadcrumbsPrefix = []
2276
+ }) {
2277
+ if (!isPlainObject(value)) {
2278
+ return {
2279
+ ok: false,
2280
+ errors: [
2281
+ {
2282
+ path: breadcrumbsPrefix,
2283
+ message: getErrorMessageForIncorrectType(value, "object")
2284
+ }
2285
+ ]
2286
+ };
2287
+ }
2288
+ const { [discriminant2]: discriminantValue, ...additionalProperties } = value;
2289
+ if (discriminantValue == null) {
2290
+ return {
2291
+ ok: false,
2292
+ errors: [
2293
+ {
2294
+ path: breadcrumbsPrefix,
2295
+ message: `Missing discriminant ("${discriminant2}")`
2296
+ }
2297
+ ]
2298
+ };
2299
+ }
2300
+ const transformedDiscriminantValue = transformDiscriminantValue(discriminantValue);
2301
+ if (!transformedDiscriminantValue.ok) {
2302
+ return {
2303
+ ok: false,
2304
+ errors: transformedDiscriminantValue.errors
2305
+ };
2306
+ }
2307
+ const additionalPropertiesSchema = getAdditionalPropertiesSchema(transformedDiscriminantValue.value);
2308
+ if (additionalPropertiesSchema == null) {
2309
+ if (allowUnrecognizedUnionMembers) {
2310
+ return {
2311
+ ok: true,
2312
+ value: {
2313
+ [transformedDiscriminant]: transformedDiscriminantValue.value,
2314
+ ...additionalProperties
2315
+ }
2316
+ };
2317
+ } else {
2318
+ return {
2319
+ ok: false,
2320
+ errors: [
2321
+ {
2322
+ path: [...breadcrumbsPrefix, discriminant2],
2323
+ message: "Unexpected discriminant value"
2324
+ }
2325
+ ]
2326
+ };
2327
+ }
2328
+ }
2329
+ const transformedAdditionalProperties = transformAdditionalProperties(
2330
+ additionalProperties,
2331
+ additionalPropertiesSchema
2332
+ );
2333
+ if (!transformedAdditionalProperties.ok) {
2334
+ return transformedAdditionalProperties;
2335
+ }
2336
+ return {
2337
+ ok: true,
2338
+ value: {
2339
+ [transformedDiscriminant]: discriminantValue,
2340
+ ...transformedAdditionalProperties.value
2341
+ }
2342
+ };
2343
+ }
2344
+ // Annotate the CommonJS export names for ESM import in node:
2345
+ 0 && (module.exports = {
2346
+ BasicAuth,
2347
+ BearerToken,
2348
+ RUNTIME,
2349
+ Supplier,
2350
+ fetcher,
2351
+ getHeader,
2352
+ serialization
2353
+ });