summaryrefslogtreecommitdiff
path: root/node_modules/miniflare/dist/src/workers
diff options
context:
space:
mode:
authorakiyamn2023-09-24 23:22:21 +1000
committerakiyamn2023-09-24 23:22:21 +1000
commit4e87195739f2a5d9a05451b48773c8afdc680765 (patch)
tree9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/miniflare/dist/src/workers
downloadprice-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz
price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/miniflare/dist/src/workers')
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js19
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js28
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache.worker.js655
-rw-r--r--node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/core/entry.worker.js845
-rw-r--r--node_modules/miniflare/dist/src/workers/core/entry.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/d1/database.worker.js113
-rw-r--r--node_modules/miniflare/dist/src/workers/d1/database.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/kv/namespace.worker.js254
-rw-r--r--node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/kv/sites.worker.js147
-rw-r--r--node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/queues/broker.worker.js238
-rw-r--r--node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/r2/bucket.worker.js1158
-rw-r--r--node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/index.worker.js706
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/index.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js19
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map6
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/zod.worker.js2486
-rw-r--r--node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map6
24 files changed, 6740 insertions, 0 deletions
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js
new file mode 100644
index 0000000..46b3f7e
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js
@@ -0,0 +1,19 @@
+// packages/miniflare/src/workers/cache/constants.ts
+var CacheHeaders = {
+ NAMESPACE: "cf-cache-namespace",
+ STATUS: "cf-cache-status"
+};
+
+// packages/miniflare/src/workers/cache/cache-entry-noop.worker.ts
+var cache_entry_noop_worker_default = {
+ async fetch(request) {
+ return request.method === "GET" ? new Response(null, {
+ status: 504,
+ headers: { [CacheHeaders.STATUS]: "MISS" }
+ }) : request.method === "PUT" ? (await request.body?.pipeTo(new WritableStream()), new Response(null, { status: 204 })) : request.method === "PURGE" ? new Response(null, { status: 404 }) : new Response(null, { status: 405 });
+ }
+};
+export {
+ cache_entry_noop_worker_default as default
+};
+//# sourceMappingURL=cache-entry-noop.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map
new file mode 100644
index 0000000..ad9e74e
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/cache/constants.ts", "../../../../src/workers/cache/cache-entry-noop.worker.ts"],
+ "mappings": ";AAAO,IAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,QAAQ;AACV;;;ACDA,IAAO,kCAAyB;AAAA,EAC9B,MAAM,MAAM,SAAS;AACnB,WAAI,QAAQ,WAAW,QACd,IAAI,SAAS,MAAM;AAAA,MACxB,QAAQ;AAAA,MACR,SAAS,EAAE,CAAC,aAAa,MAAM,GAAG,OAAO;AAAA,IAC3C,CAAC,IACQ,QAAQ,WAAW,SAE5B,MAAM,QAAQ,MAAM,OAAO,IAAI,eAAe,CAAC,GACxC,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,KAChC,QAAQ,WAAW,UACrB,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,IAElC,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAE7C;AACF;",
+ "names": []
+}
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js
new file mode 100644
index 0000000..3fcefe7
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js
@@ -0,0 +1,28 @@
+// packages/miniflare/src/workers/cache/cache-entry.worker.ts
+import { SharedBindings } from "miniflare:shared";
+
+// packages/miniflare/src/workers/cache/constants.ts
+var CacheHeaders = {
+ NAMESPACE: "cf-cache-namespace",
+ STATUS: "cf-cache-status"
+}, CacheBindings = {
+ MAYBE_JSON_CACHE_WARN_USAGE: "MINIFLARE_CACHE_WARN_USAGE"
+};
+
+// packages/miniflare/src/workers/cache/cache-entry.worker.ts
+var cache_entry_worker_default = {
+ async fetch(request, env) {
+ let namespace = request.headers.get(CacheHeaders.NAMESPACE), name = namespace === null ? "default" : `named:${namespace}`, objectNamespace = env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = objectNamespace.idFromName(name), stub = objectNamespace.get(id), cf = {
+ ...request.cf,
+ miniflare: {
+ name,
+ cacheWarnUsage: env[CacheBindings.MAYBE_JSON_CACHE_WARN_USAGE]
+ }
+ };
+ return await stub.fetch(request, { cf });
+ }
+};
+export {
+ cache_entry_worker_default as default
+};
+//# sourceMappingURL=cache-entry.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map
new file mode 100644
index 0000000..49e5e4b
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/cache/cache-entry.worker.ts", "../../../../src/workers/cache/constants.ts"],
+ "mappings": ";AAAA,SAAmC,sBAAsB;;;ACAlD,IAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,QAAQ;AACV,GAEa,gBAAgB;AAAA,EAC3B,6BAA6B;AAC/B;;;ADCA,IAAO,6BAA8B;AAAA,EACnC,MAAM,MAAM,SAAS,KAAK;AACxB,QAAM,YAAY,QAAQ,QAAQ,IAAI,aAAa,SAAS,GACtD,OAAO,cAAc,OAAO,YAAY,SAAS,aAEjD,kBAAkB,IAAI,eAAe,+BAA+B,GACpE,KAAK,gBAAgB,WAAW,IAAI,GACpC,OAAO,gBAAgB,IAAI,EAAE,GAC7B,KAA+C;AAAA,MACnD,GAAG,QAAQ;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,IAAI,cAAc,2BAA2B;AAAA,MAC/D;AAAA,IACF;AACA,WAAO,MAAM,KAAK,MAAM,SAAS,EAAE,GAAkC,CAAC;AAAA,EACxE;AACF;",
+ "names": []
+}
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js
new file mode 100644
index 0000000..bdd258a
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js
@@ -0,0 +1,655 @@
+var __create = Object.create;
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
+var __commonJS = (cb, mod) => function() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from == "object" || typeof from == "function")
+ for (let key of __getOwnPropNames(from))
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ return to;
+};
+var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
+ mod
+));
+var __decorateClass = (decorators, target, key, kind) => {
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
+ return kind && result && __defProp(target, key, result), result;
+};
+
+// node_modules/http-cache-semantics/index.js
+var require_http_cache_semantics = __commonJS({
+ "node_modules/http-cache-semantics/index.js"(exports, module) {
+ "use strict";
+ var statusCodeCacheableByDefault = /* @__PURE__ */ new Set([
+ 200,
+ 203,
+ 204,
+ 206,
+ 300,
+ 301,
+ 404,
+ 405,
+ 410,
+ 414,
+ 501
+ ]), understoodStatuses = /* @__PURE__ */ new Set([
+ 200,
+ 203,
+ 204,
+ 300,
+ 301,
+ 302,
+ 303,
+ 307,
+ 308,
+ 404,
+ 405,
+ 410,
+ 414,
+ 501
+ ]), errorStatusCodes = /* @__PURE__ */ new Set([
+ 500,
+ 502,
+ 503,
+ 504
+ ]), hopByHopHeaders = {
+ date: !0,
+ // included, because we add Age update Date
+ connection: !0,
+ "keep-alive": !0,
+ "proxy-authenticate": !0,
+ "proxy-authorization": !0,
+ te: !0,
+ trailer: !0,
+ "transfer-encoding": !0,
+ upgrade: !0
+ }, excludedFromRevalidationUpdate = {
+ // Since the old body is reused, it doesn't make sense to change properties of the body
+ "content-length": !0,
+ "content-encoding": !0,
+ "transfer-encoding": !0,
+ "content-range": !0
+ };
+ function toNumberOrZero(s) {
+ let n = parseInt(s, 10);
+ return isFinite(n) ? n : 0;
+ }
+ function isErrorResponse(response) {
+ return response ? errorStatusCodes.has(response.status) : !0;
+ }
+ function parseCacheControl(header) {
+ let cc = {};
+ if (!header)
+ return cc;
+ let parts = header.trim().split(/\s*,\s*/);
+ for (let part of parts) {
+ let [k, v] = part.split(/\s*=\s*/, 2);
+ cc[k] = v === void 0 ? !0 : v.replace(/^"|"$/g, "");
+ }
+ return cc;
+ }
+ function formatCacheControl(cc) {
+ let parts = [];
+ for (let k in cc) {
+ let v = cc[k];
+ parts.push(v === !0 ? k : k + "=" + v);
+ }
+ if (parts.length)
+ return parts.join(", ");
+ }
+ module.exports = class {
+ constructor(req, res, {
+ shared,
+ cacheHeuristic,
+ immutableMinTimeToLive,
+ ignoreCargoCult,
+ _fromObject
+ } = {}) {
+ if (_fromObject) {
+ this._fromObject(_fromObject);
+ return;
+ }
+ if (!res || !res.headers)
+ throw Error("Response headers missing");
+ this._assertRequestHasHeaders(req), this._responseTime = this.now(), this._isShared = shared !== !1, this._cacheHeuristic = cacheHeuristic !== void 0 ? cacheHeuristic : 0.1, this._immutableMinTtl = immutableMinTimeToLive !== void 0 ? immutableMinTimeToLive : 24 * 3600 * 1e3, this._status = "status" in res ? res.status : 200, this._resHeaders = res.headers, this._rescc = parseCacheControl(res.headers["cache-control"]), this._method = "method" in req ? req.method : "GET", this._url = req.url, this._host = req.headers.host, this._noAuthorization = !req.headers.authorization, this._reqHeaders = res.headers.vary ? req.headers : null, this._reqcc = parseCacheControl(req.headers["cache-control"]), ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc && (delete this._rescc["pre-check"], delete this._rescc["post-check"], delete this._rescc["no-cache"], delete this._rescc["no-store"], delete this._rescc["must-revalidate"], this._resHeaders = Object.assign({}, this._resHeaders, {
+ "cache-control": formatCacheControl(this._rescc)
+ }), delete this._resHeaders.expires, delete this._resHeaders.pragma), res.headers["cache-control"] == null && /no-cache/.test(res.headers.pragma) && (this._rescc["no-cache"] = !0);
+ }
+ now() {
+ return Date.now();
+ }
+ storable() {
+ return !!(!this._reqcc["no-store"] && // A cache MUST NOT store a response to any request, unless:
+ // The request method is understood by the cache and defined as being cacheable, and
+ (this._method === "GET" || this._method === "HEAD" || this._method === "POST" && this._hasExplicitExpiration()) && // the response status code is understood by the cache, and
+ understoodStatuses.has(this._status) && // the "no-store" cache directive does not appear in request or response header fields, and
+ !this._rescc["no-store"] && // the "private" response directive does not appear in the response, if the cache is shared, and
+ (!this._isShared || !this._rescc.private) && // the Authorization header field does not appear in the request, if the cache is shared,
+ (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && // the response either:
+ // contains an Expires header field, or
+ (this._resHeaders.expires || // contains a max-age response directive, or
+ // contains a s-maxage response directive and the cache is shared, or
+ // contains a public response directive.
+ this._rescc["max-age"] || this._isShared && this._rescc["s-maxage"] || this._rescc.public || // has a status code that is defined as cacheable by default
+ statusCodeCacheableByDefault.has(this._status)));
+ }
+ _hasExplicitExpiration() {
+ return this._isShared && this._rescc["s-maxage"] || this._rescc["max-age"] || this._resHeaders.expires;
+ }
+ _assertRequestHasHeaders(req) {
+ if (!req || !req.headers)
+ throw Error("Request headers missing");
+ }
+ satisfiesWithoutRevalidation(req) {
+ this._assertRequestHasHeaders(req);
+ let requestCC = parseCacheControl(req.headers["cache-control"]);
+ return requestCC["no-cache"] || /no-cache/.test(req.headers.pragma) || requestCC["max-age"] && this.age() > requestCC["max-age"] || requestCC["min-fresh"] && this.timeToLive() < 1e3 * requestCC["min-fresh"] || this.stale() && !(requestCC["max-stale"] && !this._rescc["must-revalidate"] && (requestCC["max-stale"] === !0 || requestCC["max-stale"] > this.age() - this.maxAge())) ? !1 : this._requestMatches(req, !1);
+ }
+ _requestMatches(req, allowHeadMethod) {
+ return (!this._url || this._url === req.url) && this._host === req.headers.host && // the request method associated with the stored response allows it to be used for the presented request, and
+ (!req.method || this._method === req.method || allowHeadMethod && req.method === "HEAD") && // selecting header fields nominated by the stored response (if any) match those presented, and
+ this._varyMatches(req);
+ }
+ _allowsStoringAuthenticated() {
+ return this._rescc["must-revalidate"] || this._rescc.public || this._rescc["s-maxage"];
+ }
+ _varyMatches(req) {
+ if (!this._resHeaders.vary)
+ return !0;
+ if (this._resHeaders.vary === "*")
+ return !1;
+ let fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
+ for (let name of fields)
+ if (req.headers[name] !== this._reqHeaders[name])
+ return !1;
+ return !0;
+ }
+ _copyWithoutHopByHopHeaders(inHeaders) {
+ let headers = {};
+ for (let name in inHeaders)
+ hopByHopHeaders[name] || (headers[name] = inHeaders[name]);
+ if (inHeaders.connection) {
+ let tokens = inHeaders.connection.trim().split(/\s*,\s*/);
+ for (let name of tokens)
+ delete headers[name];
+ }
+ if (headers.warning) {
+ let warnings = headers.warning.split(/,/).filter((warning) => !/^\s*1[0-9][0-9]/.test(warning));
+ warnings.length ? headers.warning = warnings.join(",").trim() : delete headers.warning;
+ }
+ return headers;
+ }
+ responseHeaders() {
+ let headers = this._copyWithoutHopByHopHeaders(this._resHeaders), age = this.age();
+ return age > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24 && (headers.warning = (headers.warning ? `${headers.warning}, ` : "") + '113 - "rfc7234 5.5.4"'), headers.age = `${Math.round(age)}`, headers.date = new Date(this.now()).toUTCString(), headers;
+ }
+ /**
+ * Value of the Date response header or current time if Date was invalid
+ * @return timestamp
+ */
+ date() {
+ let serverDate = Date.parse(this._resHeaders.date);
+ return isFinite(serverDate) ? serverDate : this._responseTime;
+ }
+ /**
+ * Value of the Age header, in seconds, updated for the current time.
+ * May be fractional.
+ *
+ * @return Number
+ */
+ age() {
+ let age = this._ageValue(), residentTime = (this.now() - this._responseTime) / 1e3;
+ return age + residentTime;
+ }
+ _ageValue() {
+ return toNumberOrZero(this._resHeaders.age);
+ }
+ /**
+ * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.
+ *
+ * For an up-to-date value, see `timeToLive()`.
+ *
+ * @return Number
+ */
+ maxAge() {
+ if (!this.storable() || this._rescc["no-cache"] || this._isShared && this._resHeaders["set-cookie"] && !this._rescc.public && !this._rescc.immutable || this._resHeaders.vary === "*")
+ return 0;
+ if (this._isShared) {
+ if (this._rescc["proxy-revalidate"])
+ return 0;
+ if (this._rescc["s-maxage"])
+ return toNumberOrZero(this._rescc["s-maxage"]);
+ }
+ if (this._rescc["max-age"])
+ return toNumberOrZero(this._rescc["max-age"]);
+ let defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0, serverDate = this.date();
+ if (this._resHeaders.expires) {
+ let expires = Date.parse(this._resHeaders.expires);
+ return Number.isNaN(expires) || expires < serverDate ? 0 : Math.max(defaultMinTtl, (expires - serverDate) / 1e3);
+ }
+ if (this._resHeaders["last-modified"]) {
+ let lastModified = Date.parse(this._resHeaders["last-modified"]);
+ if (isFinite(lastModified) && serverDate > lastModified)
+ return Math.max(
+ defaultMinTtl,
+ (serverDate - lastModified) / 1e3 * this._cacheHeuristic
+ );
+ }
+ return defaultMinTtl;
+ }
+ timeToLive() {
+ let age = this.maxAge() - this.age(), staleIfErrorAge = age + toNumberOrZero(this._rescc["stale-if-error"]), staleWhileRevalidateAge = age + toNumberOrZero(this._rescc["stale-while-revalidate"]);
+ return Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1e3;
+ }
+ stale() {
+ return this.maxAge() <= this.age();
+ }
+ _useStaleIfError() {
+ return this.maxAge() + toNumberOrZero(this._rescc["stale-if-error"]) > this.age();
+ }
+ useStaleWhileRevalidate() {
+ return this.maxAge() + toNumberOrZero(this._rescc["stale-while-revalidate"]) > this.age();
+ }
+ static fromObject(obj) {
+ return new this(void 0, void 0, { _fromObject: obj });
+ }
+ _fromObject(obj) {
+ if (this._responseTime)
+ throw Error("Reinitialized");
+ if (!obj || obj.v !== 1)
+ throw Error("Invalid serialization");
+ this._responseTime = obj.t, this._isShared = obj.sh, this._cacheHeuristic = obj.ch, this._immutableMinTtl = obj.imm !== void 0 ? obj.imm : 24 * 3600 * 1e3, this._status = obj.st, this._resHeaders = obj.resh, this._rescc = obj.rescc, this._method = obj.m, this._url = obj.u, this._host = obj.h, this._noAuthorization = obj.a, this._reqHeaders = obj.reqh, this._reqcc = obj.reqcc;
+ }
+ toObject() {
+ return {
+ v: 1,
+ t: this._responseTime,
+ sh: this._isShared,
+ ch: this._cacheHeuristic,
+ imm: this._immutableMinTtl,
+ st: this._status,
+ resh: this._resHeaders,
+ rescc: this._rescc,
+ m: this._method,
+ u: this._url,
+ h: this._host,
+ a: this._noAuthorization,
+ reqh: this._reqHeaders,
+ reqcc: this._reqcc
+ };
+ }
+ /**
+ * Headers for sending to the origin server to revalidate stale response.
+ * Allows server to return 304 to allow reuse of the previous response.
+ *
+ * Hop by hop headers are always stripped.
+ * Revalidation headers may be added or removed, depending on request.
+ */
+ revalidationHeaders(incomingReq) {
+ this._assertRequestHasHeaders(incomingReq);
+ let headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
+ if (delete headers["if-range"], !this._requestMatches(incomingReq, !0) || !this.storable())
+ return delete headers["if-none-match"], delete headers["if-modified-since"], headers;
+ if (this._resHeaders.etag && (headers["if-none-match"] = headers["if-none-match"] ? `${headers["if-none-match"]}, ${this._resHeaders.etag}` : this._resHeaders.etag), headers["accept-ranges"] || headers["if-match"] || headers["if-unmodified-since"] || this._method && this._method != "GET") {
+ if (delete headers["if-modified-since"], headers["if-none-match"]) {
+ let etags = headers["if-none-match"].split(/,/).filter((etag) => !/^\s*W\//.test(etag));
+ etags.length ? headers["if-none-match"] = etags.join(",").trim() : delete headers["if-none-match"];
+ }
+ } else
+ this._resHeaders["last-modified"] && !headers["if-modified-since"] && (headers["if-modified-since"] = this._resHeaders["last-modified"]);
+ return headers;
+ }
+ /**
+ * Creates new CachePolicy with information combined from the previews response,
+ * and the new revalidation response.
+ *
+ * Returns {policy, modified} where modified is a boolean indicating
+ * whether the response body has been modified, and old cached body can't be used.
+ *
+ * @return {Object} {policy: CachePolicy, modified: Boolean}
+ */
+ revalidatedPolicy(request, response) {
+ if (this._assertRequestHasHeaders(request), this._useStaleIfError() && isErrorResponse(response))
+ return {
+ modified: !1,
+ matches: !1,
+ policy: this
+ };
+ if (!response || !response.headers)
+ throw Error("Response headers missing");
+ let matches = !1;
+ if (response.status !== void 0 && response.status != 304 ? matches = !1 : response.headers.etag && !/^\s*W\//.test(response.headers.etag) ? matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag : this._resHeaders.etag && response.headers.etag ? matches = this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag.replace(/^\s*W\//, "") : this._resHeaders["last-modified"] ? matches = this._resHeaders["last-modified"] === response.headers["last-modified"] : !this._resHeaders.etag && !this._resHeaders["last-modified"] && !response.headers.etag && !response.headers["last-modified"] && (matches = !0), !matches)
+ return {
+ policy: new this.constructor(request, response),
+ // Client receiving 304 without body, even if it's invalid/mismatched has no option
+ // but to reuse a cached body. We don't have a good way to tell clients to do
+ // error recovery in such case.
+ modified: response.status != 304,
+ matches: !1
+ };
+ let headers = {};
+ for (let k in this._resHeaders)
+ headers[k] = k in response.headers && !excludedFromRevalidationUpdate[k] ? response.headers[k] : this._resHeaders[k];
+ let newResponse = Object.assign({}, response, {
+ status: this._status,
+ method: this._method,
+ headers
+ });
+ return {
+ policy: new this.constructor(request, newResponse, {
+ shared: this._isShared,
+ cacheHeuristic: this._cacheHeuristic,
+ immutableMinTimeToLive: this._immutableMinTtl
+ }),
+ modified: !1,
+ matches: !0
+ };
+ }
+ };
+ }
+});
+
+// packages/miniflare/src/workers/cache/cache.worker.ts
+var import_http_cache_semantics = __toESM(require_http_cache_semantics());
+import assert from "node:assert";
+import { Buffer as Buffer2 } from "node:buffer";
+import {
+ DeferredPromise,
+ GET,
+ KeyValueStorage,
+ LogLevel,
+ MiniflareDurableObject,
+ PURGE,
+ PUT,
+ parseRanges
+} from "miniflare:shared";
+
+// packages/miniflare/src/workers/kv/constants.ts
+import { testRegExps } from "miniflare:shared";
+var KVLimits = {
+ MIN_CACHE_TTL: 60,
+ MAX_LIST_KEYS: 1e3,
+ MAX_KEY_SIZE: 512,
+ MAX_VALUE_SIZE: 25 * 1024 * 1024,
+ MAX_VALUE_SIZE_TEST: 1024,
+ MAX_METADATA_SIZE: 1024
+};
+var SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/";
+function isSitesRequest(request) {
+ return new URL(request.url).pathname.startsWith(`/${SITES_NO_CACHE_PREFIX}`);
+}
+
+// packages/miniflare/src/workers/cache/errors.worker.ts
+import { HttpError } from "miniflare:shared";
+
+// packages/miniflare/src/workers/cache/constants.ts
+var CacheHeaders = {
+ NAMESPACE: "cf-cache-namespace",
+ STATUS: "cf-cache-status"
+};
+
+// packages/miniflare/src/workers/cache/errors.worker.ts
+var CacheError = class extends HttpError {
+ constructor(code, message, headers = []) {
+ super(code, message);
+ this.headers = headers;
+ }
+ toResponse() {
+ return new Response(null, {
+ status: this.code,
+ headers: this.headers
+ });
+ }
+ context(info) {
+ return this.message += ` (${info})`, this;
+ }
+}, StorageFailure = class extends CacheError {
+ constructor() {
+ super(413, "Cache storage failed");
+ }
+}, PurgeFailure = class extends CacheError {
+ constructor() {
+ super(404, "Couldn't find asset to purge");
+ }
+}, CacheMiss = class extends CacheError {
+ constructor() {
+ super(
+ // workerd ignores this, but it's the correct status code
+ 504,
+ "Asset not found in cache",
+ [[CacheHeaders.STATUS, "MISS"]]
+ );
+ }
+}, RangeNotSatisfiable = class extends CacheError {
+ constructor(size) {
+ super(416, "Range not satisfiable", [
+ ["Content-Range", `bytes */${size}`],
+ [CacheHeaders.STATUS, "HIT"]
+ ]);
+ }
+};
+
+// packages/miniflare/src/workers/cache/cache.worker.ts
+function getCacheKey(req) {
+ return req.cf?.cacheKey ? String(req.cf?.cacheKey) : req.url;
+}
+function getExpiration(timers, req, res) {
+ let reqHeaders = normaliseHeaders(req.headers);
+ delete reqHeaders["cache-control"];
+ let resHeaders = normaliseHeaders(res.headers);
+ resHeaders["cache-control"]?.toLowerCase().includes("private=set-cookie") && (resHeaders["cache-control"] = resHeaders["cache-control"]?.toLowerCase().replace(/private=set-cookie;?/i, ""), delete resHeaders["set-cookie"]);
+ let cacheReq = {
+ url: req.url,
+ // If a request gets to the Cache service, it's method will be GET. See README.md for details
+ method: "GET",
+ headers: reqHeaders
+ }, cacheRes = {
+ status: res.status,
+ headers: resHeaders
+ }, originalNow = import_http_cache_semantics.default.prototype.now;
+ import_http_cache_semantics.default.prototype.now = timers.now;
+ try {
+ let policy = new import_http_cache_semantics.default(cacheReq, cacheRes, { shared: !0 });
+ return {
+ // Check if the request & response is cacheable
+ storable: policy.storable() && !("set-cookie" in resHeaders),
+ expiration: policy.timeToLive(),
+ // Cache Policy Headers is typed as [header: string]: string | string[] | undefined
+ // It's safe to ignore the undefined here, which is what casting to HeadersInit does
+ headers: policy.responseHeaders()
+ };
+ } finally {
+ import_http_cache_semantics.default.prototype.now = originalNow;
+ }
+}
+function normaliseHeaders(headers) {
+ let result = {};
+ for (let [key, value] of headers)
+ result[key.toLowerCase()] = value;
+ return result;
+}
+var etagRegexp = /^(W\/)?"(.+)"$/;
+function parseETag(value) {
+ return etagRegexp.exec(value.trim())?.[2] ?? void 0;
+}
+var utcDateRegexp = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d\d (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d\d\d\d \d\d:\d\d:\d\d GMT$/;
+function parseUTCDate(value) {
+ return utcDateRegexp.test(value) ? Date.parse(value) : NaN;
+}
+function getMatchResponse(reqHeaders, res) {
+ let reqIfNoneMatchHeader = reqHeaders.get("If-None-Match"), resETagHeader = res.headers.get("ETag");
+ if (reqIfNoneMatchHeader !== null && resETagHeader !== null) {
+ let resETag = parseETag(resETagHeader);
+ if (resETag !== void 0) {
+ if (reqIfNoneMatchHeader.trim() === "*")
+ return new Response(null, { status: 304, headers: res.headers });
+ for (let reqIfNoneMatch of reqIfNoneMatchHeader.split(","))
+ if (resETag === parseETag(reqIfNoneMatch))
+ return new Response(null, { status: 304, headers: res.headers });
+ }
+ }
+ let reqIfModifiedSinceHeader = reqHeaders.get("If-Modified-Since"), resLastModifiedHeader = res.headers.get("Last-Modified");
+ if (reqIfModifiedSinceHeader !== null && resLastModifiedHeader !== null) {
+ let reqIfModifiedSince = parseUTCDate(reqIfModifiedSinceHeader);
+ if (parseUTCDate(resLastModifiedHeader) <= reqIfModifiedSince)
+ return new Response(null, { status: 304, headers: res.headers });
+ }
+ if (res.ranges.length > 0)
+ if (res.status = 206, res.ranges.length > 1)
+ assert(!(res.body instanceof ReadableStream)), res.headers.set("Content-Type", res.body.multipartContentType);
+ else {
+ let { start, end } = res.ranges[0];
+ res.headers.set(
+ "Content-Range",
+ `bytes ${start}-${end}/${res.totalSize}`
+ ), res.headers.set("Content-Length", `${end - start + 1}`);
+ }
+ return res.body instanceof ReadableStream || (res.body = res.body.body), new Response(res.body, { status: res.status, headers: res.headers });
+}
+var CR = "\r".charCodeAt(0), LF = `
+`.charCodeAt(0), STATUS_REGEXP = /^HTTP\/\d(?:\.\d)? (?<rawStatusCode>\d+) (?<statusText>.*)$/;
+async function parseHttpResponse(stream) {
+ let buffer = Buffer2.alloc(0), blankLineIndex = -1;
+ for await (let chunk of stream.values({ preventCancel: !0 }))
+ if (buffer = Buffer2.concat([buffer, chunk]), blankLineIndex = buffer.findIndex(
+ (_value, index) => buffer[index] === CR && buffer[index + 1] === LF && buffer[index + 2] === CR && buffer[index + 3] === LF
+ ), blankLineIndex !== -1)
+ break;
+ assert(blankLineIndex !== -1, "Expected to find blank line in HTTP message");
+ let rawStatusHeaders = buffer.subarray(0, blankLineIndex).toString(), [rawStatus, ...rawHeaders] = rawStatusHeaders.split(`\r
+`), statusMatch = rawStatus.match(STATUS_REGEXP);
+ assert(
+ statusMatch?.groups != null,
+ `Expected first line ${JSON.stringify(rawStatus)} to be HTTP status line`
+ );
+ let { rawStatusCode, statusText } = statusMatch.groups, statusCode = parseInt(rawStatusCode), headers = rawHeaders.map((rawHeader) => {
+ let index = rawHeader.indexOf(":");
+ return [
+ rawHeader.substring(0, index),
+ rawHeader.substring(index + 1).trim()
+ ];
+ }), prefix = buffer.subarray(
+ blankLineIndex + 4
+ /* "\r\n\r\n" */
+ ), { readable, writable } = new IdentityTransformStream(), writer = writable.getWriter();
+ return writer.write(prefix).then(() => (writer.releaseLock(), stream.pipeTo(writable))).catch((e) => console.error("Error writing HTTP body:", e)), new Response(readable, { status: statusCode, statusText, headers });
+}
+var SizingStream = class extends TransformStream {
+ size;
+ constructor() {
+ let sizePromise = new DeferredPromise(), size = 0;
+ super({
+ transform(chunk, controller) {
+ size += chunk.byteLength, controller.enqueue(chunk);
+ },
+ flush() {
+ sizePromise.resolve(size);
+ }
+ }), this.size = sizePromise;
+ }
+}, CacheObject = class extends MiniflareDurableObject {
+ #warnedUsage = !1;
+ async #maybeWarnUsage(request) {
+ !this.#warnedUsage && request.cf?.miniflare?.cacheWarnUsage === !0 && (this.#warnedUsage = !0, await this.logWithLevel(
+ LogLevel.WARN,
+ "Cache operations will have no impact if you deploy to a workers.dev subdomain!"
+ ));
+ }
+ #storage;
+ get storage() {
+ return this.#storage ??= new KeyValueStorage(this);
+ }
+ match = async (req) => {
+ await this.#maybeWarnUsage(req);
+ let cacheKey = getCacheKey(req);
+ if (isSitesRequest(req))
+ throw new CacheMiss();
+ let resHeaders, resRanges, cached = await this.storage.get(cacheKey, ({ size, headers }) => {
+ resHeaders = new Headers(headers);
+ let contentType = resHeaders.get("Content-Type"), rangeHeader = req.headers.get("Range");
+ if (rangeHeader !== null && (resRanges = parseRanges(rangeHeader, size), resRanges === void 0))
+ throw new RangeNotSatisfiable(size);
+ return {
+ ranges: resRanges,
+ contentLength: size,
+ contentType: contentType ?? void 0
+ };
+ });
+ if (cached?.metadata === void 0)
+ throw new CacheMiss();
+ return assert(resHeaders !== void 0), resHeaders.set("CF-Cache-Status", "HIT"), resRanges ??= [], getMatchResponse(req.headers, {
+ status: cached.metadata.status,
+ headers: resHeaders,
+ ranges: resRanges,
+ body: cached.value,
+ totalSize: cached.metadata.size
+ });
+ };
+ put = async (req) => {
+ await this.#maybeWarnUsage(req);
+ let cacheKey = getCacheKey(req);
+ if (isSitesRequest(req))
+ throw new CacheMiss();
+ assert(req.body !== null);
+ let res = await parseHttpResponse(req.body), body = res.body;
+ assert(body !== null);
+ let { storable, expiration, headers } = getExpiration(
+ this.timers,
+ req,
+ res
+ );
+ if (!storable) {
+ try {
+ await body.pipeTo(new WritableStream());
+ } catch {
+ }
+ throw new StorageFailure();
+ }
+ let contentLength = parseInt(res.headers.get("Content-Length")), sizePromise;
+ if (Number.isNaN(contentLength)) {
+ let stream = new SizingStream();
+ body = body.pipeThrough(stream), sizePromise = stream.size;
+ } else
+ sizePromise = Promise.resolve(contentLength);
+ let metadata = sizePromise.then((size) => ({
+ headers: Object.entries(headers),
+ status: res.status,
+ size
+ }));
+ return await this.storage.put({
+ key: cacheKey,
+ value: body,
+ expiration: this.timers.now() + expiration,
+ metadata
+ }), new Response(null, { status: 204 });
+ };
+ delete = async (req) => {
+ await this.#maybeWarnUsage(req);
+ let cacheKey = getCacheKey(req);
+ if (!await this.storage.delete(cacheKey))
+ throw new PurgeFailure();
+ return new Response(null);
+ };
+};
+__decorateClass([
+ GET()
+], CacheObject.prototype, "match", 2), __decorateClass([
+ PUT()
+], CacheObject.prototype, "put", 2), __decorateClass([
+ PURGE()
+], CacheObject.prototype, "delete", 2);
+export {
+ CacheObject,
+ parseHttpResponse
+};
+//# sourceMappingURL=cache.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map
new file mode 100644
index 0000000..db51edc
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../../../node_modules/http-cache-semantics/index.js", "../../../../src/workers/cache/cache.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/cache/errors.worker.ts", "../../../../src/workers/cache/constants.ts"],
+ "mappings": "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",
+ "names": ["Buffer", "CachePolicy", "Buffer"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/core/entry.worker.js b/node_modules/miniflare/dist/src/workers/core/entry.worker.js
new file mode 100644
index 0000000..d09861b
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/core/entry.worker.js
@@ -0,0 +1,845 @@
+// node_modules/kleur/colors.mjs
+var FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY = !0;
+typeof process < "u" && ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}, isTTY = process.stdout && process.stdout.isTTY);
+var $ = {
+ enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY)
+};
+function init(x, y) {
+ let rgx = new RegExp(`\\x1b\\[${y}m`, "g"), open = `\x1B[${x}m`, close = `\x1B[${y}m`;
+ return function(txt) {
+ return !$.enabled || txt == null ? txt : open + (~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close;
+ };
+}
+var reset = init(0, 0), bold = init(1, 22), dim = init(2, 22), italic = init(3, 23), underline = init(4, 24), inverse = init(7, 27), hidden = init(8, 28), strikethrough = init(9, 29), black = init(30, 39), red = init(31, 39), green = init(32, 39), yellow = init(33, 39), blue = init(34, 39), magenta = init(35, 39), cyan = init(36, 39), white = init(37, 39), gray = init(90, 39), grey = init(90, 39), bgBlack = init(40, 49), bgRed = init(41, 49), bgGreen = init(42, 49), bgYellow = init(43, 49), bgBlue = init(44, 49), bgMagenta = init(45, 49), bgCyan = init(46, 49), bgWhite = init(47, 49);
+
+// packages/miniflare/src/workers/core/entry.worker.ts
+import { LogLevel, SharedHeaders } from "miniflare:shared";
+
+// packages/miniflare/src/workers/core/constants.ts
+var CoreHeaders = {
+ CUSTOM_SERVICE: "MF-Custom-Service",
+ ORIGINAL_URL: "MF-Original-URL",
+ ERROR_STACK: "MF-Experimental-Error-Stack",
+ ROUTE_OVERRIDE: "MF-Route-Override",
+ // API Proxy
+ OP: "MF-Op",
+ OP_TARGET: "MF-Op-Target",
+ OP_KEY: "MF-Op-Key",
+ OP_SYNC: "MF-Op-Sync",
+ OP_STRINGIFIED_SIZE: "MF-Op-Stringified-Size",
+ OP_RESULT_TYPE: "MF-Op-Result-Type"
+}, CoreBindings = {
+ SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK",
+ SERVICE_USER_ROUTE_PREFIX: "MINIFLARE_USER_ROUTE_",
+ SERVICE_USER_FALLBACK: "MINIFLARE_USER_FALLBACK",
+ TEXT_CUSTOM_SERVICE: "MINIFLARE_CUSTOM_SERVICE",
+ TEXT_UPSTREAM_URL: "MINIFLARE_UPSTREAM_URL",
+ JSON_CF_BLOB: "CF_BLOB",
+ JSON_ROUTES: "MINIFLARE_ROUTES",
+ JSON_LOG_LEVEL: "MINIFLARE_LOG_LEVEL",
+ DATA_LIVE_RELOAD_SCRIPT: "MINIFLARE_LIVE_RELOAD_SCRIPT",
+ DURABLE_OBJECT_NAMESPACE_PROXY: "MINIFLARE_PROXY"
+}, ProxyOps = {
+ // Get the target or a property of the target
+ GET: "GET",
+ // Call a method on the target
+ CALL: "CALL",
+ // Remove the strong reference to the target on the "heap", allowing it to be
+ // garbage collected
+ FREE: "FREE"
+}, ProxyAddresses = {
+ GLOBAL: 0,
+ // globalThis
+ ENV: 1,
+ // env
+ USER_START: 2
+};
+function isFetcherFetch(targetName, key) {
+ return (targetName === "Fetcher" || targetName === "DurableObject") && key === "fetch";
+}
+function isR2ObjectWriteHttpMetadata(targetName, key) {
+ return (targetName === "HeadResult" || targetName === "GetResult") && key === "writeHttpMetadata";
+}
+
+// packages/miniflare/src/workers/core/http.ts
+var STATUS_CODES = {
+ 100: "Continue",
+ 101: "Switching Protocols",
+ 102: "Processing",
+ 103: "Early Hints",
+ 200: "OK",
+ 201: "Created",
+ 202: "Accepted",
+ 203: "Non-Authoritative Information",
+ 204: "No Content",
+ 205: "Reset Content",
+ 206: "Partial Content",
+ 207: "Multi-Status",
+ 208: "Already Reported",
+ 226: "IM Used",
+ 300: "Multiple Choices",
+ 301: "Moved Permanently",
+ 302: "Found",
+ 303: "See Other",
+ 304: "Not Modified",
+ 305: "Use Proxy",
+ 307: "Temporary Redirect",
+ 308: "Permanent Redirect",
+ 400: "Bad Request",
+ 401: "Unauthorized",
+ 402: "Payment Required",
+ 403: "Forbidden",
+ 404: "Not Found",
+ 405: "Method Not Allowed",
+ 406: "Not Acceptable",
+ 407: "Proxy Authentication Required",
+ 408: "Request Timeout",
+ 409: "Conflict",
+ 410: "Gone",
+ 411: "Length Required",
+ 412: "Precondition Failed",
+ 413: "Payload Too Large",
+ 414: "URI Too Long",
+ 415: "Unsupported Media Type",
+ 416: "Range Not Satisfiable",
+ 417: "Expectation Failed",
+ 418: "I'm a Teapot",
+ 421: "Misdirected Request",
+ 422: "Unprocessable Entity",
+ 423: "Locked",
+ 424: "Failed Dependency",
+ 425: "Too Early",
+ 426: "Upgrade Required",
+ 428: "Precondition Required",
+ 429: "Too Many Requests",
+ 431: "Request Header Fields Too Large",
+ 451: "Unavailable For Legal Reasons",
+ 500: "Internal Server Error",
+ 501: "Not Implemented",
+ 502: "Bad Gateway",
+ 503: "Service Unavailable",
+ 504: "Gateway Timeout",
+ 505: "HTTP Version Not Supported",
+ 506: "Variant Also Negotiates",
+ 507: "Insufficient Storage",
+ 508: "Loop Detected",
+ 509: "Bandwidth Limit Exceeded",
+ 510: "Not Extended",
+ 511: "Network Authentication Required"
+};
+
+// packages/miniflare/src/workers/core/routing.ts
+function matchRoutes(routes, url) {
+ for (let route of routes) {
+ if (route.protocol && route.protocol !== url.protocol)
+ continue;
+ if (route.allowHostnamePrefix) {
+ if (!url.hostname.endsWith(route.hostname))
+ continue;
+ } else if (url.hostname !== route.hostname)
+ continue;
+ let path = url.pathname + url.search;
+ if (route.allowPathSuffix) {
+ if (!path.startsWith(route.path))
+ continue;
+ } else if (path !== route.path)
+ continue;
+ return route.target;
+ }
+ return null;
+}
+
+// packages/miniflare/src/workers/core/proxy.worker.ts
+import assert2 from "node:assert";
+
+// node_modules/devalue/src/utils.js
+var escaped = {
+ "<": "\\u003C",
+ ">": "\\u003E",
+ "/": "\\u002F",
+ "\\": "\\\\",
+ "\b": "\\b",
+ "\f": "\\f",
+ "\n": "\\n",
+ "\r": "\\r",
+ " ": "\\t",
+ "\0": "\\u0000",
+ "\u2028": "\\u2028",
+ "\u2029": "\\u2029"
+}, DevalueError = class extends Error {
+ /**
+ * @param {string} message
+ * @param {string[]} keys
+ */
+ constructor(message, keys) {
+ super(message), this.name = "DevalueError", this.path = keys.join("");
+ }
+};
+function is_primitive(thing) {
+ return Object(thing) !== thing;
+}
+var object_proto_names = Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
+function is_plain_object(thing) {
+ let proto = Object.getPrototypeOf(thing);
+ return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names;
+}
+function get_type(thing) {
+ return Object.prototype.toString.call(thing).slice(8, -1);
+}
+function stringify_string(str) {
+ let result = '"';
+ for (let i = 0; i < str.length; i += 1) {
+ let char = str.charAt(i), code = char.charCodeAt(0);
+ if (char === '"')
+ result += '\\"';
+ else if (char in escaped)
+ result += escaped[char];
+ else if (code <= 31)
+ result += `\\u${code.toString(16).toUpperCase().padStart(4, "0")}`;
+ else if (code >= 55296 && code <= 57343) {
+ let next = str.charCodeAt(i + 1);
+ code <= 56319 && next >= 56320 && next <= 57343 ? result += char + str[++i] : result += `\\u${code.toString(16).toUpperCase()}`;
+ } else
+ result += char;
+ }
+ return result += '"', result;
+}
+
+// node_modules/devalue/src/parse.js
+function parse(serialized, revivers) {
+ return unflatten(JSON.parse(serialized), revivers);
+}
+function unflatten(parsed, revivers) {
+ if (typeof parsed == "number")
+ return hydrate(parsed, !0);
+ if (!Array.isArray(parsed) || parsed.length === 0)
+ throw new Error("Invalid input");
+ let values = (
+ /** @type {any[]} */
+ parsed
+ ), hydrated = Array(values.length);
+ function hydrate(index, standalone = !1) {
+ if (index === -1)
+ return;
+ if (index === -3)
+ return NaN;
+ if (index === -4)
+ return 1 / 0;
+ if (index === -5)
+ return -1 / 0;
+ if (index === -6)
+ return -0;
+ if (standalone)
+ throw new Error("Invalid input");
+ if (index in hydrated)
+ return hydrated[index];
+ let value = values[index];
+ if (!value || typeof value != "object")
+ hydrated[index] = value;
+ else if (Array.isArray(value))
+ if (typeof value[0] == "string") {
+ let type = value[0], reviver = revivers?.[type];
+ if (reviver)
+ return hydrated[index] = reviver(hydrate(value[1]));
+ switch (type) {
+ case "Date":
+ hydrated[index] = new Date(value[1]);
+ break;
+ case "Set":
+ let set = /* @__PURE__ */ new Set();
+ hydrated[index] = set;
+ for (let i = 1; i < value.length; i += 1)
+ set.add(hydrate(value[i]));
+ break;
+ case "Map":
+ let map = /* @__PURE__ */ new Map();
+ hydrated[index] = map;
+ for (let i = 1; i < value.length; i += 2)
+ map.set(hydrate(value[i]), hydrate(value[i + 1]));
+ break;
+ case "RegExp":
+ hydrated[index] = new RegExp(value[1], value[2]);
+ break;
+ case "Object":
+ hydrated[index] = Object(value[1]);
+ break;
+ case "BigInt":
+ hydrated[index] = BigInt(value[1]);
+ break;
+ case "null":
+ let obj = /* @__PURE__ */ Object.create(null);
+ hydrated[index] = obj;
+ for (let i = 1; i < value.length; i += 2)
+ obj[value[i]] = hydrate(value[i + 1]);
+ break;
+ default:
+ throw new Error(`Unknown type ${type}`);
+ }
+ } else {
+ let array = new Array(value.length);
+ hydrated[index] = array;
+ for (let i = 0; i < value.length; i += 1) {
+ let n = value[i];
+ n !== -2 && (array[i] = hydrate(n));
+ }
+ }
+ else {
+ let object = {};
+ hydrated[index] = object;
+ for (let key in value) {
+ let n = value[key];
+ object[key] = hydrate(n);
+ }
+ }
+ return hydrated[index];
+ }
+ return hydrate(0);
+}
+
+// node_modules/devalue/src/stringify.js
+function stringify(value, reducers) {
+ let stringified = [], indexes = /* @__PURE__ */ new Map(), custom = [];
+ for (let key in reducers)
+ custom.push({ key, fn: reducers[key] });
+ let keys = [], p = 0;
+ function flatten(thing) {
+ if (typeof thing == "function")
+ throw new DevalueError("Cannot stringify a function", keys);
+ if (indexes.has(thing))
+ return indexes.get(thing);
+ if (thing === void 0)
+ return -1;
+ if (Number.isNaN(thing))
+ return -3;
+ if (thing === 1 / 0)
+ return -4;
+ if (thing === -1 / 0)
+ return -5;
+ if (thing === 0 && 1 / thing < 0)
+ return -6;
+ let index2 = p++;
+ indexes.set(thing, index2);
+ for (let { key, fn } of custom) {
+ let value2 = fn(thing);
+ if (value2)
+ return stringified[index2] = `["${key}",${flatten(value2)}]`, index2;
+ }
+ let str = "";
+ if (is_primitive(thing))
+ str = stringify_primitive(thing);
+ else
+ switch (get_type(thing)) {
+ case "Number":
+ case "String":
+ case "Boolean":
+ str = `["Object",${stringify_primitive(thing)}]`;
+ break;
+ case "BigInt":
+ str = `["BigInt",${thing}]`;
+ break;
+ case "Date":
+ str = `["Date","${thing.toISOString()}"]`;
+ break;
+ case "RegExp":
+ let { source, flags } = thing;
+ str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`;
+ break;
+ case "Array":
+ str = "[";
+ for (let i = 0; i < thing.length; i += 1)
+ i > 0 && (str += ","), i in thing ? (keys.push(`[${i}]`), str += flatten(thing[i]), keys.pop()) : str += -2;
+ str += "]";
+ break;
+ case "Set":
+ str = '["Set"';
+ for (let value2 of thing)
+ str += `,${flatten(value2)}`;
+ str += "]";
+ break;
+ case "Map":
+ str = '["Map"';
+ for (let [key, value2] of thing)
+ keys.push(
+ `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})`
+ ), str += `,${flatten(key)},${flatten(value2)}`;
+ str += "]";
+ break;
+ default:
+ if (!is_plain_object(thing))
+ throw new DevalueError(
+ "Cannot stringify arbitrary non-POJOs",
+ keys
+ );
+ if (Object.getOwnPropertySymbols(thing).length > 0)
+ throw new DevalueError(
+ "Cannot stringify POJOs with symbolic keys",
+ keys
+ );
+ if (Object.getPrototypeOf(thing) === null) {
+ str = '["null"';
+ for (let key in thing)
+ keys.push(`.${key}`), str += `,${stringify_string(key)},${flatten(thing[key])}`, keys.pop();
+ str += "]";
+ } else {
+ str = "{";
+ let started = !1;
+ for (let key in thing)
+ started && (str += ","), started = !0, keys.push(`.${key}`), str += `${stringify_string(key)}:${flatten(thing[key])}`, keys.pop();
+ str += "}";
+ }
+ }
+ return stringified[index2] = str, index2;
+ }
+ let index = flatten(value);
+ return index < 0 ? `${index}` : `[${stringified.join(",")}]`;
+}
+function stringify_primitive(thing) {
+ let type = typeof thing;
+ return type === "string" ? stringify_string(thing) : thing instanceof String ? stringify_string(thing.toString()) : thing === void 0 ? (-1).toString() : thing === 0 && 1 / thing < 0 ? (-6).toString() : type === "bigint" ? `["BigInt","${thing}"]` : String(thing);
+}
+
+// packages/miniflare/src/workers/core/proxy.worker.ts
+import { readPrefix, reduceError } from "miniflare:shared";
+
+// packages/miniflare/src/workers/core/devalue.ts
+import assert from "node:assert";
+import { Buffer } from "node:buffer";
+var ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS = [
+ DataView,
+ Int8Array,
+ Uint8Array,
+ Uint8ClampedArray,
+ Int16Array,
+ Uint16Array,
+ Int32Array,
+ Uint32Array,
+ Float32Array,
+ Float64Array,
+ BigInt64Array,
+ BigUint64Array
+], ALLOWED_ERROR_CONSTRUCTORS = [
+ EvalError,
+ RangeError,
+ ReferenceError,
+ SyntaxError,
+ TypeError,
+ URIError,
+ Error
+ // `Error` last so more specific error subclasses preferred
+], structuredSerializableReducers = {
+ ArrayBuffer(value) {
+ if (value instanceof ArrayBuffer)
+ return [Buffer.from(value).toString("base64")];
+ },
+ ArrayBufferView(value) {
+ if (ArrayBuffer.isView(value))
+ return [
+ value.constructor.name,
+ value.buffer,
+ value.byteOffset,
+ value.byteLength
+ ];
+ },
+ Error(value) {
+ for (let ctor of ALLOWED_ERROR_CONSTRUCTORS)
+ if (value instanceof ctor && value.name === ctor.name)
+ return [value.name, value.message, value.stack, value.cause];
+ if (value instanceof Error)
+ return ["Error", value.message, value.stack, value.cause];
+ }
+}, structuredSerializableRevivers = {
+ ArrayBuffer(value) {
+ assert(Array.isArray(value));
+ let [encoded] = value;
+ assert(typeof encoded == "string");
+ let view = Buffer.from(encoded, "base64");
+ return view.buffer.slice(
+ view.byteOffset,
+ view.byteOffset + view.byteLength
+ );
+ },
+ ArrayBufferView(value) {
+ assert(Array.isArray(value));
+ let [name, buffer, byteOffset, byteLength] = value;
+ assert(typeof name == "string"), assert(buffer instanceof ArrayBuffer), assert(typeof byteOffset == "number"), assert(typeof byteLength == "number");
+ let ctor = globalThis[name];
+ assert(ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS.includes(ctor));
+ let length = byteLength;
+ return "BYTES_PER_ELEMENT" in ctor && (length /= ctor.BYTES_PER_ELEMENT), new ctor(buffer, byteOffset, length);
+ },
+ Error(value) {
+ assert(Array.isArray(value));
+ let [name, message, stack, cause] = value;
+ assert(typeof name == "string"), assert(typeof message == "string"), assert(stack === void 0 || typeof stack == "string");
+ let ctor = globalThis[name];
+ assert(ALLOWED_ERROR_CONSTRUCTORS.includes(ctor));
+ let error = new ctor(message, { cause });
+ return error.stack = stack, error;
+ }
+};
+function createHTTPReducers(impl) {
+ return {
+ Headers(val) {
+ if (val instanceof impl.Headers)
+ return Object.fromEntries(val);
+ },
+ Request(val) {
+ if (val instanceof impl.Request)
+ return [val.method, val.url, val.headers, val.cf, val.body];
+ },
+ Response(val) {
+ if (val instanceof impl.Response)
+ return [val.status, val.statusText, val.headers, val.cf, val.body];
+ }
+ };
+}
+function createHTTPRevivers(impl) {
+ return {
+ Headers(value) {
+ return assert(typeof value == "object" && value !== null), new impl.Headers(value);
+ },
+ Request(value) {
+ assert(Array.isArray(value));
+ let [method, url, headers, cf, body] = value;
+ return assert(typeof method == "string"), assert(typeof url == "string"), assert(headers instanceof impl.Headers), assert(body === null || impl.isReadableStream(body)), new impl.Request(url, {
+ method,
+ headers,
+ cf,
+ // @ts-expect-error `duplex` is not required by `workerd` yet
+ duplex: body === null ? void 0 : "half",
+ body
+ });
+ },
+ Response(value) {
+ assert(Array.isArray(value));
+ let [status, statusText, headers, cf, body] = value;
+ return assert(typeof status == "number"), assert(typeof statusText == "string"), assert(headers instanceof impl.Headers), assert(body === null || impl.isReadableStream(body)), new impl.Response(body, {
+ status,
+ statusText,
+ headers,
+ cf
+ });
+ }
+ };
+}
+function stringifyWithStreams(impl, value, reducers, allowUnbufferedStream) {
+ let unbufferedStream, bufferPromises = [], streamReducers = {
+ ReadableStream(value2) {
+ if (impl.isReadableStream(value2))
+ return allowUnbufferedStream && unbufferedStream === void 0 ? unbufferedStream = value2 : bufferPromises.push(impl.bufferReadableStream(value2)), !0;
+ },
+ Blob(value2) {
+ if (value2 instanceof impl.Blob)
+ return bufferPromises.push(value2.arrayBuffer()), !0;
+ },
+ ...reducers
+ }, stringifiedValue = stringify(value, streamReducers);
+ return bufferPromises.length === 0 ? { value: stringifiedValue, unbufferedStream } : Promise.all(bufferPromises).then((streamBuffers) => (streamReducers.ReadableStream = function(value2) {
+ if (impl.isReadableStream(value2))
+ return value2 === unbufferedStream ? !0 : streamBuffers.shift();
+ }, streamReducers.Blob = function(value2) {
+ if (value2 instanceof impl.Blob) {
+ let array = [streamBuffers.shift(), value2.type];
+ return value2 instanceof impl.File && array.push(value2.name, value2.lastModified), array;
+ }
+ }, { value: stringify(value, streamReducers), unbufferedStream }));
+}
+function parseWithReadableStreams(impl, stringified, revivers) {
+ let streamRevivers = {
+ ReadableStream(value) {
+ return value === !0 ? (assert(stringified.unbufferedStream !== void 0), stringified.unbufferedStream) : (assert(value instanceof ArrayBuffer), impl.unbufferReadableStream(value));
+ },
+ Blob(value) {
+ if (assert(Array.isArray(value)), value.length === 2) {
+ let [buffer, type] = value;
+ assert(buffer instanceof ArrayBuffer), assert(typeof type == "string");
+ let opts = {};
+ return type !== "" && (opts.type = type), new impl.Blob([buffer], opts);
+ } else {
+ assert(value.length === 4);
+ let [buffer, type, name, lastModified] = value;
+ assert(buffer instanceof ArrayBuffer), assert(typeof type == "string"), assert(typeof name == "string"), assert(typeof lastModified == "number");
+ let opts = { lastModified };
+ return type !== "" && (opts.type = type), new impl.File([buffer], name, opts);
+ }
+ },
+ ...revivers
+ };
+ return parse(stringified.value, streamRevivers);
+}
+
+// packages/miniflare/src/workers/core/proxy.worker.ts
+var ENCODER = new TextEncoder(), DECODER = new TextDecoder(), WORKERS_PLATFORM_IMPL = {
+ Blob,
+ File,
+ Headers,
+ Request,
+ Response,
+ isReadableStream(value) {
+ return value instanceof ReadableStream;
+ },
+ bufferReadableStream(stream) {
+ return new Response(stream).arrayBuffer();
+ },
+ unbufferReadableStream(buffer) {
+ let body = new Response(buffer).body;
+ return assert2(body !== null), body;
+ }
+}, objectProtoNames = Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
+function isPlainObject(value) {
+ let proto = Object.getPrototypeOf(value);
+ return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === objectProtoNames;
+}
+function getType(value) {
+ return Object.prototype.toString.call(value).slice(8, -1);
+}
+var ProxyServer = class {
+ // On the first `fetch()`, start a `setInterval()` to keep this Durable Object
+ // and its heap alive. This is required to ensure heap references stay valid
+ // for the lifetime of this `workerd` process (except it isn't since `workerd`
+ // doesn't evict Durable Objects yet :P, but it probably will soon).
+ anchorInterval;
+ nextHeapAddress = ProxyAddresses.USER_START;
+ heap = /* @__PURE__ */ new Map();
+ reducers = {
+ ...structuredSerializableReducers,
+ ...createHTTPReducers(WORKERS_PLATFORM_IMPL),
+ // Corresponding revivers in `ProxyClient`
+ // `Native` reducer *MUST* be applied last
+ Native: (value) => {
+ let type = getType(value);
+ if (type === "Object" && !isPlainObject(value) || type === "Promise") {
+ let address = this.nextHeapAddress++;
+ return this.heap.set(address, value), assert2(typeof value == "object" && value !== null), [address, value.constructor.name];
+ }
+ }
+ };
+ revivers = {
+ ...structuredSerializableRevivers,
+ ...createHTTPRevivers(WORKERS_PLATFORM_IMPL),
+ // Corresponding reducers in `ProxyClient`
+ Native: (value) => {
+ assert2(Array.isArray(value));
+ let [address] = value;
+ assert2(typeof address == "number");
+ let heapValue = this.heap.get(address);
+ return assert2(heapValue !== void 0), heapValue instanceof Promise && this.heap.delete(address), heapValue;
+ }
+ };
+ nativeReviver = { Native: this.revivers.Native };
+ constructor(_state, env) {
+ this.heap.set(ProxyAddresses.GLOBAL, globalThis), this.heap.set(ProxyAddresses.ENV, env);
+ }
+ async fetch(request) {
+ this.anchorInterval ??= setInterval(() => {
+ }, 1e4);
+ try {
+ return await this.#fetch(request);
+ } catch (e) {
+ let error = reduceError(e);
+ return Response.json(error, {
+ status: 500,
+ headers: { [CoreHeaders.ERROR_STACK]: "true" }
+ });
+ }
+ }
+ async #fetch(request) {
+ let opHeader = request.headers.get(CoreHeaders.OP), targetHeader = request.headers.get(CoreHeaders.OP_TARGET), keyHeader = request.headers.get(CoreHeaders.OP_KEY), allowAsync = request.headers.get(CoreHeaders.OP_SYNC) === null, argsSizeHeader = request.headers.get(CoreHeaders.OP_STRINGIFIED_SIZE), contentLengthHeader = request.headers.get("Content-Length");
+ if (targetHeader === null)
+ return new Response(null, { status: 400 });
+ if (opHeader === ProxyOps.FREE) {
+ let targetAddress = parseInt(targetHeader);
+ return assert2(!Number.isNaN(targetAddress)), this.heap.delete(targetAddress), new Response(null, { status: 204 });
+ }
+ let target = parse(
+ targetHeader,
+ this.nativeReviver
+ ), targetName = target.constructor.name, status = 200, result, unbufferedRest;
+ if (opHeader === ProxyOps.GET) {
+ if (result = keyHeader === null ? target : target[keyHeader], typeof result == "function")
+ return new Response(null, {
+ status: 204,
+ headers: { [CoreHeaders.OP_RESULT_TYPE]: "Function" }
+ });
+ } else if (opHeader === ProxyOps.CALL) {
+ if (keyHeader === null)
+ return new Response(null, { status: 400 });
+ let func = target[keyHeader];
+ if (assert2(typeof func == "function"), isFetcherFetch(targetName, keyHeader))
+ return request = new Request(request), request.headers.delete(CoreHeaders.OP), request.headers.delete(CoreHeaders.OP_TARGET), request.headers.delete(CoreHeaders.OP_KEY), func.call(target, request);
+ let args;
+ if (argsSizeHeader === null || argsSizeHeader === contentLengthHeader)
+ args = parseWithReadableStreams(
+ WORKERS_PLATFORM_IMPL,
+ { value: await request.text() },
+ this.revivers
+ );
+ else {
+ let argsSize = parseInt(argsSizeHeader);
+ assert2(!Number.isNaN(argsSize)), assert2(request.body !== null);
+ let [encodedArgs, rest] = await readPrefix(request.body, argsSize);
+ unbufferedRest = rest;
+ let stringifiedArgs = DECODER.decode(encodedArgs);
+ args = parseWithReadableStreams(
+ WORKERS_PLATFORM_IMPL,
+ { value: stringifiedArgs, unbufferedStream: rest },
+ this.revivers
+ );
+ }
+ assert2(Array.isArray(args));
+ try {
+ result = func.apply(target, args), isR2ObjectWriteHttpMetadata(targetName, keyHeader) && (result = args[0]);
+ } catch (e) {
+ status = 500, result = e;
+ }
+ } else
+ return new Response(null, { status: 404 });
+ let headers = new Headers();
+ if (allowAsync && result instanceof Promise) {
+ try {
+ result = await result;
+ } catch (e) {
+ status = 500, result = e;
+ }
+ headers.append(CoreHeaders.OP_RESULT_TYPE, "Promise");
+ }
+ if (unbufferedRest !== void 0 && !unbufferedRest.locked)
+ try {
+ await unbufferedRest.pipeTo(new WritableStream());
+ } catch {
+ }
+ if (result instanceof ReadableStream)
+ return headers.append(CoreHeaders.OP_RESULT_TYPE, "ReadableStream"), new Response(result, { status, headers });
+ {
+ let stringified = await stringifyWithStreams(
+ WORKERS_PLATFORM_IMPL,
+ result,
+ this.reducers,
+ /* allowUnbufferedStream */
+ allowAsync
+ );
+ if (stringified.unbufferedStream === void 0)
+ return new Response(stringified.value, { status, headers });
+ {
+ let body = new IdentityTransformStream(), encodedValue = ENCODER.encode(stringified.value), encodedSize = encodedValue.byteLength.toString();
+ return headers.set(CoreHeaders.OP_STRINGIFIED_SIZE, encodedSize), this.#writeWithUnbufferedStream(
+ body.writable,
+ encodedValue,
+ stringified.unbufferedStream
+ ), new Response(body.readable, { status, headers });
+ }
+ }
+ }
+ async #writeWithUnbufferedStream(writable, encodedValue, unbufferedStream) {
+ let writer = writable.getWriter();
+ await writer.write(encodedValue), writer.releaseLock(), await unbufferedStream.pipeTo(writable);
+ }
+};
+
+// packages/miniflare/src/workers/core/entry.worker.ts
+function getUserRequest(request, env) {
+ let originalUrl = request.headers.get(CoreHeaders.ORIGINAL_URL), upstreamUrl = env[CoreBindings.TEXT_UPSTREAM_URL], url = new URL(originalUrl ?? request.url);
+ if (upstreamUrl !== void 0) {
+ let path = url.pathname + url.search;
+ path.startsWith("/") && (path = path.substring(1)), url = new URL(path, upstreamUrl);
+ }
+ return request = new Request(url, request), request.cf === void 0 && (request = new Request(request, { cf: env[CoreBindings.JSON_CF_BLOB] })), request.headers.delete(CoreHeaders.ORIGINAL_URL), request;
+}
+function getTargetService(request, url, env) {
+ let service = env[CoreBindings.SERVICE_USER_FALLBACK], override = request.headers.get(CoreHeaders.ROUTE_OVERRIDE);
+ request.headers.delete(CoreHeaders.ROUTE_OVERRIDE);
+ let route = override ?? matchRoutes(env[CoreBindings.JSON_ROUTES], url);
+ return route !== null && (service = env[`${CoreBindings.SERVICE_USER_ROUTE_PREFIX}${route}`]), service;
+}
+function maybePrettifyError(request, response, env) {
+ if (response.status !== 500 || response.headers.get(CoreHeaders.ERROR_STACK) === null)
+ return response;
+ let accept = request.headers.get("Accept"), userAgent = request.headers.get("User-Agent"), headers = new Headers();
+ return accept !== null && headers.set("Accept", accept), userAgent !== null && headers.set("User-Agent", userAgent), env[CoreBindings.SERVICE_LOOPBACK].fetch(
+ "http://localhost/core/error",
+ {
+ method: "POST",
+ headers,
+ body: response.body
+ }
+ );
+}
+function maybeInjectLiveReload(response, env, ctx) {
+ let liveReloadScript = env[CoreBindings.DATA_LIVE_RELOAD_SCRIPT];
+ if (liveReloadScript === void 0 || !response.headers.get("Content-Type")?.toLowerCase().includes("text/html"))
+ return response;
+ let headers = new Headers(response.headers), contentLength = parseInt(headers.get("content-length"));
+ isNaN(contentLength) || headers.set(
+ "content-length",
+ String(contentLength + liveReloadScript.byteLength)
+ );
+ let { readable, writable } = new IdentityTransformStream();
+ return ctx.waitUntil(
+ (async () => {
+ await response.body?.pipeTo(writable, { preventClose: !0 });
+ let writer = writable.getWriter();
+ await writer.write(liveReloadScript), await writer.close();
+ })()
+ ), new Response(readable, {
+ status: response.status,
+ statusText: response.statusText,
+ headers
+ });
+}
+function colourFromHTTPStatus(status) {
+ return 200 <= status && status < 300 ? green : 400 <= status && status < 500 ? yellow : 500 <= status ? red : blue;
+}
+function maybeLogRequest(req, res, env, ctx, startTime) {
+ if (env[CoreBindings.JSON_LOG_LEVEL] < LogLevel.INFO)
+ return;
+ let url = new URL(req.url), statusText = (res.statusText.trim() || STATUS_CODES[res.status]) ?? "", lines = [
+ `${bold(req.method)} ${url.pathname} `,
+ colourFromHTTPStatus(res.status)(`${bold(res.status)} ${statusText} `),
+ grey(`(${Date.now() - startTime}ms)`)
+ ], message = reset(lines.join(""));
+ ctx.waitUntil(
+ env[CoreBindings.SERVICE_LOOPBACK].fetch("http://localhost/core/log", {
+ method: "POST",
+ headers: { [SharedHeaders.LOG_LEVEL]: LogLevel.INFO.toString() },
+ body: message
+ })
+ );
+}
+function handleProxy(request, env) {
+ let ns = env[CoreBindings.DURABLE_OBJECT_NAMESPACE_PROXY], id = ns.idFromName("");
+ return ns.get(id).fetch(request);
+}
+async function handleScheduled(params, service) {
+ let time = params.get("time"), scheduledTime = time ? new Date(parseInt(time)) : void 0, cron = params.get("cron") ?? void 0, result = await service.scheduled({
+ scheduledTime,
+ cron
+ });
+ return new Response(result.outcome, {
+ status: result.outcome === "ok" ? 200 : 500
+ });
+}
+var entry_worker_default = {
+ async fetch(request, env, ctx) {
+ let startTime = Date.now();
+ if (request.headers.get(CoreHeaders.OP) !== null)
+ return handleProxy(request, env);
+ let isDispatchFetch = request.headers.get(CoreHeaders.ORIGINAL_URL) !== null;
+ request = getUserRequest(request, env);
+ let url = new URL(request.url), service = getTargetService(request, url, env);
+ if (service === void 0)
+ return new Response("No entrypoint worker found", { status: 404 });
+ try {
+ if (url.pathname === "/cdn-cgi/mf/scheduled")
+ return await handleScheduled(url.searchParams, service);
+ let response = await service.fetch(request);
+ return isDispatchFetch || (response = await maybePrettifyError(request, response, env)), response = maybeInjectLiveReload(response, env, ctx), maybeLogRequest(request, response, env, ctx, startTime), response;
+ } catch (e) {
+ return new Response(e?.stack ?? String(e), { status: 500 });
+ }
+ }
+};
+export {
+ ProxyServer,
+ entry_worker_default as default
+};
+//# sourceMappingURL=entry.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map b/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map
new file mode 100644
index 0000000..c7de168
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../../../node_modules/kleur/colors.mjs", "../../../../src/workers/core/entry.worker.ts", "../../../../src/workers/core/constants.ts", "../../../../src/workers/core/http.ts", "../../../../src/workers/core/routing.ts", "../../../../src/workers/core/proxy.worker.ts", "../../../../../../node_modules/devalue/src/utils.js", "../../../../../../node_modules/devalue/src/parse.js", "../../../../../../node_modules/devalue/src/stringify.js", "../../../../src/workers/core/devalue.ts"],
+ "mappings": "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",
+ "names": ["assert", "index", "value", "value", "assert"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/d1/database.worker.js b/node_modules/miniflare/dist/src/workers/d1/database.worker.js
new file mode 100644
index 0000000..c2fbc92
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/d1/database.worker.js
@@ -0,0 +1,113 @@
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __decorateClass = (decorators, target, key, kind) => {
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
+ return kind && result && __defProp(target, key, result), result;
+};
+
+// packages/miniflare/src/workers/d1/database.worker.ts
+import assert from "node:assert";
+import {
+ HttpError,
+ MiniflareDurableObject,
+ POST,
+ all,
+ get,
+ viewToBuffer
+} from "miniflare:shared";
+import { z } from "miniflare:zod";
+var D1ValueSchema = z.union([
+ z.number(),
+ z.string(),
+ z.null(),
+ z.number().array()
+]), D1QuerySchema = z.object({
+ sql: z.string(),
+ params: z.array(D1ValueSchema).nullable().optional()
+}), D1QueriesSchema = z.union([D1QuerySchema, z.array(D1QuerySchema)]), served_by = "miniflare.db", D1Error = class extends HttpError {
+ constructor(cause) {
+ super(500);
+ this.cause = cause;
+ }
+ toResponse() {
+ let response = { success: !1, error: typeof this.cause == "object" && this.cause !== null && "message" in this.cause && typeof this.cause.message == "string" ? this.cause.message : String(this.cause) };
+ return Response.json(response);
+ }
+};
+function convertParams(params) {
+ return (params ?? []).map(
+ (param) => (
+ // If `param` is an array, assume it's a byte array
+ Array.isArray(param) ? viewToBuffer(new Uint8Array(param)) : param
+ )
+ );
+}
+function convertResults(rows) {
+ return rows.map(
+ (row) => Object.fromEntries(
+ Object.entries(row).map(([key, value]) => {
+ let normalised;
+ return value instanceof ArrayBuffer ? normalised = Array.from(new Uint8Array(value)) : normalised = value, [key, normalised];
+ })
+ )
+ );
+}
+function sqlStmts(db) {
+ return {
+ getChanges: db.prepare(
+ "SELECT total_changes() AS totalChanges, last_insert_rowid() AS lastRowId"
+ )
+ };
+}
+var D1DatabaseObject = class extends MiniflareDurableObject {
+ #stmts;
+ constructor(state, env) {
+ super(state, env), this.#stmts = sqlStmts(this.db);
+ }
+ #changes() {
+ let changes = get(this.#stmts.getChanges());
+ return assert(changes !== void 0), changes;
+ }
+ #query = (query) => {
+ let beforeTime = performance.now(), beforeSize = this.state.storage.sql.databaseSize, beforeChanges = this.#changes(), params = convertParams(query.params ?? []), cursor = this.db.prepare(query.sql)(...params), results = convertResults(all(cursor)), afterTime = performance.now(), afterSize = this.state.storage.sql.databaseSize, afterChanges = this.#changes(), duration = afterTime - beforeTime, changes = afterChanges.totalChanges - beforeChanges.totalChanges, hasChanges = changes !== 0, lastRowChanged = afterChanges.lastRowId !== beforeChanges.lastRowId, changed = hasChanges || lastRowChanged || afterSize !== beforeSize;
+ return {
+ success: !0,
+ results,
+ meta: {
+ served_by,
+ duration,
+ changes,
+ last_row_id: afterChanges.lastRowId,
+ changed_db: changed,
+ size_after: afterSize
+ }
+ };
+ };
+ #txn(queries) {
+ if (queries = queries.filter(
+ (query) => query.sql.replace(/^\s+--.*/gm, "").trim().length > 0
+ ), queries.length === 0) {
+ let error = new Error("No SQL statements detected.");
+ throw new D1Error(error);
+ }
+ try {
+ return this.state.storage.transactionSync(() => queries.map(this.#query));
+ } catch (e) {
+ throw new D1Error(e);
+ }
+ }
+ queryExecute = async (req) => {
+ let queries = D1QueriesSchema.parse(await req.json());
+ return Array.isArray(queries) || (queries = [queries]), Response.json(this.#txn(queries));
+ };
+};
+__decorateClass([
+ POST("/query"),
+ POST("/execute")
+], D1DatabaseObject.prototype, "queryExecute", 2);
+export {
+ D1DatabaseObject,
+ D1Error
+};
+//# sourceMappingURL=database.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map b/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map
new file mode 100644
index 0000000..87681a5
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/d1/database.worker.ts"],
+ "mappings": "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",
+ "names": []
+}
diff --git a/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js
new file mode 100644
index 0000000..98e414a
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js
@@ -0,0 +1,254 @@
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __decorateClass = (decorators, target, key, kind) => {
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
+ return kind && result && __defProp(target, key, result), result;
+};
+
+// packages/miniflare/src/workers/kv/namespace.worker.ts
+import assert from "node:assert";
+import {
+ DELETE,
+ DeferredPromise,
+ GET,
+ HttpError as HttpError2,
+ KeyValueStorage,
+ MiniflareDurableObject,
+ PUT,
+ maybeApply
+} from "miniflare:shared";
+
+// packages/miniflare/src/workers/kv/constants.ts
+import { testRegExps } from "miniflare:shared";
+var KVLimits = {
+ MIN_CACHE_TTL: 60,
+ MAX_LIST_KEYS: 1e3,
+ MAX_KEY_SIZE: 512,
+ MAX_VALUE_SIZE: 25 * 1024 * 1024,
+ MAX_VALUE_SIZE_TEST: 1024,
+ MAX_METADATA_SIZE: 1024
+}, KVParams = {
+ URL_ENCODED: "urlencoded",
+ CACHE_TTL: "cache_ttl",
+ EXPIRATION: "expiration",
+ EXPIRATION_TTL: "expiration_ttl",
+ LIST_LIMIT: "key_count_limit",
+ LIST_PREFIX: "prefix",
+ LIST_CURSOR: "cursor"
+}, KVHeaders = {
+ EXPIRATION: "CF-Expiration",
+ METADATA: "CF-KV-Metadata"
+};
+
+// packages/miniflare/src/workers/kv/validator.worker.ts
+import { Buffer as Buffer2 } from "node:buffer";
+import { HttpError } from "miniflare:shared";
+function decodeKey({ key }, query) {
+ if (query.get(KVParams.URL_ENCODED)?.toLowerCase() !== "true")
+ return key;
+ try {
+ return decodeURIComponent(key);
+ } catch (e) {
+ throw e instanceof URIError ? new HttpError(400, "Could not URL-decode key name") : e;
+ }
+}
+function validateKey(key) {
+ if (key === "")
+ throw new HttpError(400, "Key names must not be empty");
+ if (key === "." || key === "..")
+ throw new HttpError(
+ 400,
+ `Illegal key name "${key}". Please use a different name.`
+ );
+ validateKeyLength(key);
+}
+function validateKeyLength(key) {
+ let keyLength = Buffer2.byteLength(key);
+ if (keyLength > KVLimits.MAX_KEY_SIZE)
+ throw new HttpError(
+ 414,
+ `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE}.`
+ );
+}
+function validateGetOptions(key, options) {
+ validateKey(key);
+ let cacheTtl = options?.cacheTtl;
+ if (cacheTtl !== void 0 && (isNaN(cacheTtl) || cacheTtl < KVLimits.MIN_CACHE_TTL))
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.CACHE_TTL} of ${cacheTtl}. Cache TTL must be at least ${KVLimits.MIN_CACHE_TTL}.`
+ );
+}
+function validatePutOptions(key, options) {
+ let { now, rawExpiration, rawExpirationTtl, rawMetadata } = options;
+ validateKey(key);
+ let expiration;
+ if (rawExpirationTtl !== null) {
+ let expirationTtl = parseInt(rawExpirationTtl);
+ if (Number.isNaN(expirationTtl) || expirationTtl <= 0)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Please specify integer greater than 0.`
+ );
+ if (expirationTtl < KVLimits.MIN_CACHE_TTL)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Expiration TTL must be at least ${KVLimits.MIN_CACHE_TTL}.`
+ );
+ expiration = now + expirationTtl;
+ } else if (rawExpiration !== null) {
+ if (expiration = parseInt(rawExpiration), Number.isNaN(expiration) || expiration <= now)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Please specify integer greater than the current number of seconds since the UNIX epoch.`
+ );
+ if (expiration < now + KVLimits.MIN_CACHE_TTL)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Expiration times must be at least ${KVLimits.MIN_CACHE_TTL} seconds in the future.`
+ );
+ }
+ let metadata;
+ if (rawMetadata !== null) {
+ let metadataLength = Buffer2.byteLength(rawMetadata);
+ if (metadataLength > KVLimits.MAX_METADATA_SIZE)
+ throw new HttpError(
+ 413,
+ `Metadata length of ${metadataLength} exceeds limit of ${KVLimits.MAX_METADATA_SIZE}.`
+ );
+ metadata = JSON.parse(rawMetadata);
+ }
+ return { expiration, metadata };
+}
+function decodeListOptions(url) {
+ let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0;
+ return { limit, prefix, cursor };
+}
+function validateListOptions(options) {
+ let limit = options.limit;
+ if (limit !== void 0) {
+ if (isNaN(limit) || limit < 1)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.`
+ );
+ if (limit > KVLimits.MAX_LIST_KEYS)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.`
+ );
+ }
+ let prefix = options.prefix;
+ prefix != null && validateKeyLength(prefix);
+}
+
+// packages/miniflare/src/workers/kv/namespace.worker.ts
+function createMaxValueSizeError(length, maxValueSize) {
+ return new HttpError2(
+ 413,
+ `Value length of ${length} exceeds limit of ${maxValueSize}.`
+ );
+}
+var MaxLengthStream = class extends TransformStream {
+ signal;
+ length;
+ constructor(maxLength) {
+ let abortController = new AbortController(), lengthPromise = new DeferredPromise(), length = 0;
+ super({
+ transform(chunk, controller) {
+ length += chunk.byteLength, length <= maxLength ? controller.enqueue(chunk) : abortController.signal.aborted || abortController.abort();
+ },
+ flush() {
+ lengthPromise.resolve(length);
+ }
+ }), this.signal = abortController.signal, this.length = lengthPromise;
+ }
+};
+function millisToSeconds(millis) {
+ return Math.floor(millis / 1e3);
+}
+function secondsToMillis(seconds) {
+ return seconds * 1e3;
+}
+var KVNamespaceObject = class extends MiniflareDurableObject {
+ #storage;
+ get storage() {
+ return this.#storage ??= new KeyValueStorage(this);
+ }
+ get = async (req, params, url) => {
+ let key = decodeKey(params, url.searchParams), cacheTtlParam = url.searchParams.get(KVParams.CACHE_TTL), cacheTtl = cacheTtlParam === null ? void 0 : parseInt(cacheTtlParam);
+ validateGetOptions(key, { cacheTtl });
+ let entry = await this.storage.get(key);
+ if (entry === null)
+ throw new HttpError2(404, "Not Found");
+ let headers = new Headers();
+ return entry.expiration !== void 0 && headers.set(
+ KVHeaders.EXPIRATION,
+ millisToSeconds(entry.expiration).toString()
+ ), entry.metadata !== void 0 && headers.set(KVHeaders.METADATA, JSON.stringify(entry.metadata)), new Response(entry.value, { headers });
+ };
+ put = async (req, params, url) => {
+ let key = decodeKey(params, url.searchParams), rawExpiration = url.searchParams.get(KVParams.EXPIRATION), rawExpirationTtl = url.searchParams.get(KVParams.EXPIRATION_TTL), rawMetadata = req.headers.get(KVHeaders.METADATA), now = millisToSeconds(this.timers.now()), { expiration, metadata } = validatePutOptions(key, {
+ now,
+ rawExpiration,
+ rawExpirationTtl,
+ rawMetadata
+ }), value = req.body;
+ assert(value !== null);
+ let contentLength = parseInt(req.headers.get("Content-Length")), valueLengthHint = Number.isNaN(contentLength) ? void 0 : contentLength, maxValueSize = this.beingTested ? KVLimits.MAX_VALUE_SIZE_TEST : KVLimits.MAX_VALUE_SIZE, maxLengthStream;
+ if (valueLengthHint !== void 0 && valueLengthHint > maxValueSize)
+ throw createMaxValueSizeError(valueLengthHint, maxValueSize);
+ maxLengthStream = new MaxLengthStream(maxValueSize), value = value.pipeThrough(maxLengthStream);
+ try {
+ await this.storage.put({
+ key,
+ value,
+ expiration: maybeApply(secondsToMillis, expiration),
+ metadata,
+ signal: maxLengthStream?.signal
+ });
+ } catch (e) {
+ if (typeof e == "object" && e !== null && "name" in e && e.name === "AbortError") {
+ assert(maxLengthStream !== void 0);
+ let length = await maxLengthStream.length;
+ throw createMaxValueSizeError(length, maxValueSize);
+ } else
+ throw e;
+ }
+ return new Response();
+ };
+ delete = async (req, params, url) => {
+ let key = decodeKey(params, url.searchParams);
+ return validateKey(key), await this.storage.delete(key), new Response();
+ };
+ list = async (req, params, url) => {
+ let options = decodeListOptions(url);
+ validateListOptions(options);
+ let res = await this.storage.list(options), keys = res.keys.map((key) => ({
+ name: key.key,
+ expiration: maybeApply(millisToSeconds, key.expiration),
+ // workerd expects metadata to be a JSON-serialised string
+ metadata: maybeApply(JSON.stringify, key.metadata)
+ })), result;
+ return res.cursor === void 0 ? result = { keys, list_complete: !0, cacheStatus: null } : result = {
+ keys,
+ list_complete: !1,
+ cursor: res.cursor,
+ cacheStatus: null
+ }, Response.json(result);
+ };
+};
+__decorateClass([
+ GET("/:key")
+], KVNamespaceObject.prototype, "get", 2), __decorateClass([
+ PUT("/:key")
+], KVNamespaceObject.prototype, "put", 2), __decorateClass([
+ DELETE("/:key")
+], KVNamespaceObject.prototype, "delete", 2), __decorateClass([
+ GET("/")
+], KVNamespaceObject.prototype, "list", 2);
+export {
+ KVNamespaceObject
+};
+//# sourceMappingURL=namespace.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map
new file mode 100644
index 0000000..ddee3bb
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/kv/namespace.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"],
+ "mappings": ";;;;;;;;;AAAA,OAAO,YAAY;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;;;ACXP,SAAyB,mBAAmB;AAErC,IAAM,WAAW;AAAA,EACtB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB,KAAK,OAAO;AAAA,EAC5B,qBAAqB;AAAA,EACrB,mBAAmB;AACrB,GAEa,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AACf,GAEa,YAAY;AAAA,EACvB,YAAY;AAAA,EACZ,UAAU;AACZ;;;ACxBA,SAAS,UAAAC,eAAc;AACvB,SAAS,iBAAiB;AAGnB,SAAS,UAAU,EAAE,IAAI,GAAoB,OAAwB;AAC1E,MAAI,MAAM,IAAI,SAAS,WAAW,GAAG,YAAY,MAAM;AAAQ,WAAO;AACtE,MAAI;AACF,WAAO,mBAAmB,GAAG;AAAA,EAC/B,SAAS,GAAP;AACA,UAAI,aAAa,WACT,IAAI,UAAU,KAAK,+BAA+B,IAElD;AAAA,EAEV;AACF;AAEO,SAAS,YAAY,KAAmB;AAC7C,MAAI,QAAQ;AACV,UAAM,IAAI,UAAU,KAAK,6BAA6B;AAExD,MAAI,QAAQ,OAAO,QAAQ;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,MACA,qBAAqB;AAAA,IACvB;AAEF,oBAAkB,GAAG;AACvB;AAEO,SAAS,kBAAkB,KAAmB;AACnD,MAAM,YAAYC,QAAO,WAAW,GAAG;AACvC,MAAI,YAAY,SAAS;AACvB,UAAM,IAAI;AAAA,MACR;AAAA,MACA,2BAA2B,yCAAyC,SAAS;AAAA,IAC/E;AAEJ;AAEO,SAAS,mBACd,KACA,SACM;AACN,cAAY,GAAG;AAGf,MAAM,WAAW,SAAS;AAC1B,MACE,aAAa,WACZ,MAAM,QAAQ,KAAK,WAAW,SAAS;AAExC,UAAM,IAAI;AAAA,MACR;AAAA,MACA,WAAW,SAAS,gBAAgB,wCAAwC,SAAS;AAAA,IACvF;AAEJ;AAEO,SAAS,mBACd,KACA,SAM2D;AAC3D,MAAM,EAAE,KAAK,eAAe,kBAAkB,YAAY,IAAI;AAE9D,cAAY,GAAG;AAGf,MAAI;AACJ,MAAI,qBAAqB,MAAM;AAC7B,QAAM,gBAAgB,SAAS,gBAAgB;AAC/C,QAAI,OAAO,MAAM,aAAa,KAAK,iBAAiB;AAClD,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,qBAAqB;AAAA,MAC3C;AAEF,QAAI,gBAAgB,SAAS;AAC3B,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,qBAAqB,qDAAqD,SAAS;AAAA,MACzG;AAEF,iBAAa,MAAM;AAAA,EACrB,WAAW,kBAAkB,MAAM;AAEjC,QADA,aAAa,SAAS,aAAa,GAC/B,OAAO,MAAM,UAAU,KAAK,cAAc;AAC5C,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,iBAAiB;AAAA,MACvC;AAEF,QAAI,aAAa,MAAM,SAAS;AAC9B,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,iBAAiB,oDAAoD,SAAS;AAAA,MACpG;AAAA,EAEJ;AAGA,MAAI;AACJ,MAAI,gBAAgB,MAAM;AACxB,QAAM,iBAAiBA,QAAO,WAAW,WAAW;AACpD,QAAI,iBAAiB,SAAS;AAC5B,YAAM,IAAI;AAAA,QACR;AAAA,QACA,sBAAsB,mCAAmC,SAAS;AAAA,MACpE;AAEF,eAAW,KAAK,MAAM,WAAW;AAAA,EACnC;AAEA,SAAO,EAAE,YAAY,SAAS;AAChC;AAEO,SAAS,kBAAkB,KAAU;AAC1C,MAAM,aAAa,IAAI,aAAa,IAAI,SAAS,UAAU,GACrD,QACJ,eAAe,OAAO,SAAS,gBAAgB,SAAS,UAAU,GAC9D,SAAS,IAAI,aAAa,IAAI,SAAS,WAAW,KAAK,QACvD,SAAS,IAAI,aAAa,IAAI,SAAS,WAAW,KAAK;AAC7D,SAAO,EAAE,OAAO,QAAQ,OAAO;AACjC;AAEO,SAAS,oBAAoB,SAAuC;AAEzE,MAAM,QAAQ,QAAQ;AACtB,MAAI,UAAU,QAAW;AACvB,QAAI,MAAM,KAAK,KAAK,QAAQ;AAC1B,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,iBAAiB;AAAA,MACvC;AAEF,QAAI,QAAQ,SAAS;AACnB,YAAM,IAAI;AAAA,QACR;AAAA,QACA,WAAW,SAAS,iBAAiB,8CAA8C,SAAS;AAAA,MAC9F;AAAA,EAEJ;AAGA,MAAM,SAAS,QAAQ;AACvB,EAAI,UAAU,QAAM,kBAAkB,MAAM;AAC9C;;;AF7HA,SAAS,wBAAwB,QAAgB,cAAsB;AACrE,SAAO,IAAIC;AAAA,IACT;AAAA,IACA,mBAAmB,2BAA2B;AAAA,EAChD;AACF;AACA,IAAM,kBAAN,cAA8B,gBAAwC;AAAA,EAC3D;AAAA,EACA;AAAA,EAET,YAAY,WAAmB;AAC7B,QAAM,kBAAkB,IAAI,gBAAgB,GACtC,gBAAgB,IAAI,gBAAwB,GAE9C,SAAS;AACb,UAAM;AAAA,MACJ,UAAU,OAAO,YAAY;AAC3B,kBAAU,MAAM,YAGZ,UAAU,YACZ,WAAW,QAAQ,KAAK,IACd,gBAAgB,OAAO,WACjC,gBAAgB,MAAM;AAAA,MAE1B;AAAA,MACA,QAAQ;AAMN,sBAAc,QAAQ,MAAM;AAAA,MAC9B;AAAA,IACF,CAAC,GAED,KAAK,SAAS,gBAAgB,QAC9B,KAAK,SAAS;AAAA,EAChB;AACF;AAEA,SAAS,gBAAgB,QAAwB;AAC/C,SAAO,KAAK,MAAM,SAAS,GAAI;AACjC;AAEA,SAAS,gBAAgB,SAAyB;AAChD,SAAO,UAAU;AACnB;AAEO,IAAM,oBAAN,cAAgC,uBAAuB;AAAA,EAC5D;AAAA,EACA,IAAI,UAAU;AAEZ,WAAQ,KAAK,aAAa,IAAI,gBAAgB,IAAI;AAAA,EACpD;AAAA,EAGA,MAA8B,OAAO,KAAK,QAAQ,QAAQ;AAExD,QAAM,MAAM,UAAU,QAAQ,IAAI,YAAY,GACxC,gBAAgB,IAAI,aAAa,IAAI,SAAS,SAAS,GACvD,WACJ,kBAAkB,OAAO,SAAY,SAAS,aAAa;AAG7D,uBAAmB,KAAK,EAAE,SAAS,CAAC;AACpC,QAAM,QAAQ,MAAM,KAAK,QAAQ,IAAI,GAAG;AACxC,QAAI,UAAU;AAAM,YAAM,IAAIA,WAAU,KAAK,WAAW;AAGxD,QAAM,UAAU,IAAI,QAAQ;AAC5B,WAAI,MAAM,eAAe,UACvB,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,gBAAgB,MAAM,UAAU,EAAE,SAAS;AAAA,IAC7C,GAEE,MAAM,aAAa,UACrB,QAAQ,IAAI,UAAU,UAAU,KAAK,UAAU,MAAM,QAAQ,CAAC,GAEzD,IAAI,SAAS,MAAM,OAAO,EAAE,QAAQ,CAAC;AAAA,EAC9C;AAAA,EAGA,MAA8B,OAAO,KAAK,QAAQ,QAAQ;AAExD,QAAM,MAAM,UAAU,QAAQ,IAAI,YAAY,GACxC,gBAAgB,IAAI,aAAa,IAAI,SAAS,UAAU,GACxD,mBAAmB,IAAI,aAAa,IAAI,SAAS,cAAc,GAC/D,cAAc,IAAI,QAAQ,IAAI,UAAU,QAAQ,GAGhD,MAAM,gBAAgB,KAAK,OAAO,IAAI,CAAC,GACvC,EAAE,YAAY,SAAS,IAAI,mBAAmB,KAAK;AAAA,MACvD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,GAKG,QAAQ,IAAI;AAChB,WAAO,UAAU,IAAI;AAGrB,QAAM,gBAAgB,SAAS,IAAI,QAAQ,IAAI,gBAAgB,CAAE,GAC3D,kBAAkB,OAAO,MAAM,aAAa,IAC9C,SACA,eAEE,eAAe,KAAK,cACtB,SAAS,sBACT,SAAS,gBACT;AACJ,QAAI,oBAAoB,UAAa,kBAAkB;AAErD,YAAM,wBAAwB,iBAAiB,YAAY;AAK3D,sBAAkB,IAAI,gBAAgB,YAAY,GAClD,QAAQ,MAAM,YAAY,eAAe;AAI3C,QAAI;AACF,YAAM,KAAK,QAAQ,IAAI;AAAA,QACrB;AAAA,QACA;AAAA,QACA,YAAY,WAAW,iBAAiB,UAAU;AAAA,QAClD;AAAA,QACA,QAAQ,iBAAiB;AAAA,MAC3B,CAAC;AAAA,IACH,SAAS,GAAP;AACA,UACE,OAAO,KAAM,YACb,MAAM,QACN,UAAU,KACV,EAAE,SAAS,cACX;AAIA,eAAO,oBAAoB,MAAS;AACpC,YAAM,SAAS,MAAM,gBAAgB;AACrC,cAAM,wBAAwB,QAAQ,YAAY;AAAA,MACpD;AACE,cAAM;AAAA,IAEV;AAEA,WAAO,IAAI,SAAS;AAAA,EACtB;AAAA,EAGA,SAAiC,OAAO,KAAK,QAAQ,QAAQ;AAE3D,QAAM,MAAM,UAAU,QAAQ,IAAI,YAAY;AAC9C,uBAAY,GAAG,GAGf,MAAM,KAAK,QAAQ,OAAO,GAAG,GACtB,IAAI,SAAS;AAAA,EACtB;AAAA,EAGA,OAAqB,OAAO,KAAK,QAAQ,QAAQ;AAE/C,QAAM,UAAU,kBAAkB,GAAG;AACrC,wBAAoB,OAAO;AAG3B,QAAM,MAAM,MAAM,KAAK,QAAQ,KAAK,OAAO,GACrC,OAAO,IAAI,KAAK,IAAiC,CAAC,SAAS;AAAA,MAC/D,MAAM,IAAI;AAAA,MACV,YAAY,WAAW,iBAAiB,IAAI,UAAU;AAAA;AAAA,MAEtD,UAAU,WAAW,KAAK,WAAW,IAAI,QAAQ;AAAA,IACnD,EAAE,GACE;AACJ,WAAI,IAAI,WAAW,SACjB,SAAS,EAAE,MAAM,eAAe,IAAM,aAAa,KAAK,IAExD,SAAS;AAAA,MACP;AAAA,MACA,eAAe;AAAA,MACf,QAAQ,IAAI;AAAA,MACZ,aAAa;AAAA,IACf,GAEK,SAAS,KAAK,MAAM;AAAA,EAC7B;AACF;AA1IE;AAAA,EADC,IAAI,OAAO;AAAA,GAPD,kBAQX,sBA2BA;AAAA,EADC,IAAI,OAAO;AAAA,GAlCD,kBAmCX,sBA0EA;AAAA,EADC,OAAO,OAAO;AAAA,GA5GJ,kBA6GX,yBAWA;AAAA,EADC,IAAI,GAAG;AAAA,GAvHG,kBAwHX;",
+ "names": ["HttpError", "Buffer", "Buffer", "HttpError"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/kv/sites.worker.js b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js
new file mode 100644
index 0000000..e81e4fe
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js
@@ -0,0 +1,147 @@
+// packages/miniflare/src/workers/kv/sites.worker.ts
+import { SharedBindings, base64Decode, base64Encode } from "miniflare:shared";
+
+// packages/miniflare/src/workers/kv/constants.ts
+import { testRegExps } from "miniflare:shared";
+var KVLimits = {
+ MIN_CACHE_TTL: 60,
+ MAX_LIST_KEYS: 1e3,
+ MAX_KEY_SIZE: 512,
+ MAX_VALUE_SIZE: 25 * 1024 * 1024,
+ MAX_VALUE_SIZE_TEST: 1024,
+ MAX_METADATA_SIZE: 1024
+}, KVParams = {
+ URL_ENCODED: "urlencoded",
+ CACHE_TTL: "cache_ttl",
+ EXPIRATION: "expiration",
+ EXPIRATION_TTL: "expiration_ttl",
+ LIST_LIMIT: "key_count_limit",
+ LIST_PREFIX: "prefix",
+ LIST_CURSOR: "cursor"
+};
+var SiteBindings = {
+ KV_NAMESPACE_SITE: "__STATIC_CONTENT",
+ JSON_SITE_MANIFEST: "__STATIC_CONTENT_MANIFEST",
+ JSON_SITE_FILTER: "MINIFLARE_SITE_FILTER"
+}, SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/";
+function encodeSitesKey(key) {
+ return SITES_NO_CACHE_PREFIX + encodeURIComponent(key);
+}
+function decodeSitesKey(key) {
+ return key.startsWith(SITES_NO_CACHE_PREFIX) ? decodeURIComponent(key.substring(SITES_NO_CACHE_PREFIX.length)) : key;
+}
+function deserialiseRegExps(matcher) {
+ return {
+ include: matcher.include.map((regExp) => new RegExp(regExp)),
+ exclude: matcher.exclude.map((regExp) => new RegExp(regExp))
+ };
+}
+function deserialiseSiteRegExps(siteRegExps) {
+ return {
+ include: siteRegExps.include && deserialiseRegExps(siteRegExps.include),
+ exclude: siteRegExps.exclude && deserialiseRegExps(siteRegExps.exclude)
+ };
+}
+function testSiteRegExps(regExps, key) {
+ return regExps.include !== void 0 ? testRegExps(regExps.include, key) : regExps.exclude !== void 0 ? !testRegExps(regExps.exclude, key) : !0;
+}
+
+// packages/miniflare/src/workers/kv/validator.worker.ts
+import { Buffer } from "node:buffer";
+import { HttpError } from "miniflare:shared";
+function validateKeyLength(key) {
+ let keyLength = Buffer.byteLength(key);
+ if (keyLength > KVLimits.MAX_KEY_SIZE)
+ throw new HttpError(
+ 414,
+ `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE}.`
+ );
+}
+function decodeListOptions(url) {
+ let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0;
+ return { limit, prefix, cursor };
+}
+function validateListOptions(options) {
+ let limit = options.limit;
+ if (limit !== void 0) {
+ if (isNaN(limit) || limit < 1)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.`
+ );
+ if (limit > KVLimits.MAX_LIST_KEYS)
+ throw new HttpError(
+ 400,
+ `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.`
+ );
+ }
+ let prefix = options.prefix;
+ prefix != null && validateKeyLength(prefix);
+}
+
+// packages/miniflare/src/workers/kv/sites.worker.ts
+var siteRegExpsCache = /* @__PURE__ */ new WeakMap();
+function getSiteRegExps(env) {
+ let regExps = siteRegExpsCache.get(env);
+ return regExps !== void 0 || (regExps = deserialiseSiteRegExps(env[SiteBindings.JSON_SITE_FILTER]), siteRegExpsCache.set(env, regExps)), regExps;
+}
+async function* walkDirectory(blobsService, path = "") {
+ let res = await blobsService.fetch(`http://placeholder/${path}`);
+ if (!(res.headers.get("Content-Type") ?? "").toLowerCase().startsWith("application/json")) {
+ await res.body?.pipeTo(new WritableStream()), yield path;
+ return;
+ }
+ let entries = await res.json();
+ for (let { name, type } of entries) {
+ let entryPath = `${path}${path === "" ? "" : "/"}${name}`;
+ type === "directory" ? yield* walkDirectory(blobsService, entryPath) : yield entryPath;
+ }
+}
+var encoder = new TextEncoder();
+function arrayCompare(a, b) {
+ let minLength = Math.min(a.length, b.length);
+ for (let i = 0; i < minLength; i++) {
+ let aElement = a[i], bElement = b[i];
+ if (aElement < bElement)
+ return -1;
+ if (aElement > bElement)
+ return 1;
+ }
+ return a.length - b.length;
+}
+async function handleListRequest(url, blobsService, siteRegExps) {
+ let options = decodeListOptions(url);
+ validateListOptions(options);
+ let { limit = KVLimits.MAX_LIST_KEYS, prefix, cursor } = options, keys = [];
+ for await (let name of walkDirectory(blobsService))
+ testSiteRegExps(siteRegExps, name) && (name = encodeSitesKey(name), !(prefix !== void 0 && !name.startsWith(prefix)) && keys.push({ name, encodedName: encoder.encode(name) }));
+ keys.sort((a, b) => arrayCompare(a.encodedName, b.encodedName));
+ for (let key of keys)
+ delete key.encodedName;
+ let startAfter = cursor === void 0 ? "" : base64Decode(cursor), startIndex = 0;
+ startAfter !== "" && (startIndex = keys.findIndex(({ name }) => name === startAfter), startIndex === -1 && (startIndex = keys.length), startIndex++);
+ let endIndex = startIndex + limit, nextCursor = endIndex < keys.length ? base64Encode(keys[endIndex - 1].name) : void 0;
+ return keys = keys.slice(startIndex, endIndex), nextCursor === void 0 ? Response.json({ keys, list_complete: !0 }) : Response.json({ keys, list_complete: !1, cursor: nextCursor });
+}
+var sites_worker_default = {
+ async fetch(request, env) {
+ if (request.method !== "GET") {
+ let message = `Cannot ${request.method.toLowerCase()}() with Workers Sites namespace`;
+ return new Response(message, { status: 405, statusText: message });
+ }
+ let url = new URL(request.url), key = url.pathname.substring(1);
+ url.searchParams.get(KVParams.URL_ENCODED)?.toLowerCase() === "true" && (key = decodeURIComponent(key)), key = decodeSitesKey(key);
+ let siteRegExps = getSiteRegExps(env);
+ if (key !== "" && !testSiteRegExps(siteRegExps, key))
+ return new Response("Not Found", {
+ status: 404,
+ statusText: "Not Found"
+ });
+ let blobsService = env[SharedBindings.MAYBE_SERVICE_BLOBS];
+ return key === "" ? handleListRequest(url, blobsService, siteRegExps) : blobsService.fetch(new URL(key, "http://placeholder"));
+ }
+};
+export {
+ sites_worker_default as default
+};
+//# sourceMappingURL=sites.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map
new file mode 100644
index 0000000..f44adab
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/kv/sites.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"],
+ "mappings": "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",
+ "names": []
+}
diff --git a/node_modules/miniflare/dist/src/workers/queues/broker.worker.js b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js
new file mode 100644
index 0000000..793e8f6
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js
@@ -0,0 +1,238 @@
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __decorateClass = (decorators, target, key, kind) => {
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
+ return kind && result && __defProp(target, key, result), result;
+};
+
+// packages/miniflare/src/workers/queues/broker.worker.ts
+import assert from "node:assert";
+import { Buffer as Buffer2 } from "node:buffer";
+
+// node_modules/kleur/colors.mjs
+var FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY = !0;
+typeof process < "u" && ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}, isTTY = process.stdout && process.stdout.isTTY);
+var $ = {
+ enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY)
+};
+function init(x, y) {
+ let rgx = new RegExp(`\\x1b\\[${y}m`, "g"), open = `\x1B[${x}m`, close = `\x1B[${y}m`;
+ return function(txt) {
+ return !$.enabled || txt == null ? txt : open + (~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close;
+ };
+}
+var reset = init(0, 0), bold = init(1, 22), dim = init(2, 22), italic = init(3, 23), underline = init(4, 24), inverse = init(7, 27), hidden = init(8, 28), strikethrough = init(9, 29), black = init(30, 39), red = init(31, 39), green = init(32, 39), yellow = init(33, 39), blue = init(34, 39), magenta = init(35, 39), cyan = init(36, 39), white = init(37, 39), gray = init(90, 39), grey = init(90, 39), bgBlack = init(40, 49), bgRed = init(41, 49), bgGreen = init(42, 49), bgYellow = init(43, 49), bgBlue = init(44, 49), bgMagenta = init(45, 49), bgCyan = init(46, 49), bgWhite = init(47, 49);
+
+// packages/miniflare/src/workers/queues/broker.worker.ts
+import {
+ HttpError,
+ LogLevel,
+ MiniflareDurableObject,
+ POST,
+ SharedBindings,
+ viewToBuffer
+} from "miniflare:shared";
+
+// packages/miniflare/src/workers/queues/constants.ts
+var QueueBindings = {
+ SERVICE_WORKER_PREFIX: "MINIFLARE_WORKER_",
+ MAYBE_JSON_QUEUE_CONSUMERS: "MINIFLARE_QUEUE_CONSUMERS"
+};
+
+// packages/miniflare/src/workers/queues/schemas.ts
+import { Base64DataSchema, z } from "miniflare:zod";
+var QueueConsumerOptionsSchema = /* @__PURE__ */ z.object({
+ // https://developers.cloudflare.com/queues/platform/configuration/#consumer
+ // https://developers.cloudflare.com/queues/platform/limits/
+ maxBatchSize: z.number().min(0).max(100).optional(),
+ maxBatchTimeout: z.number().min(0).max(30).optional(),
+ // seconds
+ maxRetires: z.number().min(0).max(100).optional(),
+ deadLetterQueue: z.ostring()
+}), QueueConsumerSchema = /* @__PURE__ */ z.intersection(
+ QueueConsumerOptionsSchema,
+ z.object({ workerName: z.string() })
+), QueueConsumersSchema = /* @__PURE__ */ z.record(QueueConsumerSchema), QueueContentTypeSchema = /* @__PURE__ */ z.enum(["text", "json", "bytes", "v8"]).default("v8"), QueueIncomingMessageSchema = /* @__PURE__ */ z.object({
+ contentType: QueueContentTypeSchema,
+ body: Base64DataSchema,
+ // When enqueuing messages on dead-letter queues, we want to reuse the same ID
+ // and timestamp
+ id: z.ostring(),
+ timestamp: z.onumber()
+}), QueuesBatchRequestSchema = /* @__PURE__ */ z.object({
+ messages: z.array(QueueIncomingMessageSchema)
+});
+
+// packages/miniflare/src/workers/queues/broker.worker.ts
+var MAX_MESSAGE_SIZE_BYTES = 128 * 1e3, MAX_MESSAGE_BATCH_COUNT = 100, MAX_MESSAGE_BATCH_SIZE = (256 + 32) * 1e3, DEFAULT_BATCH_SIZE = 5, DEFAULT_BATCH_TIMEOUT = 1, DEFAULT_RETRIES = 2, exceptionQueueResponse = {
+ outcome: "exception",
+ retryAll: !1,
+ ackAll: !1,
+ explicitRetries: [],
+ explicitAcks: []
+}, PayloadTooLargeError = class extends HttpError {
+ constructor(message) {
+ super(413, message);
+ }
+};
+function validateMessageSize(headers) {
+ let size = headers.get("Content-Length");
+ if (size !== null && parseInt(size) > MAX_MESSAGE_SIZE_BYTES)
+ throw new PayloadTooLargeError(
+ `message length of ${size} bytes exceeds limit of ${MAX_MESSAGE_SIZE_BYTES}`
+ );
+}
+function validateContentType(headers) {
+ let format = headers.get("X-Msg-Fmt") ?? void 0, result = QueueContentTypeSchema.safeParse(format);
+ if (!result.success)
+ throw new HttpError(
+ 400,
+ `message content type ${format} is invalid; if specified, must be one of 'text', 'json', 'bytes', or 'v8'`
+ );
+ return result.data;
+}
+function validateBatchSize(headers) {
+ let count = headers.get("CF-Queue-Batch-Count");
+ if (count !== null && parseInt(count) > MAX_MESSAGE_BATCH_COUNT)
+ throw new PayloadTooLargeError(
+ `batch message count of ${count} exceeds limit of ${MAX_MESSAGE_BATCH_COUNT}`
+ );
+ let largestSize = headers.get("CF-Queue-Largest-Msg");
+ if (largestSize !== null && parseInt(largestSize) > MAX_MESSAGE_SIZE_BYTES)
+ throw new PayloadTooLargeError(
+ `message in batch has length ${largestSize} bytes which exceeds single message size limit of ${MAX_MESSAGE_SIZE_BYTES}`
+ );
+ let batchSize = headers.get("CF-Queue-Batch-Bytes");
+ if (batchSize !== null && parseInt(batchSize) > MAX_MESSAGE_BATCH_SIZE)
+ throw new PayloadTooLargeError(
+ `batch size of ${batchSize} bytes exceeds limit of 256000`
+ );
+}
+function deserialise({ contentType, body }) {
+ return contentType === "text" ? { contentType, body: body.toString() } : contentType === "json" ? { contentType, body: JSON.parse(body.toString()) } : contentType === "bytes" ? { contentType, body: viewToBuffer(body) } : { contentType, body };
+}
+function serialise(msg) {
+ let body;
+ return msg.body.contentType === "text" ? body = Buffer2.from(msg.body.body) : msg.body.contentType === "json" ? body = Buffer2.from(JSON.stringify(msg.body.body)) : msg.body.contentType === "bytes" ? body = Buffer2.from(msg.body.body) : body = msg.body.body, {
+ id: msg.id,
+ timestamp: msg.timestamp,
+ contentType: msg.body.contentType,
+ body: body.toString("base64")
+ };
+}
+var QueueMessage = class {
+ constructor(id, timestamp, body) {
+ this.id = id;
+ this.timestamp = timestamp;
+ this.body = body;
+ }
+ #failedAttempts = 0;
+ incrementFailedAttempts() {
+ return ++this.#failedAttempts;
+ }
+};
+function formatQueueResponse(queueName, acked, total, time) {
+ let colour;
+ acked === total ? colour = green : acked > 0 ? colour = yellow : colour = red;
+ let message = `${bold("QUEUE")} ${queueName} ${colour(`${acked}/${total}`)}`;
+ return time !== void 0 && (message += grey(` (${time}ms)`)), reset(message);
+}
+var QueueBrokerObject = class extends MiniflareDurableObject {
+ #consumers;
+ #messages = [];
+ #pendingFlush;
+ constructor(state, env) {
+ super(state, env);
+ let maybeConsumers = env[QueueBindings.MAYBE_JSON_QUEUE_CONSUMERS];
+ maybeConsumers === void 0 ? this.#consumers = {} : this.#consumers = QueueConsumersSchema.parse(maybeConsumers);
+ }
+ get #maybeConsumer() {
+ return this.#consumers[this.name];
+ }
+ #dispatchBatch(workerName, batch) {
+ let bindingName = `${QueueBindings.SERVICE_WORKER_PREFIX}${workerName}`, maybeService = this.env[bindingName];
+ assert(
+ maybeService !== void 0,
+ `Expected ${bindingName} service binding`
+ );
+ let messages = batch.map(({ id, timestamp, body }) => body.contentType === "v8" ? { id, timestamp, serializedBody: body.body } : { id, timestamp, body: body.body });
+ return maybeService.queue(this.name, messages);
+ }
+ #flush = async () => {
+ let consumer = this.#maybeConsumer;
+ assert(consumer !== void 0);
+ let batchSize = consumer.maxBatchSize ?? DEFAULT_BATCH_SIZE, maxAttempts = (consumer.maxRetires ?? DEFAULT_RETRIES) + 1, maxAttemptsS = maxAttempts === 1 ? "" : "s", batch = this.#messages.splice(0, batchSize), startTime = Date.now(), endTime, response;
+ try {
+ response = await this.#dispatchBatch(consumer.workerName, batch), endTime = Date.now();
+ } catch (e) {
+ endTime = Date.now(), await this.logWithLevel(LogLevel.ERROR, String(e)), response = exceptionQueueResponse;
+ }
+ let retryAll = response.retryAll || response.outcome !== "ok", explicitRetries = new Set(response.explicitRetries), failedMessages = 0, toRetry = [], toDeadLetterQueue = [];
+ for (let message of batch)
+ (retryAll || explicitRetries.has(message.id)) && (failedMessages++, message.incrementFailedAttempts() < maxAttempts ? (await this.logWithLevel(
+ LogLevel.DEBUG,
+ `Retrying message "${message.id}" on queue "${this.name}"...`
+ ), toRetry.push(message)) : consumer.deadLetterQueue !== void 0 ? (await this.logWithLevel(
+ LogLevel.WARN,
+ `Moving message "${message.id}" on queue "${this.name}" to dead letter queue "${consumer.deadLetterQueue}" after ${maxAttempts} failed attempt${maxAttemptsS}...`
+ ), toDeadLetterQueue.push(message)) : await this.logWithLevel(
+ LogLevel.WARN,
+ `Dropped message "${message.id}" on queue "${this.name}" after ${maxAttempts} failed attempt${maxAttemptsS}!`
+ ));
+ let acked = batch.length - failedMessages;
+ if (await this.logWithLevel(
+ LogLevel.INFO,
+ formatQueueResponse(this.name, acked, batch.length, endTime - startTime)
+ ), this.#messages.push(...toRetry), this.#pendingFlush = void 0, this.#messages.length > 0 && this.#ensurePendingFlush(), toDeadLetterQueue.length > 0) {
+ let name = consumer.deadLetterQueue;
+ assert(name !== void 0);
+ let ns = this.env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = ns.idFromName(name), stub = ns.get(id), cf = { miniflare: { name } }, batchRequest = {
+ messages: toDeadLetterQueue.map(serialise)
+ }, res = await stub.fetch("http://placeholder/batch", {
+ method: "POST",
+ body: JSON.stringify(batchRequest),
+ cf
+ });
+ assert(res.ok);
+ }
+ };
+ #ensurePendingFlush() {
+ let consumer = this.#maybeConsumer;
+ assert(consumer !== void 0);
+ let batchSize = consumer.maxBatchSize ?? DEFAULT_BATCH_SIZE, batchTimeout = consumer.maxBatchTimeout ?? DEFAULT_BATCH_TIMEOUT, batchHasSpace = this.#messages.length < batchSize;
+ if (this.#pendingFlush !== void 0) {
+ if (this.#pendingFlush.immediate || batchHasSpace)
+ return;
+ this.timers.clearTimeout(this.#pendingFlush.timeout), this.#pendingFlush = void 0;
+ }
+ let delay = batchHasSpace ? batchTimeout * 1e3 : 0, timeout = this.timers.setTimeout(this.#flush, delay);
+ this.#pendingFlush = { immediate: delay === 0, timeout };
+ }
+ #enqueue(messages) {
+ for (let message of messages) {
+ let randomness = crypto.getRandomValues(new Uint8Array(16)), id = message.id ?? Buffer2.from(randomness).toString("hex"), timestamp = message.timestamp ?? this.timers.now(), body = deserialise(message);
+ this.#messages.push(new QueueMessage(id, timestamp, body));
+ }
+ this.#ensurePendingFlush();
+ }
+ message = async (req) => {
+ validateMessageSize(req.headers);
+ let contentType = validateContentType(req.headers), body = Buffer2.from(await req.arrayBuffer());
+ return this.#maybeConsumer === void 0 ? new Response() : (this.#enqueue([{ contentType, body }]), new Response());
+ };
+ batch = async (req) => {
+ validateBatchSize(req.headers);
+ let body = QueuesBatchRequestSchema.parse(await req.json());
+ return this.#maybeConsumer === void 0 ? new Response() : (this.#enqueue(body.messages), new Response());
+ };
+};
+__decorateClass([
+ POST("/message")
+], QueueBrokerObject.prototype, "message", 2), __decorateClass([
+ POST("/batch")
+], QueueBrokerObject.prototype, "batch", 2);
+export {
+ QueueBrokerObject
+};
+//# sourceMappingURL=broker.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map
new file mode 100644
index 0000000..abb4f32
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/queues/broker.worker.ts", "../../../../../../node_modules/kleur/colors.mjs", "../../../../src/workers/queues/constants.ts", "../../../../src/workers/queues/schemas.ts"],
+ "mappings": "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",
+ "names": ["Buffer", "Buffer"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js
new file mode 100644
index 0000000..2c239d7
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js
@@ -0,0 +1,1158 @@
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __decorateClass = (decorators, target, key, kind) => {
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
+ return kind && result && __defProp(target, key, result), result;
+};
+
+// packages/miniflare/src/workers/r2/bucket.worker.ts
+import assert2 from "node:assert";
+import { Buffer as Buffer3 } from "node:buffer";
+import { createHash } from "node:crypto";
+import {
+ DeferredPromise,
+ GET,
+ MiniflareDurableObject,
+ PUT,
+ WaitGroup,
+ all,
+ base64Decode,
+ base64Encode,
+ escapeLike,
+ get,
+ maybeApply,
+ readPrefix
+} from "miniflare:shared";
+
+// packages/miniflare/src/workers/r2/constants.ts
+var R2Limits = {
+ MAX_LIST_KEYS: 1e3,
+ MAX_KEY_SIZE: 1024,
+ // https://developers.cloudflare.com/r2/platform/limits/
+ MAX_VALUE_SIZE: 5363466240,
+ // 5 GiB - 5 MiB
+ MAX_METADATA_SIZE: 2048,
+ // 2048 B
+ MIN_MULTIPART_PART_SIZE: 5242880,
+ MIN_MULTIPART_PART_SIZE_TEST: 50
+}, R2Headers = {
+ ERROR: "cf-r2-error",
+ REQUEST: "cf-r2-request",
+ METADATA_SIZE: "cf-r2-metadata-size"
+};
+
+// packages/miniflare/src/workers/r2/errors.worker.ts
+import { HttpError } from "miniflare:shared";
+var R2ErrorCode = {
+ INTERNAL_ERROR: 10001,
+ NO_SUCH_OBJECT_KEY: 10007,
+ ENTITY_TOO_LARGE: 100100,
+ ENTITY_TOO_SMALL: 10011,
+ METADATA_TOO_LARGE: 10012,
+ INVALID_OBJECT_NAME: 10020,
+ INVALID_MAX_KEYS: 10022,
+ NO_SUCH_UPLOAD: 10024,
+ INVALID_PART: 10025,
+ INVALID_ARGUMENT: 10029,
+ PRECONDITION_FAILED: 10031,
+ BAD_DIGEST: 10037,
+ INVALID_RANGE: 10039,
+ BAD_UPLOAD: 10048
+}, R2Error = class extends HttpError {
+ constructor(code, message, v4Code) {
+ super(code, message);
+ this.v4Code = v4Code;
+ }
+ object;
+ toResponse() {
+ if (this.object !== void 0) {
+ let { metadataSize, value } = this.object.encode();
+ return new Response(value, {
+ status: this.code,
+ headers: {
+ [R2Headers.METADATA_SIZE]: `${metadataSize}`,
+ "Content-Type": "application/json",
+ [R2Headers.ERROR]: JSON.stringify({
+ message: this.message,
+ version: 1,
+ // Note the lowercase 'c', which the runtime expects
+ v4code: this.v4Code
+ })
+ }
+ });
+ }
+ return new Response(null, {
+ status: this.code,
+ headers: {
+ [R2Headers.ERROR]: JSON.stringify({
+ message: this.message,
+ version: 1,
+ // Note the lowercase 'c', which the runtime expects
+ v4code: this.v4Code
+ })
+ }
+ });
+ }
+ context(info) {
+ return this.message += ` (${info})`, this;
+ }
+ attach(object) {
+ return this.object = object, this;
+ }
+}, InvalidMetadata = class extends R2Error {
+ constructor() {
+ super(400, "Metadata missing or invalid", R2ErrorCode.INVALID_ARGUMENT);
+ }
+}, InternalError = class extends R2Error {
+ constructor() {
+ super(
+ 500,
+ "We encountered an internal error. Please try again.",
+ R2ErrorCode.INTERNAL_ERROR
+ );
+ }
+}, NoSuchKey = class extends R2Error {
+ constructor() {
+ super(
+ 404,
+ "The specified key does not exist.",
+ R2ErrorCode.NO_SUCH_OBJECT_KEY
+ );
+ }
+}, EntityTooLarge = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "Your proposed upload exceeds the maximum allowed object size.",
+ R2ErrorCode.ENTITY_TOO_LARGE
+ );
+ }
+}, EntityTooSmall = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "Your proposed upload is smaller than the minimum allowed object size.",
+ R2ErrorCode.ENTITY_TOO_SMALL
+ );
+ }
+}, MetadataTooLarge = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "Your metadata headers exceed the maximum allowed metadata size.",
+ R2ErrorCode.METADATA_TOO_LARGE
+ );
+ }
+}, BadDigest = class extends R2Error {
+ constructor(algorithm, provided, calculated) {
+ super(
+ 400,
+ [
+ `The ${algorithm} checksum you specified did not match what we received.`,
+ `You provided a ${algorithm} checksum with value: ${provided.toString(
+ "hex"
+ )}`,
+ `Actual ${algorithm} was: ${calculated.toString("hex")}`
+ ].join(`
+`),
+ R2ErrorCode.BAD_DIGEST
+ );
+ }
+}, InvalidObjectName = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "The specified object name is not valid.",
+ R2ErrorCode.INVALID_OBJECT_NAME
+ );
+ }
+}, InvalidMaxKeys = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "MaxKeys params must be positive integer <= 1000.",
+ R2ErrorCode.INVALID_MAX_KEYS
+ );
+ }
+}, NoSuchUpload = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "The specified multipart upload does not exist.",
+ R2ErrorCode.NO_SUCH_UPLOAD
+ );
+ }
+}, InvalidPart = class extends R2Error {
+ constructor() {
+ super(
+ 400,
+ "One or more of the specified parts could not be found.",
+ R2ErrorCode.INVALID_PART
+ );
+ }
+}, PreconditionFailed = class extends R2Error {
+ constructor() {
+ super(
+ 412,
+ "At least one of the pre-conditions you specified did not hold.",
+ R2ErrorCode.PRECONDITION_FAILED
+ );
+ }
+}, InvalidRange = class extends R2Error {
+ constructor() {
+ super(
+ 416,
+ "The requested range is not satisfiable",
+ R2ErrorCode.INVALID_RANGE
+ );
+ }
+}, BadUpload = class extends R2Error {
+ constructor() {
+ super(
+ 500,
+ "There was a problem with the multipart upload.",
+ R2ErrorCode.BAD_UPLOAD
+ );
+ }
+};
+
+// packages/miniflare/src/workers/r2/r2Object.worker.ts
+import { HEX_REGEXP } from "miniflare:zod";
+var InternalR2Object = class {
+ key;
+ version;
+ size;
+ etag;
+ uploaded;
+ httpMetadata;
+ customMetadata;
+ range;
+ checksums;
+ constructor(row, range) {
+ this.key = row.key, this.version = row.version, this.size = row.size, this.etag = row.etag, this.uploaded = row.uploaded, this.httpMetadata = JSON.parse(row.http_metadata), this.customMetadata = JSON.parse(row.custom_metadata), this.range = range;
+ let checksums = JSON.parse(row.checksums);
+ this.etag.length === 32 && HEX_REGEXP.test(this.etag) && (checksums.md5 = row.etag), this.checksums = checksums;
+ }
+ // Format for return to the Workers Runtime
+ #rawProperties() {
+ return {
+ name: this.key,
+ version: this.version,
+ size: this.size,
+ etag: this.etag,
+ uploaded: this.uploaded,
+ httpFields: this.httpMetadata,
+ customFields: Object.entries(this.customMetadata).map(([k, v]) => ({
+ k,
+ v
+ })),
+ range: this.range,
+ checksums: {
+ 0: this.checksums.md5,
+ 1: this.checksums.sha1,
+ 2: this.checksums.sha256,
+ 3: this.checksums.sha384,
+ 4: this.checksums.sha512
+ }
+ };
+ }
+ encode() {
+ let json = JSON.stringify(this.#rawProperties()), blob = new Blob([json]);
+ return { metadataSize: blob.size, value: blob.stream() };
+ }
+ static encodeMultiple(objects) {
+ let json = JSON.stringify({
+ ...objects,
+ objects: objects.objects.map((o) => o.#rawProperties())
+ }), blob = new Blob([json]);
+ return { metadataSize: blob.size, value: blob.stream() };
+ }
+}, InternalR2ObjectBody = class extends InternalR2Object {
+ constructor(metadata, body, range) {
+ super(metadata, range);
+ this.body = body;
+ }
+ encode() {
+ let { metadataSize, value: metadata } = super.encode(), identity2 = new IdentityTransformStream();
+ return metadata.pipeTo(identity2.writable, { preventClose: !0 }).then(() => this.body.pipeTo(identity2.writable)), {
+ metadataSize,
+ value: identity2.readable
+ };
+ }
+};
+
+// packages/miniflare/src/workers/r2/schemas.worker.ts
+import { Base64DataSchema, HexDataSchema, z } from "miniflare:zod";
+var MultipartUploadState = {
+ IN_PROGRESS: 0,
+ COMPLETED: 1,
+ ABORTED: 2
+}, SQL_SCHEMA = `
+CREATE TABLE IF NOT EXISTS _mf_objects (
+ key TEXT PRIMARY KEY,
+ blob_id TEXT,
+ version TEXT NOT NULL,
+ size INTEGER NOT NULL,
+ etag TEXT NOT NULL,
+ uploaded INTEGER NOT NULL,
+ checksums TEXT NOT NULL,
+ http_metadata TEXT NOT NULL,
+ custom_metadata TEXT NOT NULL
+);
+CREATE TABLE IF NOT EXISTS _mf_multipart_uploads (
+ upload_id TEXT PRIMARY KEY,
+ key TEXT NOT NULL,
+ http_metadata TEXT NOT NULL,
+ custom_metadata TEXT NOT NULL,
+ state TINYINT DEFAULT 0 NOT NULL
+);
+CREATE TABLE IF NOT EXISTS _mf_multipart_parts (
+ upload_id TEXT NOT NULL REFERENCES _mf_multipart_uploads(upload_id),
+ part_number INTEGER NOT NULL,
+ blob_id TEXT NOT NULL,
+ size INTEGER NOT NULL,
+ etag TEXT NOT NULL,
+ checksum_md5 TEXT NOT NULL,
+ object_key TEXT REFERENCES _mf_objects(key) DEFERRABLE INITIALLY DEFERRED,
+ PRIMARY KEY (upload_id, part_number)
+);
+`, DateSchema = z.coerce.number().transform((value) => new Date(value)), RecordSchema = z.object({
+ k: z.string(),
+ v: z.string()
+}).array().transform(
+ (entries) => Object.fromEntries(entries.map(({ k, v }) => [k, v]))
+), R2RangeSchema = z.object({
+ offset: z.coerce.number().optional(),
+ length: z.coerce.number().optional(),
+ suffix: z.coerce.number().optional()
+}), R2EtagSchema = z.discriminatedUnion("type", [
+ z.object({ type: z.literal("strong"), value: z.string() }),
+ z.object({ type: z.literal("weak"), value: z.string() }),
+ z.object({ type: z.literal("wildcard") })
+]), R2EtagMatchSchema = R2EtagSchema.array().min(1).optional(), R2ConditionalSchema = z.object({
+ // Performs the operation if the object's ETag matches the given string
+ etagMatches: R2EtagMatchSchema,
+ // "If-Match"
+ // Performs the operation if the object's ETag does NOT match the given string
+ etagDoesNotMatch: R2EtagMatchSchema,
+ // "If-None-Match"
+ // Performs the operation if the object was uploaded BEFORE the given date
+ uploadedBefore: DateSchema.optional(),
+ // "If-Unmodified-Since"
+ // Performs the operation if the object was uploaded AFTER the given date
+ uploadedAfter: DateSchema.optional(),
+ // "If-Modified-Since"
+ // Truncates dates to seconds before performing comparisons
+ secondsGranularity: z.oboolean()
+}), R2ChecksumsSchema = z.object({
+ 0: HexDataSchema.optional(),
+ 1: HexDataSchema.optional(),
+ 2: HexDataSchema.optional(),
+ 3: HexDataSchema.optional(),
+ 4: HexDataSchema.optional()
+}).transform((checksums) => ({
+ md5: checksums[0],
+ sha1: checksums[1],
+ sha256: checksums[2],
+ sha384: checksums[3],
+ sha512: checksums[4]
+})), R2PublishedPartSchema = z.object({
+ etag: z.string(),
+ part: z.number()
+}), R2HttpFieldsSchema = z.object({
+ contentType: z.ostring(),
+ contentLanguage: z.ostring(),
+ contentDisposition: z.ostring(),
+ contentEncoding: z.ostring(),
+ cacheControl: z.ostring(),
+ cacheExpiry: z.coerce.number().optional()
+}), R2HeadRequestSchema = z.object({
+ method: z.literal("head"),
+ object: z.string()
+}), R2GetRequestSchema = z.object({
+ method: z.literal("get"),
+ object: z.string(),
+ // Specifies that only a specific length (from an optional offset) or suffix
+ // of bytes from the object should be returned. Refer to
+ // https://developers.cloudflare.com/r2/runtime-apis/#ranged-reads.
+ range: R2RangeSchema.optional(),
+ rangeHeader: z.ostring(),
+ // Specifies that the object should only be returned given satisfaction of
+ // certain conditions in the R2Conditional. Refer to R2Conditional above.
+ onlyIf: R2ConditionalSchema.optional()
+}), R2PutRequestSchema = z.object({
+ method: z.literal("put"),
+ object: z.string(),
+ customFields: RecordSchema.optional(),
+ // (renamed in transform)
+ httpFields: R2HttpFieldsSchema.optional(),
+ // (renamed in transform)
+ onlyIf: R2ConditionalSchema.optional(),
+ md5: Base64DataSchema.optional(),
+ // (intentionally base64, not hex)
+ sha1: HexDataSchema.optional(),
+ sha256: HexDataSchema.optional(),
+ sha384: HexDataSchema.optional(),
+ sha512: HexDataSchema.optional()
+}).transform((value) => ({
+ method: value.method,
+ object: value.object,
+ customMetadata: value.customFields,
+ httpMetadata: value.httpFields,
+ onlyIf: value.onlyIf,
+ md5: value.md5,
+ sha1: value.sha1,
+ sha256: value.sha256,
+ sha384: value.sha384,
+ sha512: value.sha512
+})), R2CreateMultipartUploadRequestSchema = z.object({
+ method: z.literal("createMultipartUpload"),
+ object: z.string(),
+ customFields: RecordSchema.optional(),
+ // (renamed in transform)
+ httpFields: R2HttpFieldsSchema.optional()
+ // (renamed in transform)
+}).transform((value) => ({
+ method: value.method,
+ object: value.object,
+ customMetadata: value.customFields,
+ httpMetadata: value.httpFields
+})), R2UploadPartRequestSchema = z.object({
+ method: z.literal("uploadPart"),
+ object: z.string(),
+ uploadId: z.string(),
+ partNumber: z.number()
+}), R2CompleteMultipartUploadRequestSchema = z.object({
+ method: z.literal("completeMultipartUpload"),
+ object: z.string(),
+ uploadId: z.string(),
+ parts: R2PublishedPartSchema.array()
+}), R2AbortMultipartUploadRequestSchema = z.object({
+ method: z.literal("abortMultipartUpload"),
+ object: z.string(),
+ uploadId: z.string()
+}), R2ListRequestSchema = z.object({
+ method: z.literal("list"),
+ limit: z.onumber(),
+ prefix: z.ostring(),
+ cursor: z.ostring(),
+ delimiter: z.ostring(),
+ startAfter: z.ostring(),
+ include: z.union([z.literal(0), z.literal(1)]).transform((value) => value === 0 ? "httpMetadata" : "customMetadata").array().optional()
+}), R2DeleteRequestSchema = z.intersection(
+ z.object({ method: z.literal("delete") }),
+ z.union([
+ z.object({ object: z.string() }),
+ z.object({ objects: z.string().array() })
+ ])
+), R2BindingRequestSchema = z.union([
+ R2HeadRequestSchema,
+ R2GetRequestSchema,
+ R2PutRequestSchema,
+ R2CreateMultipartUploadRequestSchema,
+ R2UploadPartRequestSchema,
+ R2CompleteMultipartUploadRequestSchema,
+ R2AbortMultipartUploadRequestSchema,
+ R2ListRequestSchema,
+ R2DeleteRequestSchema
+]);
+
+// packages/miniflare/src/workers/r2/validator.worker.ts
+import assert from "node:assert";
+import { Buffer as Buffer2 } from "node:buffer";
+import { parseRanges } from "miniflare:shared";
+function identity(ms) {
+ return ms;
+}
+function truncateToSeconds(ms) {
+ return Math.floor(ms / 1e3) * 1e3;
+}
+function includesEtag(conditions, etag, comparison) {
+ for (let condition of conditions)
+ if (condition.type === "wildcard" || condition.value === etag && (condition.type === "strong" || comparison === "weak"))
+ return !0;
+ return !1;
+}
+function _testR2Conditional(cond, metadata) {
+ if (metadata === void 0) {
+ let ifMatch2 = cond.etagMatches === void 0, ifModifiedSince2 = cond.uploadedAfter === void 0;
+ return ifMatch2 && ifModifiedSince2;
+ }
+ let { etag, uploaded: lastModifiedRaw } = metadata, ifMatch = cond.etagMatches === void 0 || includesEtag(cond.etagMatches, etag, "strong"), ifNoneMatch = cond.etagDoesNotMatch === void 0 || !includesEtag(cond.etagDoesNotMatch, etag, "weak"), maybeTruncate = cond.secondsGranularity ? truncateToSeconds : identity, lastModified = maybeTruncate(lastModifiedRaw), ifModifiedSince = cond.uploadedAfter === void 0 || maybeTruncate(cond.uploadedAfter.getTime()) < lastModified || cond.etagDoesNotMatch !== void 0 && ifNoneMatch, ifUnmodifiedSince = cond.uploadedBefore === void 0 || lastModified < maybeTruncate(cond.uploadedBefore.getTime()) || cond.etagMatches !== void 0 && ifMatch;
+ return ifMatch && ifNoneMatch && ifModifiedSince && ifUnmodifiedSince;
+}
+var R2_HASH_ALGORITHMS = [
+ { name: "MD5", field: "md5" },
+ { name: "SHA-1", field: "sha1" },
+ { name: "SHA-256", field: "sha256" },
+ { name: "SHA-384", field: "sha384" },
+ { name: "SHA-512", field: "sha512" }
+];
+function serialisedLength(x) {
+ for (let i = 0; i < x.length; i++)
+ if (x.charCodeAt(i) >= 256)
+ return x.length * 2;
+ return x.length;
+}
+var Validator = class {
+ hash(digests, hashes) {
+ let checksums = {};
+ for (let { name, field } of R2_HASH_ALGORITHMS) {
+ let providedHash = hashes[field];
+ if (providedHash !== void 0) {
+ let computedHash = digests.get(name);
+ if (assert(computedHash !== void 0), !providedHash.equals(computedHash))
+ throw new BadDigest(name, providedHash, computedHash);
+ checksums[field] = computedHash.toString("hex");
+ }
+ }
+ return checksums;
+ }
+ condition(meta, onlyIf) {
+ if (onlyIf !== void 0 && !_testR2Conditional(onlyIf, meta))
+ throw new PreconditionFailed();
+ return this;
+ }
+ range(options, size) {
+ if (options.rangeHeader !== void 0) {
+ let ranges = parseRanges(options.rangeHeader, size);
+ if (ranges?.length === 1)
+ return ranges[0];
+ } else if (options.range !== void 0) {
+ let { offset, length, suffix } = options.range;
+ if (suffix !== void 0) {
+ if (suffix <= 0)
+ throw new InvalidRange();
+ suffix > size && (suffix = size), offset = size - suffix, length = suffix;
+ }
+ if (offset === void 0 && (offset = 0), length === void 0 && (length = size - offset), offset < 0 || offset > size || length <= 0)
+ throw new InvalidRange();
+ return offset + length > size && (length = size - offset), { start: offset, end: offset + length - 1 };
+ }
+ }
+ size(size) {
+ if (size > R2Limits.MAX_VALUE_SIZE)
+ throw new EntityTooLarge();
+ return this;
+ }
+ metadataSize(customMetadata) {
+ if (customMetadata === void 0)
+ return this;
+ let metadataLength = 0;
+ for (let [key, value] of Object.entries(customMetadata))
+ metadataLength += serialisedLength(key) + serialisedLength(value);
+ if (metadataLength > R2Limits.MAX_METADATA_SIZE)
+ throw new MetadataTooLarge();
+ return this;
+ }
+ key(key) {
+ if (Buffer2.byteLength(key) >= R2Limits.MAX_KEY_SIZE)
+ throw new InvalidObjectName();
+ return this;
+ }
+ limit(limit) {
+ if (limit !== void 0 && (limit < 1 || limit > R2Limits.MAX_LIST_KEYS))
+ throw new InvalidMaxKeys();
+ return this;
+ }
+};
+
+// packages/miniflare/src/workers/r2/bucket.worker.ts
+var DigestingStream = class extends TransformStream {
+ digests;
+ constructor(algorithms) {
+ let digests = new DeferredPromise(), hashes = algorithms.map((alg) => {
+ let stream = new crypto.DigestStream(alg), writer = stream.getWriter();
+ return { stream, writer };
+ });
+ super({
+ async transform(chunk, controller) {
+ for (let hash of hashes)
+ await hash.writer.write(chunk);
+ controller.enqueue(chunk);
+ },
+ async flush() {
+ let result = /* @__PURE__ */ new Map();
+ for (let i = 0; i < hashes.length; i++)
+ await hashes[i].writer.close(), result.set(algorithms[i], Buffer3.from(await hashes[i].stream.digest));
+ digests.resolve(result);
+ }
+ }), this.digests = digests;
+ }
+}, validate = new Validator(), decoder = new TextDecoder();
+function generateVersion() {
+ return Buffer3.from(crypto.getRandomValues(new Uint8Array(16))).toString(
+ "hex"
+ );
+}
+function generateId() {
+ return Buffer3.from(crypto.getRandomValues(new Uint8Array(128))).toString(
+ "base64url"
+ );
+}
+function generateMultipartEtag(md5Hexes) {
+ let hash = createHash("md5");
+ for (let md5Hex of md5Hexes)
+ hash.update(md5Hex, "hex");
+ return `${hash.digest("hex")}-${md5Hexes.length}`;
+}
+function rangeOverlaps(a, b) {
+ return a.start <= b.end && b.start <= a.end;
+}
+async function decodeMetadata(req) {
+ let metadataSize = parseInt(req.headers.get(R2Headers.METADATA_SIZE));
+ if (Number.isNaN(metadataSize))
+ throw new InvalidMetadata();
+ assert2(req.body !== null);
+ let body = req.body, [metadataBuffer, value] = await readPrefix(body, metadataSize), metadataJson = decoder.decode(metadataBuffer);
+ return { metadata: R2BindingRequestSchema.parse(JSON.parse(metadataJson)), metadataSize, value };
+}
+function decodeHeaderMetadata(req) {
+ let header = req.headers.get(R2Headers.REQUEST);
+ if (header === null)
+ throw new InvalidMetadata();
+ return R2BindingRequestSchema.parse(JSON.parse(header));
+}
+function encodeResult(result) {
+ let encoded;
+ return result instanceof InternalR2Object ? encoded = result.encode() : encoded = InternalR2Object.encodeMultiple(result), new Response(encoded.value, {
+ headers: {
+ [R2Headers.METADATA_SIZE]: `${encoded.metadataSize}`,
+ "Content-Type": "application/json"
+ }
+ });
+}
+function encodeJSONResult(result) {
+ let encoded = JSON.stringify(result);
+ return new Response(encoded, {
+ headers: {
+ [R2Headers.METADATA_SIZE]: `${Buffer3.byteLength(encoded)}`,
+ "Content-Type": "application/json"
+ }
+ });
+}
+function sqlStmts(db) {
+ let stmtGetPreviousByKey = db.stmt("SELECT blob_id, etag, uploaded FROM _mf_objects WHERE key = :key"), stmtGetByKey = db.stmt(`
+ SELECT key, blob_id, version, size, etag, uploaded, checksums, http_metadata, custom_metadata
+ FROM _mf_objects WHERE key = :key
+ `), stmtPut = db.stmt(`
+ INSERT OR REPLACE INTO _mf_objects (key, blob_id, version, size, etag, uploaded, checksums, http_metadata, custom_metadata)
+ VALUES (:key, :blob_id, :version, :size, :etag, :uploaded, :checksums, :http_metadata, :custom_metadata)
+ `), stmtDelete = db.stmt("DELETE FROM _mf_objects WHERE key = :key RETURNING blob_id");
+ function stmtListWithoutDelimiter(...extraColumns) {
+ let columns = [
+ "key",
+ "version",
+ "size",
+ "etag",
+ "uploaded",
+ "checksums",
+ ...extraColumns
+ ];
+ return db.stmt(`
+ SELECT ${columns.join(", ")}
+ FROM _mf_objects
+ WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\'
+ AND (:start_after IS NULL OR key > :start_after)
+ ORDER BY key LIMIT :limit
+ `);
+ }
+ let stmtGetUploadState = db.stmt(
+ // For checking current upload state
+ "SELECT state FROM _mf_multipart_uploads WHERE upload_id = :upload_id AND key = :key"
+ ), stmtGetUploadMetadata = db.stmt(
+ // For checking current upload state, and getting metadata for completion
+ "SELECT http_metadata, custom_metadata, state FROM _mf_multipart_uploads WHERE upload_id = :upload_id AND key = :key"
+ ), stmtUpdateUploadState = db.stmt(
+ // For completing/aborting uploads
+ "UPDATE _mf_multipart_uploads SET state = :state WHERE upload_id = :upload_id"
+ ), stmtGetPreviousPartByNumber = db.stmt(
+ // For getting part number's previous blob ID to garbage collect
+ "SELECT blob_id FROM _mf_multipart_parts WHERE upload_id = :upload_id AND part_number = :part_number"
+ ), stmtPutPart = db.stmt(
+ // For recording metadata when uploading parts
+ `INSERT OR REPLACE INTO _mf_multipart_parts (upload_id, part_number, blob_id, size, etag, checksum_md5)
+ VALUES (:upload_id, :part_number, :blob_id, :size, :etag, :checksum_md5)`
+ ), stmtLinkPart = db.stmt(
+ // For linking parts with an object when completing uploads
+ `UPDATE _mf_multipart_parts SET object_key = :object_key
+ WHERE upload_id = :upload_id AND part_number = :part_number`
+ ), stmtDeletePartsByUploadId = db.stmt(
+ // For deleting parts when aborting uploads
+ "DELETE FROM _mf_multipart_parts WHERE upload_id = :upload_id RETURNING blob_id"
+ ), stmtDeleteUnlinkedPartsByUploadId = db.stmt(
+ // For deleting unused parts when completing uploads
+ "DELETE FROM _mf_multipart_parts WHERE upload_id = :upload_id AND object_key IS NULL RETURNING blob_id"
+ ), stmtDeletePartsByKey = db.stmt(
+ // For deleting dangling parts when overwriting an existing key
+ "DELETE FROM _mf_multipart_parts WHERE object_key = :object_key RETURNING blob_id"
+ ), stmtListPartsByUploadId = db.stmt(
+ // For getting part metadata when completing uploads
+ `SELECT upload_id, part_number, blob_id, size, etag, checksum_md5, object_key
+ FROM _mf_multipart_parts WHERE upload_id = :upload_id`
+ ), stmtListPartsByKey = db.stmt(
+ // For getting part metadata when getting values, size included for range
+ // requests, so we only need to read blobs containing the required data
+ "SELECT blob_id, size FROM _mf_multipart_parts WHERE object_key = :object_key ORDER BY part_number"
+ );
+ return {
+ getByKey: stmtGetByKey,
+ getPartsByKey: db.txn((key) => {
+ let row = get(stmtGetByKey({ key }));
+ if (row !== void 0)
+ if (row.blob_id === null) {
+ let partsRows = all(stmtListPartsByKey({ object_key: key }));
+ return { row, parts: partsRows };
+ } else
+ return { row };
+ }),
+ put: db.txn((newRow, onlyIf) => {
+ let key = newRow.key, row = get(stmtGetPreviousByKey({ key }));
+ onlyIf !== void 0 && validate.condition(row, onlyIf), stmtPut(newRow);
+ let maybeOldBlobId = row?.blob_id;
+ return maybeOldBlobId === void 0 ? [] : maybeOldBlobId === null ? all(stmtDeletePartsByKey({ object_key: key })).map(({ blob_id }) => blob_id) : [maybeOldBlobId];
+ }),
+ deleteByKeys: db.txn((keys) => {
+ let oldBlobIds = [];
+ for (let key of keys) {
+ let maybeOldBlobId = get(stmtDelete({ key }))?.blob_id;
+ if (maybeOldBlobId === null) {
+ let partRows = stmtDeletePartsByKey({ object_key: key });
+ for (let partRow of partRows)
+ oldBlobIds.push(partRow.blob_id);
+ } else
+ maybeOldBlobId !== void 0 && oldBlobIds.push(maybeOldBlobId);
+ }
+ return oldBlobIds;
+ }),
+ listWithoutDelimiter: stmtListWithoutDelimiter(),
+ listHttpMetadataWithoutDelimiter: stmtListWithoutDelimiter("http_metadata"),
+ listCustomMetadataWithoutDelimiter: stmtListWithoutDelimiter("custom_metadata"),
+ listHttpCustomMetadataWithoutDelimiter: stmtListWithoutDelimiter(
+ "http_metadata",
+ "custom_metadata"
+ ),
+ listMetadata: db.stmt(`
+ SELECT
+ -- When grouping by a delimited prefix, this will give us the last key with that prefix.
+ -- NOTE: we'll use this for the next cursor. If we didn't return the last key, the next page may return the
+ -- same delimited prefix. Essentially, we're skipping over all keys with this group's delimited prefix.
+ -- When grouping by a key, this will just give us the key.
+ max(key) AS last_key,
+ iif(
+ -- Try get 1-indexed position \`i\` of :delimiter in rest of key after :prefix...
+ instr(substr(key, length(:prefix) + 1), :delimiter),
+ -- ...if found, we have a delimited prefix of the :prefix followed by the rest of key up to and including the :delimiter
+ 'dlp:' || substr(key, 1, length(:prefix) + instr(substr(key, length(:prefix) + 1), :delimiter) + length(:delimiter) - 1),
+ -- ...otherwise, we just have a regular key
+ 'key:' || key
+ ) AS delimited_prefix_or_key,
+ -- NOTE: we'll ignore metadata for delimited prefix rows, so it doesn't matter which keys' we return
+ version, size, etag, uploaded, checksums, http_metadata, custom_metadata
+ FROM _mf_objects
+ WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\'
+ AND (:start_after IS NULL OR key > :start_after)
+ GROUP BY delimited_prefix_or_key -- Group keys with same delimited prefix into a row, leaving others in their own rows
+ ORDER BY last_key LIMIT :limit;
+ `),
+ createMultipartUpload: db.stmt(`
+ INSERT INTO _mf_multipart_uploads (upload_id, key, http_metadata, custom_metadata)
+ VALUES (:upload_id, :key, :http_metadata, :custom_metadata)
+ `),
+ putPart: db.txn(
+ (key, newRow) => {
+ if (get(
+ stmtGetUploadState({
+ key,
+ upload_id: newRow.upload_id
+ })
+ )?.state !== MultipartUploadState.IN_PROGRESS)
+ throw new NoSuchUpload();
+ let partRow = get(
+ stmtGetPreviousPartByNumber({
+ upload_id: newRow.upload_id,
+ part_number: newRow.part_number
+ })
+ );
+ return stmtPutPart(newRow), partRow?.blob_id;
+ }
+ ),
+ completeMultipartUpload: db.txn(
+ (key, upload_id, selectedParts, minPartSize) => {
+ let uploadRow = get(stmtGetUploadMetadata({ key, upload_id }));
+ if (uploadRow === void 0)
+ throw new InternalError();
+ if (uploadRow.state > MultipartUploadState.IN_PROGRESS)
+ throw new NoSuchUpload();
+ let partNumberSet = /* @__PURE__ */ new Set();
+ for (let { part } of selectedParts) {
+ if (partNumberSet.has(part))
+ throw new InternalError();
+ partNumberSet.add(part);
+ }
+ let uploadedPartRows = stmtListPartsByUploadId({ upload_id }), uploadedParts = /* @__PURE__ */ new Map();
+ for (let row of uploadedPartRows)
+ uploadedParts.set(row.part_number, row);
+ let parts = selectedParts.map((selectedPart) => {
+ let uploadedPart = uploadedParts.get(selectedPart.part);
+ if (uploadedPart?.etag !== selectedPart.etag)
+ throw new InvalidPart();
+ return uploadedPart;
+ });
+ for (let part of parts.slice(0, -1))
+ if (part.size < minPartSize)
+ throw new EntityTooSmall();
+ parts.sort((a, b) => a.part_number - b.part_number);
+ let partSize;
+ for (let part of parts.slice(0, -1))
+ if (partSize ??= part.size, part.size < minPartSize || part.size !== partSize)
+ throw new BadUpload();
+ if (partSize !== void 0 && parts[parts.length - 1].size > partSize)
+ throw new BadUpload();
+ let oldBlobIds = [], maybeOldBlobId = get(stmtGetPreviousByKey({ key }))?.blob_id;
+ if (maybeOldBlobId === null) {
+ let partRows2 = stmtDeletePartsByKey({ object_key: key });
+ for (let partRow of partRows2)
+ oldBlobIds.push(partRow.blob_id);
+ } else
+ maybeOldBlobId !== void 0 && oldBlobIds.push(maybeOldBlobId);
+ let totalSize = parts.reduce((acc, { size }) => acc + size, 0), etag = generateMultipartEtag(
+ parts.map(({ checksum_md5 }) => checksum_md5)
+ ), newRow = {
+ key,
+ blob_id: null,
+ version: generateVersion(),
+ size: totalSize,
+ etag,
+ uploaded: Date.now(),
+ checksums: "{}",
+ http_metadata: uploadRow.http_metadata,
+ custom_metadata: uploadRow.custom_metadata
+ };
+ stmtPut(newRow);
+ for (let part of parts)
+ stmtLinkPart({
+ upload_id,
+ part_number: part.part_number,
+ object_key: key
+ });
+ let partRows = stmtDeleteUnlinkedPartsByUploadId({ upload_id });
+ for (let partRow of partRows)
+ oldBlobIds.push(partRow.blob_id);
+ return stmtUpdateUploadState({
+ upload_id,
+ state: MultipartUploadState.COMPLETED
+ }), { newRow, oldBlobIds };
+ }
+ ),
+ abortMultipartUpload: db.txn((key, upload_id) => {
+ let uploadRow = get(stmtGetUploadState({ key, upload_id }));
+ if (uploadRow === void 0)
+ throw new InternalError();
+ if (uploadRow.state > MultipartUploadState.IN_PROGRESS)
+ return [];
+ let oldBlobIds = all(stmtDeletePartsByUploadId({ upload_id })).map(({ blob_id }) => blob_id);
+ return stmtUpdateUploadState({
+ upload_id,
+ state: MultipartUploadState.ABORTED
+ }), oldBlobIds;
+ })
+ };
+}
+var R2BucketObject = class extends MiniflareDurableObject {
+ #stmts;
+ // Multipart uploads are stored as multiple blobs. Therefore, when reading a
+ // multipart upload, we'll be reading multiple blobs. When an object is
+ // deleted, all its blobs are deleted in the background.
+ //
+ // Normally for single part objects, this is fine, since we'd open a handle to
+ // a single blob, which we'd have until we closed it, at which point the blob
+ // may be deleted. With multipart, we don't want to open handles for all blobs
+ // as we could hit open file descriptor limits. Similarly, we don't want to
+ // read all blobs first, as we'd have to buffer them.
+ //
+ // Instead, we set up in-process locking on blobs needed for multipart reads.
+ // When we start a multipart read, we acquire all the blobs we need, then
+ // release them as we've streamed each part. Multiple multipart reads may be
+ // in-progress at any given time, so we use a wait group.
+ //
+ // This assumes we only ever have a single Miniflare instance operating on a
+ // blob store, which is always true for in-memory stores, and usually true for
+ // on-disk ones. If we really wanted to do this properly, we could store the
+ // bookkeeping for the wait group in SQLite, but then we'd have to implement
+ // some inter-process signalling/subscription system.
+ #inUseBlobs = /* @__PURE__ */ new Map();
+ constructor(state, env) {
+ super(state, env), this.db.exec("PRAGMA case_sensitive_like = TRUE"), this.db.exec(SQL_SCHEMA), this.#stmts = sqlStmts(this.db);
+ }
+ #acquireBlob(blobId) {
+ let waitGroup = this.#inUseBlobs.get(blobId);
+ waitGroup === void 0 ? (waitGroup = new WaitGroup(), this.#inUseBlobs.set(blobId, waitGroup), waitGroup.add(), waitGroup.wait().then(() => this.#inUseBlobs.delete(blobId))) : waitGroup.add();
+ }
+ #releaseBlob(blobId) {
+ this.#inUseBlobs.get(blobId)?.done();
+ }
+ #backgroundDelete(blobId) {
+ this.timers.queueMicrotask(async () => (await this.#inUseBlobs.get(blobId)?.wait(), this.blob.delete(blobId).catch((e) => {
+ console.error("R2BucketObject##backgroundDelete():", e);
+ })));
+ }
+ #assembleMultipartValue(parts, queryRange) {
+ let requiredParts = [], start = 0;
+ for (let part of parts) {
+ let partRange = { start, end: start + part.size - 1 };
+ if (rangeOverlaps(partRange, queryRange)) {
+ let range = {
+ start: Math.max(partRange.start, queryRange.start) - partRange.start,
+ end: Math.min(partRange.end, queryRange.end) - partRange.start
+ };
+ this.#acquireBlob(part.blob_id), requiredParts.push({ blobId: part.blob_id, range });
+ }
+ start = partRange.end + 1;
+ }
+ let identity2 = new TransformStream();
+ return (async () => {
+ let i = 0;
+ try {
+ for (; i < requiredParts.length; i++) {
+ let { blobId, range } = requiredParts[i], value = await this.blob.get(blobId, range), msg = `Expected to find blob "${blobId}" for multipart value`;
+ assert2(value !== null, msg), await value.pipeTo(identity2.writable, { preventClose: !0 }), this.#releaseBlob(blobId);
+ }
+ await identity2.writable.close();
+ } catch (e) {
+ await identity2.writable.abort(e);
+ } finally {
+ for (; i < requiredParts.length; i++)
+ this.#releaseBlob(requiredParts[i].blobId);
+ }
+ })(), identity2.readable;
+ }
+ async #head(key) {
+ validate.key(key);
+ let row = get(this.#stmts.getByKey({ key }));
+ if (row === void 0)
+ throw new NoSuchKey();
+ let range = { offset: 0, length: row.size };
+ return new InternalR2Object(row, range);
+ }
+ async #get(key, opts) {
+ validate.key(key);
+ let result = this.#stmts.getPartsByKey(key);
+ if (result === void 0)
+ throw new NoSuchKey();
+ let { row, parts } = result, defaultR2Range = { offset: 0, length: row.size };
+ try {
+ validate.condition(row, opts.onlyIf);
+ } catch (e) {
+ throw e instanceof PreconditionFailed && e.attach(new InternalR2Object(row, defaultR2Range)), e;
+ }
+ let range = validate.range(opts, row.size), r2Range;
+ if (range === void 0)
+ r2Range = defaultR2Range;
+ else {
+ let start = range.start, end = Math.min(range.end, row.size);
+ r2Range = { offset: start, length: end - start + 1 };
+ }
+ let value;
+ if (row.blob_id === null) {
+ assert2(parts !== void 0);
+ let defaultRange = { start: 0, end: row.size - 1 };
+ value = this.#assembleMultipartValue(parts, range ?? defaultRange);
+ } else if (value = await this.blob.get(row.blob_id, range), value === null)
+ throw new NoSuchKey();
+ return new InternalR2ObjectBody(row, value, r2Range);
+ }
+ async #put(key, value, valueSize, opts) {
+ let algorithms = [];
+ for (let { name, field } of R2_HASH_ALGORITHMS)
+ (field === "md5" || opts[field] !== void 0) && algorithms.push(name);
+ let digesting = new DigestingStream(algorithms), blobId = await this.blob.put(value.pipeThrough(digesting)), digests = await digesting.digests, md5Digest = digests.get("MD5");
+ assert2(md5Digest !== void 0);
+ let md5DigestHex = md5Digest.toString("hex"), checksums = validate.key(key).size(valueSize).metadataSize(opts.customMetadata).hash(digests, opts), row = {
+ key,
+ blob_id: blobId,
+ version: generateVersion(),
+ size: valueSize,
+ etag: md5DigestHex,
+ uploaded: Date.now(),
+ checksums: JSON.stringify(checksums),
+ http_metadata: JSON.stringify(opts.httpMetadata ?? {}),
+ custom_metadata: JSON.stringify(opts.customMetadata ?? {})
+ }, oldBlobIds;
+ try {
+ oldBlobIds = this.#stmts.put(row, opts.onlyIf);
+ } catch (e) {
+ throw this.#backgroundDelete(blobId), e;
+ }
+ if (oldBlobIds !== void 0)
+ for (let blobId2 of oldBlobIds)
+ this.#backgroundDelete(blobId2);
+ return new InternalR2Object(row);
+ }
+ #delete(keys) {
+ Array.isArray(keys) || (keys = [keys]);
+ for (let key of keys)
+ validate.key(key);
+ let oldBlobIds = this.#stmts.deleteByKeys(keys);
+ for (let blobId of oldBlobIds)
+ this.#backgroundDelete(blobId);
+ }
+ #listWithoutDelimiterQuery(excludeHttp, excludeCustom) {
+ return excludeHttp && excludeCustom ? this.#stmts.listWithoutDelimiter : excludeHttp ? this.#stmts.listCustomMetadataWithoutDelimiter : excludeCustom ? this.#stmts.listHttpMetadataWithoutDelimiter : this.#stmts.listHttpCustomMetadataWithoutDelimiter;
+ }
+ async #list(opts) {
+ let prefix = opts.prefix ?? "", limit = opts.limit ?? R2Limits.MAX_LIST_KEYS;
+ validate.limit(limit);
+ let include = opts.include ?? [];
+ include.length > 0 && (limit = Math.min(limit, 100));
+ let excludeHttp = !include.includes("httpMetadata"), excludeCustom = !include.includes("customMetadata"), rowObject = (row) => ((row.http_metadata === void 0 || excludeHttp) && (row.http_metadata = "{}"), (row.custom_metadata === void 0 || excludeCustom) && (row.custom_metadata = "{}"), new InternalR2Object(row)), startAfter = opts.startAfter;
+ if (opts.cursor !== void 0) {
+ let cursorStartAfter = base64Decode(opts.cursor);
+ (startAfter === void 0 || cursorStartAfter > startAfter) && (startAfter = cursorStartAfter);
+ }
+ let delimiter = opts.delimiter;
+ delimiter === "" && (delimiter = void 0);
+ let params = {
+ escaped_prefix: escapeLike(prefix),
+ start_after: startAfter ?? null,
+ // Increase the queried limit by 1, if we return this many results, we
+ // know there are more rows. We'll truncate to the original limit before
+ // returning results.
+ limit: limit + 1
+ }, objects, delimitedPrefixes = [], nextCursorStartAfter;
+ if (delimiter !== void 0) {
+ let rows = all(
+ this.#stmts.listMetadata({ ...params, prefix, delimiter })
+ ), hasMoreRows = rows.length === limit + 1;
+ rows.splice(limit, 1), objects = [];
+ for (let row of rows)
+ row.delimited_prefix_or_key.startsWith("dlp:") ? delimitedPrefixes.push(row.delimited_prefix_or_key.substring(4)) : objects.push(rowObject({ ...row, key: row.last_key }));
+ hasMoreRows && (nextCursorStartAfter = rows[limit - 1].last_key);
+ } else {
+ let query = this.#listWithoutDelimiterQuery(excludeHttp, excludeCustom), rows = all(query(params)), hasMoreRows = rows.length === limit + 1;
+ rows.splice(limit, 1), objects = rows.map(rowObject), hasMoreRows && (nextCursorStartAfter = rows[limit - 1].key);
+ }
+ let nextCursor = maybeApply(base64Encode, nextCursorStartAfter);
+ return {
+ objects,
+ truncated: nextCursor !== void 0,
+ cursor: nextCursor,
+ delimitedPrefixes
+ };
+ }
+ async #createMultipartUpload(key, opts) {
+ validate.key(key);
+ let uploadId = generateId();
+ return this.#stmts.createMultipartUpload({
+ key,
+ upload_id: uploadId,
+ http_metadata: JSON.stringify(opts.httpMetadata ?? {}),
+ custom_metadata: JSON.stringify(opts.customMetadata ?? {})
+ }), { uploadId };
+ }
+ async #uploadPart(key, uploadId, partNumber, value, valueSize) {
+ validate.key(key);
+ let digesting = new DigestingStream(["MD5"]), blobId = await this.blob.put(value.pipeThrough(digesting)), md5Digest = (await digesting.digests).get("MD5");
+ assert2(md5Digest !== void 0);
+ let etag = generateId(), maybeOldBlobId;
+ try {
+ maybeOldBlobId = this.#stmts.putPart(key, {
+ upload_id: uploadId,
+ part_number: partNumber,
+ blob_id: blobId,
+ size: valueSize,
+ etag,
+ checksum_md5: md5Digest.toString("hex")
+ });
+ } catch (e) {
+ throw this.#backgroundDelete(blobId), e;
+ }
+ return maybeOldBlobId !== void 0 && this.#backgroundDelete(maybeOldBlobId), { etag };
+ }
+ async #completeMultipartUpload(key, uploadId, parts) {
+ validate.key(key);
+ let minPartSize = this.beingTested ? R2Limits.MIN_MULTIPART_PART_SIZE_TEST : R2Limits.MIN_MULTIPART_PART_SIZE, { newRow, oldBlobIds } = this.#stmts.completeMultipartUpload(
+ key,
+ uploadId,
+ parts,
+ minPartSize
+ );
+ for (let blobId of oldBlobIds)
+ this.#backgroundDelete(blobId);
+ return new InternalR2Object(newRow);
+ }
+ async #abortMultipartUpload(key, uploadId) {
+ validate.key(key);
+ let oldBlobIds = this.#stmts.abortMultipartUpload(key, uploadId);
+ for (let blobId of oldBlobIds)
+ this.#backgroundDelete(blobId);
+ }
+ get = async (req) => {
+ let metadata = decodeHeaderMetadata(req), result;
+ if (metadata.method === "head")
+ result = await this.#head(metadata.object);
+ else if (metadata.method === "get")
+ result = await this.#get(metadata.object, metadata);
+ else if (metadata.method === "list")
+ result = await this.#list(metadata);
+ else
+ throw new InternalError();
+ return encodeResult(result);
+ };
+ put = async (req) => {
+ let { metadata, metadataSize, value } = await decodeMetadata(req);
+ if (metadata.method === "delete")
+ return await this.#delete(
+ "object" in metadata ? metadata.object : metadata.objects
+ ), new Response();
+ if (metadata.method === "put") {
+ let contentLength = parseInt(req.headers.get("Content-Length"));
+ assert2(!isNaN(contentLength));
+ let valueSize = contentLength - metadataSize, result = await this.#put(
+ metadata.object,
+ value,
+ valueSize,
+ metadata
+ );
+ return encodeResult(result);
+ } else if (metadata.method === "createMultipartUpload") {
+ let result = await this.#createMultipartUpload(
+ metadata.object,
+ metadata
+ );
+ return encodeJSONResult(result);
+ } else if (metadata.method === "uploadPart") {
+ let contentLength = parseInt(req.headers.get("Content-Length"));
+ assert2(!isNaN(contentLength));
+ let valueSize = contentLength - metadataSize, result = await this.#uploadPart(
+ metadata.object,
+ metadata.uploadId,
+ metadata.partNumber,
+ value,
+ valueSize
+ );
+ return encodeJSONResult(result);
+ } else if (metadata.method === "completeMultipartUpload") {
+ let result = await this.#completeMultipartUpload(
+ metadata.object,
+ metadata.uploadId,
+ metadata.parts
+ );
+ return encodeResult(result);
+ } else {
+ if (metadata.method === "abortMultipartUpload")
+ return await this.#abortMultipartUpload(metadata.object, metadata.uploadId), new Response();
+ throw new InternalError();
+ }
+ };
+};
+__decorateClass([
+ GET("/")
+], R2BucketObject.prototype, "get", 2), __decorateClass([
+ PUT("/")
+], R2BucketObject.prototype, "put", 2);
+export {
+ R2BucketObject
+};
+//# sourceMappingURL=bucket.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map
new file mode 100644
index 0000000..d0c6155
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/r2/bucket.worker.ts", "../../../../src/workers/r2/constants.ts", "../../../../src/workers/r2/errors.worker.ts", "../../../../src/workers/r2/r2Object.worker.ts", "../../../../src/workers/r2/schemas.worker.ts", "../../../../src/workers/r2/validator.worker.ts"],
+ "mappings": "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",
+ "names": ["assert", "Buffer", "identity", "Buffer", "ifMatch", "ifModifiedSince", "Buffer", "Buffer", "assert", "partRows", "identity", "blobId"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/shared/index.worker.js b/node_modules/miniflare/dist/src/workers/shared/index.worker.js
new file mode 100644
index 0000000..1fb902c
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/index.worker.js
@@ -0,0 +1,706 @@
+// packages/miniflare/src/workers/shared/blob.worker.ts
+import assert from "node-internal:internal_assert";
+import { Buffer as Buffer2 } from "node-internal:internal_buffer";
+
+// packages/miniflare/src/workers/shared/data.ts
+import { Buffer } from "node-internal:internal_buffer";
+function viewToBuffer(view) {
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
+}
+function base64Encode(value) {
+ return Buffer.from(value, "utf8").toString("base64");
+}
+function base64Decode(encoded) {
+ return Buffer.from(encoded, "base64").toString("utf8");
+}
+var dotRegexp = /(^|\/|\\)(\.+)(\/|\\|$)/g, illegalRegexp = /[?<>*"'^/\\:|\x00-\x1f\x80-\x9f]/g, windowsReservedRegexp = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i, leadingRegexp = /^[ /\\]+/, trailingRegexp = /[ /\\]+$/;
+function dotReplacement(match, g1, g2, g3) {
+ return `${g1}${"".padStart(g2.length, "_")}${g3}`;
+}
+function underscoreReplacement(match) {
+ return "".padStart(match.length, "_");
+}
+function sanitisePath(unsafe) {
+ return unsafe.replace(dotRegexp, dotReplacement).replace(dotRegexp, dotReplacement).replace(illegalRegexp, "_").replace(windowsReservedRegexp, "_").replace(leadingRegexp, underscoreReplacement).replace(trailingRegexp, underscoreReplacement).substring(0, 255);
+}
+
+// packages/miniflare/src/workers/shared/blob.worker.ts
+var ENCODER = new TextEncoder();
+async function readPrefix(stream, prefixLength) {
+ let reader = await stream.getReader({ mode: "byob" }), result = await reader.readAtLeast(
+ prefixLength,
+ new Uint8Array(prefixLength)
+ );
+ assert(result.value !== void 0), reader.releaseLock();
+ let rest = stream.pipeThrough(new IdentityTransformStream());
+ return [result.value, rest];
+}
+function rangeHeaders(range) {
+ return { Range: `bytes=${range.start}-${range.end}` };
+}
+function assertFullRangeRequest(range, contentLength) {
+ assert(
+ range.start === 0 && range.end === contentLength - 1,
+ "Received full content, but requested partial content"
+ );
+}
+async function fetchSingleRange(fetcher, url, range) {
+ let headers = range === void 0 ? {} : rangeHeaders(range), res = await fetcher.fetch(url, { headers });
+ if (res.status === 404)
+ return null;
+ if (assert(res.ok && res.body !== null), range !== void 0 && res.status !== 206) {
+ let contentLength = parseInt(res.headers.get("Content-Length"));
+ assert(!Number.isNaN(contentLength)), assertFullRangeRequest(range, contentLength);
+ }
+ return res.body;
+}
+async function writeMultipleRanges(fetcher, url, ranges, boundary, writable, contentLength, contentType) {
+ for (let i = 0; i < ranges.length; i++) {
+ let range = ranges[i], writer2 = writable.getWriter();
+ i > 0 && await writer2.write(ENCODER.encode(`\r
+`)), await writer2.write(ENCODER.encode(`--${boundary}\r
+`)), contentType !== void 0 && await writer2.write(ENCODER.encode(`Content-Type: ${contentType}\r
+`));
+ let start = range.start, end = Math.min(range.end, contentLength - 1);
+ await writer2.write(
+ ENCODER.encode(
+ `Content-Range: bytes ${start}-${end}/${contentLength}\r
+\r
+`
+ )
+ ), writer2.releaseLock();
+ let res = await fetcher.fetch(url, { headers: rangeHeaders(range) });
+ assert(
+ res.ok && res.body !== null,
+ `Failed to fetch ${url}[${range.start},${range.end}], received ${res.status} ${res.statusText}`
+ ), res.status !== 206 && assertFullRangeRequest(range, contentLength), await res.body.pipeTo(writable, { preventClose: !0 });
+ }
+ let writer = writable.getWriter();
+ ranges.length > 0 && await writer.write(ENCODER.encode(`\r
+`)), await writer.write(ENCODER.encode(`--${boundary}--`)), await writer.close();
+}
+async function fetchMultipleRanges(fetcher, url, ranges, opts) {
+ let res = await fetcher.fetch(url, { method: "HEAD" });
+ if (res.status === 404)
+ return null;
+ assert(res.ok);
+ let contentLength = parseInt(res.headers.get("Content-Length"));
+ assert(!Number.isNaN(contentLength));
+ let boundary = `miniflare-boundary-${crypto.randomUUID()}`, multipartContentType = `multipart/byteranges; boundary=${boundary}`, { readable, writable } = new IdentityTransformStream();
+ return writeMultipleRanges(
+ fetcher,
+ url,
+ ranges,
+ boundary,
+ writable,
+ contentLength,
+ opts?.contentType
+ ).catch((e) => console.error("Error writing multipart stream:", e)), { multipartContentType, body: readable };
+}
+async function fetchRange(fetcher, url, range, opts) {
+ return Array.isArray(range) ? fetchMultipleRanges(fetcher, url, range, opts) : fetchSingleRange(fetcher, url, range);
+}
+function generateBlobId() {
+ let idBuffer = Buffer2.alloc(40);
+ return crypto.getRandomValues(
+ new Uint8Array(idBuffer.buffer, idBuffer.byteOffset, 32)
+ ), idBuffer.writeBigInt64BE(
+ BigInt(performance.timeOrigin + performance.now()),
+ 32
+ ), idBuffer.toString("hex");
+}
+var BlobStore = class {
+ // Database for binary large objects. Provides single and multi-ranged
+ // streaming reads and writes.
+ //
+ // Blobs have unguessable identifiers, can be deleted, but are otherwise
+ // immutable. These properties make it possible to perform atomic updates with
+ // the SQLite metadata store. No other operations will be able to interact
+ // with the blob until it's committed to the metadata store, because they
+ // won't be able to guess the ID, and we don't allow listing blobs.
+ //
+ // For example, if we put a blob in the store, then fail to insert the blob ID
+ // into the SQLite database for some reason during a transaction (e.g.
+ // `onlyIf` condition failed), no other operations can read that blob because
+ // the ID is lost (we'll just background-delete the blob in this case).
+ #fetcher;
+ #baseURL;
+ constructor(fetcher, namespace) {
+ namespace = encodeURIComponent(sanitisePath(namespace)), this.#fetcher = fetcher, this.#baseURL = `http://placeholder/${namespace}/blobs/`;
+ }
+ idURL(id) {
+ let url = new URL(this.#baseURL + id);
+ return url.toString().startsWith(this.#baseURL) ? url : null;
+ }
+ async get(id, range, opts) {
+ let idURL = this.idURL(id);
+ return idURL === null ? null : fetchRange(this.#fetcher, idURL, range, opts);
+ }
+ async put(stream) {
+ let id = generateBlobId(), idURL = this.idURL(id);
+ return assert(idURL !== null), await this.#fetcher.fetch(idURL, {
+ method: "PUT",
+ body: stream
+ }), id;
+ }
+ async delete(id) {
+ let idURL = this.idURL(id);
+ if (idURL === null)
+ return;
+ let res = await this.#fetcher.fetch(idURL, { method: "DELETE" });
+ assert(res.ok || res.status === 404);
+ }
+};
+
+// packages/miniflare/src/workers/shared/constants.ts
+var SharedHeaders = {
+ LOG_LEVEL: "MF-Log-Level"
+}, SharedBindings = {
+ TEXT_NAMESPACE: "MINIFLARE_NAMESPACE",
+ DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT",
+ MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS",
+ MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK"
+}, LogLevel = /* @__PURE__ */ ((LogLevel3) => (LogLevel3[LogLevel3.NONE = 0] = "NONE", LogLevel3[LogLevel3.ERROR = 1] = "ERROR", LogLevel3[LogLevel3.WARN = 2] = "WARN", LogLevel3[LogLevel3.INFO = 3] = "INFO", LogLevel3[LogLevel3.DEBUG = 4] = "DEBUG", LogLevel3[LogLevel3.VERBOSE = 5] = "VERBOSE", LogLevel3))(LogLevel || {});
+
+// packages/miniflare/src/workers/shared/keyvalue.worker.ts
+import assert3 from "node-internal:internal_assert";
+
+// packages/miniflare/src/workers/shared/sql.worker.ts
+import assert2 from "node-internal:internal_assert";
+function isTypedValue(value) {
+ return value === null || typeof value == "string" || typeof value == "number" || value instanceof ArrayBuffer;
+}
+function createStatementFactory(sql) {
+ return (query) => {
+ let keyIndices = /* @__PURE__ */ new Map();
+ query = query.replace(/[:@$]([a-z0-9_]+)/gi, (_, name) => {
+ let index = keyIndices.get(name);
+ return index === void 0 && (index = keyIndices.size, keyIndices.set(name, index)), `?${index + 1}`;
+ });
+ let stmt = sql.prepare(query);
+ return (argsObject) => {
+ let entries = Object.entries(argsObject);
+ assert2.strictEqual(
+ entries.length,
+ keyIndices.size,
+ "Expected same number of keys in bindings and query"
+ );
+ let argsArray = new Array(entries.length);
+ for (let [key, value] of entries) {
+ let index = keyIndices.get(key);
+ assert2(index !== void 0, `Unexpected binding key: ${key}`), argsArray[index] = value;
+ }
+ return stmt(...argsArray);
+ };
+ };
+}
+function createTransactionFactory(storage) {
+ return (closure) => (...args) => storage.transactionSync(() => closure(...args));
+}
+function createTypedSql(storage) {
+ let sql = storage.sql;
+ return sql.stmt = createStatementFactory(sql), sql.txn = createTransactionFactory(storage), sql;
+}
+function get(cursor) {
+ let result;
+ for (let row of cursor)
+ result ??= row;
+ return result;
+}
+function all(cursor) {
+ return Array.from(cursor);
+}
+function drain(cursor) {
+ for (let _ of cursor)
+ ;
+}
+function escapeLike(prefix) {
+ return prefix.replace(/[\\_%]/g, "\\$&");
+}
+
+// packages/miniflare/src/workers/shared/keyvalue.worker.ts
+var SQL_SCHEMA = `
+CREATE TABLE IF NOT EXISTS _mf_entries (
+ key TEXT PRIMARY KEY,
+ blob_id TEXT NOT NULL,
+ expiration INTEGER,
+ metadata TEXT
+);
+CREATE INDEX IF NOT EXISTS _mf_entries_expiration_idx ON _mf_entries(expiration);
+`;
+function sqlStmts(db) {
+ let stmtGetBlobIdByKey = db.stmt(
+ "SELECT blob_id FROM _mf_entries WHERE :key"
+ ), stmtPut = db.stmt(
+ `INSERT OR REPLACE INTO _mf_entries (key, blob_id, expiration, metadata)
+ VALUES (:key, :blob_id, :expiration, :metadata)`
+ );
+ return {
+ getByKey: db.prepare(
+ "SELECT key, blob_id, expiration, metadata FROM _mf_entries WHERE key = ?1"
+ ),
+ put: db.txn((newEntry) => {
+ let key = newEntry.key, previousEntry = get(stmtGetBlobIdByKey({ key }));
+ return stmtPut(newEntry), previousEntry?.blob_id;
+ }),
+ deleteByKey: db.stmt(
+ "DELETE FROM _mf_entries WHERE key = :key RETURNING blob_id, expiration"
+ ),
+ deleteExpired: db.stmt(
+ // `expiration` may be `NULL`, but `NULL < ...` should be falsy
+ "DELETE FROM _mf_entries WHERE expiration < :now RETURNING blob_id"
+ ),
+ list: db.stmt(
+ `SELECT key, expiration, metadata FROM _mf_entries
+ WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\'
+ AND key > :start_after
+ AND (expiration IS NULL OR expiration >= :now)
+ ORDER BY key LIMIT :limit`
+ )
+ };
+}
+function escapePrefix(prefix) {
+ return prefix.replace(/[\\_%]/g, "\\$&");
+}
+function rowEntry(entry) {
+ return {
+ key: entry.key,
+ expiration: entry.expiration ?? void 0,
+ metadata: entry.metadata === null ? void 0 : JSON.parse(entry.metadata)
+ };
+}
+var KeyValueStorage = class {
+ #stmts;
+ #blob;
+ #timers;
+ constructor(object) {
+ object.db.exec("PRAGMA case_sensitive_like = TRUE"), object.db.exec(SQL_SCHEMA), this.#stmts = sqlStmts(object.db), this.#blob = object.blob, this.#timers = object.timers;
+ }
+ #hasExpired(entry) {
+ return entry.expiration !== null && entry.expiration <= this.#timers.now();
+ }
+ #backgroundDelete(blobId) {
+ this.#timers.queueMicrotask(
+ () => this.#blob.delete(blobId).catch(() => {
+ })
+ );
+ }
+ async get(key, optsFactory) {
+ let row = get(this.#stmts.getByKey(key));
+ if (row === void 0)
+ return null;
+ if (this.#hasExpired(row))
+ return drain(this.#stmts.deleteByKey({ key })), this.#backgroundDelete(row.blob_id), null;
+ let entry = rowEntry(row), opts = entry.metadata && optsFactory?.(entry.metadata);
+ if (opts?.ranges === void 0 || opts.ranges.length <= 1) {
+ let value = await this.#blob.get(row.blob_id, opts?.ranges?.[0]);
+ return value === null ? null : { ...entry, value };
+ } else {
+ let value = await this.#blob.get(row.blob_id, opts.ranges, opts);
+ return value === null ? null : { ...entry, value };
+ }
+ }
+ async put(entry) {
+ assert3(entry.key !== "");
+ let blobId = await this.#blob.put(entry.value);
+ entry.signal?.aborted && (this.#backgroundDelete(blobId), entry.signal.throwIfAborted());
+ let maybeOldBlobId = this.#stmts.put({
+ key: entry.key,
+ blob_id: blobId,
+ expiration: entry.expiration ?? null,
+ metadata: entry.metadata === void 0 ? null : JSON.stringify(await entry.metadata)
+ });
+ maybeOldBlobId !== void 0 && this.#backgroundDelete(maybeOldBlobId);
+ }
+ async delete(key) {
+ let cursor = this.#stmts.deleteByKey({ key }), row = get(cursor);
+ return row === void 0 ? !1 : (this.#backgroundDelete(row.blob_id), !this.#hasExpired(row));
+ }
+ async list(opts) {
+ let now = this.#timers.now(), escaped_prefix = escapePrefix(opts.prefix ?? ""), start_after = opts.cursor === void 0 ? "" : base64Decode(opts.cursor), limit = opts.limit + 1, rowsCursor = this.#stmts.list({
+ now,
+ escaped_prefix,
+ start_after,
+ limit
+ }), rows = Array.from(rowsCursor), expiredRows = this.#stmts.deleteExpired({ now });
+ for (let row of expiredRows)
+ this.#backgroundDelete(row.blob_id);
+ let hasMoreRows = rows.length === opts.limit + 1;
+ rows.splice(opts.limit, 1);
+ let keys = rows.map((row) => rowEntry(row)), nextCursor = hasMoreRows ? base64Encode(rows[opts.limit - 1].key) : void 0;
+ return { keys, cursor: nextCursor };
+ }
+};
+
+// packages/miniflare/src/workers/shared/matcher.ts
+function testRegExps(matcher, value) {
+ for (let exclude of matcher.exclude)
+ if (exclude.test(value))
+ return !1;
+ for (let include of matcher.include)
+ if (include.test(value))
+ return !0;
+ return !1;
+}
+
+// packages/miniflare/src/workers/shared/object.worker.ts
+import assert5 from "node-internal:internal_assert";
+
+// packages/miniflare/src/workers/shared/router.worker.ts
+var HttpError = class extends Error {
+ constructor(code, message) {
+ super(message);
+ this.code = code;
+ Object.setPrototypeOf(this, new.target.prototype), this.name = `${new.target.name} [${code}]`;
+ }
+ toResponse() {
+ return new Response(this.message, {
+ status: this.code,
+ // Custom statusMessage is required for runtime error messages
+ statusText: this.message.substring(0, 512)
+ });
+ }
+}, kRoutesTemplate = Symbol("kRoutesTemplate"), Router = class {
+ // Routes added by @METHOD decorators
+ #routes;
+ constructor() {
+ this.#routes = new.target.prototype[kRoutesTemplate];
+ }
+ async fetch(req) {
+ let url = new URL(req.url), methodRoutes = this.#routes?.get(req.method);
+ if (methodRoutes === void 0)
+ return new Response(null, { status: 405 });
+ let handlers = this;
+ try {
+ for (let [path, key] of methodRoutes) {
+ let match = path.exec(url.pathname);
+ if (match !== null)
+ return await handlers[key](req, match.groups, url);
+ }
+ return new Response(null, { status: 404 });
+ } catch (e) {
+ if (e instanceof HttpError)
+ return e.toResponse();
+ throw e;
+ }
+ }
+};
+function pathToRegexp(path) {
+ return path === void 0 ? /^.*$/ : (path.endsWith("/") || (path += "/?"), path = path.replace(/\//g, "\\/"), path = path.replace(/:(\w+)/g, "(?<$1>[^\\/]+)"), new RegExp(`^${path}$`));
+}
+var createRouteDecorator = (method) => (path) => (prototype, key) => {
+ let route = [pathToRegexp(path), key], routes = prototype[kRoutesTemplate] ??= /* @__PURE__ */ new Map(), methodRoutes = routes.get(method);
+ methodRoutes ? methodRoutes.push(route) : routes.set(method, [route]);
+}, GET = createRouteDecorator("GET"), HEAD = createRouteDecorator("HEAD"), POST = createRouteDecorator("POST"), PUT = createRouteDecorator("PUT"), DELETE = createRouteDecorator("DELETE"), PURGE = createRouteDecorator("PURGE"), PATCH = createRouteDecorator("PATCH");
+
+// packages/miniflare/src/workers/shared/timers.worker.ts
+import assert4 from "node-internal:internal_assert";
+var kFakeTimerHandle = Symbol("kFakeTimerHandle"), Timers = class {
+ // Fake unix time in milliseconds. If defined, fake timers will be enabled.
+ #fakeTimestamp;
+ #fakeNextTimerHandle = 0;
+ #fakePendingTimeouts = /* @__PURE__ */ new Map();
+ #fakeRunningTasks = /* @__PURE__ */ new Set();
+ // Timers API
+ now = () => this.#fakeTimestamp ?? Date.now();
+ setTimeout(closure, delay, ...args) {
+ if (this.#fakeTimestamp === void 0)
+ return setTimeout(closure, delay, ...args);
+ let handle = this.#fakeNextTimerHandle++, argsClosure = () => closure(...args);
+ if (delay === 0)
+ this.queueMicrotask(argsClosure);
+ else {
+ let timeout = {
+ triggerTimestamp: this.#fakeTimestamp + delay,
+ closure: argsClosure
+ };
+ this.#fakePendingTimeouts.set(handle, timeout);
+ }
+ return { [kFakeTimerHandle]: handle };
+ }
+ clearTimeout(handle) {
+ if (typeof handle == "number")
+ return clearTimeout(handle);
+ this.#fakePendingTimeouts.delete(handle[kFakeTimerHandle]);
+ }
+ queueMicrotask(closure) {
+ if (this.#fakeTimestamp === void 0)
+ return queueMicrotask(closure);
+ let result = closure();
+ result instanceof Promise && (this.#fakeRunningTasks.add(result), result.finally(() => this.#fakeRunningTasks.delete(result)));
+ }
+ // Fake Timers Control API
+ #runPendingTimeouts() {
+ if (this.#fakeTimestamp !== void 0)
+ for (let [handle, timeout] of this.#fakePendingTimeouts)
+ timeout.triggerTimestamp <= this.#fakeTimestamp && (this.#fakePendingTimeouts.delete(handle), this.queueMicrotask(timeout.closure));
+ }
+ enableFakeTimers(timestamp) {
+ this.#fakeTimestamp = timestamp, this.#runPendingTimeouts();
+ }
+ disableFakeTimers() {
+ this.#fakeTimestamp = void 0, this.#fakePendingTimeouts.clear();
+ }
+ advanceFakeTime(delta) {
+ assert4(
+ this.#fakeTimestamp !== void 0,
+ "Expected fake timers to be enabled before `advanceFakeTime()` call"
+ ), this.#fakeTimestamp += delta, this.#runPendingTimeouts();
+ }
+ async waitForFakeTasks() {
+ for (; this.#fakeRunningTasks.size > 0; )
+ await Promise.all(this.#fakeRunningTasks);
+ }
+};
+
+// packages/miniflare/src/workers/shared/types.ts
+function reduceError(e) {
+ return {
+ name: e?.name,
+ message: e?.message ?? String(e),
+ stack: e?.stack,
+ cause: e?.cause === void 0 ? void 0 : reduceError(e.cause)
+ };
+}
+function maybeApply(f, maybeValue) {
+ return maybeValue === void 0 ? void 0 : f(maybeValue);
+}
+
+// packages/miniflare/src/workers/shared/object.worker.ts
+var MiniflareDurableObject = class extends Router {
+ constructor(state, env) {
+ super();
+ this.state = state;
+ this.env = env;
+ }
+ timers = new Timers();
+ // If this Durable Object receives a control op, assume it's being tested.
+ // We use this to adjust some limits in tests.
+ beingTested = !1;
+ #db;
+ get db() {
+ return this.#db ??= createTypedSql(this.state.storage);
+ }
+ #name;
+ get name() {
+ return assert5(
+ this.#name !== void 0,
+ "Expected `MiniflareDurableObject#fetch()` call before `name` access"
+ ), this.#name;
+ }
+ #blob;
+ get blob() {
+ if (this.#blob !== void 0)
+ return this.#blob;
+ let maybeBlobsService = this.env[SharedBindings.MAYBE_SERVICE_BLOBS];
+ return assert5(
+ maybeBlobsService !== void 0,
+ `Expected ${SharedBindings.MAYBE_SERVICE_BLOBS} service binding`
+ ), this.#blob = new BlobStore(maybeBlobsService, this.name), this.#blob;
+ }
+ async logWithLevel(level, message) {
+ await this.env[SharedBindings.MAYBE_SERVICE_LOOPBACK]?.fetch(
+ "http://localhost/core/log",
+ {
+ method: "POST",
+ headers: { [SharedHeaders.LOG_LEVEL]: level.toString() },
+ body: message
+ }
+ );
+ }
+ async #handleControlOp({
+ name,
+ args
+ }) {
+ if (this.beingTested = !0, name === "sqlQuery") {
+ assert5(args !== void 0);
+ let [query, ...params] = args;
+ assert5(typeof query == "string"), assert5(params.every(isTypedValue));
+ let results = all(this.db.prepare(query)(...params));
+ return Response.json(results);
+ } else if (name === "getBlob") {
+ assert5(args !== void 0);
+ let [id] = args;
+ assert5(typeof id == "string");
+ let stream = await this.blob.get(id);
+ return new Response(stream, { status: stream === null ? 404 : 200 });
+ } else {
+ let func = this.timers[name];
+ assert5(typeof func == "function");
+ let result = await func.apply(this.timers, args);
+ return Response.json(result ?? null);
+ }
+ }
+ async fetch(req) {
+ let controlOp = req?.cf?.miniflare?.controlOp;
+ if (controlOp !== void 0)
+ return this.#handleControlOp(controlOp);
+ let name = req.cf?.miniflare?.name;
+ assert5(name !== void 0, "Expected `cf.miniflare.name`"), this.#name = name;
+ try {
+ return await super.fetch(req);
+ } catch (e) {
+ let error = reduceError(e), fallback = error.stack ?? error.message, loopbackService = this.env[SharedBindings.MAYBE_SERVICE_LOOPBACK];
+ return loopbackService !== void 0 ? loopbackService.fetch("http://localhost/core/error", {
+ method: "POST",
+ body: JSON.stringify(error)
+ }).catch(() => {
+ console.error(fallback);
+ }) : console.error(fallback), new Response(fallback, { status: 500 });
+ } finally {
+ req.body !== null && !req.bodyUsed && await req.body.pipeTo(new WritableStream());
+ }
+ }
+};
+
+// packages/miniflare/src/workers/shared/range.ts
+var rangePrefixRegexp = /^ *bytes *=/i, rangeRegexp = /^ *(?<start>\d+)? *- *(?<end>\d+)? *$/;
+function parseRanges(rangeHeader, length) {
+ let prefixMatch = rangePrefixRegexp.exec(rangeHeader);
+ if (prefixMatch === null)
+ return;
+ if (rangeHeader = rangeHeader.substring(prefixMatch[0].length), rangeHeader.trimStart() === "")
+ return [];
+ let ranges = rangeHeader.split(","), result = [];
+ for (let range of ranges) {
+ let match = rangeRegexp.exec(range);
+ if (match === null)
+ return;
+ let { start, end } = match.groups;
+ if (start !== void 0 && end !== void 0) {
+ let rangeStart = parseInt(start), rangeEnd = parseInt(end);
+ if (rangeStart > rangeEnd || rangeStart >= length)
+ return;
+ rangeEnd >= length && (rangeEnd = length - 1), result.push({ start: rangeStart, end: rangeEnd });
+ } else if (start !== void 0 && end === void 0) {
+ let rangeStart = parseInt(start);
+ if (rangeStart >= length)
+ return;
+ result.push({ start: rangeStart, end: length - 1 });
+ } else if (start === void 0 && end !== void 0) {
+ let suffix = parseInt(end);
+ if (suffix >= length)
+ return [];
+ if (suffix === 0)
+ continue;
+ result.push({ start: length - suffix, end: length - 1 });
+ } else
+ return;
+ }
+ return result;
+}
+
+// packages/miniflare/src/workers/shared/sync.ts
+import assert6 from "node-internal:internal_assert";
+var DeferredPromise = class extends Promise {
+ resolve;
+ reject;
+ constructor(executor = () => {
+ }) {
+ let promiseResolve, promiseReject;
+ super((resolve, reject) => (promiseResolve = resolve, promiseReject = reject, executor(resolve, reject))), this.resolve = promiseResolve, this.reject = promiseReject;
+ }
+}, Mutex = class {
+ locked = !1;
+ resolveQueue = [];
+ drainQueue = [];
+ lock() {
+ if (!this.locked) {
+ this.locked = !0;
+ return;
+ }
+ return new Promise((resolve) => this.resolveQueue.push(resolve));
+ }
+ unlock() {
+ if (assert6(this.locked), this.resolveQueue.length > 0)
+ this.resolveQueue.shift()?.();
+ else {
+ this.locked = !1;
+ let resolve;
+ for (; (resolve = this.drainQueue.shift()) !== void 0; )
+ resolve();
+ }
+ }
+ get hasWaiting() {
+ return this.resolveQueue.length > 0;
+ }
+ async runWith(closure) {
+ let acquireAwaitable = this.lock();
+ acquireAwaitable instanceof Promise && await acquireAwaitable;
+ try {
+ let awaitable = closure();
+ return awaitable instanceof Promise ? await awaitable : awaitable;
+ } finally {
+ this.unlock();
+ }
+ }
+ async drained() {
+ if (this.resolveQueue.length !== 0)
+ return new Promise((resolve) => this.drainQueue.push(resolve));
+ }
+}, WaitGroup = class {
+ counter = 0;
+ resolveQueue = [];
+ add() {
+ this.counter++;
+ }
+ done() {
+ if (assert6(this.counter > 0), this.counter--, this.counter === 0) {
+ let resolve;
+ for (; (resolve = this.resolveQueue.shift()) !== void 0; )
+ resolve();
+ }
+ }
+ wait() {
+ return this.counter === 0 ? Promise.resolve() : new Promise((resolve) => this.resolveQueue.push(resolve));
+ }
+};
+export {
+ BlobStore,
+ DELETE,
+ DeferredPromise,
+ GET,
+ HEAD,
+ HttpError,
+ KeyValueStorage,
+ LogLevel,
+ MiniflareDurableObject,
+ Mutex,
+ PATCH,
+ POST,
+ PURGE,
+ PUT,
+ Router,
+ SharedBindings,
+ SharedHeaders,
+ Timers,
+ WaitGroup,
+ all,
+ base64Decode,
+ base64Encode,
+ drain,
+ escapeLike,
+ get,
+ maybeApply,
+ parseRanges,
+ readPrefix,
+ reduceError,
+ testRegExps,
+ viewToBuffer
+};
+/*! Path sanitisation regexps adapted from node-sanitize-filename:
+ * https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js#L4-L37
+ *
+ * Licensed under the ISC license:
+ *
+ * Copyright Parsha Pourkhomami <parshap@gmail.com>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+//# sourceMappingURL=index.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map
new file mode 100644
index 0000000..63ad169
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/shared/blob.worker.ts", "../../../../src/workers/shared/data.ts", "../../../../src/workers/shared/constants.ts", "../../../../src/workers/shared/keyvalue.worker.ts", "../../../../src/workers/shared/sql.worker.ts", "../../../../src/workers/shared/matcher.ts", "../../../../src/workers/shared/object.worker.ts", "../../../../src/workers/shared/router.worker.ts", "../../../../src/workers/shared/timers.worker.ts", "../../../../src/workers/shared/types.ts", "../../../../src/workers/shared/range.ts", "../../../../src/workers/shared/sync.ts"],
+ "mappings": ";AAAA,OAAO,YAAY;AACnB,SAAS,UAAAA,eAAc;;;ACDvB,SAAS,cAAc;AAEhB,SAAS,aAAa,MAAoC;AAC/D,SAAO,KAAK,OAAO,MAAM,KAAK,YAAY,KAAK,aAAa,KAAK,UAAU;AAC7E;AAEO,SAAS,aAAa,OAAuB;AAClD,SAAO,OAAO,KAAK,OAAO,MAAM,EAAE,SAAS,QAAQ;AACrD;AACO,SAAS,aAAa,SAAyB;AACpD,SAAO,OAAO,KAAK,SAAS,QAAQ,EAAE,SAAS,MAAM;AACvD;AAiBA,IAAM,YAAY,4BACZ,gBAAgB,qCAChB,wBAAwB,iDACxB,gBAAgB,YAChB,iBAAiB;AAEvB,SAAS,eAAe,OAAe,IAAY,IAAY,IAAY;AACzE,SAAO,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI;AAC/C;AAEA,SAAS,sBAAsB,OAAe;AAC5C,SAAO,GAAG,SAAS,MAAM,QAAQ,GAAG;AACtC;AAEO,SAAS,aAAa,QAAwB;AACnD,SAAO,OACJ,QAAQ,WAAW,cAAc,EACjC,QAAQ,WAAW,cAAc,EACjC,QAAQ,eAAe,GAAG,EAC1B,QAAQ,uBAAuB,GAAG,EAClC,QAAQ,eAAe,qBAAqB,EAC5C,QAAQ,gBAAgB,qBAAqB,EAC7C,UAAU,GAAG,GAAG;AACrB;;;AD9CA,IAAM,UAAU,IAAI,YAAY;AAEhC,eAAsB,WACpB,QACA,cACqD;AACrD,MAAM,SAAS,MAAM,OAAO,UAAU,EAAE,MAAM,OAAO,CAAC,GAChD,SAAS,MAAM,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,WAAW,YAAY;AAAA,EAC7B;AACA,SAAO,OAAO,UAAU,MAAS,GACjC,OAAO,YAAY;AAGnB,MAAM,OAAO,OAAO,YAAY,IAAI,wBAAwB,CAAC;AAC7D,SAAO,CAAC,OAAO,OAAO,IAAI;AAC5B;AAEA,SAAS,aAAa,OAAuB;AAC3C,SAAO,EAAE,OAAO,SAAS,MAAM,SAAS,MAAM,MAAM;AACtD;AAEA,SAAS,uBAAuB,OAAuB,eAAuB;AAC5E;AAAA,IACE,MAAM,UAAU,KAAK,MAAM,QAAQ,gBAAgB;AAAA,IACnD;AAAA,EACF;AACF;AAEA,eAAe,iBACb,SACA,KACA,OACgC;AAChC,MAAM,UAAuB,UAAU,SAAY,CAAC,IAAI,aAAa,KAAK,GACpE,MAAM,MAAM,QAAQ,MAAM,KAAK,EAAE,QAAQ,CAAC;AAGhD,MAAI,IAAI,WAAW;AAAK,WAAO;AAI/B,MADA,OAAO,IAAI,MAAM,IAAI,SAAS,IAAI,GAC9B,UAAU,UAAa,IAAI,WAAW,KAAK;AAK7C,QAAM,gBAAgB,SAAS,IAAI,QAAQ,IAAI,gBAAgB,CAAE;AACjE,WAAO,CAAC,OAAO,MAAM,aAAa,CAAC,GACnC,uBAAuB,OAAO,aAAa;AAAA,EAC7C;AACA,SAAO,IAAI;AACb;AASA,eAAe,oBACb,SACA,KACA,QACA,UACA,UACA,eACA,aACe;AACf,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,QAAM,QAAQ,OAAO,CAAC,GAChBC,UAAS,SAAS,UAAU;AAElC,IAAI,IAAI,KAAG,MAAMA,QAAO,MAAM,QAAQ,OAAO;AAAA,CAAM,CAAC,GAEpD,MAAMA,QAAO,MAAM,QAAQ,OAAO,KAAK;AAAA,CAAc,CAAC,GAClD,gBAAgB,UAClB,MAAMA,QAAO,MAAM,QAAQ,OAAO,iBAAiB;AAAA,CAAiB,CAAC;AAEvE,QAAM,QAAQ,MAAM,OACd,MAAM,KAAK,IAAI,MAAM,KAAK,gBAAgB,CAAC;AACjD,UAAMA,QAAO;AAAA,MACX,QAAQ;AAAA,QACN,wBAAwB,SAAS,OAAO;AAAA;AAAA;AAAA,MAC1C;AAAA,IACF,GACAA,QAAO,YAAY;AAEnB,QAAM,MAAM,MAAM,QAAQ,MAAM,KAAK,EAAE,SAAS,aAAa,KAAK,EAAE,CAAC;AACrE;AAAA,MACE,IAAI,MAAM,IAAI,SAAS;AAAA,MACvB,mBAAmB,OAAO,MAAM,SAAS,MAAM,kBAAkB,IAAI,UAAU,IAAI;AAAA,IACrF,GAGI,IAAI,WAAW,OAAK,uBAAuB,OAAO,aAAa,GACnE,MAAM,IAAI,KAAK,OAAO,UAAU,EAAE,cAAc,GAAK,CAAC;AAAA,EACxD;AAEA,MAAM,SAAS,SAAS,UAAU;AAClC,EAAI,OAAO,SAAS,KAAG,MAAM,OAAO,MAAM,QAAQ,OAAO;AAAA,CAAM,CAAC,GAChE,MAAM,OAAO,MAAM,QAAQ,OAAO,KAAK,YAAY,CAAC,GACpD,MAAM,OAAO,MAAM;AACrB;AACA,eAAe,oBACb,SACA,KACA,QACA,MACyC;AAEzC,MAAM,MAAM,MAAM,QAAQ,MAAM,KAAK,EAAE,QAAQ,OAAO,CAAC;AACvD,MAAI,IAAI,WAAW;AAAK,WAAO;AAC/B,SAAO,IAAI,EAAE;AAIb,MAAM,gBAAgB,SAAS,IAAI,QAAQ,IAAI,gBAAgB,CAAE;AACjE,SAAO,CAAC,OAAO,MAAM,aAAa,CAAC;AAInC,MAAM,WAAW,sBAAsB,OAAO,WAAW,KACnD,uBAAuB,kCAAkC,YACzD,EAAE,UAAU,SAAS,IAAI,IAAI,wBAAwB;AAC3D,SAAK;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR,EAAE,MAAM,CAAC,MAAM,QAAQ,MAAM,mCAAmC,CAAC,CAAC,GAC3D,EAAE,sBAAsB,MAAM,SAAS;AAChD;AAEA,eAAe,WACb,SACA,KACA,OACA,MACsE;AACtE,SAAI,MAAM,QAAQ,KAAK,IACd,oBAAoB,SAAS,KAAK,OAAO,IAAI,IAE7C,iBAAiB,SAAS,KAAK,KAAK;AAE/C;AAEA,SAAS,iBAAyB;AAChC,MAAM,WAAWC,QAAO,MAAM,EAAE;AAChC,gBAAO;AAAA,IACL,IAAI,WAAW,SAAS,QAAQ,SAAS,YAAY,EAAE;AAAA,EACzD,GACA,SAAS;AAAA,IACP,OAAO,YAAY,aAAa,YAAY,IAAI,CAAC;AAAA,IACjD;AAAA,EACF,GACO,SAAS,SAAS,KAAK;AAChC;AAIO,IAAM,YAAN,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeZ;AAAA,EACA;AAAA,EAET,YAAY,SAAkB,WAAmB;AAC/C,gBAAY,mBAAmB,aAAa,SAAS,CAAC,GACtD,KAAK,WAAW,SAKhB,KAAK,WAAW,sBAAsB;AAAA,EACxC;AAAA,EAEQ,MAAM,IAAY;AACxB,QAAM,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE;AACtC,WAAO,IAAI,SAAS,EAAE,WAAW,KAAK,QAAQ,IAAI,MAAM;AAAA,EAC1D;AAAA,EAWA,MAAM,IACJ,IACA,OACA,MACsE;AAEtE,QAAM,QAAQ,KAAK,MAAM,EAAE;AAC3B,WAAI,UAAU,OAAa,OAEpB,WAAW,KAAK,UAAU,OAAO,OAAO,IAAI;AAAA,EACrD;AAAA,EAEA,MAAM,IAAI,QAAqD;AAC7D,QAAM,KAAK,eAAe,GAGpB,QAAQ,KAAK,MAAM,EAAE;AAC3B,kBAAO,UAAU,IAAI,GAIrB,MAAM,KAAK,SAAS,MAAM,OAAO;AAAA,MAC/B,QAAQ;AAAA,MACR,MAAM;AAAA,IACR,CAAC,GAEM;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAA2B;AAEtC,QAAM,QAAQ,KAAK,MAAM,EAAE;AAC3B,QAAI,UAAU;AAAM;AACpB,QAAM,MAAM,MAAM,KAAK,SAAS,MAAM,OAAO,EAAE,QAAQ,SAAS,CAAC;AACjE,WAAO,IAAI,MAAM,IAAI,WAAW,GAAG;AAAA,EACrC;AACF;;;AEzPO,IAAM,gBAAgB;AAAA,EAC3B,WAAW;AACb,GAEa,iBAAiB;AAAA,EAC5B,gBAAgB;AAAA,EAChB,iCAAiC;AAAA,EACjC,qBAAqB;AAAA,EACrB,wBAAwB;AAC1B,GAEY,WAAL,kBAAKC,eACVA,oBAAA,oBACAA,oBAAA,sBACAA,oBAAA,oBACAA,oBAAA,oBACAA,oBAAA,sBACAA,oBAAA,0BANUA,YAAA;;;ACXZ,OAAOC,aAAY;;;ACAnB,OAAOC,aAAY;AAOZ,SAAS,aAAa,OAAqC;AAChE,SACE,UAAU,QACV,OAAO,SAAU,YACjB,OAAO,SAAU,YACjB,iBAAiB;AAErB;AA+BA,SAAS,uBAAuB,KAAwC;AACtE,SAAO,CAIL,UACG;AAEH,QAAM,aAAa,oBAAI,IAAoB;AAC3C,YAAQ,MAAM,QAAQ,uBAAuB,CAAC,GAAG,SAAiB;AAChE,UAAI,QAAQ,WAAW,IAAI,IAAI;AAC/B,aAAI,UAAU,WACZ,QAAQ,WAAW,MACnB,WAAW,IAAI,MAAM,KAAK,IAErB,IAAI,QAAQ;AAAA,IACrB,CAAC;AACD,QAAM,OAAO,IAAI,QAAyB,KAAK;AAG/C,WAAO,CAAC,eAAkB;AAExB,UAAM,UAAU,OAAO,QAAQ,UAAU;AACzC,MAAAA,QAAO;AAAA,QACL,QAAQ;AAAA,QACR,WAAW;AAAA,QACX;AAAA,MACF;AACA,UAAM,YAAY,IAAI,MAAkB,QAAQ,MAAM;AACtD,eAAW,CAAC,KAAK,KAAK,KAAK,SAAS;AAClC,YAAM,QAAQ,WAAW,IAAI,GAAG;AAChC,QAAAA,QAAO,UAAU,QAAW,2BAA2B,KAAK,GAC5D,UAAU,KAAK,IAAI;AAAA,MACrB;AAEA,aAAO,KAAK,GAAG,SAAS;AAAA,IAC1B;AAAA,EACF;AACF;AAKA,SAAS,yBACP,SACoB;AACpB,SAAO,CAAyB,YAC9B,IAAI,SACF,QAAQ,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACpD;AAMO,SAAS,eAAe,SAAyC;AACtE,MAAM,MAAM,QAAQ;AACpB,aAAI,OAAO,uBAAuB,GAAG,GACrC,IAAI,MAAM,yBAAyB,OAAO,GACnC;AACT;AAEO,SAAS,IACd,QACe;AACf,MAAI;AACJ,WAAW,OAAO;AAAQ,eAAW;AACrC,SAAO;AACT;AAEO,SAAS,IACd,QACK;AACL,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEO,SAAS,MAA6B,QAAkC;AAE7E,WAAW,KAAK;AAAQ;AAE1B;AAEO,SAAS,WAAW,QAAgB;AAEzC,SAAO,OAAO,QAAQ,WAAW,MAAM;AACzC;;;ADvFA,IAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,SAAS,SAAS,IAAc;AAC9B,MAAM,qBAAqB,GAAG;AAAA,IAC5B;AAAA,EACF,GACM,UAAU,GAAG;AAAA,IACjB;AAAA;AAAA,EAEF;AAEA,SAAO;AAAA,IACL,UAAU,GAAG;AAAA,MACX;AAAA,IACF;AAAA,IACA,KAAK,GAAG,IAAI,CAAC,aAAkB;AAG7B,UAAM,MAAM,SAAS,KACf,gBAAgB,IAAI,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACrD,qBAAQ,QAAQ,GACT,eAAe;AAAA,IACxB,CAAC;AAAA,IACD,aAAa,GAAG;AAAA,MACd;AAAA,IACF;AAAA,IACA,eAAe,GAAG;AAAA;AAAA,MAEhB;AAAA,IACF;AAAA,IACA,MAAM,GAAG;AAAA,MASP;AAAA;AAAA;AAAA;AAAA;AAAA,IAKF;AAAA,EACF;AACF;AAEA,SAAS,aAAa,QAAgB;AAEpC,SAAO,OAAO,QAAQ,WAAW,MAAM;AACzC;AAEA,SAAS,SAAmB,OAAiD;AAC3E,SAAO;AAAA,IACL,KAAK,MAAM;AAAA,IACX,YAAY,MAAM,cAAc;AAAA,IAChC,UAAU,MAAM,aAAa,OAAO,SAAY,KAAK,MAAM,MAAM,QAAQ;AAAA,EAC3E;AACF;AAMO,IAAM,kBAAN,MAA0C;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,QAAgC;AAC1C,WAAO,GAAG,KAAK,mCAAmC,GAClD,OAAO,GAAG,KAAK,UAAU,GACzB,KAAK,SAAS,SAAS,OAAO,EAAE,GAChC,KAAK,QAAQ,OAAO,MACpB,KAAK,UAAU,OAAO;AAAA,EACxB;AAAA,EAEA,YAAY,OAAgC;AAC1C,WAAO,MAAM,eAAe,QAAQ,MAAM,cAAc,KAAK,QAAQ,IAAI;AAAA,EAC3E;AAAA,EAEA,kBAAkB,QAAgB;AAMhC,SAAK,QAAQ;AAAA,MAAe,MAC1B,KAAK,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA,EAOA,MAAM,IACJ,KACA,aAGA;AAEA,QAAM,MAAM,IAAI,KAAK,OAAO,SAAS,GAAG,CAAC;AACzC,QAAI,QAAQ;AAAW,aAAO;AAE9B,QAAI,KAAK,YAAY,GAAG;AAStB,mBAAM,KAAK,OAAO,YAAY,EAAE,IAAI,CAAC,CAAC,GAEtC,KAAK,kBAAkB,IAAI,OAAO,GAC3B;AAIT,QAAM,QAAQ,SAAmB,GAAG,GAC9B,OAAO,MAAM,YAAY,cAAc,MAAM,QAAQ;AAC3D,QAAI,MAAM,WAAW,UAAa,KAAK,OAAO,UAAU,GAAG;AAGzD,UAAM,QAAQ,MAAM,KAAK,MAAM,IAAI,IAAI,SAAS,MAAM,SAAS,CAAC,CAAC;AACjE,aAAI,UAAU,OAAa,OACpB,EAAE,GAAG,OAAO,MAAM;AAAA,IAC3B,OAAO;AAEL,UAAM,QAAQ,MAAM,KAAK,MAAM,IAAI,IAAI,SAAS,KAAK,QAAQ,IAAI;AACjE,aAAI,UAAU,OAAa,OACpB,EAAE,GAAG,OAAO,MAAM;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,MAAM,IACJ,OACe;AAQf,IAAAC,QAAO,MAAM,QAAQ,EAAE;AAMvB,QAAM,SAAS,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK;AAC/C,IAAI,MAAM,QAAQ,YAChB,KAAK,kBAAkB,MAAM,GAC7B,MAAM,OAAO,eAAe;AAI9B,QAAM,iBAAiB,KAAK,OAAO,IAAI;AAAA,MACrC,KAAK,MAAM;AAAA,MACX,SAAS;AAAA,MACT,YAAY,MAAM,cAAc;AAAA,MAChC,UACE,MAAM,aAAa,SACf,OACA,KAAK,UAAU,MAAM,MAAM,QAAQ;AAAA,IAC3C,CAAC;AAED,IAAI,mBAAmB,UAAW,KAAK,kBAAkB,cAAc;AAAA,EACzE;AAAA,EAEA,MAAM,OAAO,KAA+B;AAE1C,QAAM,SAAS,KAAK,OAAO,YAAY,EAAE,IAAI,CAAC,GACxC,MAAM,IAAI,MAAM;AACtB,WAAI,QAAQ,SAAkB,MAE9B,KAAK,kBAAkB,IAAI,OAAO,GAE3B,CAAC,KAAK,YAAY,GAAG;AAAA,EAC9B;AAAA,EAEA,MAAM,KAAK,MAAsD;AAE/D,QAAM,MAAM,KAAK,QAAQ,IAAI,GACvB,iBAAiB,aAAa,KAAK,UAAU,EAAE,GAM/C,cACJ,KAAK,WAAW,SAAY,KAAK,aAAa,KAAK,MAAM,GAIrD,QAAQ,KAAK,QAAQ,GACrB,aAAa,KAAK,OAAO,KAAK;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC,GACK,OAAO,MAAM,KAAK,UAAU,GAI5B,cAAc,KAAK,OAAO,cAAc,EAAE,IAAI,CAAC;AACrD,aAAW,OAAO;AAAa,WAAK,kBAAkB,IAAI,OAAO;AAGjE,QAAM,cAAc,KAAK,WAAW,KAAK,QAAQ;AACjD,SAAK,OAAO,KAAK,OAAO,CAAC;AAEzB,QAAM,OAAO,KAAK,IAAI,CAAC,QAAQ,SAAmB,GAAG,CAAC,GAIhD,aAAa,cACf,aAAa,KAAK,KAAK,QAAQ,CAAC,EAAE,GAAG,IACrC;AAEJ,WAAO,EAAE,MAAM,QAAQ,WAAW;AAAA,EACpC;AACF;;;AE/QO,SAAS,YAAY,SAAyB,OAAwB;AAC3E,WAAW,WAAW,QAAQ;AAAS,QAAI,QAAQ,KAAK,KAAK;AAAG,aAAO;AACvE,WAAW,WAAW,QAAQ;AAAS,QAAI,QAAQ,KAAK,KAAK;AAAG,aAAO;AACvE,SAAO;AACT;;;ACZA,OAAOC,aAAY;;;ACEZ,IAAM,YAAN,cAAwB,MAAM;AAAA,EACnC,YAAqB,MAAc,SAAkB;AACnD,UAAM,OAAO;AADM;AAInB,WAAO,eAAe,MAAM,WAAW,SAAS,GAChD,KAAK,OAAO,GAAG,WAAW,SAAS;AAAA,EACrC;AAAA,EAEA,aAAuB;AACrB,WAAO,IAAI,SAAS,KAAK,SAAS;AAAA,MAChC,QAAQ,KAAK;AAAA;AAAA,MAEb,YAAY,KAAK,QAAQ,UAAU,GAAG,GAAG;AAAA,IAC3C,CAAC;AAAA,EACH;AACF,GAIM,kBAAkB,OAAO,iBAAiB,GAE1B,SAAf,MAAsB;AAAA;AAAA,EAE3B;AAAA,EAEA,cAAc;AAEZ,SAAK,UAAW,WAAW,UAA8B,eAAe;AAAA,EAC1E;AAAA,EAEA,MAAM,MAAM,KAAgC;AAC1C,QAAM,MAAM,IAAI,IAAI,IAAI,GAAG,GACrB,eAAe,KAAK,SAAS,IAAI,IAAI,MAAM;AACjD,QAAI,iBAAiB;AAAW,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AACzE,QAAM,WAAW;AACjB,QAAI;AACF,eAAW,CAAC,MAAM,GAAG,KAAK,cAAc;AACtC,YAAM,QAAQ,KAAK,KAAK,IAAI,QAAQ;AACpC,YAAI,UAAU;AAAM,iBAAO,MAAM,SAAS,GAAG,EAAE,KAAK,MAAM,QAAQ,GAAG;AAAA,MACvE;AACA,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC3C,SAAS,GAAP;AACA,UAAI,aAAa;AACf,eAAO,EAAE,WAAW;AAEtB,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAaA,SAAS,aAAa,MAAuB;AAC3C,SAAI,SAAS,SAAkB,UAE1B,KAAK,SAAS,GAAG,MAAG,QAAQ,OAEjC,OAAO,KAAK,QAAQ,OAAO,KAAK,GAEhC,OAAO,KAAK,QAAQ,WAAW,gBAAgB,GAExC,IAAI,OAAO,IAAI,OAAO;AAC/B;AAEA,IAAM,uBACJ,CAAC,WACD,CAAC,SACD,CAAC,WAA4B,QAAqB;AAChD,MAAM,QAAQ,CAAC,aAAa,IAAI,GAAG,GAAG,GAChC,SAAU,UAAU,eAAe,MAAM,oBAAI,IAAI,GACjD,eAAe,OAAO,IAAI,MAAM;AACtC,EAAI,eAAc,aAAa,KAAK,KAAK,IACpC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC;AACjC,GAEW,MAAM,qBAAqB,KAAK,GAChC,OAAO,qBAAqB,MAAM,GAClC,OAAO,qBAAqB,MAAM,GAClC,MAAM,qBAAqB,KAAK,GAChC,SAAS,qBAAqB,QAAQ,GACtC,QAAQ,qBAAqB,OAAO,GACpC,QAAQ,qBAAqB,OAAO;;;AC7FjD,OAAOC,aAAY;AAGnB,IAAM,mBAAmB,OAAO,kBAAkB,GAQrC,SAAN,MAAa;AAAA;AAAA,EAElB;AAAA,EAEA,uBAAuB;AAAA,EACvB,uBAAuB,oBAAI,IAAyB;AAAA,EACpD,oBAAoB,oBAAI,IAAsB;AAAA;AAAA,EAI9C,MAAM,MAAM,KAAK,kBAAkB,KAAK,IAAI;AAAA,EAE5C,WACE,SACA,UACG,MACU;AACb,QAAI,KAAK,mBAAmB;AAC1B,aAAO,WAAW,SAAS,OAAO,GAAG,IAAI;AAG3C,QAAM,SAAS,KAAK,wBACd,cAAc,MAAM,QAAQ,GAAG,IAAI;AACzC,QAAI,UAAU;AACZ,WAAK,eAAe,WAAW;AAAA,SAC1B;AACL,UAAM,UAAuB;AAAA,QAC3B,kBAAkB,KAAK,iBAAiB;AAAA,QACxC,SAAS;AAAA,MACX;AACA,WAAK,qBAAqB,IAAI,QAAQ,OAAO;AAAA,IAC/C;AACA,WAAO,EAAE,CAAC,gBAAgB,GAAG,OAAO;AAAA,EACtC;AAAA,EAEA,aAAa,QAA2B;AACtC,QAAI,OAAO,UAAW;AAAU,aAAO,aAAa,MAAM;AACrD,SAAK,qBAAqB,OAAO,OAAO,gBAAgB,CAAC;AAAA,EAChE;AAAA,EAEA,eAAe,SAAyC;AACtD,QAAI,KAAK,mBAAmB;AAAW,aAAO,eAAe,OAAO;AAEpE,QAAM,SAAS,QAAQ;AACvB,IAAI,kBAAkB,YACpB,KAAK,kBAAkB,IAAI,MAAM,GACjC,OAAO,QAAQ,MAAM,KAAK,kBAAkB,OAAO,MAAM,CAAC;AAAA,EAE9D;AAAA;AAAA,EAIA,sBAAsB;AACpB,QAAI,KAAK,mBAAmB;AAC5B,eAAW,CAAC,QAAQ,OAAO,KAAK,KAAK;AACnC,QAAI,QAAQ,oBAAoB,KAAK,mBACnC,KAAK,qBAAqB,OAAO,MAAM,GACvC,KAAK,eAAe,QAAQ,OAAO;AAAA,EAGzC;AAAA,EAEA,iBAAiB,WAAmB;AAClC,SAAK,iBAAiB,WACtB,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EACA,oBAAoB;AAClB,SAAK,iBAAiB,QACtB,KAAK,qBAAqB,MAAM;AAAA,EAClC;AAAA,EACA,gBAAgB,OAAe;AAC7B,IAAAA;AAAA,MACE,KAAK,mBAAmB;AAAA,MACxB;AAAA,IACF,GACA,KAAK,kBAAkB,OACvB,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EAEA,MAAM,mBAAmB;AACvB,WAAO,KAAK,kBAAkB,OAAO;AACnC,YAAM,QAAQ,IAAI,KAAK,iBAAiB;AAAA,EAE5C;AACF;;;ACnFO,SAAS,YAAY,GAAmB;AAC7C,SAAO;AAAA,IACL,MAAM,GAAG;AAAA,IACT,SAAS,GAAG,WAAW,OAAO,CAAC;AAAA,IAC/B,OAAO,GAAG;AAAA,IACV,OAAO,GAAG,UAAU,SAAY,SAAY,YAAY,EAAE,KAAK;AAAA,EACjE;AACF;AAEO,SAAS,WACd,GACA,YACgB;AAChB,SAAO,eAAe,SAAY,SAAY,EAAE,UAAU;AAC5D;;;AHQO,IAAe,yBAAf,cAEG,OAAO;AAAA,EAMf,YAAqB,OAAoC,KAAU;AACjE,UAAM;AADa;AAAoC;AAAA,EAEzD;AAAA,EAPS,SAAS,IAAI,OAAO;AAAA;AAAA;AAAA,EAG7B,cAAc;AAAA,EAMd;AAAA,EACA,IAAI,KAAe;AACjB,WAAQ,KAAK,QAAQ,eAAe,KAAK,MAAM,OAAO;AAAA,EACxD;AAAA,EAEA;AAAA,EACA,IAAI,OAAe;AAGjB,WAAAC;AAAA,MACE,KAAK,UAAU;AAAA,MACf;AAAA,IACF,GACO,KAAK;AAAA,EACd;AAAA,EAEA;AAAA,EACA,IAAI,OAAkB;AACpB,QAAI,KAAK,UAAU;AAAW,aAAO,KAAK;AAC1C,QAAM,oBAAoB,KAAK,IAAI,eAAe,mBAAmB;AACrE,WAAAA;AAAA,MACE,sBAAsB;AAAA,MACtB,YAAY,eAAe;AAAA,IAC7B,GACA,KAAK,QAAQ,IAAI,UAAU,mBAAmB,KAAK,IAAI,GAChD,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAa,OAAiB,SAAiB;AACnD,UAAM,KAAK,IAAI,eAAe,sBAAsB,GAAG;AAAA,MACrD;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,SAAS,EAAE,CAAC,cAAc,SAAS,GAAG,MAAM,SAAS,EAAE;AAAA,QACvD,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,iBAAiB;AAAA,IACrB;AAAA,IACA;AAAA,EACF,GAAyD;AAGvD,QADA,KAAK,cAAc,IACf,SAAS,YAAY;AAEvB,MAAAA,QAAO,SAAS,MAAS;AACzB,UAAM,CAAC,OAAO,GAAG,MAAM,IAAI;AAC3B,MAAAA,QAAO,OAAO,SAAU,QAAQ,GAChCA,QAAO,OAAO,MAAM,YAAY,CAAC;AACjC,UAAM,UAAU,IAAI,KAAK,GAAG,QAAQ,KAAK,EAAE,GAAG,MAAM,CAAC;AACrD,aAAO,SAAS,KAAK,OAAO;AAAA,IAC9B,WAAW,SAAS,WAAW;AAE7B,MAAAA,QAAO,SAAS,MAAS;AACzB,UAAM,CAAC,EAAE,IAAI;AACb,MAAAA,QAAO,OAAO,MAAO,QAAQ;AAC7B,UAAM,SAAS,MAAM,KAAK,KAAK,IAAI,EAAE;AACrC,aAAO,IAAI,SAAS,QAAQ,EAAE,QAAQ,WAAW,OAAO,MAAM,IAAI,CAAC;AAAA,IACrE,OAAO;AAEL,UAAM,OAAgB,KAAK,OAAO,IAAoB;AACtD,MAAAA,QAAO,OAAO,QAAS,UAAU;AACjC,UAAM,SAAS,MAAM,KAAK,MAAM,KAAK,QAAQ,IAAI;AACjD,aAAO,SAAS,KAAK,UAAU,IAAI;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAM,MAAM,KAAiD;AAG3D,QAAM,YAAY,KAAK,IAAI,WAAW;AACtC,QAAI,cAAc;AAAW,aAAO,KAAK,iBAAiB,SAAS;AAMnE,QAAM,OAAO,IAAI,IAAI,WAAW;AAChC,IAAAA,QAAO,SAAS,QAAW,8BAA8B,GACzD,KAAK,QAAQ;AAGb,QAAI;AACF,aAAO,MAAM,MAAM,MAAM,GAAG;AAAA,IAC9B,SAAS,GAAP;AAEA,UAAM,QAAQ,YAAY,CAAC,GACrB,WAAW,MAAM,SAAS,MAAM,SAEhC,kBAAkB,KAAK,IAAI,eAAe,sBAAsB;AACtE,aAAI,oBAAoB,SAEjB,gBACF,MAAM,+BAA+B;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,KAAK;AAAA,MAC5B,CAAC,EACA,MAAM,MAAM;AAEX,gBAAQ,MAAM,QAAQ;AAAA,MACxB,CAAC,IAGH,QAAQ,MAAM,QAAQ,GAGjB,IAAI,SAAS,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC/C,UAAE;AAIA,MAAI,IAAI,SAAS,QAAQ,CAAC,IAAI,YAC5B,MAAM,IAAI,KAAK,OAAO,IAAI,eAAe,CAAC;AAAA,IAE9C;AAAA,EACF;AACF;;;AI7JA,IAAM,oBAAoB,gBAKpB,cAAc;AAab,SAAS,YACd,aACA,QAC8B;AAI9B,MAAM,cAAc,kBAAkB,KAAK,WAAW;AACtD,MAAI,gBAAgB;AAAM;AAI1B,MADA,cAAc,YAAY,UAAU,YAAY,CAAC,EAAE,MAAM,GACrD,YAAY,UAAU,MAAM;AAAI,WAAO,CAAC;AAG5C,MAAM,SAAS,YAAY,MAAM,GAAG,GAC9B,SAA2B,CAAC;AAClC,WAAW,SAAS,QAAQ;AAC1B,QAAM,QAAQ,YAAY,KAAK,KAAK;AACpC,QAAI,UAAU;AAAM;AACpB,QAAM,EAAE,OAAO,IAAI,IAAI,MAAM;AAC7B,QAAI,UAAU,UAAa,QAAQ,QAAW;AAC5C,UAAM,aAAa,SAAS,KAAK,GAC7B,WAAW,SAAS,GAAG;AAE3B,UADI,aAAa,YACb,cAAc;AAAQ;AAC1B,MAAI,YAAY,WAAQ,WAAW,SAAS,IAC5C,OAAO,KAAK,EAAE,OAAO,YAAY,KAAK,SAAS,CAAC;AAAA,IAClD,WAAW,UAAU,UAAa,QAAQ,QAAW;AACnD,UAAM,aAAa,SAAS,KAAK;AACjC,UAAI,cAAc;AAAQ;AAC1B,aAAO,KAAK,EAAE,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;AAAA,IACpD,WAAW,UAAU,UAAa,QAAQ,QAAW;AACnD,UAAM,SAAS,SAAS,GAAG;AAC3B,UAAI,UAAU;AAAQ,eAAO,CAAC;AAC9B,UAAI,WAAW;AAAG;AAClB,aAAO,KAAK,EAAE,OAAO,SAAS,QAAQ,KAAK,SAAS,EAAE,CAAC;AAAA,IACzD;AACE;AAAA,EAEJ;AACA,SAAO;AACT;;;ACnEA,OAAOC,aAAY;AAMZ,IAAM,kBAAN,cAAiC,QAAW;AAAA,EACxC;AAAA,EACA;AAAA,EAET,YACE,WAGY,MAAM;AAAA,EAAC,GACnB;AACA,QAAI,gBACA;AACJ,UAAM,CAAC,SAAS,YACd,iBAAiB,SACjB,gBAAgB,QACT,SAAS,SAAS,MAAM,EAChC,GAID,KAAK,UAAU,gBAEf,KAAK,SAAS;AAAA,EAChB;AACF,GAEa,QAAN,MAAY;AAAA,EACT,SAAS;AAAA,EACT,eAA+B,CAAC;AAAA,EAChC,aAA6B,CAAC;AAAA,EAE9B,OAAwB;AAC9B,QAAI,CAAC,KAAK,QAAQ;AAChB,WAAK,SAAS;AACd;AAAA,IACF;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY,KAAK,aAAa,KAAK,OAAO,CAAC;AAAA,EACjE;AAAA,EAEQ,SAAe;AAErB,QADAA,QAAO,KAAK,MAAM,GACd,KAAK,aAAa,SAAS;AAC7B,WAAK,aAAa,MAAM,IAAI;AAAA,SACvB;AACL,WAAK,SAAS;AACd,UAAI;AACJ,cAAQ,UAAU,KAAK,WAAW,MAAM,OAAO;AAAW,gBAAQ;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,IAAI,aAAsB;AACxB,WAAO,KAAK,aAAa,SAAS;AAAA,EACpC;AAAA,EAEA,MAAM,QAAW,SAAyC;AACxD,QAAM,mBAAmB,KAAK,KAAK;AACnC,IAAI,4BAA4B,WAAS,MAAM;AAC/C,QAAI;AACF,UAAM,YAAY,QAAQ;AAC1B,aAAI,qBAAqB,UAAgB,MAAM,YACxC;AAAA,IACT,UAAE;AACA,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAAA,EAEA,MAAM,UAAyB;AAC7B,QAAI,KAAK,aAAa,WAAW;AACjC,aAAO,IAAI,QAAQ,CAAC,YAAY,KAAK,WAAW,KAAK,OAAO,CAAC;AAAA,EAC/D;AACF,GAEa,YAAN,MAAgB;AAAA,EACb,UAAU;AAAA,EACV,eAA+B,CAAC;AAAA,EAExC,MAAY;AACV,SAAK;AAAA,EACP;AAAA,EAEA,OAAa;AAGX,QAFAA,QAAO,KAAK,UAAU,CAAC,GACvB,KAAK,WACD,KAAK,YAAY,GAAG;AACtB,UAAI;AACJ,cAAQ,UAAU,KAAK,aAAa,MAAM,OAAO;AAAW,gBAAQ;AAAA,IACtE;AAAA,EACF;AAAA,EAEA,OAAsB;AACpB,WAAI,KAAK,YAAY,IAAU,QAAQ,QAAQ,IACxC,IAAI,QAAQ,CAAC,YAAY,KAAK,aAAa,KAAK,OAAO,CAAC;AAAA,EACjE;AACF;",
+ "names": ["Buffer", "writer", "Buffer", "LogLevel", "assert", "assert", "assert", "assert", "assert", "assert", "assert"]
+}
diff --git a/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js
new file mode 100644
index 0000000..d9763e3
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js
@@ -0,0 +1,19 @@
+// packages/miniflare/src/workers/shared/constants.ts
+var SharedBindings = {
+ TEXT_NAMESPACE: "MINIFLARE_NAMESPACE",
+ DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT",
+ MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS",
+ MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK"
+};
+
+// packages/miniflare/src/workers/shared/object-entry.worker.ts
+var object_entry_worker_default = {
+ async fetch(request, env) {
+ let name = env[SharedBindings.TEXT_NAMESPACE], objectNamespace = env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = objectNamespace.idFromName(name), stub = objectNamespace.get(id), cf = { miniflare: { name } };
+ return await stub.fetch(request, { cf });
+ }
+};
+export {
+ object_entry_worker_default as default
+};
+//# sourceMappingURL=object-entry.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map
new file mode 100644
index 0000000..5d16e94
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/shared/constants.ts", "../../../../src/workers/shared/object-entry.worker.ts"],
+ "mappings": ";AAIO,IAAM,iBAAiB;AAAA,EAC5B,gBAAgB;AAAA,EAChB,iCAAiC;AAAA,EACjC,qBAAqB;AAAA,EACrB,wBAAwB;AAC1B;;;ACDA,IAAO,8BAA8B;AAAA,EACnC,MAAM,MAAM,SAAS,KAAK;AACxB,QAAM,OAAO,IAAI,eAAe,cAAc,GACxC,kBAAkB,IAAI,eAAe,+BAA+B,GACpE,KAAK,gBAAgB,WAAW,IAAI,GACpC,OAAO,gBAAgB,IAAI,EAAE,GAC7B,KAA+B,EAAE,WAAW,EAAE,KAAK,EAAE;AAC3D,WAAO,MAAM,KAAK,MAAM,SAAS,EAAE,GAAkC,CAAC;AAAA,EACxE;AACF;",
+ "names": []
+}
diff --git a/node_modules/miniflare/dist/src/workers/shared/zod.worker.js b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js
new file mode 100644
index 0000000..9cd18f1
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js
@@ -0,0 +1,2486 @@
+// packages/miniflare/src/workers/shared/zod.worker.ts
+import { Buffer } from "node-internal:internal_buffer";
+
+// node_modules/zod/lib/index.mjs
+var util;
+(function(util2) {
+ util2.assertEqual = (val) => val;
+ function assertIs(_arg) {
+ }
+ util2.assertIs = assertIs;
+ function assertNever(_x) {
+ throw new Error();
+ }
+ util2.assertNever = assertNever, util2.arrayToEnum = (items) => {
+ let obj = {};
+ for (let item of items)
+ obj[item] = item;
+ return obj;
+ }, util2.getValidEnumValues = (obj) => {
+ let validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] != "number"), filtered = {};
+ for (let k of validKeys)
+ filtered[k] = obj[k];
+ return util2.objectValues(filtered);
+ }, util2.objectValues = (obj) => util2.objectKeys(obj).map(function(e) {
+ return obj[e];
+ }), util2.objectKeys = typeof Object.keys == "function" ? (obj) => Object.keys(obj) : (object) => {
+ let keys = [];
+ for (let key in object)
+ Object.prototype.hasOwnProperty.call(object, key) && keys.push(key);
+ return keys;
+ }, util2.find = (arr, checker) => {
+ for (let item of arr)
+ if (checker(item))
+ return item;
+ }, util2.isInteger = typeof Number.isInteger == "function" ? (val) => Number.isInteger(val) : (val) => typeof val == "number" && isFinite(val) && Math.floor(val) === val;
+ function joinValues(array, separator = " | ") {
+ return array.map((val) => typeof val == "string" ? `'${val}'` : val).join(separator);
+ }
+ util2.joinValues = joinValues, util2.jsonStringifyReplacer = (_, value) => typeof value == "bigint" ? value.toString() : value;
+})(util || (util = {}));
+var ZodParsedType = util.arrayToEnum([
+ "string",
+ "nan",
+ "number",
+ "integer",
+ "float",
+ "boolean",
+ "date",
+ "bigint",
+ "symbol",
+ "function",
+ "undefined",
+ "null",
+ "array",
+ "object",
+ "unknown",
+ "promise",
+ "void",
+ "never",
+ "map",
+ "set"
+]), getParsedType = (data) => {
+ switch (typeof data) {
+ case "undefined":
+ return ZodParsedType.undefined;
+ case "string":
+ return ZodParsedType.string;
+ case "number":
+ return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;
+ case "boolean":
+ return ZodParsedType.boolean;
+ case "function":
+ return ZodParsedType.function;
+ case "bigint":
+ return ZodParsedType.bigint;
+ case "symbol":
+ return ZodParsedType.symbol;
+ case "object":
+ return Array.isArray(data) ? ZodParsedType.array : data === null ? ZodParsedType.null : data.then && typeof data.then == "function" && data.catch && typeof data.catch == "function" ? ZodParsedType.promise : typeof Map < "u" && data instanceof Map ? ZodParsedType.map : typeof Set < "u" && data instanceof Set ? ZodParsedType.set : typeof Date < "u" && data instanceof Date ? ZodParsedType.date : ZodParsedType.object;
+ default:
+ return ZodParsedType.unknown;
+ }
+}, ZodIssueCode = util.arrayToEnum([
+ "invalid_type",
+ "invalid_literal",
+ "custom",
+ "invalid_union",
+ "invalid_union_discriminator",
+ "invalid_enum_value",
+ "unrecognized_keys",
+ "invalid_arguments",
+ "invalid_return_type",
+ "invalid_date",
+ "invalid_string",
+ "too_small",
+ "too_big",
+ "invalid_intersection_types",
+ "not_multiple_of",
+ "not_finite"
+]), quotelessJson = (obj) => JSON.stringify(obj, null, 2).replace(/"([^"]+)":/g, "$1:"), ZodError = class extends Error {
+ constructor(issues) {
+ super(), this.issues = [], this.addIssue = (sub) => {
+ this.issues = [...this.issues, sub];
+ }, this.addIssues = (subs = []) => {
+ this.issues = [...this.issues, ...subs];
+ };
+ let actualProto = new.target.prototype;
+ Object.setPrototypeOf ? Object.setPrototypeOf(this, actualProto) : this.__proto__ = actualProto, this.name = "ZodError", this.issues = issues;
+ }
+ get errors() {
+ return this.issues;
+ }
+ format(_mapper) {
+ let mapper = _mapper || function(issue) {
+ return issue.message;
+ }, fieldErrors = { _errors: [] }, processError = (error) => {
+ for (let issue of error.issues)
+ if (issue.code === "invalid_union")
+ issue.unionErrors.map(processError);
+ else if (issue.code === "invalid_return_type")
+ processError(issue.returnTypeError);
+ else if (issue.code === "invalid_arguments")
+ processError(issue.argumentsError);
+ else if (issue.path.length === 0)
+ fieldErrors._errors.push(mapper(issue));
+ else {
+ let curr = fieldErrors, i = 0;
+ for (; i < issue.path.length; ) {
+ let el = issue.path[i];
+ i === issue.path.length - 1 ? (curr[el] = curr[el] || { _errors: [] }, curr[el]._errors.push(mapper(issue))) : curr[el] = curr[el] || { _errors: [] }, curr = curr[el], i++;
+ }
+ }
+ };
+ return processError(this), fieldErrors;
+ }
+ toString() {
+ return this.message;
+ }
+ get message() {
+ return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
+ }
+ get isEmpty() {
+ return this.issues.length === 0;
+ }
+ flatten(mapper = (issue) => issue.message) {
+ let fieldErrors = {}, formErrors = [];
+ for (let sub of this.issues)
+ sub.path.length > 0 ? (fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [], fieldErrors[sub.path[0]].push(mapper(sub))) : formErrors.push(mapper(sub));
+ return { formErrors, fieldErrors };
+ }
+ get formErrors() {
+ return this.flatten();
+ }
+};
+ZodError.create = (issues) => new ZodError(issues);
+var errorMap = (issue, _ctx) => {
+ let message;
+ switch (issue.code) {
+ case ZodIssueCode.invalid_type:
+ issue.received === ZodParsedType.undefined ? message = "Required" : message = `Expected ${issue.expected}, received ${issue.received}`;
+ break;
+ case ZodIssueCode.invalid_literal:
+ message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
+ break;
+ case ZodIssueCode.unrecognized_keys:
+ message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
+ break;
+ case ZodIssueCode.invalid_union:
+ message = "Invalid input";
+ break;
+ case ZodIssueCode.invalid_union_discriminator:
+ message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
+ break;
+ case ZodIssueCode.invalid_enum_value:
+ message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
+ break;
+ case ZodIssueCode.invalid_arguments:
+ message = "Invalid function arguments";
+ break;
+ case ZodIssueCode.invalid_return_type:
+ message = "Invalid function return type";
+ break;
+ case ZodIssueCode.invalid_date:
+ message = "Invalid date";
+ break;
+ case ZodIssueCode.invalid_string:
+ typeof issue.validation == "object" ? "startsWith" in issue.validation ? message = `Invalid input: must start with "${issue.validation.startsWith}"` : "endsWith" in issue.validation ? message = `Invalid input: must end with "${issue.validation.endsWith}"` : util.assertNever(issue.validation) : issue.validation !== "regex" ? message = `Invalid ${issue.validation}` : message = "Invalid";
+ break;
+ case ZodIssueCode.too_small:
+ issue.type === "array" ? message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? "at least" : "more than"} ${issue.minimum} element(s)` : issue.type === "string" ? message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? "at least" : "over"} ${issue.minimum} character(s)` : issue.type === "number" ? message = `Number must be ${issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than "}${issue.minimum}` : issue.type === "date" ? message = `Date must be ${issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than "}${new Date(issue.minimum)}` : message = "Invalid input";
+ break;
+ case ZodIssueCode.too_big:
+ issue.type === "array" ? message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? "at most" : "less than"} ${issue.maximum} element(s)` : issue.type === "string" ? message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? "at most" : "under"} ${issue.maximum} character(s)` : issue.type === "number" ? message = `Number must be ${issue.exact ? "exactly" : issue.inclusive ? "less than or equal to" : "less than"} ${issue.maximum}` : issue.type === "date" ? message = `Date must be ${issue.exact ? "exactly" : issue.inclusive ? "smaller than or equal to" : "smaller than"} ${new Date(issue.maximum)}` : message = "Invalid input";
+ break;
+ case ZodIssueCode.custom:
+ message = "Invalid input";
+ break;
+ case ZodIssueCode.invalid_intersection_types:
+ message = "Intersection results could not be merged";
+ break;
+ case ZodIssueCode.not_multiple_of:
+ message = `Number must be a multiple of ${issue.multipleOf}`;
+ break;
+ case ZodIssueCode.not_finite:
+ message = "Number must be finite";
+ break;
+ default:
+ message = _ctx.defaultError, util.assertNever(issue);
+ }
+ return { message };
+}, overrideErrorMap = errorMap;
+function setErrorMap(map) {
+ overrideErrorMap = map;
+}
+function getErrorMap() {
+ return overrideErrorMap;
+}
+var makeIssue = (params) => {
+ let { data, path, errorMaps, issueData } = params, fullPath = [...path, ...issueData.path || []], fullIssue = {
+ ...issueData,
+ path: fullPath
+ }, errorMessage = "", maps = errorMaps.filter((m) => !!m).slice().reverse();
+ for (let map of maps)
+ errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;
+ return {
+ ...issueData,
+ path: fullPath,
+ message: issueData.message || errorMessage
+ };
+}, EMPTY_PATH = [];
+function addIssueToContext(ctx, issueData) {
+ let issue = makeIssue({
+ issueData,
+ data: ctx.data,
+ path: ctx.path,
+ errorMaps: [
+ ctx.common.contextualErrorMap,
+ ctx.schemaErrorMap,
+ getErrorMap(),
+ errorMap
+ // then global default map
+ ].filter((x) => !!x)
+ });
+ ctx.common.issues.push(issue);
+}
+var ParseStatus = class {
+ constructor() {
+ this.value = "valid";
+ }
+ dirty() {
+ this.value === "valid" && (this.value = "dirty");
+ }
+ abort() {
+ this.value !== "aborted" && (this.value = "aborted");
+ }
+ static mergeArray(status, results) {
+ let arrayValue = [];
+ for (let s of results) {
+ if (s.status === "aborted")
+ return INVALID;
+ s.status === "dirty" && status.dirty(), arrayValue.push(s.value);
+ }
+ return { status: status.value, value: arrayValue };
+ }
+ static async mergeObjectAsync(status, pairs) {
+ let syncPairs = [];
+ for (let pair of pairs)
+ syncPairs.push({
+ key: await pair.key,
+ value: await pair.value
+ });
+ return ParseStatus.mergeObjectSync(status, syncPairs);
+ }
+ static mergeObjectSync(status, pairs) {
+ let finalObject = {};
+ for (let pair of pairs) {
+ let { key, value } = pair;
+ if (key.status === "aborted" || value.status === "aborted")
+ return INVALID;
+ key.status === "dirty" && status.dirty(), value.status === "dirty" && status.dirty(), (typeof value.value < "u" || pair.alwaysSet) && (finalObject[key.value] = value.value);
+ }
+ return { status: status.value, value: finalObject };
+ }
+}, INVALID = Object.freeze({
+ status: "aborted"
+}), DIRTY = (value) => ({ status: "dirty", value }), OK = (value) => ({ status: "valid", value }), isAborted = (x) => x.status === "aborted", isDirty = (x) => x.status === "dirty", isValid = (x) => x.status === "valid", isAsync = (x) => typeof Promise < "u" && x instanceof Promise, errorUtil;
+(function(errorUtil2) {
+ errorUtil2.errToObj = (message) => typeof message == "string" ? { message } : message || {}, errorUtil2.toString = (message) => typeof message == "string" ? message : message?.message;
+})(errorUtil || (errorUtil = {}));
+var ParseInputLazyPath = class {
+ constructor(parent, value, path, key) {
+ this.parent = parent, this.data = value, this._path = path, this._key = key;
+ }
+ get path() {
+ return this._path.concat(this._key);
+ }
+}, handleResult = (ctx, result) => {
+ if (isValid(result))
+ return { success: !0, data: result.value };
+ if (!ctx.common.issues.length)
+ throw new Error("Validation failed but no issues detected.");
+ return { success: !1, error: new ZodError(ctx.common.issues) };
+};
+function processCreateParams(params) {
+ if (!params)
+ return {};
+ let { errorMap: errorMap2, invalid_type_error, required_error, description } = params;
+ if (errorMap2 && (invalid_type_error || required_error))
+ throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
+ return errorMap2 ? { errorMap: errorMap2, description } : { errorMap: (iss, ctx) => iss.code !== "invalid_type" ? { message: ctx.defaultError } : typeof ctx.data > "u" ? { message: required_error ?? ctx.defaultError } : { message: invalid_type_error ?? ctx.defaultError }, description };
+}
+var ZodType = class {
+ constructor(def) {
+ this.spa = this.safeParseAsync, this._def = def, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this);
+ }
+ get description() {
+ return this._def.description;
+ }
+ _getType(input) {
+ return getParsedType(input.data);
+ }
+ _getOrReturnCtx(input, ctx) {
+ return ctx || {
+ common: input.parent.common,
+ data: input.data,
+ parsedType: getParsedType(input.data),
+ schemaErrorMap: this._def.errorMap,
+ path: input.path,
+ parent: input.parent
+ };
+ }
+ _processInputParams(input) {
+ return {
+ status: new ParseStatus(),
+ ctx: {
+ common: input.parent.common,
+ data: input.data,
+ parsedType: getParsedType(input.data),
+ schemaErrorMap: this._def.errorMap,
+ path: input.path,
+ parent: input.parent
+ }
+ };
+ }
+ _parseSync(input) {
+ let result = this._parse(input);
+ if (isAsync(result))
+ throw new Error("Synchronous parse encountered promise.");
+ return result;
+ }
+ _parseAsync(input) {
+ let result = this._parse(input);
+ return Promise.resolve(result);
+ }
+ parse(data, params) {
+ let result = this.safeParse(data, params);
+ if (result.success)
+ return result.data;
+ throw result.error;
+ }
+ safeParse(data, params) {
+ var _a;
+ let ctx = {
+ common: {
+ issues: [],
+ async: (_a = params?.async) !== null && _a !== void 0 ? _a : !1,
+ contextualErrorMap: params?.errorMap
+ },
+ path: params?.path || [],
+ schemaErrorMap: this._def.errorMap,
+ parent: null,
+ data,
+ parsedType: getParsedType(data)
+ }, result = this._parseSync({ data, path: ctx.path, parent: ctx });
+ return handleResult(ctx, result);
+ }
+ async parseAsync(data, params) {
+ let result = await this.safeParseAsync(data, params);
+ if (result.success)
+ return result.data;
+ throw result.error;
+ }
+ async safeParseAsync(data, params) {
+ let ctx = {
+ common: {
+ issues: [],
+ contextualErrorMap: params?.errorMap,
+ async: !0
+ },
+ path: params?.path || [],
+ schemaErrorMap: this._def.errorMap,
+ parent: null,
+ data,
+ parsedType: getParsedType(data)
+ }, maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }), result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));
+ return handleResult(ctx, result);
+ }
+ refine(check, message) {
+ let getIssueProperties = (val) => typeof message == "string" || typeof message > "u" ? { message } : typeof message == "function" ? message(val) : message;
+ return this._refinement((val, ctx) => {
+ let result = check(val), setError = () => ctx.addIssue({
+ code: ZodIssueCode.custom,
+ ...getIssueProperties(val)
+ });
+ return typeof Promise < "u" && result instanceof Promise ? result.then((data) => data ? !0 : (setError(), !1)) : result ? !0 : (setError(), !1);
+ });
+ }
+ refinement(check, refinementData) {
+ return this._refinement((val, ctx) => check(val) ? !0 : (ctx.addIssue(typeof refinementData == "function" ? refinementData(val, ctx) : refinementData), !1));
+ }
+ _refinement(refinement) {
+ return new ZodEffects({
+ schema: this,
+ typeName: ZodFirstPartyTypeKind.ZodEffects,
+ effect: { type: "refinement", refinement }
+ });
+ }
+ superRefine(refinement) {
+ return this._refinement(refinement);
+ }
+ optional() {
+ return ZodOptional.create(this, this._def);
+ }
+ nullable() {
+ return ZodNullable.create(this, this._def);
+ }
+ nullish() {
+ return this.nullable().optional();
+ }
+ array() {
+ return ZodArray.create(this, this._def);
+ }
+ promise() {
+ return ZodPromise.create(this, this._def);
+ }
+ or(option) {
+ return ZodUnion.create([this, option], this._def);
+ }
+ and(incoming) {
+ return ZodIntersection.create(this, incoming, this._def);
+ }
+ transform(transform) {
+ return new ZodEffects({
+ ...processCreateParams(this._def),
+ schema: this,
+ typeName: ZodFirstPartyTypeKind.ZodEffects,
+ effect: { type: "transform", transform }
+ });
+ }
+ default(def) {
+ let defaultValueFunc = typeof def == "function" ? def : () => def;
+ return new ZodDefault({
+ ...processCreateParams(this._def),
+ innerType: this,
+ defaultValue: defaultValueFunc,
+ typeName: ZodFirstPartyTypeKind.ZodDefault
+ });
+ }
+ brand() {
+ return new ZodBranded({
+ typeName: ZodFirstPartyTypeKind.ZodBranded,
+ type: this,
+ ...processCreateParams(this._def)
+ });
+ }
+ catch(def) {
+ let catchValueFunc = typeof def == "function" ? def : () => def;
+ return new ZodCatch({
+ ...processCreateParams(this._def),
+ innerType: this,
+ catchValue: catchValueFunc,
+ typeName: ZodFirstPartyTypeKind.ZodCatch
+ });
+ }
+ describe(description) {
+ let This = this.constructor;
+ return new This({
+ ...this._def,
+ description
+ });
+ }
+ pipe(target) {
+ return ZodPipeline.create(this, target);
+ }
+ isOptional() {
+ return this.safeParse(void 0).success;
+ }
+ isNullable() {
+ return this.safeParse(null).success;
+ }
+}, cuidRegex = /^c[^\s-]{8,}$/i, cuid2Regex = /^[a-z][a-z0-9]*$/, uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i, emailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|([^-]([a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}))$/, datetimeRegex = (args) => args.precision ? args.offset ? new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`) : new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`) : args.precision === 0 ? args.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$") : args.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"), ZodString = class extends ZodType {
+ constructor() {
+ super(...arguments), this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {
+ validation,
+ code: ZodIssueCode.invalid_string,
+ ...errorUtil.errToObj(message)
+ }), this.nonempty = (message) => this.min(1, errorUtil.errToObj(message)), this.trim = () => new ZodString({
+ ...this._def,
+ checks: [...this._def.checks, { kind: "trim" }]
+ });
+ }
+ _parse(input) {
+ if (this._def.coerce && (input.data = String(input.data)), this._getType(input) !== ZodParsedType.string) {
+ let ctx2 = this._getOrReturnCtx(input);
+ return addIssueToContext(
+ ctx2,
+ {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.string,
+ received: ctx2.parsedType
+ }
+ //
+ ), INVALID;
+ }
+ let status = new ParseStatus(), ctx;
+ for (let check of this._def.checks)
+ if (check.kind === "min")
+ input.data.length < check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: check.value,
+ type: "string",
+ inclusive: !0,
+ exact: !1,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "max")
+ input.data.length > check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: check.value,
+ type: "string",
+ inclusive: !0,
+ exact: !1,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "length") {
+ let tooBig = input.data.length > check.value, tooSmall = input.data.length < check.value;
+ (tooBig || tooSmall) && (ctx = this._getOrReturnCtx(input, ctx), tooBig ? addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: check.value,
+ type: "string",
+ inclusive: !0,
+ exact: !0,
+ message: check.message
+ }) : tooSmall && addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: check.value,
+ type: "string",
+ inclusive: !0,
+ exact: !0,
+ message: check.message
+ }), status.dirty());
+ } else if (check.kind === "email")
+ emailRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "email",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "uuid")
+ uuidRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "uuid",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "cuid")
+ cuidRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "cuid",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "cuid2")
+ cuid2Regex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "cuid2",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty());
+ else if (check.kind === "url")
+ try {
+ new URL(input.data);
+ } catch {
+ ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "url",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty();
+ }
+ else
+ check.kind === "regex" ? (check.regex.lastIndex = 0, check.regex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ validation: "regex",
+ code: ZodIssueCode.invalid_string,
+ message: check.message
+ }), status.dirty())) : check.kind === "trim" ? input.data = input.data.trim() : check.kind === "startsWith" ? input.data.startsWith(check.value) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_string,
+ validation: { startsWith: check.value },
+ message: check.message
+ }), status.dirty()) : check.kind === "endsWith" ? input.data.endsWith(check.value) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_string,
+ validation: { endsWith: check.value },
+ message: check.message
+ }), status.dirty()) : check.kind === "datetime" ? datetimeRegex(check).test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_string,
+ validation: "datetime",
+ message: check.message
+ }), status.dirty()) : util.assertNever(check);
+ return { status: status.value, value: input.data };
+ }
+ _addCheck(check) {
+ return new ZodString({
+ ...this._def,
+ checks: [...this._def.checks, check]
+ });
+ }
+ email(message) {
+ return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) });
+ }
+ url(message) {
+ return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) });
+ }
+ uuid(message) {
+ return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) });
+ }
+ cuid(message) {
+ return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) });
+ }
+ cuid2(message) {
+ return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) });
+ }
+ datetime(options) {
+ var _a;
+ return typeof options == "string" ? this._addCheck({
+ kind: "datetime",
+ precision: null,
+ offset: !1,
+ message: options
+ }) : this._addCheck({
+ kind: "datetime",
+ precision: typeof options?.precision > "u" ? null : options?.precision,
+ offset: (_a = options?.offset) !== null && _a !== void 0 ? _a : !1,
+ ...errorUtil.errToObj(options?.message)
+ });
+ }
+ regex(regex, message) {
+ return this._addCheck({
+ kind: "regex",
+ regex,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ startsWith(value, message) {
+ return this._addCheck({
+ kind: "startsWith",
+ value,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ endsWith(value, message) {
+ return this._addCheck({
+ kind: "endsWith",
+ value,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ min(minLength, message) {
+ return this._addCheck({
+ kind: "min",
+ value: minLength,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ max(maxLength, message) {
+ return this._addCheck({
+ kind: "max",
+ value: maxLength,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ length(len, message) {
+ return this._addCheck({
+ kind: "length",
+ value: len,
+ ...errorUtil.errToObj(message)
+ });
+ }
+ get isDatetime() {
+ return !!this._def.checks.find((ch) => ch.kind === "datetime");
+ }
+ get isEmail() {
+ return !!this._def.checks.find((ch) => ch.kind === "email");
+ }
+ get isURL() {
+ return !!this._def.checks.find((ch) => ch.kind === "url");
+ }
+ get isUUID() {
+ return !!this._def.checks.find((ch) => ch.kind === "uuid");
+ }
+ get isCUID() {
+ return !!this._def.checks.find((ch) => ch.kind === "cuid");
+ }
+ get isCUID2() {
+ return !!this._def.checks.find((ch) => ch.kind === "cuid2");
+ }
+ get minLength() {
+ let min = null;
+ for (let ch of this._def.checks)
+ ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value);
+ return min;
+ }
+ get maxLength() {
+ let max = null;
+ for (let ch of this._def.checks)
+ ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value);
+ return max;
+ }
+};
+ZodString.create = (params) => {
+ var _a;
+ return new ZodString({
+ checks: [],
+ typeName: ZodFirstPartyTypeKind.ZodString,
+ coerce: (_a = params?.coerce) !== null && _a !== void 0 ? _a : !1,
+ ...processCreateParams(params)
+ });
+};
+function floatSafeRemainder(val, step) {
+ let valDecCount = (val.toString().split(".")[1] || "").length, stepDecCount = (step.toString().split(".")[1] || "").length, decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount, valInt = parseInt(val.toFixed(decCount).replace(".", "")), stepInt = parseInt(step.toFixed(decCount).replace(".", ""));
+ return valInt % stepInt / Math.pow(10, decCount);
+}
+var ZodNumber = class extends ZodType {
+ constructor() {
+ super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;
+ }
+ _parse(input) {
+ if (this._def.coerce && (input.data = Number(input.data)), this._getType(input) !== ZodParsedType.number) {
+ let ctx2 = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx2, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.number,
+ received: ctx2.parsedType
+ }), INVALID;
+ }
+ let ctx, status = new ParseStatus();
+ for (let check of this._def.checks)
+ check.kind === "int" ? util.isInteger(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: "integer",
+ received: "float",
+ message: check.message
+ }), status.dirty()) : check.kind === "min" ? (check.inclusive ? input.data < check.value : input.data <= check.value) && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: check.value,
+ type: "number",
+ inclusive: check.inclusive,
+ exact: !1,
+ message: check.message
+ }), status.dirty()) : check.kind === "max" ? (check.inclusive ? input.data > check.value : input.data >= check.value) && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: check.value,
+ type: "number",
+ inclusive: check.inclusive,
+ exact: !1,
+ message: check.message
+ }), status.dirty()) : check.kind === "multipleOf" ? floatSafeRemainder(input.data, check.value) !== 0 && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.not_multiple_of,
+ multipleOf: check.value,
+ message: check.message
+ }), status.dirty()) : check.kind === "finite" ? Number.isFinite(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.not_finite,
+ message: check.message
+ }), status.dirty()) : util.assertNever(check);
+ return { status: status.value, value: input.data };
+ }
+ gte(value, message) {
+ return this.setLimit("min", value, !0, errorUtil.toString(message));
+ }
+ gt(value, message) {
+ return this.setLimit("min", value, !1, errorUtil.toString(message));
+ }
+ lte(value, message) {
+ return this.setLimit("max", value, !0, errorUtil.toString(message));
+ }
+ lt(value, message) {
+ return this.setLimit("max", value, !1, errorUtil.toString(message));
+ }
+ setLimit(kind, value, inclusive, message) {
+ return new ZodNumber({
+ ...this._def,
+ checks: [
+ ...this._def.checks,
+ {
+ kind,
+ value,
+ inclusive,
+ message: errorUtil.toString(message)
+ }
+ ]
+ });
+ }
+ _addCheck(check) {
+ return new ZodNumber({
+ ...this._def,
+ checks: [...this._def.checks, check]
+ });
+ }
+ int(message) {
+ return this._addCheck({
+ kind: "int",
+ message: errorUtil.toString(message)
+ });
+ }
+ positive(message) {
+ return this._addCheck({
+ kind: "min",
+ value: 0,
+ inclusive: !1,
+ message: errorUtil.toString(message)
+ });
+ }
+ negative(message) {
+ return this._addCheck({
+ kind: "max",
+ value: 0,
+ inclusive: !1,
+ message: errorUtil.toString(message)
+ });
+ }
+ nonpositive(message) {
+ return this._addCheck({
+ kind: "max",
+ value: 0,
+ inclusive: !0,
+ message: errorUtil.toString(message)
+ });
+ }
+ nonnegative(message) {
+ return this._addCheck({
+ kind: "min",
+ value: 0,
+ inclusive: !0,
+ message: errorUtil.toString(message)
+ });
+ }
+ multipleOf(value, message) {
+ return this._addCheck({
+ kind: "multipleOf",
+ value,
+ message: errorUtil.toString(message)
+ });
+ }
+ finite(message) {
+ return this._addCheck({
+ kind: "finite",
+ message: errorUtil.toString(message)
+ });
+ }
+ get minValue() {
+ let min = null;
+ for (let ch of this._def.checks)
+ ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value);
+ return min;
+ }
+ get maxValue() {
+ let max = null;
+ for (let ch of this._def.checks)
+ ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value);
+ return max;
+ }
+ get isInt() {
+ return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
+ }
+ get isFinite() {
+ let max = null, min = null;
+ for (let ch of this._def.checks) {
+ if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf")
+ return !0;
+ ch.kind === "min" ? (min === null || ch.value > min) && (min = ch.value) : ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value);
+ }
+ return Number.isFinite(min) && Number.isFinite(max);
+ }
+};
+ZodNumber.create = (params) => new ZodNumber({
+ checks: [],
+ typeName: ZodFirstPartyTypeKind.ZodNumber,
+ coerce: params?.coerce || !1,
+ ...processCreateParams(params)
+});
+var ZodBigInt = class extends ZodType {
+ _parse(input) {
+ if (this._def.coerce && (input.data = BigInt(input.data)), this._getType(input) !== ZodParsedType.bigint) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.bigint,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodBigInt.create = (params) => {
+ var _a;
+ return new ZodBigInt({
+ typeName: ZodFirstPartyTypeKind.ZodBigInt,
+ coerce: (_a = params?.coerce) !== null && _a !== void 0 ? _a : !1,
+ ...processCreateParams(params)
+ });
+};
+var ZodBoolean = class extends ZodType {
+ _parse(input) {
+ if (this._def.coerce && (input.data = Boolean(input.data)), this._getType(input) !== ZodParsedType.boolean) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.boolean,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodBoolean.create = (params) => new ZodBoolean({
+ typeName: ZodFirstPartyTypeKind.ZodBoolean,
+ coerce: params?.coerce || !1,
+ ...processCreateParams(params)
+});
+var ZodDate = class extends ZodType {
+ _parse(input) {
+ if (this._def.coerce && (input.data = new Date(input.data)), this._getType(input) !== ZodParsedType.date) {
+ let ctx2 = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx2, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.date,
+ received: ctx2.parsedType
+ }), INVALID;
+ }
+ if (isNaN(input.data.getTime())) {
+ let ctx2 = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx2, {
+ code: ZodIssueCode.invalid_date
+ }), INVALID;
+ }
+ let status = new ParseStatus(), ctx;
+ for (let check of this._def.checks)
+ check.kind === "min" ? input.data.getTime() < check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ message: check.message,
+ inclusive: !0,
+ exact: !1,
+ minimum: check.value,
+ type: "date"
+ }), status.dirty()) : check.kind === "max" ? input.data.getTime() > check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ message: check.message,
+ inclusive: !0,
+ exact: !1,
+ maximum: check.value,
+ type: "date"
+ }), status.dirty()) : util.assertNever(check);
+ return {
+ status: status.value,
+ value: new Date(input.data.getTime())
+ };
+ }
+ _addCheck(check) {
+ return new ZodDate({
+ ...this._def,
+ checks: [...this._def.checks, check]
+ });
+ }
+ min(minDate, message) {
+ return this._addCheck({
+ kind: "min",
+ value: minDate.getTime(),
+ message: errorUtil.toString(message)
+ });
+ }
+ max(maxDate, message) {
+ return this._addCheck({
+ kind: "max",
+ value: maxDate.getTime(),
+ message: errorUtil.toString(message)
+ });
+ }
+ get minDate() {
+ let min = null;
+ for (let ch of this._def.checks)
+ ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value);
+ return min != null ? new Date(min) : null;
+ }
+ get maxDate() {
+ let max = null;
+ for (let ch of this._def.checks)
+ ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value);
+ return max != null ? new Date(max) : null;
+ }
+};
+ZodDate.create = (params) => new ZodDate({
+ checks: [],
+ coerce: params?.coerce || !1,
+ typeName: ZodFirstPartyTypeKind.ZodDate,
+ ...processCreateParams(params)
+});
+var ZodSymbol = class extends ZodType {
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.symbol) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.symbol,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodSymbol.create = (params) => new ZodSymbol({
+ typeName: ZodFirstPartyTypeKind.ZodSymbol,
+ ...processCreateParams(params)
+});
+var ZodUndefined = class extends ZodType {
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.undefined) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.undefined,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodUndefined.create = (params) => new ZodUndefined({
+ typeName: ZodFirstPartyTypeKind.ZodUndefined,
+ ...processCreateParams(params)
+});
+var ZodNull = class extends ZodType {
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.null) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.null,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodNull.create = (params) => new ZodNull({
+ typeName: ZodFirstPartyTypeKind.ZodNull,
+ ...processCreateParams(params)
+});
+var ZodAny = class extends ZodType {
+ constructor() {
+ super(...arguments), this._any = !0;
+ }
+ _parse(input) {
+ return OK(input.data);
+ }
+};
+ZodAny.create = (params) => new ZodAny({
+ typeName: ZodFirstPartyTypeKind.ZodAny,
+ ...processCreateParams(params)
+});
+var ZodUnknown = class extends ZodType {
+ constructor() {
+ super(...arguments), this._unknown = !0;
+ }
+ _parse(input) {
+ return OK(input.data);
+ }
+};
+ZodUnknown.create = (params) => new ZodUnknown({
+ typeName: ZodFirstPartyTypeKind.ZodUnknown,
+ ...processCreateParams(params)
+});
+var ZodNever = class extends ZodType {
+ _parse(input) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.never,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+};
+ZodNever.create = (params) => new ZodNever({
+ typeName: ZodFirstPartyTypeKind.ZodNever,
+ ...processCreateParams(params)
+});
+var ZodVoid = class extends ZodType {
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.undefined) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.void,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+};
+ZodVoid.create = (params) => new ZodVoid({
+ typeName: ZodFirstPartyTypeKind.ZodVoid,
+ ...processCreateParams(params)
+});
+var ZodArray = class extends ZodType {
+ _parse(input) {
+ let { ctx, status } = this._processInputParams(input), def = this._def;
+ if (ctx.parsedType !== ZodParsedType.array)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.array,
+ received: ctx.parsedType
+ }), INVALID;
+ if (def.exactLength !== null) {
+ let tooBig = ctx.data.length > def.exactLength.value, tooSmall = ctx.data.length < def.exactLength.value;
+ (tooBig || tooSmall) && (addIssueToContext(ctx, {
+ code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,
+ minimum: tooSmall ? def.exactLength.value : void 0,
+ maximum: tooBig ? def.exactLength.value : void 0,
+ type: "array",
+ inclusive: !0,
+ exact: !0,
+ message: def.exactLength.message
+ }), status.dirty());
+ }
+ if (def.minLength !== null && ctx.data.length < def.minLength.value && (addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: def.minLength.value,
+ type: "array",
+ inclusive: !0,
+ exact: !1,
+ message: def.minLength.message
+ }), status.dirty()), def.maxLength !== null && ctx.data.length > def.maxLength.value && (addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: def.maxLength.value,
+ type: "array",
+ inclusive: !0,
+ exact: !1,
+ message: def.maxLength.message
+ }), status.dirty()), ctx.common.async)
+ return Promise.all([...ctx.data].map((item, i) => def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)))).then((result2) => ParseStatus.mergeArray(status, result2));
+ let result = [...ctx.data].map((item, i) => def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)));
+ return ParseStatus.mergeArray(status, result);
+ }
+ get element() {
+ return this._def.type;
+ }
+ min(minLength, message) {
+ return new ZodArray({
+ ...this._def,
+ minLength: { value: minLength, message: errorUtil.toString(message) }
+ });
+ }
+ max(maxLength, message) {
+ return new ZodArray({
+ ...this._def,
+ maxLength: { value: maxLength, message: errorUtil.toString(message) }
+ });
+ }
+ length(len, message) {
+ return new ZodArray({
+ ...this._def,
+ exactLength: { value: len, message: errorUtil.toString(message) }
+ });
+ }
+ nonempty(message) {
+ return this.min(1, message);
+ }
+};
+ZodArray.create = (schema, params) => new ZodArray({
+ type: schema,
+ minLength: null,
+ maxLength: null,
+ exactLength: null,
+ typeName: ZodFirstPartyTypeKind.ZodArray,
+ ...processCreateParams(params)
+});
+var objectUtil;
+(function(objectUtil2) {
+ objectUtil2.mergeShapes = (first, second) => ({
+ ...first,
+ ...second
+ // second overwrites first
+ });
+})(objectUtil || (objectUtil = {}));
+function deepPartialify(schema) {
+ if (schema instanceof ZodObject) {
+ let newShape = {};
+ for (let key in schema.shape) {
+ let fieldSchema = schema.shape[key];
+ newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));
+ }
+ return new ZodObject({
+ ...schema._def,
+ shape: () => newShape
+ });
+ } else
+ return schema instanceof ZodArray ? ZodArray.create(deepPartialify(schema.element)) : schema instanceof ZodOptional ? ZodOptional.create(deepPartialify(schema.unwrap())) : schema instanceof ZodNullable ? ZodNullable.create(deepPartialify(schema.unwrap())) : schema instanceof ZodTuple ? ZodTuple.create(schema.items.map((item) => deepPartialify(item))) : schema;
+}
+var ZodObject = class extends ZodType {
+ constructor() {
+ super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;
+ }
+ _getCached() {
+ if (this._cached !== null)
+ return this._cached;
+ let shape = this._def.shape(), keys = util.objectKeys(shape);
+ return this._cached = { shape, keys };
+ }
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.object) {
+ let ctx2 = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx2, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.object,
+ received: ctx2.parsedType
+ }), INVALID;
+ }
+ let { status, ctx } = this._processInputParams(input), { shape, keys: shapeKeys } = this._getCached(), extraKeys = [];
+ if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip"))
+ for (let key in ctx.data)
+ shapeKeys.includes(key) || extraKeys.push(key);
+ let pairs = [];
+ for (let key of shapeKeys) {
+ let keyValidator = shape[key], value = ctx.data[key];
+ pairs.push({
+ key: { status: "valid", value: key },
+ value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),
+ alwaysSet: key in ctx.data
+ });
+ }
+ if (this._def.catchall instanceof ZodNever) {
+ let unknownKeys = this._def.unknownKeys;
+ if (unknownKeys === "passthrough")
+ for (let key of extraKeys)
+ pairs.push({
+ key: { status: "valid", value: key },
+ value: { status: "valid", value: ctx.data[key] }
+ });
+ else if (unknownKeys === "strict")
+ extraKeys.length > 0 && (addIssueToContext(ctx, {
+ code: ZodIssueCode.unrecognized_keys,
+ keys: extraKeys
+ }), status.dirty());
+ else if (unknownKeys !== "strip")
+ throw new Error("Internal ZodObject error: invalid unknownKeys value.");
+ } else {
+ let catchall = this._def.catchall;
+ for (let key of extraKeys) {
+ let value = ctx.data[key];
+ pairs.push({
+ key: { status: "valid", value: key },
+ value: catchall._parse(
+ new ParseInputLazyPath(ctx, value, ctx.path, key)
+ //, ctx.child(key), value, getParsedType(value)
+ ),
+ alwaysSet: key in ctx.data
+ });
+ }
+ }
+ return ctx.common.async ? Promise.resolve().then(async () => {
+ let syncPairs = [];
+ for (let pair of pairs) {
+ let key = await pair.key;
+ syncPairs.push({
+ key,
+ value: await pair.value,
+ alwaysSet: pair.alwaysSet
+ });
+ }
+ return syncPairs;
+ }).then((syncPairs) => ParseStatus.mergeObjectSync(status, syncPairs)) : ParseStatus.mergeObjectSync(status, pairs);
+ }
+ get shape() {
+ return this._def.shape();
+ }
+ strict(message) {
+ return errorUtil.errToObj, new ZodObject({
+ ...this._def,
+ unknownKeys: "strict",
+ ...message !== void 0 ? {
+ errorMap: (issue, ctx) => {
+ var _a, _b, _c, _d;
+ let defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;
+ return issue.code === "unrecognized_keys" ? {
+ message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError
+ } : {
+ message: defaultError
+ };
+ }
+ } : {}
+ });
+ }
+ strip() {
+ return new ZodObject({
+ ...this._def,
+ unknownKeys: "strip"
+ });
+ }
+ passthrough() {
+ return new ZodObject({
+ ...this._def,
+ unknownKeys: "passthrough"
+ });
+ }
+ // const AugmentFactory =
+ // <Def extends ZodObjectDef>(def: Def) =>
+ // <Augmentation extends ZodRawShape>(
+ // augmentation: Augmentation
+ // ): ZodObject<
+ // extendShape<ReturnType<Def["shape"]>, Augmentation>,
+ // Def["unknownKeys"],
+ // Def["catchall"]
+ // > => {
+ // return new ZodObject({
+ // ...def,
+ // shape: () => ({
+ // ...def.shape(),
+ // ...augmentation,
+ // }),
+ // }) as any;
+ // };
+ extend(augmentation) {
+ return new ZodObject({
+ ...this._def,
+ shape: () => ({
+ ...this._def.shape(),
+ ...augmentation
+ })
+ });
+ }
+ /**
+ * Prior to zod@1.0.12 there was a bug in the
+ * inferred type of merged objects. Please
+ * upgrade if you are experiencing issues.
+ */
+ merge(merging) {
+ return new ZodObject({
+ unknownKeys: merging._def.unknownKeys,
+ catchall: merging._def.catchall,
+ shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
+ typeName: ZodFirstPartyTypeKind.ZodObject
+ });
+ }
+ // merge<
+ // Incoming extends AnyZodObject,
+ // Augmentation extends Incoming["shape"],
+ // NewOutput extends {
+ // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
+ // ? Augmentation[k]["_output"]
+ // : k extends keyof Output
+ // ? Output[k]
+ // : never;
+ // },
+ // NewInput extends {
+ // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
+ // ? Augmentation[k]["_input"]
+ // : k extends keyof Input
+ // ? Input[k]
+ // : never;
+ // }
+ // >(
+ // merging: Incoming
+ // ): ZodObject<
+ // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
+ // Incoming["_def"]["unknownKeys"],
+ // Incoming["_def"]["catchall"],
+ // NewOutput,
+ // NewInput
+ // > {
+ // const merged: any = new ZodObject({
+ // unknownKeys: merging._def.unknownKeys,
+ // catchall: merging._def.catchall,
+ // shape: () =>
+ // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
+ // typeName: ZodFirstPartyTypeKind.ZodObject,
+ // }) as any;
+ // return merged;
+ // }
+ setKey(key, schema) {
+ return this.augment({ [key]: schema });
+ }
+ // merge<Incoming extends AnyZodObject>(
+ // merging: Incoming
+ // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
+ // ZodObject<
+ // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
+ // Incoming["_def"]["unknownKeys"],
+ // Incoming["_def"]["catchall"]
+ // > {
+ // // const mergedShape = objectUtil.mergeShapes(
+ // // this._def.shape(),
+ // // merging._def.shape()
+ // // );
+ // const merged: any = new ZodObject({
+ // unknownKeys: merging._def.unknownKeys,
+ // catchall: merging._def.catchall,
+ // shape: () =>
+ // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
+ // typeName: ZodFirstPartyTypeKind.ZodObject,
+ // }) as any;
+ // return merged;
+ // }
+ catchall(index) {
+ return new ZodObject({
+ ...this._def,
+ catchall: index
+ });
+ }
+ pick(mask) {
+ let shape = {};
+ return util.objectKeys(mask).forEach((key) => {
+ mask[key] && this.shape[key] && (shape[key] = this.shape[key]);
+ }), new ZodObject({
+ ...this._def,
+ shape: () => shape
+ });
+ }
+ omit(mask) {
+ let shape = {};
+ return util.objectKeys(this.shape).forEach((key) => {
+ mask[key] || (shape[key] = this.shape[key]);
+ }), new ZodObject({
+ ...this._def,
+ shape: () => shape
+ });
+ }
+ deepPartial() {
+ return deepPartialify(this);
+ }
+ partial(mask) {
+ let newShape = {};
+ return util.objectKeys(this.shape).forEach((key) => {
+ let fieldSchema = this.shape[key];
+ mask && !mask[key] ? newShape[key] = fieldSchema : newShape[key] = fieldSchema.optional();
+ }), new ZodObject({
+ ...this._def,
+ shape: () => newShape
+ });
+ }
+ required(mask) {
+ let newShape = {};
+ return util.objectKeys(this.shape).forEach((key) => {
+ if (mask && !mask[key])
+ newShape[key] = this.shape[key];
+ else {
+ let newField = this.shape[key];
+ for (; newField instanceof ZodOptional; )
+ newField = newField._def.innerType;
+ newShape[key] = newField;
+ }
+ }), new ZodObject({
+ ...this._def,
+ shape: () => newShape
+ });
+ }
+ keyof() {
+ return createZodEnum(util.objectKeys(this.shape));
+ }
+};
+ZodObject.create = (shape, params) => new ZodObject({
+ shape: () => shape,
+ unknownKeys: "strip",
+ catchall: ZodNever.create(),
+ typeName: ZodFirstPartyTypeKind.ZodObject,
+ ...processCreateParams(params)
+});
+ZodObject.strictCreate = (shape, params) => new ZodObject({
+ shape: () => shape,
+ unknownKeys: "strict",
+ catchall: ZodNever.create(),
+ typeName: ZodFirstPartyTypeKind.ZodObject,
+ ...processCreateParams(params)
+});
+ZodObject.lazycreate = (shape, params) => new ZodObject({
+ shape,
+ unknownKeys: "strip",
+ catchall: ZodNever.create(),
+ typeName: ZodFirstPartyTypeKind.ZodObject,
+ ...processCreateParams(params)
+});
+var ZodUnion = class extends ZodType {
+ _parse(input) {
+ let { ctx } = this._processInputParams(input), options = this._def.options;
+ function handleResults(results) {
+ for (let result of results)
+ if (result.result.status === "valid")
+ return result.result;
+ for (let result of results)
+ if (result.result.status === "dirty")
+ return ctx.common.issues.push(...result.ctx.common.issues), result.result;
+ let unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_union,
+ unionErrors
+ }), INVALID;
+ }
+ if (ctx.common.async)
+ return Promise.all(options.map(async (option) => {
+ let childCtx = {
+ ...ctx,
+ common: {
+ ...ctx.common,
+ issues: []
+ },
+ parent: null
+ };
+ return {
+ result: await option._parseAsync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: childCtx
+ }),
+ ctx: childCtx
+ };
+ })).then(handleResults);
+ {
+ let dirty, issues = [];
+ for (let option of options) {
+ let childCtx = {
+ ...ctx,
+ common: {
+ ...ctx.common,
+ issues: []
+ },
+ parent: null
+ }, result = option._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: childCtx
+ });
+ if (result.status === "valid")
+ return result;
+ result.status === "dirty" && !dirty && (dirty = { result, ctx: childCtx }), childCtx.common.issues.length && issues.push(childCtx.common.issues);
+ }
+ if (dirty)
+ return ctx.common.issues.push(...dirty.ctx.common.issues), dirty.result;
+ let unionErrors = issues.map((issues2) => new ZodError(issues2));
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_union,
+ unionErrors
+ }), INVALID;
+ }
+ }
+ get options() {
+ return this._def.options;
+ }
+};
+ZodUnion.create = (types, params) => new ZodUnion({
+ options: types,
+ typeName: ZodFirstPartyTypeKind.ZodUnion,
+ ...processCreateParams(params)
+});
+var getDiscriminator = (type) => type instanceof ZodLazy ? getDiscriminator(type.schema) : type instanceof ZodEffects ? getDiscriminator(type.innerType()) : type instanceof ZodLiteral ? [type.value] : type instanceof ZodEnum ? type.options : type instanceof ZodNativeEnum ? Object.keys(type.enum) : type instanceof ZodDefault ? getDiscriminator(type._def.innerType) : type instanceof ZodUndefined ? [void 0] : type instanceof ZodNull ? [null] : null, ZodDiscriminatedUnion = class extends ZodType {
+ _parse(input) {
+ let { ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.object)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.object,
+ received: ctx.parsedType
+ }), INVALID;
+ let discriminator = this.discriminator, discriminatorValue = ctx.data[discriminator], option = this.optionsMap.get(discriminatorValue);
+ return option ? ctx.common.async ? option._parseAsync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ }) : option._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ }) : (addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_union_discriminator,
+ options: Array.from(this.optionsMap.keys()),
+ path: [discriminator]
+ }), INVALID);
+ }
+ get discriminator() {
+ return this._def.discriminator;
+ }
+ get options() {
+ return this._def.options;
+ }
+ get optionsMap() {
+ return this._def.optionsMap;
+ }
+ /**
+ * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
+ * However, it only allows a union of objects, all of which need to share a discriminator property. This property must
+ * have a different value for each object in the union.
+ * @param discriminator the name of the discriminator property
+ * @param types an array of object schemas
+ * @param params
+ */
+ static create(discriminator, options, params) {
+ let optionsMap = /* @__PURE__ */ new Map();
+ for (let type of options) {
+ let discriminatorValues = getDiscriminator(type.shape[discriminator]);
+ if (!discriminatorValues)
+ throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`);
+ for (let value of discriminatorValues) {
+ if (optionsMap.has(value))
+ throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);
+ optionsMap.set(value, type);
+ }
+ }
+ return new ZodDiscriminatedUnion({
+ typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,
+ discriminator,
+ options,
+ optionsMap,
+ ...processCreateParams(params)
+ });
+ }
+};
+function mergeValues(a, b) {
+ let aType = getParsedType(a), bType = getParsedType(b);
+ if (a === b)
+ return { valid: !0, data: a };
+ if (aType === ZodParsedType.object && bType === ZodParsedType.object) {
+ let bKeys = util.objectKeys(b), sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1), newObj = { ...a, ...b };
+ for (let key of sharedKeys) {
+ let sharedValue = mergeValues(a[key], b[key]);
+ if (!sharedValue.valid)
+ return { valid: !1 };
+ newObj[key] = sharedValue.data;
+ }
+ return { valid: !0, data: newObj };
+ } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {
+ if (a.length !== b.length)
+ return { valid: !1 };
+ let newArray = [];
+ for (let index = 0; index < a.length; index++) {
+ let itemA = a[index], itemB = b[index], sharedValue = mergeValues(itemA, itemB);
+ if (!sharedValue.valid)
+ return { valid: !1 };
+ newArray.push(sharedValue.data);
+ }
+ return { valid: !0, data: newArray };
+ } else
+ return aType === ZodParsedType.date && bType === ZodParsedType.date && +a == +b ? { valid: !0, data: a } : { valid: !1 };
+}
+var ZodIntersection = class extends ZodType {
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input), handleParsed = (parsedLeft, parsedRight) => {
+ if (isAborted(parsedLeft) || isAborted(parsedRight))
+ return INVALID;
+ let merged = mergeValues(parsedLeft.value, parsedRight.value);
+ return merged.valid ? ((isDirty(parsedLeft) || isDirty(parsedRight)) && status.dirty(), { status: status.value, value: merged.data }) : (addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_intersection_types
+ }), INVALID);
+ };
+ return ctx.common.async ? Promise.all([
+ this._def.left._parseAsync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ }),
+ this._def.right._parseAsync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ })
+ ]).then(([left, right]) => handleParsed(left, right)) : handleParsed(this._def.left._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ }), this._def.right._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ }));
+ }
+};
+ZodIntersection.create = (left, right, params) => new ZodIntersection({
+ left,
+ right,
+ typeName: ZodFirstPartyTypeKind.ZodIntersection,
+ ...processCreateParams(params)
+});
+var ZodTuple = class extends ZodType {
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.array)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.array,
+ received: ctx.parsedType
+ }), INVALID;
+ if (ctx.data.length < this._def.items.length)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: this._def.items.length,
+ inclusive: !0,
+ exact: !1,
+ type: "array"
+ }), INVALID;
+ !this._def.rest && ctx.data.length > this._def.items.length && (addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: this._def.items.length,
+ inclusive: !0,
+ exact: !1,
+ type: "array"
+ }), status.dirty());
+ let items = [...ctx.data].map((item, itemIndex) => {
+ let schema = this._def.items[itemIndex] || this._def.rest;
+ return schema ? schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)) : null;
+ }).filter((x) => !!x);
+ return ctx.common.async ? Promise.all(items).then((results) => ParseStatus.mergeArray(status, results)) : ParseStatus.mergeArray(status, items);
+ }
+ get items() {
+ return this._def.items;
+ }
+ rest(rest) {
+ return new ZodTuple({
+ ...this._def,
+ rest
+ });
+ }
+};
+ZodTuple.create = (schemas, params) => {
+ if (!Array.isArray(schemas))
+ throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
+ return new ZodTuple({
+ items: schemas,
+ typeName: ZodFirstPartyTypeKind.ZodTuple,
+ rest: null,
+ ...processCreateParams(params)
+ });
+};
+var ZodRecord = class extends ZodType {
+ get keySchema() {
+ return this._def.keyType;
+ }
+ get valueSchema() {
+ return this._def.valueType;
+ }
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.object)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.object,
+ received: ctx.parsedType
+ }), INVALID;
+ let pairs = [], keyType = this._def.keyType, valueType = this._def.valueType;
+ for (let key in ctx.data)
+ pairs.push({
+ key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),
+ value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))
+ });
+ return ctx.common.async ? ParseStatus.mergeObjectAsync(status, pairs) : ParseStatus.mergeObjectSync(status, pairs);
+ }
+ get element() {
+ return this._def.valueType;
+ }
+ static create(first, second, third) {
+ return second instanceof ZodType ? new ZodRecord({
+ keyType: first,
+ valueType: second,
+ typeName: ZodFirstPartyTypeKind.ZodRecord,
+ ...processCreateParams(third)
+ }) : new ZodRecord({
+ keyType: ZodString.create(),
+ valueType: first,
+ typeName: ZodFirstPartyTypeKind.ZodRecord,
+ ...processCreateParams(second)
+ });
+ }
+}, ZodMap = class extends ZodType {
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.map)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.map,
+ received: ctx.parsedType
+ }), INVALID;
+ let keyType = this._def.keyType, valueType = this._def.valueType, pairs = [...ctx.data.entries()].map(([key, value], index) => ({
+ key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])),
+ value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"]))
+ }));
+ if (ctx.common.async) {
+ let finalMap = /* @__PURE__ */ new Map();
+ return Promise.resolve().then(async () => {
+ for (let pair of pairs) {
+ let key = await pair.key, value = await pair.value;
+ if (key.status === "aborted" || value.status === "aborted")
+ return INVALID;
+ (key.status === "dirty" || value.status === "dirty") && status.dirty(), finalMap.set(key.value, value.value);
+ }
+ return { status: status.value, value: finalMap };
+ });
+ } else {
+ let finalMap = /* @__PURE__ */ new Map();
+ for (let pair of pairs) {
+ let key = pair.key, value = pair.value;
+ if (key.status === "aborted" || value.status === "aborted")
+ return INVALID;
+ (key.status === "dirty" || value.status === "dirty") && status.dirty(), finalMap.set(key.value, value.value);
+ }
+ return { status: status.value, value: finalMap };
+ }
+ }
+};
+ZodMap.create = (keyType, valueType, params) => new ZodMap({
+ valueType,
+ keyType,
+ typeName: ZodFirstPartyTypeKind.ZodMap,
+ ...processCreateParams(params)
+});
+var ZodSet = class extends ZodType {
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.set)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.set,
+ received: ctx.parsedType
+ }), INVALID;
+ let def = this._def;
+ def.minSize !== null && ctx.data.size < def.minSize.value && (addIssueToContext(ctx, {
+ code: ZodIssueCode.too_small,
+ minimum: def.minSize.value,
+ type: "set",
+ inclusive: !0,
+ exact: !1,
+ message: def.minSize.message
+ }), status.dirty()), def.maxSize !== null && ctx.data.size > def.maxSize.value && (addIssueToContext(ctx, {
+ code: ZodIssueCode.too_big,
+ maximum: def.maxSize.value,
+ type: "set",
+ inclusive: !0,
+ exact: !1,
+ message: def.maxSize.message
+ }), status.dirty());
+ let valueType = this._def.valueType;
+ function finalizeSet(elements2) {
+ let parsedSet = /* @__PURE__ */ new Set();
+ for (let element of elements2) {
+ if (element.status === "aborted")
+ return INVALID;
+ element.status === "dirty" && status.dirty(), parsedSet.add(element.value);
+ }
+ return { status: status.value, value: parsedSet };
+ }
+ let elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));
+ return ctx.common.async ? Promise.all(elements).then((elements2) => finalizeSet(elements2)) : finalizeSet(elements);
+ }
+ min(minSize, message) {
+ return new ZodSet({
+ ...this._def,
+ minSize: { value: minSize, message: errorUtil.toString(message) }
+ });
+ }
+ max(maxSize, message) {
+ return new ZodSet({
+ ...this._def,
+ maxSize: { value: maxSize, message: errorUtil.toString(message) }
+ });
+ }
+ size(size, message) {
+ return this.min(size, message).max(size, message);
+ }
+ nonempty(message) {
+ return this.min(1, message);
+ }
+};
+ZodSet.create = (valueType, params) => new ZodSet({
+ valueType,
+ minSize: null,
+ maxSize: null,
+ typeName: ZodFirstPartyTypeKind.ZodSet,
+ ...processCreateParams(params)
+});
+var ZodFunction = class extends ZodType {
+ constructor() {
+ super(...arguments), this.validate = this.implement;
+ }
+ _parse(input) {
+ let { ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.function)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.function,
+ received: ctx.parsedType
+ }), INVALID;
+ function makeArgsIssue(args, error) {
+ return makeIssue({
+ data: args,
+ path: ctx.path,
+ errorMaps: [
+ ctx.common.contextualErrorMap,
+ ctx.schemaErrorMap,
+ getErrorMap(),
+ errorMap
+ ].filter((x) => !!x),
+ issueData: {
+ code: ZodIssueCode.invalid_arguments,
+ argumentsError: error
+ }
+ });
+ }
+ function makeReturnsIssue(returns, error) {
+ return makeIssue({
+ data: returns,
+ path: ctx.path,
+ errorMaps: [
+ ctx.common.contextualErrorMap,
+ ctx.schemaErrorMap,
+ getErrorMap(),
+ errorMap
+ ].filter((x) => !!x),
+ issueData: {
+ code: ZodIssueCode.invalid_return_type,
+ returnTypeError: error
+ }
+ });
+ }
+ let params = { errorMap: ctx.common.contextualErrorMap }, fn = ctx.data;
+ return this._def.returns instanceof ZodPromise ? OK(async (...args) => {
+ let error = new ZodError([]), parsedArgs = await this._def.args.parseAsync(args, params).catch((e) => {
+ throw error.addIssue(makeArgsIssue(args, e)), error;
+ }), result = await fn(...parsedArgs);
+ return await this._def.returns._def.type.parseAsync(result, params).catch((e) => {
+ throw error.addIssue(makeReturnsIssue(result, e)), error;
+ });
+ }) : OK((...args) => {
+ let parsedArgs = this._def.args.safeParse(args, params);
+ if (!parsedArgs.success)
+ throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
+ let result = fn(...parsedArgs.data), parsedReturns = this._def.returns.safeParse(result, params);
+ if (!parsedReturns.success)
+ throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
+ return parsedReturns.data;
+ });
+ }
+ parameters() {
+ return this._def.args;
+ }
+ returnType() {
+ return this._def.returns;
+ }
+ args(...items) {
+ return new ZodFunction({
+ ...this._def,
+ args: ZodTuple.create(items).rest(ZodUnknown.create())
+ });
+ }
+ returns(returnType) {
+ return new ZodFunction({
+ ...this._def,
+ returns: returnType
+ });
+ }
+ implement(func) {
+ return this.parse(func);
+ }
+ strictImplement(func) {
+ return this.parse(func);
+ }
+ static create(args, returns, params) {
+ return new ZodFunction({
+ args: args || ZodTuple.create([]).rest(ZodUnknown.create()),
+ returns: returns || ZodUnknown.create(),
+ typeName: ZodFirstPartyTypeKind.ZodFunction,
+ ...processCreateParams(params)
+ });
+ }
+}, ZodLazy = class extends ZodType {
+ get schema() {
+ return this._def.getter();
+ }
+ _parse(input) {
+ let { ctx } = this._processInputParams(input);
+ return this._def.getter()._parse({ data: ctx.data, path: ctx.path, parent: ctx });
+ }
+};
+ZodLazy.create = (getter, params) => new ZodLazy({
+ getter,
+ typeName: ZodFirstPartyTypeKind.ZodLazy,
+ ...processCreateParams(params)
+});
+var ZodLiteral = class extends ZodType {
+ _parse(input) {
+ if (input.data !== this._def.value) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ received: ctx.data,
+ code: ZodIssueCode.invalid_literal,
+ expected: this._def.value
+ }), INVALID;
+ }
+ return { status: "valid", value: input.data };
+ }
+ get value() {
+ return this._def.value;
+ }
+};
+ZodLiteral.create = (value, params) => new ZodLiteral({
+ value,
+ typeName: ZodFirstPartyTypeKind.ZodLiteral,
+ ...processCreateParams(params)
+});
+function createZodEnum(values, params) {
+ return new ZodEnum({
+ values,
+ typeName: ZodFirstPartyTypeKind.ZodEnum,
+ ...processCreateParams(params)
+ });
+}
+var ZodEnum = class extends ZodType {
+ _parse(input) {
+ if (typeof input.data != "string") {
+ let ctx = this._getOrReturnCtx(input), expectedValues = this._def.values;
+ return addIssueToContext(ctx, {
+ expected: util.joinValues(expectedValues),
+ received: ctx.parsedType,
+ code: ZodIssueCode.invalid_type
+ }), INVALID;
+ }
+ if (this._def.values.indexOf(input.data) === -1) {
+ let ctx = this._getOrReturnCtx(input), expectedValues = this._def.values;
+ return addIssueToContext(ctx, {
+ received: ctx.data,
+ code: ZodIssueCode.invalid_enum_value,
+ options: expectedValues
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+ get options() {
+ return this._def.values;
+ }
+ get enum() {
+ let enumValues = {};
+ for (let val of this._def.values)
+ enumValues[val] = val;
+ return enumValues;
+ }
+ get Values() {
+ let enumValues = {};
+ for (let val of this._def.values)
+ enumValues[val] = val;
+ return enumValues;
+ }
+ get Enum() {
+ let enumValues = {};
+ for (let val of this._def.values)
+ enumValues[val] = val;
+ return enumValues;
+ }
+ extract(values) {
+ return ZodEnum.create(values);
+ }
+ exclude(values) {
+ return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));
+ }
+};
+ZodEnum.create = createZodEnum;
+var ZodNativeEnum = class extends ZodType {
+ _parse(input) {
+ let nativeEnumValues = util.getValidEnumValues(this._def.values), ctx = this._getOrReturnCtx(input);
+ if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {
+ let expectedValues = util.objectValues(nativeEnumValues);
+ return addIssueToContext(ctx, {
+ expected: util.joinValues(expectedValues),
+ received: ctx.parsedType,
+ code: ZodIssueCode.invalid_type
+ }), INVALID;
+ }
+ if (nativeEnumValues.indexOf(input.data) === -1) {
+ let expectedValues = util.objectValues(nativeEnumValues);
+ return addIssueToContext(ctx, {
+ received: ctx.data,
+ code: ZodIssueCode.invalid_enum_value,
+ options: expectedValues
+ }), INVALID;
+ }
+ return OK(input.data);
+ }
+ get enum() {
+ return this._def.values;
+ }
+};
+ZodNativeEnum.create = (values, params) => new ZodNativeEnum({
+ values,
+ typeName: ZodFirstPartyTypeKind.ZodNativeEnum,
+ ...processCreateParams(params)
+});
+var ZodPromise = class extends ZodType {
+ unwrap() {
+ return this._def.type;
+ }
+ _parse(input) {
+ let { ctx } = this._processInputParams(input);
+ if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === !1)
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.promise,
+ received: ctx.parsedType
+ }), INVALID;
+ let promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);
+ return OK(promisified.then((data) => this._def.type.parseAsync(data, {
+ path: ctx.path,
+ errorMap: ctx.common.contextualErrorMap
+ })));
+ }
+};
+ZodPromise.create = (schema, params) => new ZodPromise({
+ type: schema,
+ typeName: ZodFirstPartyTypeKind.ZodPromise,
+ ...processCreateParams(params)
+});
+var ZodEffects = class extends ZodType {
+ innerType() {
+ return this._def.schema;
+ }
+ sourceType() {
+ return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
+ }
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input), effect = this._def.effect || null;
+ if (effect.type === "preprocess") {
+ let processed = effect.transform(ctx.data);
+ return ctx.common.async ? Promise.resolve(processed).then((processed2) => this._def.schema._parseAsync({
+ data: processed2,
+ path: ctx.path,
+ parent: ctx
+ })) : this._def.schema._parseSync({
+ data: processed,
+ path: ctx.path,
+ parent: ctx
+ });
+ }
+ let checkCtx = {
+ addIssue: (arg) => {
+ addIssueToContext(ctx, arg), arg.fatal ? status.abort() : status.dirty();
+ },
+ get path() {
+ return ctx.path;
+ }
+ };
+ if (checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx), effect.type === "refinement") {
+ let executeRefinement = (acc) => {
+ let result = effect.refinement(acc, checkCtx);
+ if (ctx.common.async)
+ return Promise.resolve(result);
+ if (result instanceof Promise)
+ throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
+ return acc;
+ };
+ if (ctx.common.async === !1) {
+ let inner = this._def.schema._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ });
+ return inner.status === "aborted" ? INVALID : (inner.status === "dirty" && status.dirty(), executeRefinement(inner.value), { status: status.value, value: inner.value });
+ } else
+ return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => inner.status === "aborted" ? INVALID : (inner.status === "dirty" && status.dirty(), executeRefinement(inner.value).then(() => ({ status: status.value, value: inner.value }))));
+ }
+ if (effect.type === "transform")
+ if (ctx.common.async === !1) {
+ let base = this._def.schema._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ });
+ if (!isValid(base))
+ return base;
+ let result = effect.transform(base.value, checkCtx);
+ if (result instanceof Promise)
+ throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");
+ return { status: status.value, value: result };
+ } else
+ return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => isValid(base) ? Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })) : base);
+ util.assertNever(effect);
+ }
+};
+ZodEffects.create = (schema, effect, params) => new ZodEffects({
+ schema,
+ typeName: ZodFirstPartyTypeKind.ZodEffects,
+ effect,
+ ...processCreateParams(params)
+});
+ZodEffects.createWithPreprocess = (preprocess, schema, params) => new ZodEffects({
+ schema,
+ effect: { type: "preprocess", transform: preprocess },
+ typeName: ZodFirstPartyTypeKind.ZodEffects,
+ ...processCreateParams(params)
+});
+var ZodOptional = class extends ZodType {
+ _parse(input) {
+ return this._getType(input) === ZodParsedType.undefined ? OK(void 0) : this._def.innerType._parse(input);
+ }
+ unwrap() {
+ return this._def.innerType;
+ }
+};
+ZodOptional.create = (type, params) => new ZodOptional({
+ innerType: type,
+ typeName: ZodFirstPartyTypeKind.ZodOptional,
+ ...processCreateParams(params)
+});
+var ZodNullable = class extends ZodType {
+ _parse(input) {
+ return this._getType(input) === ZodParsedType.null ? OK(null) : this._def.innerType._parse(input);
+ }
+ unwrap() {
+ return this._def.innerType;
+ }
+};
+ZodNullable.create = (type, params) => new ZodNullable({
+ innerType: type,
+ typeName: ZodFirstPartyTypeKind.ZodNullable,
+ ...processCreateParams(params)
+});
+var ZodDefault = class extends ZodType {
+ _parse(input) {
+ let { ctx } = this._processInputParams(input), data = ctx.data;
+ return ctx.parsedType === ZodParsedType.undefined && (data = this._def.defaultValue()), this._def.innerType._parse({
+ data,
+ path: ctx.path,
+ parent: ctx
+ });
+ }
+ removeDefault() {
+ return this._def.innerType;
+ }
+};
+ZodDefault.create = (type, params) => new ZodDefault({
+ innerType: type,
+ typeName: ZodFirstPartyTypeKind.ZodDefault,
+ defaultValue: typeof params.default == "function" ? params.default : () => params.default,
+ ...processCreateParams(params)
+});
+var ZodCatch = class extends ZodType {
+ _parse(input) {
+ let { ctx } = this._processInputParams(input), result = this._def.innerType._parse({
+ data: ctx.data,
+ path: ctx.path,
+ parent: {
+ ...ctx,
+ common: {
+ ...ctx.common,
+ issues: []
+ // don't collect issues from inner type
+ }
+ }
+ });
+ return isAsync(result) ? result.then((result2) => ({
+ status: "valid",
+ value: result2.status === "valid" ? result2.value : this._def.catchValue()
+ })) : {
+ status: "valid",
+ value: result.status === "valid" ? result.value : this._def.catchValue()
+ };
+ }
+ removeCatch() {
+ return this._def.innerType;
+ }
+};
+ZodCatch.create = (type, params) => new ZodCatch({
+ innerType: type,
+ typeName: ZodFirstPartyTypeKind.ZodCatch,
+ catchValue: typeof params.catch == "function" ? params.catch : () => params.catch,
+ ...processCreateParams(params)
+});
+var ZodNaN = class extends ZodType {
+ _parse(input) {
+ if (this._getType(input) !== ZodParsedType.nan) {
+ let ctx = this._getOrReturnCtx(input);
+ return addIssueToContext(ctx, {
+ code: ZodIssueCode.invalid_type,
+ expected: ZodParsedType.nan,
+ received: ctx.parsedType
+ }), INVALID;
+ }
+ return { status: "valid", value: input.data };
+ }
+};
+ZodNaN.create = (params) => new ZodNaN({
+ typeName: ZodFirstPartyTypeKind.ZodNaN,
+ ...processCreateParams(params)
+});
+var BRAND = Symbol("zod_brand"), ZodBranded = class extends ZodType {
+ _parse(input) {
+ let { ctx } = this._processInputParams(input), data = ctx.data;
+ return this._def.type._parse({
+ data,
+ path: ctx.path,
+ parent: ctx
+ });
+ }
+ unwrap() {
+ return this._def.type;
+ }
+}, ZodPipeline = class extends ZodType {
+ _parse(input) {
+ let { status, ctx } = this._processInputParams(input);
+ if (ctx.common.async)
+ return (async () => {
+ let inResult = await this._def.in._parseAsync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ });
+ return inResult.status === "aborted" ? INVALID : inResult.status === "dirty" ? (status.dirty(), DIRTY(inResult.value)) : this._def.out._parseAsync({
+ data: inResult.value,
+ path: ctx.path,
+ parent: ctx
+ });
+ })();
+ {
+ let inResult = this._def.in._parseSync({
+ data: ctx.data,
+ path: ctx.path,
+ parent: ctx
+ });
+ return inResult.status === "aborted" ? INVALID : inResult.status === "dirty" ? (status.dirty(), {
+ status: "dirty",
+ value: inResult.value
+ }) : this._def.out._parseSync({
+ data: inResult.value,
+ path: ctx.path,
+ parent: ctx
+ });
+ }
+ }
+ static create(a, b) {
+ return new ZodPipeline({
+ in: a,
+ out: b,
+ typeName: ZodFirstPartyTypeKind.ZodPipeline
+ });
+ }
+}, custom = (check, params = {}, fatal) => check ? ZodAny.create().superRefine((data, ctx) => {
+ if (!check(data)) {
+ let p = typeof params == "function" ? params(data) : params, p2 = typeof p == "string" ? { message: p } : p;
+ ctx.addIssue({ code: "custom", ...p2, fatal });
+ }
+}) : ZodAny.create(), late = {
+ object: ZodObject.lazycreate
+}, ZodFirstPartyTypeKind;
+(function(ZodFirstPartyTypeKind2) {
+ ZodFirstPartyTypeKind2.ZodString = "ZodString", ZodFirstPartyTypeKind2.ZodNumber = "ZodNumber", ZodFirstPartyTypeKind2.ZodNaN = "ZodNaN", ZodFirstPartyTypeKind2.ZodBigInt = "ZodBigInt", ZodFirstPartyTypeKind2.ZodBoolean = "ZodBoolean", ZodFirstPartyTypeKind2.ZodDate = "ZodDate", ZodFirstPartyTypeKind2.ZodSymbol = "ZodSymbol", ZodFirstPartyTypeKind2.ZodUndefined = "ZodUndefined", ZodFirstPartyTypeKind2.ZodNull = "ZodNull", ZodFirstPartyTypeKind2.ZodAny = "ZodAny", ZodFirstPartyTypeKind2.ZodUnknown = "ZodUnknown", ZodFirstPartyTypeKind2.ZodNever = "ZodNever", ZodFirstPartyTypeKind2.ZodVoid = "ZodVoid", ZodFirstPartyTypeKind2.ZodArray = "ZodArray", ZodFirstPartyTypeKind2.ZodObject = "ZodObject", ZodFirstPartyTypeKind2.ZodUnion = "ZodUnion", ZodFirstPartyTypeKind2.ZodDiscriminatedUnion = "ZodDiscriminatedUnion", ZodFirstPartyTypeKind2.ZodIntersection = "ZodIntersection", ZodFirstPartyTypeKind2.ZodTuple = "ZodTuple", ZodFirstPartyTypeKind2.ZodRecord = "ZodRecord", ZodFirstPartyTypeKind2.ZodMap = "ZodMap", ZodFirstPartyTypeKind2.ZodSet = "ZodSet", ZodFirstPartyTypeKind2.ZodFunction = "ZodFunction", ZodFirstPartyTypeKind2.ZodLazy = "ZodLazy", ZodFirstPartyTypeKind2.ZodLiteral = "ZodLiteral", ZodFirstPartyTypeKind2.ZodEnum = "ZodEnum", ZodFirstPartyTypeKind2.ZodEffects = "ZodEffects", ZodFirstPartyTypeKind2.ZodNativeEnum = "ZodNativeEnum", ZodFirstPartyTypeKind2.ZodOptional = "ZodOptional", ZodFirstPartyTypeKind2.ZodNullable = "ZodNullable", ZodFirstPartyTypeKind2.ZodDefault = "ZodDefault", ZodFirstPartyTypeKind2.ZodCatch = "ZodCatch", ZodFirstPartyTypeKind2.ZodPromise = "ZodPromise", ZodFirstPartyTypeKind2.ZodBranded = "ZodBranded", ZodFirstPartyTypeKind2.ZodPipeline = "ZodPipeline";
+})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
+var instanceOfType = (cls, params = {
+ message: `Input not instance of ${cls.name}`
+}) => custom((data) => data instanceof cls, params, !0), stringType = ZodString.create, numberType = ZodNumber.create, nanType = ZodNaN.create, bigIntType = ZodBigInt.create, booleanType = ZodBoolean.create, dateType = ZodDate.create, symbolType = ZodSymbol.create, undefinedType = ZodUndefined.create, nullType = ZodNull.create, anyType = ZodAny.create, unknownType = ZodUnknown.create, neverType = ZodNever.create, voidType = ZodVoid.create, arrayType = ZodArray.create, objectType = ZodObject.create, strictObjectType = ZodObject.strictCreate, unionType = ZodUnion.create, discriminatedUnionType = ZodDiscriminatedUnion.create, intersectionType = ZodIntersection.create, tupleType = ZodTuple.create, recordType = ZodRecord.create, mapType = ZodMap.create, setType = ZodSet.create, functionType = ZodFunction.create, lazyType = ZodLazy.create, literalType = ZodLiteral.create, enumType = ZodEnum.create, nativeEnumType = ZodNativeEnum.create, promiseType = ZodPromise.create, effectsType = ZodEffects.create, optionalType = ZodOptional.create, nullableType = ZodNullable.create, preprocessType = ZodEffects.createWithPreprocess, pipelineType = ZodPipeline.create, ostring = () => stringType().optional(), onumber = () => numberType().optional(), oboolean = () => booleanType().optional(), coerce = {
+ string: (arg) => ZodString.create({ ...arg, coerce: !0 }),
+ number: (arg) => ZodNumber.create({ ...arg, coerce: !0 }),
+ boolean: (arg) => ZodBoolean.create({
+ ...arg,
+ coerce: !0
+ }),
+ bigint: (arg) => ZodBigInt.create({ ...arg, coerce: !0 }),
+ date: (arg) => ZodDate.create({ ...arg, coerce: !0 })
+}, NEVER = INVALID, mod = /* @__PURE__ */ Object.freeze({
+ __proto__: null,
+ defaultErrorMap: errorMap,
+ setErrorMap,
+ getErrorMap,
+ makeIssue,
+ EMPTY_PATH,
+ addIssueToContext,
+ ParseStatus,
+ INVALID,
+ DIRTY,
+ OK,
+ isAborted,
+ isDirty,
+ isValid,
+ isAsync,
+ get util() {
+ return util;
+ },
+ ZodParsedType,
+ getParsedType,
+ ZodType,
+ ZodString,
+ ZodNumber,
+ ZodBigInt,
+ ZodBoolean,
+ ZodDate,
+ ZodSymbol,
+ ZodUndefined,
+ ZodNull,
+ ZodAny,
+ ZodUnknown,
+ ZodNever,
+ ZodVoid,
+ ZodArray,
+ get objectUtil() {
+ return objectUtil;
+ },
+ ZodObject,
+ ZodUnion,
+ ZodDiscriminatedUnion,
+ ZodIntersection,
+ ZodTuple,
+ ZodRecord,
+ ZodMap,
+ ZodSet,
+ ZodFunction,
+ ZodLazy,
+ ZodLiteral,
+ ZodEnum,
+ ZodNativeEnum,
+ ZodPromise,
+ ZodEffects,
+ ZodTransformer: ZodEffects,
+ ZodOptional,
+ ZodNullable,
+ ZodDefault,
+ ZodCatch,
+ ZodNaN,
+ BRAND,
+ ZodBranded,
+ ZodPipeline,
+ custom,
+ Schema: ZodType,
+ ZodSchema: ZodType,
+ late,
+ get ZodFirstPartyTypeKind() {
+ return ZodFirstPartyTypeKind;
+ },
+ coerce,
+ any: anyType,
+ array: arrayType,
+ bigint: bigIntType,
+ boolean: booleanType,
+ date: dateType,
+ discriminatedUnion: discriminatedUnionType,
+ effect: effectsType,
+ enum: enumType,
+ function: functionType,
+ instanceof: instanceOfType,
+ intersection: intersectionType,
+ lazy: lazyType,
+ literal: literalType,
+ map: mapType,
+ nan: nanType,
+ nativeEnum: nativeEnumType,
+ never: neverType,
+ null: nullType,
+ nullable: nullableType,
+ number: numberType,
+ object: objectType,
+ oboolean,
+ onumber,
+ optional: optionalType,
+ ostring,
+ pipeline: pipelineType,
+ preprocess: preprocessType,
+ promise: promiseType,
+ record: recordType,
+ set: setType,
+ strictObject: strictObjectType,
+ string: stringType,
+ symbol: symbolType,
+ transformer: effectsType,
+ tuple: tupleType,
+ undefined: undefinedType,
+ union: unionType,
+ unknown: unknownType,
+ void: voidType,
+ NEVER,
+ ZodIssueCode,
+ quotelessJson,
+ ZodError
+});
+
+// packages/miniflare/src/workers/shared/zod.worker.ts
+var HEX_REGEXP = /^[0-9a-f]*$/i, BASE64_REGEXP = /^[0-9a-z+/=]*$/i, HexDataSchema = mod.string().regex(HEX_REGEXP).transform((hex) => Buffer.from(hex, "hex")), Base64DataSchema = mod.string().regex(BASE64_REGEXP).transform((base64) => Buffer.from(base64, "base64"));
+export {
+ BASE64_REGEXP,
+ Base64DataSchema,
+ HEX_REGEXP,
+ HexDataSchema,
+ mod as z
+};
+//# sourceMappingURL=zod.worker.js.map
diff --git a/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map
new file mode 100644
index 0000000..1ee4ceb
--- /dev/null
+++ b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../../../../src/workers/shared/zod.worker.ts", "../../../../../../node_modules/zod/lib/index.mjs"],
+ "mappings": "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",
+ "names": ["util", "errorUtil", "errorMap", "ctx", "result", "objectUtil", "issues", "elements", "processed", "ZodFirstPartyTypeKind"]
+}