{
  "version": 3,
  "sources": ["../src/index.ts"],
  "sourcesContent": ["export type GlobalThis = typeof globalThis;\nexport type ProcessArgv = NodeJS.Process['argv'];\nexport type ProcessEnv = NodeJS.ProcessEnv;\n\n\n/**\n * globalThis object - with pollyfil in case of prehistoric node <12\n * @see {@link https://tc39.es/ecma262/multipage/global-object.html#sec-globalthis|globalThis spec - ECMAScript }\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis|globalThis docs - MDN}\n */\nexport const GLOBAL_THIS = /* @__PURE__ */ (() =>\n  typeof globalThis === 'object'\n    ? globalThis\n    /**\n     * globalThis pollyfill\n     * @see {@link https://mathiasbynens.be/notes/globalthis}\n     * @see {@link https://github.com/ungap/global-this}\n     */\n    : (() => {\n      // @ts-expect-error - globalThis pollyfill for prehistoric node envs\n      // eslint-disable-next-line\n      !(function (Object) {function get() {const e = this || self; e.globalThis = e, delete Object.prototype._T_;}'object' != typeof globalThis && (this ? get() : (Object.defineProperty(Object.prototype, '_T_', {configurable:!0, get:get}), _T_));}(Object));\n      // just in case\n      return typeof globalThis === 'object' ? globalThis : {};\n    })()\n)() as GlobalThis;\n\n\n/**\n * command-line arguments (pure/iffe wrapped so we can shake the tree)\n * @see {@link https://nodejs.org/api/process.html#processargv|process.argv - Node.js}\n * @see {@link https://bellard.org/quickjs/quickjs.html#Global-objects|scriptArgs - QuickJS}\n * @see {@link https://quickjs-ng.github.io/quickjs/stdlib#scriptargs|scriptArgs - QuickJS-NG}\n * @see {@link https://docs.deno.com/api/node/process/~/Process#property_argv|process.argv - Deno}\n * @see {@link https://docs.deno.com/api/deno/~/Deno.CommandOptions#property_args|Deno.args - Deno}\n */\nexport const ARGV: NodeJS.Process['argv'] = /* @__PURE__ */ (() =>\n  typeof process === 'undefined'\n    /** quickJs {@link https://bellard.org/quickjs/quickjs.html#Global-objects} */\n    ? typeof scriptArgs !== 'undefined'\n      ? scriptArgs\n      : []\n    : ((GLOBAL_THIS as never)?.['Deno']\n      // @NOTE: DENO.args does not require any perm requests\n      // @NOTE: if --allow-all is used, no args (like --allow-env), use default\n      // @ts-expect-error deno uses 'args' rather than 'argv'\n      ? (GLOBAL_THIS as never)?.['Deno']?.args\n        // @ts-expect-error deno uses 'args' rather than 'argv'\n        ?? (process['args']?.length ? process['args'] : process['argv'])\n      : process['argv']\n    ) ?? []\n)();\nexport const ARGS = ARGV;\n\n/**\n * process environment (ENV) variables\n * @see {@link https://nodejs.org/api/process.html#processenv|process.env - Node.js}\n * @see {@link https://docs.deno.com/runtime/reference/env_variables/#built-in-deno.env|env - Deno}\n * @see {@link https://bellard.org/quickjs/quickjs.html#Global-objects|getenviron - QuickJS}\n * @see {@link https://quickjs-ng.github.io/quickjs/stdlib#getenviron|getenviron - QuickJS-NG}\n */\nexport const ENV = /* @__PURE__ */ (() => typeof process === 'undefined'\n  // @ts-expect-error quickjs std\n  ? typeof (GLOBAL_THIS as never)?.['std']?.getenviron === 'function'\n    // @ts-expect-error quickjs std -> only works via 'qjs --std  --module <file>'\n    // if 'qjs --std --compile <file>'; 'getenviron' is only accessible via: import * as std from 'qjs:std'\n    ? ((GLOBAL_THIS as never)['std'].getenviron?.() ?? {})\n    : {}\n  : (!(GLOBAL_THIS as never)?.['Deno']\n    ? process['env']\n    : (() => {\n      try {\n        // @NOTE: if --allow-all is used, no toObject (like --allow-env), use default\n        // @NOTE: DENO.env.toObject only requires one perm request while process requires many\n        // @ts-expect-error deno perms\n        // eslint-disable-next-line @stylistic/max-len\n        return (GLOBAL_THIS as never)?.['Deno']?.env?.toObject?.() ?? (process['env']?.toObject ? process['env']?.toObject() : process['env']);\n      } catch (_err) { /* ignore */ }\n      return {};\n    })())\n)() as ProcessEnv;\n\n\n/**\n * detects if running in the Bun runtime\n * @see {@link https://bun.sh/docs/api/globals|Bun globals}\n */\nexport const IS_BUN: boolean = /* @__PURE__ */ (() =>\n  !!(GLOBAL_THIS as never)?.['Bun']\n)();\n\n\n/**\n * detects if running in the Deno runtime\n * @see {@link https://docs.deno.com/api/deno/~/Deno|Deno}\n */\nexport const IS_DENO: boolean = /* @__PURE__ */ (() =>\n  !!(GLOBAL_THIS as never)?.['Deno']\n)();\n\n\n/**\n * detects if running in the QuickJs runtime\n * @see {@link https://quickjs-ng.github.io/quickjs/stdlib/#globals}\n */\nexport const IS_QUICKJS: boolean = /* @__PURE__ */ (() =>\n  typeof scriptArgs !== 'undefined'\n)();\n\n\n/**\n * detects if running in Node.js\n * @see {@link https://nodejs.org/api/process.html#processversions|process.versions docs}\n */\nexport const IS_NODE: boolean = /* @__PURE__ */ (() =>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  !IS_BUN && !IS_DENO && !!(GLOBAL_THIS as any)?.['process']?.versions?.node\n)();\n\n\n/**\n * detects if running inside Cloudflare Workers\n * - Workers expose 'WebSocketPair' and lack 'navigator'\n * @see {@link https://developers.cloudflare.com/workers/runtime-apis/websockets}\n */\nexport const IS_CLOUDFLARE_WORKER: boolean = /* @__PURE__ */ (() =>\n  typeof (GLOBAL_THIS as never)?.['WebSocketPair'] === 'function'\n  && typeof (GLOBAL_THIS as never)?.['navigator'] === 'undefined'\n)();\n\n\n/**\n * detects if running inside Vercel Edge\n * @see {@link https://vercel.com/docs/functions/runtimes/edge#check-if-you're-running-on-the-edge-runtime}\n */\nexport const IS_VERCEL_EDGE: boolean = /* @__PURE__ */ (() =>\n  !!(GLOBAL_THIS as never)?.['EdgeRuntime']\n)();\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,IAAM,cAA+B,uBAC1C,OAAO,eAAe,WAClB,cAMC,MAAM;AAGP,IAAE,SAAUA,SAAQ;AAAC,aAAS,MAAM;AAAC,YAAM,IAAI,QAAQ;AAAM,QAAE,aAAa,GAAG,OAAOA,QAAO,UAAU;AAAA,IAAI;AAAC,gBAAY,OAAO,eAAe,OAAO,IAAI,KAAKA,QAAO,eAAeA,QAAO,WAAW,OAAO,EAAC,cAAa,MAAI,IAAO,CAAC,GAAG;AAAA,EAAM,GAAE,MAAM;AAExP,SAAO,OAAO,eAAe,WAAW,aAAa,CAAC;AACxD,GAAG,GACL;AAWK,IAAM,OAAgD,uBAAG;AApChE;AAqCE,gBAAO,YAAY,cAEf,OAAO,eAAe,cACpB,aACA,CAAC,KACD,iDAAwB,YAIvB,sDAAwB,YAAxB,mBAAiC,SAAjC,cAEG,aAAQ,MAAM,MAAd,mBAAiB,UAAS,QAAQ,MAAM,IAAI,QAAQ,MAAM,IAC9D,QAAQ,MAAM,MAPd,YAQC,CAAC;AAAA,GACR;AACK,IAAM,OAAO;AASb,IAAM,MAAuB,uBAAG;AA7DvC;AA6D0C,gBAAO,YAAY,cAEzD,SAAQ,gDAAwB,WAAxB,mBAAgC,gBAAe,cAGnD,6BAAsB,KAAK,GAAE,eAA7B,4CAA+C,CAAC,IAClD,CAAC,IACF,EAAE,2CAAwB,WACzB,QAAQ,KAAK,KACZ,MAAM;AAtEb,QAAAC,KAAAC,KAAAC,KAAAC,KAAA;AAuEM,QAAI;AAKF,cAAQ,MAAAD,OAAAD,OAAAD,MAAA,2CAAwB,YAAxB,gBAAAA,IAAiC,QAAjC,gBAAAC,IAAsC,aAAtC,gBAAAC,IAAA,KAAAD,SAAA,cAAuDE,MAAA,QAAQ,KAAK,MAAb,gBAAAA,IAAgB,aAAW,aAAQ,KAAK,MAAb,mBAAgB,aAAa,QAAQ,KAAK;AAAA,IACtI,SAAS,MAAM;AAAA,IAAe;AAC9B,WAAO,CAAC;AAAA,EACV,GAAG;AAAA,GACL;AAOK,IAAM,SAAmC,uBAC9C,CAAC,EAAE,2CAAwB,SAC3B;AAOK,IAAM,UAAoC,uBAC/C,CAAC,EAAE,2CAAwB,UAC3B;AAOK,IAAM,aAAuC,uBAClD,OAAO,eAAe,aACtB;AAOK,IAAM,UAAoC,uBAAG;AAlHpD;AAoHE;AAAA;AAAA,KAAC,UAAU,CAAC,WAAW,CAAC,GAAE,sDAAsB,eAAtB,mBAAkC,aAAlC,mBAA4C;AAAA;AAAA,GACtE;AAQK,IAAM,uBAAiD,uBAC5D,QAAQ,2CAAwB,sBAAqB,cAClD,QAAQ,2CAAwB,kBAAiB,aACpD;AAOK,IAAM,iBAA2C,uBACtD,CAAC,EAAE,2CAAwB,iBAC3B;",
  "names": ["Object", "_a", "_b", "_c", "_d"]
}
