edge.libx.js 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,7 +52,7 @@ try {
52
52
 
53
53
  const command = `printf "%s" "${value}" | ${setCommand} "${key}" ${env}`;
54
54
  console.log('Running command...');
55
- console.log(`DBG: ${command}`);
55
+ // console.log(`DBG: ${command}`);
56
56
 
57
57
  try {
58
58
  const result = execSync(command, { stdio: 'pipe' });
@@ -91,7 +91,6 @@ function cors(req, res, options) {
91
91
  if (exposed) {
92
92
  headers.set('Access-Control-Expose-Headers', exposed);
93
93
  }
94
- debugger;
95
94
  if (req.method === 'OPTIONS') {
96
95
  if (opts.methods) {
97
96
  const methods = Array.isArray(opts.methods)
@@ -1 +1 @@
1
- {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/modules/cors.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Multi purpose CORS lib.\n * Note: Based on the `cors` package in npm but using only\n * web APIs. Feel free to use it in your own projects.\n */\n\ntype StaticOrigin = boolean | string | RegExp | (boolean | string | RegExp)[]\n\ntype OriginFn = (\n origin: string | undefined,\n req: Request\n) => StaticOrigin | Promise<StaticOrigin>\n\ninterface CorsOptions {\n origin?: StaticOrigin | OriginFn\n methods?: string | string[]\n allowedHeaders?: string | string[]\n exposedHeaders?: string | string[]\n credentials?: boolean\n maxAge?: number\n preflightContinue?: boolean\n optionsSuccessStatus?: number\n}\n\nconst defaultOptions: CorsOptions = {\n origin: '*',\n methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',\n preflightContinue: false,\n optionsSuccessStatus: 204,\n}\n\nfunction isOriginAllowed(origin: string, allowed: StaticOrigin): boolean {\n return Array.isArray(allowed)\n ? allowed.some((o) => isOriginAllowed(origin, o))\n : typeof allowed === 'string'\n ? origin === allowed\n : allowed instanceof RegExp\n ? allowed.test(origin)\n : !!allowed\n}\n\nfunction getOriginHeaders(reqOrigin: string | undefined, origin: StaticOrigin) {\n const headers = new Headers()\n\n if (origin === '*') {\n // Allow any origin\n headers.set('Access-Control-Allow-Origin', '*')\n } else if (typeof origin === 'string') {\n // Fixed origin\n headers.set('Access-Control-Allow-Origin', origin)\n headers.append('Vary', 'Origin')\n } else {\n const allowed = isOriginAllowed(reqOrigin ?? '', origin)\n\n if (allowed && reqOrigin) {\n headers.set('Access-Control-Allow-Origin', reqOrigin)\n }\n headers.append('Vary', 'Origin')\n }\n\n return headers\n}\n\n// originHeadersFromReq\n\nasync function originHeadersFromReq(\n req: Request,\n origin: StaticOrigin | OriginFn\n) {\n const reqOrigin = req.headers.get('Origin') || undefined\n const value =\n typeof origin === 'function' ? await origin(reqOrigin, req) : origin\n\n if (!value) return\n return getOriginHeaders(reqOrigin, value)\n}\n\nfunction getAllowedHeaders(req: Request, allowed?: string | string[]) {\n const headers = new Headers()\n\n if (!allowed) {\n allowed = req.headers.get('Access-Control-Request-Headers')!\n headers.append('Vary', 'Access-Control-Request-Headers')\n } else if (Array.isArray(allowed)) {\n // If the allowed headers is an array, turn it into a string\n allowed = allowed.join(',')\n }\n if (allowed) {\n headers.set('Access-Control-Allow-Headers', allowed)\n }\n\n return headers\n}\n\nexport default async function cors(\n req: Request,\n res: Response,\n options?: CorsOptions\n) {\n const opts = { ...defaultOptions, ...options }\n const { headers } = res\n const originHeaders = await originHeadersFromReq(req, opts.origin ?? false)\n const mergeHeaders = (v: string, k: string) => {\n if (k === 'Vary') headers.append(k, v)\n else headers.set(k, v)\n }\n\n // If there's no origin we won't touch the response\n if (!originHeaders) return res\n\n originHeaders.forEach(mergeHeaders)\n\n if (opts.credentials) {\n headers.set('Access-Control-Allow-Credentials', 'true')\n }\n\n const exposed = Array.isArray(opts.exposedHeaders)\n ? opts.exposedHeaders.join(',')\n : opts.exposedHeaders\n\n if (exposed) {\n headers.set('Access-Control-Expose-Headers', exposed)\n }\n debugger\n // Handle the preflight request\n if (req.method === 'OPTIONS') {\n if (opts.methods) {\n const methods = Array.isArray(opts.methods)\n ? opts.methods.join(',')\n : opts.methods\n\n headers.set('Access-Control-Allow-Methods', methods)\n }\n\n getAllowedHeaders(req, opts.allowedHeaders).forEach(mergeHeaders)\n\n if (typeof opts.maxAge === 'number') {\n headers.set('Access-Control-Max-Age', String(opts.maxAge))\n }\n\n if (opts.preflightContinue) return res\n\n headers.set('Content-Length', '0')\n return new Response(null, { status: opts.optionsSuccessStatus, headers })\n }\n\n // If we got here, it's a normal request\n return res\n}\n\nexport function initCors(options?: CorsOptions) {\n return (req: Request, res: Response) => cors(req, res, options)\n}"]}
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/modules/cors.ts"],"names":[],"mappings":";;;;;;;;;;;AA8FA,uBAsDC;AAED,4BAEC;AAhID,MAAM,cAAc,GAAgB;IAClC,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,gCAAgC;IACzC,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,GAAG;CAC1B,CAAA;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAqB;IAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,KAAK,OAAO;YACpB,CAAC,CAAC,OAAO,YAAY,MAAM;gBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA6B,EAAE,MAAoB;IAC3E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAEnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;IACjD,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAEtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;QAClD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QAExD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAID,SAAe,oBAAoB,CACjC,GAAY,EACZ,MAA+B;;QAE/B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;QACxD,MAAM,KAAK,GACT,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAEtE,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,OAAO,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;CAAA;AAED,SAAS,iBAAiB,CAAC,GAAY,EAAE,OAA2B;IAClE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAE,CAAA;QAC5D,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;IAC1D,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAElC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAA8B,IAAI,CAChC,GAAY,EACZ,GAAa,EACb,OAAqB;;;QAErB,MAAM,IAAI,mCAAQ,cAAc,GAAK,OAAO,CAAE,CAAA;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;QACvB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,KAAK,CAAC,CAAA;QAC3E,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;;gBACjC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxB,CAAC,CAAA;QAGD,IAAI,CAAC,aAAa;YAAE,OAAO,GAAG,CAAA;QAE9B,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAA;QAEvB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAA;QACvD,CAAC;QAGD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;oBACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;gBAEhB,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAA;YACtD,CAAC;YAED,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YAEjE,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAC5D,CAAC;YAED,IAAI,IAAI,CAAC,iBAAiB;gBAAE,OAAO,GAAG,CAAA;YAEtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;YAClC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3E,CAAC;QAGD,OAAO,GAAG,CAAA;IACZ,CAAC;CAAA;AAED,SAAgB,QAAQ,CAAC,OAAqB;IAC5C,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC","sourcesContent":["/**\n * Multi purpose CORS lib.\n * Note: Based on the `cors` package in npm but using only\n * web APIs. Feel free to use it in your own projects.\n */\n\ntype StaticOrigin = boolean | string | RegExp | (boolean | string | RegExp)[]\n\ntype OriginFn = (\n origin: string | undefined,\n req: Request\n) => StaticOrigin | Promise<StaticOrigin>\n\ninterface CorsOptions {\n origin?: StaticOrigin | OriginFn\n methods?: string | string[]\n allowedHeaders?: string | string[]\n exposedHeaders?: string | string[]\n credentials?: boolean\n maxAge?: number\n preflightContinue?: boolean\n optionsSuccessStatus?: number\n}\n\nconst defaultOptions: CorsOptions = {\n origin: '*',\n methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',\n preflightContinue: false,\n optionsSuccessStatus: 204,\n}\n\nfunction isOriginAllowed(origin: string, allowed: StaticOrigin): boolean {\n return Array.isArray(allowed)\n ? allowed.some((o) => isOriginAllowed(origin, o))\n : typeof allowed === 'string'\n ? origin === allowed\n : allowed instanceof RegExp\n ? allowed.test(origin)\n : !!allowed\n}\n\nfunction getOriginHeaders(reqOrigin: string | undefined, origin: StaticOrigin) {\n const headers = new Headers()\n\n if (origin === '*') {\n // Allow any origin\n headers.set('Access-Control-Allow-Origin', '*')\n } else if (typeof origin === 'string') {\n // Fixed origin\n headers.set('Access-Control-Allow-Origin', origin)\n headers.append('Vary', 'Origin')\n } else {\n const allowed = isOriginAllowed(reqOrigin ?? '', origin)\n\n if (allowed && reqOrigin) {\n headers.set('Access-Control-Allow-Origin', reqOrigin)\n }\n headers.append('Vary', 'Origin')\n }\n\n return headers\n}\n\n// originHeadersFromReq\n\nasync function originHeadersFromReq(\n req: Request,\n origin: StaticOrigin | OriginFn\n) {\n const reqOrigin = req.headers.get('Origin') || undefined\n const value =\n typeof origin === 'function' ? await origin(reqOrigin, req) : origin\n\n if (!value) return\n return getOriginHeaders(reqOrigin, value)\n}\n\nfunction getAllowedHeaders(req: Request, allowed?: string | string[]) {\n const headers = new Headers()\n\n if (!allowed) {\n allowed = req.headers.get('Access-Control-Request-Headers')!\n headers.append('Vary', 'Access-Control-Request-Headers')\n } else if (Array.isArray(allowed)) {\n // If the allowed headers is an array, turn it into a string\n allowed = allowed.join(',')\n }\n if (allowed) {\n headers.set('Access-Control-Allow-Headers', allowed)\n }\n\n return headers\n}\n\nexport default async function cors(\n req: Request,\n res: Response,\n options?: CorsOptions\n) {\n const opts = { ...defaultOptions, ...options }\n const { headers } = res\n const originHeaders = await originHeadersFromReq(req, opts.origin ?? false)\n const mergeHeaders = (v: string, k: string) => {\n if (k === 'Vary') headers.append(k, v)\n else headers.set(k, v)\n }\n\n // If there's no origin we won't touch the response\n if (!originHeaders) return res\n\n originHeaders.forEach(mergeHeaders)\n\n if (opts.credentials) {\n headers.set('Access-Control-Allow-Credentials', 'true')\n }\n\n const exposed = Array.isArray(opts.exposedHeaders)\n ? opts.exposedHeaders.join(',')\n : opts.exposedHeaders\n\n if (exposed) {\n headers.set('Access-Control-Expose-Headers', exposed)\n }\n\n // Handle the preflight request\n if (req.method === 'OPTIONS') {\n if (opts.methods) {\n const methods = Array.isArray(opts.methods)\n ? opts.methods.join(',')\n : opts.methods\n\n headers.set('Access-Control-Allow-Methods', methods)\n }\n\n getAllowedHeaders(req, opts.allowedHeaders).forEach(mergeHeaders)\n\n if (typeof opts.maxAge === 'number') {\n headers.set('Access-Control-Max-Age', String(opts.maxAge))\n }\n\n if (opts.preflightContinue) return res\n\n headers.set('Content-Length', '0')\n return new Response(null, { status: opts.optionsSuccessStatus, headers })\n }\n\n // If we got here, it's a normal request\n return res\n}\n\nexport function initCors(options?: CorsOptions) {\n return (req: Request, res: Response) => cors(req, res, options)\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edge.libx.js",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "main": "build/main.js",
5
5
  "license": "MIT",
6
6
  "author": "Elya Livshitz",
@@ -121,7 +121,7 @@ export default async function cors(
121
121
  if (exposed) {
122
122
  headers.set('Access-Control-Expose-Headers', exposed)
123
123
  }
124
- debugger
124
+
125
125
  // Handle the preflight request
126
126
  if (req.method === 'OPTIONS') {
127
127
  if (opts.methods) {