diff options
Diffstat (limited to 'node_modules/miniflare/dist/src/workers')
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": "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", + "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": "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", + "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"] +} |
