cross-cf
Version:
Cross-environment DO and KV access
4 lines (3 loc) • 23.2 kB
JavaScript
var e=require("path"),t=require("@miniflare/kv"),r=require("@miniflare/storage-file"),n=require("assert"),i=require("async_hooks"),s=require("timers/promises");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=/*#__PURE__*/o(e),u=/*#__PURE__*/o(n),l=/*#__PURE__*/o(i),c=/*#__PURE__*/o(s);function h(){return h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h.apply(this,arguments)}function p(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)t.indexOf(r=s[n])>=0||(i[r]=e[r]);return i}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function f(e){var t={exports:{}};return e(t,t.exports),t.exports}function g(e){return Array.isArray(e)?e:[e]}const b=/^\s+$/,v=/^\\!/,m=/^\\#/,y=/\r?\n/g,w=/^\.*\/|^\.+$/,O="undefined"!=typeof Symbol?Symbol.for("node-ignore"):"node-ignore",_=/([0-z])-([0-z])/g,E=()=>!1,k=[[/\\?\s+$/,e=>0===e.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(e,t)=>`${t}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,i)=>"\\"===t?`\\[${r}${(e=>{const{length:t}=e;return e.slice(0,t-t%2)})(n)}${i}`:"]"===i&&n.length%2==0?`[${(e=>e.replace(_,(e,t,r)=>t.charCodeAt(0)<=r.charCodeAt(0)?e:""))(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>(t?`${t}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],S=Object.create(null),x=e=>"string"==typeof e;class P{constructor(e,t,r,n){this.origin=e,this.pattern=t,this.negative=r,this.regex=n}}const j=(e,t)=>{throw new t(e)},C=(e,t,r)=>x(e)?e?!C.isNotRelative(e)||r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),R=e=>w.test(e);C.isNotRelative=R,C.convert=e=>e;class ${constructor({ignorecase:e=!0,ignoreCase:t=e,allowRelativePaths:r=!1}={}){Object.defineProperty(this,O,{value:!0}),this._rules=[],this._ignoreCase=t,this._allowRelativePaths=r,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[O])return this._rules=this._rules.concat(e._rules),void(this._added=!0);if((e=>e&&x(e)&&!b.test(e)&&0!==e.indexOf("#"))(e)){const t=((e,t)=>{const r=e;let n=!1;0===e.indexOf("!")&&(n=!0,e=e.substr(1));const i=((e,t)=>{let r=S[e];return r||(r=k.reduce((t,r)=>t.replace(r[0],r[1].bind(e)),e),S[e]=r),t?new RegExp(r,"i"):new RegExp(r)})(e=e.replace(v,"!").replace(m,"#"),t);return new P(r,e,n,i)})(e,this._ignoreCase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,g(x(e)?(e=>e.split(y))(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let r=!1,n=!1;return this._rules.forEach(i=>{const{negative:s}=i;n===s&&r!==n||s&&!r&&!n&&!t||i.regex.test(e)&&(r=!s,n=s)}),{ignored:r,unignored:n}}_test(e,t,r,n){const i=e&&C.convert(e);return C(i,e,this._allowRelativePaths?E:j),this._t(i,t,r,n)}_t(e,t,r,n){if(e in t)return t[e];if(n||(n=e.split("/")),n.pop(),!n.length)return t[e]=this._testOne(e,r);const i=this._t(n.join("/")+"/",t,r,n);return t[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return g(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const N=e=>new $(e);N.isPathValid=e=>C(e&&C.convert(e),e,E),N.default=N;var I=N;if("undefined"!=typeof process&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){C.convert=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");const e=/^[a-z]:\//i;C.isNotRelative=t=>e.test(t)||R(t)}var T=f(function(e,t){let r,n,i,s,o=!0;"undefined"!=typeof process&&(({FORCE_COLOR:r,NODE_DISABLE_COLORS:n,NO_COLOR:i,TERM:s}=process.env),o=process.stdout&&process.stdout.isTTY);const a=t.$={enabled:!n&&null==i&&"dumb"!==s&&(null!=r&&"0"!==r||o)};function u(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`[${e}m`,i=`[${t}m`;return function(e){return a.enabled&&null!=e?n+(~(""+e).indexOf(i)?e.replace(r,i+n):e)+i:e}}t.reset=u(0,0),t.bold=u(1,22),t.dim=u(2,22),t.italic=u(3,23),t.underline=u(4,24),t.inverse=u(7,27),t.hidden=u(8,28),t.strikethrough=u(9,29),t.black=u(30,39),t.red=u(31,39),t.green=u(32,39),t.yellow=u(33,39),t.blue=u(34,39),t.magenta=u(35,39),t.cyan=u(36,39),t.white=u(37,39),t.gray=u(90,39),t.grey=u(90,39),t.bgBlack=u(40,49),t.bgRed=u(41,49),t.bgGreen=u(42,49),t.bgYellow=u(43,49),t.bgBlue=u(44,49),t.bgMagenta=u(45,49),t.bgCyan=u(46,49),t.bgWhite=u(47,49)}),A=f(function(e,t){var r=Object.create,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,p=e=>n(e,"__esModule",{value:!0}),d=e=>((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))h.call(e,o)||"default"===o||n(e,o,{get:()=>t[o],enumerable:!(r=i(t,o))||r.enumerable});return e})(p(n(null!=e?r(o(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);((e,t)=>{for(var r in p(e),t)n(e,r,{get:t[r],enumerable:!0})})(t,{Compatibility:()=>b,InputGate:()=>Ne,InputGatedEventTarget:()=>Te,Log:()=>fe,LogLevel:()=>ee,MiniflareError:()=>H,Mutex:()=>Le,NoOpLog:()=>ge,Option:()=>be,OptionType:()=>pe,OutputGate:()=>Ie,Plugin:()=>ve,RequestContext:()=>S,STRING_SCRIPT_PATH:()=>ye,Storage:()=>we,ThrowingEventTarget:()=>ie,TypedEventTarget:()=>ne,addAll:()=>C,assertInRequest:()=>k,base64Decode:()=>A,base64Encode:()=>N,defaultClock:()=>Oe,getRequestContext:()=>E,globsToMatcher:()=>M,kWrapListener:()=>re,kebabCase:()=>F,logOptions:()=>me,millisToSeconds:()=>_e,nonCircularClone:()=>j,prefixError:()=>X,randomHex:()=>L,resolveStoragePersist:()=>U,runWithInputGateClosed:()=>Ce,sanitisePath:()=>Z,spaceCase:()=>D,titleCase:()=>W,viewToArray:()=>R,viewToBuffer:()=>$,waitForOpenInputGate:()=>je,waitForOpenOutputGate:()=>Re,waitUntilOnOutputGate:()=>$e});var f=[{defaultAsOf:"2021-11-10",enableFlag:"durable_object_fetch_requires_full_url",disableFlag:"durable_object_fetch_allows_relative_url"},{defaultAsOf:"2021-11-10",enableFlag:"fetch_refuses_unknown_protocols",disableFlag:"fetch_treats_unknown_protocols_as_http"},{defaultAsOf:"2021-11-03",enableFlag:"formdata_parser_supports_files",disableFlag:"formdata_parser_converts_files_to_strings"},{enableFlag:"html_rewriter_treats_esi_include_as_void_tag"}],g=new Intl.Collator(void 0,{numeric:!0}),b=class{constructor(e="1970-01-01",t=[]){this.compatibilityDate=e,this.compatibilityFlags=t,this.#e()}#t=new Set;#e(){this.#t.clear();const e=new Set(this.compatibilityFlags);for(const{defaultAsOf:t,enableFlag:r,disableFlag:n}of f){if(n&&e.has(n))continue;const i=e.has(r),s=t&&g.compare(t,this.compatibilityDate)<=0;(i||s)&&this.#t.add(r)}}isEnabled(e){return this.#t.has(e)}update(e="1970-01-01",t=[]){return!(this.compatibilityDate===e&&this.compatibilityFlags.length===t.length&&this.compatibilityFlags.every((e,r)=>t[r]===e)||(this.compatibilityDate=e,this.compatibilityFlags=t,this.#e(),0))}get enabled(){return[...this.#t]}},v=d(u.default),m=d(l.default),y=parseInt(process.env.MINIFLARE_SUBREQUEST_LIMIT),w=isNaN(y)?50:y,O="Subrequest depth limit exceeded. This request recursed through Workers too many times. This can happen e.g. if you have a Worker or Durable Object that calls other Workers or objects recursively.",_=new m.AsyncLocalStorage;function E(){return _.getStore()}function k(){if(!E())throw new Error("Some functionality, such as asynchronous I/O (fetch, Cache API, KV), timeouts (setTimeout, setInterval), and generating random values (crypto.getRandomValues, crypto.subtle.generateKey), can only be performed while handling a request.")}var S=class{requestDepth;pipelineDepth;durableObject;constructor({requestDepth:e=1,pipelineDepth:t=1,durableObject:r=!1}={}){if((0,v.default)(e>=1),(0,v.default)(t>=1),e>16)throw new Error(`${O}\nWorkers and objects can recurse up to 16 times.\nIf you're trying to fetch from an origin server, make sure you've set the \`upstream\` option.`);if(t>32)throw new Error(`${O}\nService bindings can recurse up to 32 times.`);this.requestDepth=e,this.pipelineDepth=t,this.durableObject=r}runWith(e){return _.run(this,e)}#r=0;get subrequests(){return this.#r}incrementSubrequests(e=1){if(this.#r+=e,w>=0&&this.#r>w)throw new Error(`Too many subrequests. Workers can make up to ${w} subrequests per request.\nA subrequest is a call to fetch(), a redirect, or a call to any Cache API method.`)}},x=d(a.default),P=d(I);function j(e){return JSON.parse(JSON.stringify(e))}function C(e,t){for(const r of t)e.add(r)}function R(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function $(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function N(e){return Buffer.from(e,"utf8").toString("base64")}function A(e){return Buffer.from(e,"base64").toString("utf8")}function L(e=8){return Array.from(Array(e)).map(()=>Math.floor(16*Math.random()).toString(16)).join("")}function M(e){const t=(0,P.default)();return e&&t.add(e),{test:e=>t.ignores(e),toString:()=>e?.join(", ")??""}}function F(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function D(e){return(e=e.replace(/(.)([A-Z][a-z]+)/g,"$1 $2")).replace(/([a-z0-9])([A-Z])/g,"$1 $2")}function W(e){return D(e).split(" ").map(e=>e?e[0].toUpperCase()+e.substring(1):e).join(" ")}var q=/^([a-z]+:)?\/\//i;function U(e,t){return"string"==typeof t?q.test(t)?t:x.default.resolve(e,t):t}var B=/[/\\:|]/g,G=/(^|\/|\\)(\.+)(\/|\\|$)/g,V=/[?<>*"'^\x00-\x1f\x80-\x9f]/g,K=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Q=/^[ /\\]+/,z=/[ /\\]+$/;function J(e,t,r,n){return`${t}${"".padStart(r.length,"_")}${n}`}function Y(e){return"".padStart(e.length,"_")}function Z(e){return e.replace(B,x.default.sep).replace(G,J).replace(G,J).replace(V,"_").replace(K,"_").replace(Q,Y).replace(z,Y).substring(0,255)}var H=class extends Error{constructor(e,t,r){super(t),this.code=e,this.cause=r,Object.setPrototypeOf(this,new.target.prototype),this.name=`${new.target.name} [${e}]`}};function X(e,t){return t.stack?new Proxy(t,{get(t,r,n){const i=Reflect.get(t,r,n);return"stack"===r?`${e}: ${i}`:i}}):t}var ee,te,re=Symbol("kWrapListener"),ne=class extends EventTarget{#n=new WeakMap;#i(e){if(!e)return null;let t=this.#n.get(e);return t||(t=this[re](t=>{"function"==typeof e?e(t):e.handleEvent(t)}),this.#n.set(e,t),t)}addEventListener(e,t,r){super.addEventListener(e,this[re]?this.#i(t):t,r)}removeEventListener(e,t,r){super.removeEventListener(e,this[re]?this.#i(t):t,r)}dispatchEvent(e){return super.dispatchEvent(e)}},ie=class extends ne{#s;[re](e){return t=>{try{e(t)}catch(e){t.stopImmediatePropagation(),this.#s=e}}}dispatchEvent(e){this.#s=void 0;const t=super.dispatchEvent(e);if(void 0!==this.#s)throw this.#s;return t}},se=d(a.default),oe=d(T),ae=process.cwd(),ue=se.default.join(ae,"node_modules");(te=ee||(ee={}))[te.NONE=0]="NONE",te[te.ERROR=1]="ERROR",te[te.WARN=2]="WARN",te[te.INFO=3]="INFO",te[te.DEBUG=4]="DEBUG",te[te.VERBOSE=5]="VERBOSE";var le={0:"",1:"err",2:"wrn",3:"inf",4:"dbg",5:"vrb"},ce={0:oe.reset,1:oe.red,2:oe.yellow,3:oe.green,4:oe.grey,5:e=>(0,oe.dim)((0,oe.grey)(e))};function he(e){return!e.startsWith(" at")||e.includes(ae)&&!e.includes(ue)?e:(0,oe.dim)(e)}var pe,de,fe=class{constructor(e=3,t={}){this.level=e;const r=t.prefix??"mf",n=t.suffix??"";this.#o=r?r+":":"",this.#a=n?":"+n:""}#o;#a;log(e){console.log(e)}logWithLevel(e,t){if(e<=this.level){const r=`[${this.#o}${le[e]}${this.#a}]`;this.log(ce[e](`${r} ${t}`))}}error(e){if(this.level<1)throw e;if(e.stack){const t=e.stack.split("\n").map(he);this.logWithLevel(1,t.join("\n"))}else this.logWithLevel(1,e.toString());e.cause&&this.error(X("Cause",e.cause))}warn(e){this.logWithLevel(2,e)}info(e){this.logWithLevel(3,e)}debug(e){this.logWithLevel(4,e)}verbose(e){this.logWithLevel(5,e)}},ge=class extends fe{log(){}error(e){throw e}};function be(e){return function(t,r){(t.opts??=new Map).set(r,e)}}(de=pe||(pe={}))[de.NONE=0]="NONE",de[de.BOOLEAN=1]="BOOLEAN",de[de.NUMBER=2]="NUMBER",de[de.STRING=3]="STRING",de[de.STRING_POSITIONAL=4]="STRING_POSITIONAL",de[de.BOOLEAN_STRING=5]="BOOLEAN_STRING",de[de.BOOLEAN_NUMBER=6]="BOOLEAN_NUMBER",de[de.ARRAY=7]="ARRAY",de[de.OBJECT=8]="OBJECT";var ve=class{constructor(e){this.ctx=e,this.opts=new.target.prototype.opts}#u;opts;assignOptions(e){if(void 0!==e&&void 0!==this.opts)for(const t of this.opts.keys())this[t]=e[t]}};function me(e,t,r){t.debug("Options:");for(const[n,i]of e){const e=r[n];for(const[r,n]of i.prototype.opts?.entries()??[]){const i=e[r];if(void 0===i||0===n.type)continue;const s=n?.logName??W("symbol"==typeof r?"<symbol>":r);let o;if(n.logValue){if(o=n.logValue(i),void 0===o)continue}else o=8===n.type?Object.keys(i).join(", "):7===n.type?i.join(", "):i.toString();t.debug(`- ${s}: ${o}`)}}}var ye="<script>",we=class{async hasMany(e){const t=e.map(this.has.bind(this));let r=0;for(const e of await Promise.all(t))e&&r++;return r}getMany(e,t){return Promise.all(e.map(e=>this.get(e,t)))}async putMany(e){await Promise.all(e.map(([e,t])=>this.put(e,t)))}async deleteMany(e){const t=e.map(this.delete.bind(this));let r=0;for(const e of await Promise.all(t))e&&r++;return r}},Oe=()=>Date.now();function _e(e){return Math.floor(e/1e3)}var Ee=d(u.default),ke=d(l.default),Se=d(c.default),xe=new ke.AsyncLocalStorage,Pe=new ke.AsyncLocalStorage;function je(){return xe.getStore()?.waitForOpen()}function Ce(e,t=!1){if(t)return e();const r=xe.getStore();return void 0===r?e():r.runWithClosed(e)}function Re(){return Pe.getStore()?.waitForOpen()}function $e(e,t=!1){return t||Pe.getStore()?.waitUntil(e),e}var Ne=class{#l=0;#c=[];#h;constructor(e){this.#h=e}async runWith(e){return await this.waitForOpen(),xe.run(this,e)}async waitForOpen(){if(await(0,Se.setImmediate)(),0!==this.#l)return new Promise(e=>this.#c.push(e))}async runWithClosed(e){this.#p(),await Promise.resolve();const t=new Ne(this);try{return await xe.run(t,e)}finally{setImmediate(this.#d)}}#p(){this.#l++,this.#h&&this.#h.#p()}#d=async()=>{for((0,Ee.default)(this.#l>0),this.#l--;0===this.#l&&this.#c.length;)this.#c.shift()(),await(0,Se.setImmediate)();if(this.#h)return this.#h.#d()}},Ie=class{#f=[];async runWith(e){try{return await Pe.run(this,e)}finally{await this.waitForOpen()}}async waitForOpen(){await Promise.all(this.#f)}waitUntil(e){this.#f.push(e)}},Te=class extends ne{[re](e){const t=xe.getStore();return t?async r=>{await t.waitForOpen(),e(r)}:e}},Ae=d(u.default),Le=class{locked=!1;resolveQueue=[];lock(){if(this.locked)return new Promise(e=>this.resolveQueue.push(e));this.locked=!0}unlock(){(0,Ae.default)(this.locked),this.resolveQueue.length>0?this.resolveQueue.shift()?.():this.locked=!1}get hasWaiting(){return this.resolveQueue.length>0}async runWith(e){const t=this.lock();t instanceof Promise&&await t;try{const t=e();return t instanceof Promise?await t:t}finally{this.unlock()}}}}),L=f(function(e,t){var r=Object.create,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,u=e=>n(e,"__esModule",{value:!0}),l=e=>((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))a.call(e,o)||"default"===o||n(e,o,{get:()=>t[o],enumerable:!(r=i(t,o))||r.enumerable});return e})(u(n(null!=e?r(o(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);((e,t)=>{for(var r in u(e),t)n(e,r,{get:t[r],enumerable:!0})})(t,{LocalStorage:()=>b,MemoryStorage:()=>m,cloneMetadata:()=>h,listFilterMatch:()=>d,listPaginate:()=>f});var c=l(A);function h(e){return e&&(0,c.nonCircularClone)(e)}var p=new Intl.Collator;function d(e,t){return!(e?.prefix&&!t.startsWith(e.prefix)||e?.start&&p.compare(t,e.start)<0||e?.end&&p.compare(t,e.end)>=0)}function f(e,t){const r=e?.reverse?-1:1;t.sort((e,t)=>r*p.compare(e.name,t.name));const n=e?.cursor?(0,c.base64Decode)(e.cursor):"";let i=0;""!==n&&(i=t.findIndex(({name:e})=>e===n),-1===i&&(i=t.length),i++);const s=void 0===e?.limit?t.length:i+e.limit,o=s<t.length?(0,c.base64Encode)(t[s-1].name):"";return{keys:t=t.slice(i,s),cursor:o}}var g=l(A),b=class extends g.Storage{constructor(e=g.defaultClock){super(),this.clock=e}expired({expiration:e},t=this.clock()){return void 0!==e&&e<=(0,g.millisToSeconds)(t)}async has(e){const t=await this.hasMaybeExpired(e);return!(void 0===t||this.expired(t)&&(await this.deleteMaybeExpired(e),1))}async get(e){const t=await this.getMaybeExpired(e);if(void 0!==t){if(!this.expired(t))return t;await this.deleteMaybeExpired(e)}}async delete(e){const t=await this.hasMaybeExpired(e),r=void 0!==t&&this.expired(t);return!!await this.deleteMaybeExpired(e)&&!r}async list(e){const t=this.clock(),r=[];let n=await this.listAllMaybeExpired();n=n.filter(n=>this.expired(n,t)?(r.push(this.deleteMaybeExpired(n.name)),!1):d(e,n.name));const i=f(e,n);return await Promise.all(r),i}},v=l(A),m=class extends b{constructor(e=new Map,t=v.defaultClock){super(t),this.map=e}hasMaybeExpired(e){const t=this.map.get(e);return t&&{expiration:t.expiration,metadata:h(t.metadata)}}getMaybeExpired(e){const t=this.map.get(e);return t&&{value:t.value.slice(),expiration:t.expiration,metadata:h(t.metadata)}}put(e,t){this.map.set(e,{value:t.value.slice(),expiration:t.expiration,metadata:h(t.metadata)})}deleteMaybeExpired(e){return this.map.delete(e)}static entryToStoredKey([e,{expiration:t,metadata:r}]){return{name:e,expiration:t,metadata:h(r)}}listAllMaybeExpired(){return Array.from(this.map.entries()).map(m.entryToStoredKey)}}}),M=["key","value"],F=["type"],D=["headers","body"];function W(e,t){for(var r,n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(r=n()).done;){var i=r.value;if(!t[i]||""===t[i])throw new Error(i+" is required.")}}var q=/*#__PURE__*/function(){function e(e,n){var i,s=this;void 0===n&&(n={});var o=(null==(i=process)?void 0:i.env)||{},u=o.CF_TOKEN,l=o.CF_ACCOUNTID,c=o.CLOUDFLARE_TOKEN;if(this.options=h({},n,{target:n.target||"local",filepath:a.default.resolve(n.filepath||"./.mf/kv",e),accountToken:n.accountToken||u||c,accountID:n.accountID||l,env:n.env||{},name:e}),"local"===this.options.target)W(["filepath"],this.options),this._db=new t.KVNamespace(new r.FileStorage(this.options.filepath));else if("cf"===this.options.target){if(this._db=this.options.env[e]||global[e],!this._db)throw new Error('You chose "cf" for target, but env does not have "'+e+'" KV.')}else"remote"===this.options.target?W(["kvID","accountToken","accountID"],this.options):"memory"===this.options.target&&(this._db=new t.KVNamespace(new L.MemoryStorage));this._db&&(this.get=this._db.get.bind(this._db),this.getWithMetadata=this._db.getWithMetadata.bind(this._db),this.list=this._db.list.bind(this._db),this.put=this._db.put.bind(this._db),this.delete=this._db.delete.bind(this._db),this.bulkdelete=function(e,t){return void 0===t&&(t={}),Promise.all(e.map(function(e){return s.delete(e,t)}))},this.bulkput=function(e,t){return void 0===t&&(t={}),Promise.all(e.map(function(e){var r=e.key,n=e.value,i=p(e,M);return s.put(r,n,h({},t,i))}))})}var n=e.prototype;return n.get=function(e,t){void 0===t&&(t={});try{var r=t.type,n=p(t,F),i=new URLSearchParams(n).toString();return Promise.resolve(this.api("/storage/kv/namespaces/"+this.options.kvID+"/values/"+e+"?"+i)).then(function(e){return"json"===r?e.json():"arrayBuffer"!==r?"stream"===r?e.body.getReader():e.text():void e.arrayBuffer()})}catch(e){return Promise.reject(e)}},n.getWithMetadata=function(e,t){void 0===t&&(t={});try{var r=this;return Promise.resolve(r.get(e,t)).then(function(t){return Promise.resolve(r.api("/storage/kv/namespaces/"+r.options.kvID+"/metadata/"+e).then(function(e){return e.json()})).then(function(e){return{value:t,metadata:e.result}})})}catch(e){return Promise.reject(e)}},n.list=function(e){void 0===e&&(e={});try{var t=new URLSearchParams(e).toString();return Promise.resolve(this.api("/storage/kv/namespaces/"+this.options.kvID+"/keys?"+t).then(function(e){return e.json()})).then(function(e){return{keys:e.result,cursor:e.result_info.cursor,list_complete:e.result.length===e.result_info.count}})}catch(e){return Promise.reject(e)}},n.put=function(e,t,r){void 0===r&&(r={});var n=new URLSearchParams(r).toString();return this.api("/storage/kv/namespaces/"+this.options.kvID+"/values/"+e+"?"+n,"PUT",{body:t}).then(function(e){return e.json()})},n.delete=function(e,t){void 0===t&&(t={});var r=new URLSearchParams(t).toString();return this.api("/storage/kv/namespaces/"+this.options.kvID+"/values/"+e+"?"+r,"DELETE").then(function(e){return e.json()})},n.bulkput=function(e,t){void 0===t&&(t={});try{var r=new URLSearchParams(t).toString();return Promise.resolve(this.api("/storage/kv/namespaces/"+this.options.kvID+"/bulk?"+r,"PUT",{body:JSON.stringify(e),headers:{"Content-Type":"application/json"}}).then(function(e){return e.json()})).then(function(){})}catch(e){return Promise.reject(e)}},n.bulkdelete=function(e,t){void 0===t&&(t={});try{var r=new URLSearchParams(t).toString();return Promise.resolve(this.api("/storage/kv/namespaces/"+this.options.kvID+"/bulk?"+r,"DELETE",{body:JSON.stringify(e),headers:{"Content-Type":"application/json"}}).then(function(e){return e.json()})).then(function(){})}catch(e){return Promise.reject(e)}},n.api=function(e,t,r){void 0===t&&(t="GET"),void 0===r&&(r={});var n=r.headers,i=void 0===n?{}:n,s=r.body,o=p(r,D);return fetch("https://api.cloudflare.com/client/v4/accounts/"+this.options.accountID+e,h({headers:h({Authorization:"Bearer "+this.options.accountToken},i)},o,{method:t,body:s})).then(function(e){if(200!==e.status)throw new Error("Error "+e.status);return e})},e}();exports.CrossDO=/*#__PURE__*/function(){function e(e){this.url=e,"object"==typeof e&&(this.get=e.get.bind(e),this.idFromName=e.idFromName.bind(e))}var t=e.prototype;return t.get=function(e){return{fetch:function(e){function t(t,r){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e,t){return fetch(this.url,t)})}},t.idFromName=function(e){return e},e}(),exports.CrossKV=q;
//# sourceMappingURL=cross-cf.cjs.map