edge.libx.js 0.0.5 → 0.0.7
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.
- package/bin/set-secrets.ts +17 -16
- package/build/modules/RouterWrapper.js +0 -1
- package/build/modules/RouterWrapper.js.map +1 -1
- package/build/modules/cors.js +0 -1
- package/build/modules/cors.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/RouterWrapper.ts +7 -7
- package/src/modules/cors.ts +1 -1
package/bin/set-secrets.ts
CHANGED
|
@@ -16,23 +16,24 @@ try {
|
|
|
16
16
|
const lines = fileContents.split('\n');
|
|
17
17
|
|
|
18
18
|
for (const line of lines) {
|
|
19
|
-
if (!line.trim() || line.startsWith('#')) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
if (!line.trim() || line.trim().startsWith('#')) {
|
|
20
|
+
const glimpse = line.substring(0, 10);
|
|
21
|
+
console.log(`Skipping comment or empty line: ${glimpse}...`);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
const firstEqualIndex = line.indexOf('=');
|
|
26
|
+
if (firstEqualIndex === -1) {
|
|
27
|
+
console.log(`Skipping invalid line: ${line}`);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const key = line.substring(0, firstEqualIndex).trim();
|
|
32
|
+
const rawValue = line.substring(firstEqualIndex + 1).trim();
|
|
33
|
+
// Escape double quotes in the value
|
|
34
|
+
let value = rawValue.replace(/"/g, '\\"');
|
|
35
|
+
value = rawValue.replace(/"/g, '\\"');
|
|
36
|
+
value = rawValue.replace(/\s*#.*/g, '');
|
|
36
37
|
|
|
37
38
|
console.log(`Processing key: ${key}`);
|
|
38
39
|
|
|
@@ -52,7 +53,7 @@ try {
|
|
|
52
53
|
|
|
53
54
|
const command = `printf "%s" "${value}" | ${setCommand} "${key}" ${env}`;
|
|
54
55
|
console.log('Running command...');
|
|
55
|
-
console.log(`DBG: ${command}`);
|
|
56
|
+
// console.log(`DBG: ${command}`);
|
|
56
57
|
|
|
57
58
|
try {
|
|
58
59
|
const result = execSync(command, { stdio: 'pipe' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterWrapper.js","sourceRoot":"","sources":["../../src/modules/RouterWrapper.ts"],"names":[],"mappings":";;;;AAAA,uEAA2D;AAC3D,6CAAwH;AACxH,gDAA0D;AAI1D,MAAa,aAAa;IAKzB,YAA0B,IAAY,EAAS,MAAoC;QAAzD,SAAI,GAAJ,IAAI,CAAQ;QAAS,WAAM,GAAN,MAAM,CAA8B;IAEnF,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO;QACvC,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RouterWrapper.js","sourceRoot":"","sources":["../../src/modules/RouterWrapper.ts"],"names":[],"mappings":";;;;AAAA,uEAA2D;AAC3D,6CAAwH;AACxH,gDAA0D;AAI1D,MAAa,aAAa;IAKzB,YAA0B,IAAY,EAAS,MAAoC;QAAzD,SAAI,GAAJ,IAAI,CAAQ;QAAS,WAAM,GAAN,MAAM,CAA8B;IAEnF,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO;QACvC,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACL,oBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;IACR,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,IAAA,oBAAM,EAAC;YACZ,IAAI;YACJ,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,YAAY;SAE3B,CAAC,CAAC;QACT,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAU,CAAC,CAAC;QAK5B,OAAO,IAAI,EAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAGM,MAAM,CAAC,YAAY,CAAC,KAAK;;QAC/B,MAAM,QAAQ,GAAG,oBAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,KAAK,CAAC;QAC3C,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,mCAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QACxG,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,aAAa,CAAC,OAAe,EAAE,qBAA4C;QACjF,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAAA,CAAC;IAEK,YAAY,CAAC,OAAiB,EAAE,GAAS;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAI,CAAC,CAAC,KAAK,CAAC,EAAa,CAAC,YAAY,CAAC,CAAC;IACrF,CAAC;IAEM,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAK,EAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAEM,mBAAmB;QACzB,MAAM,UAAU,GAAG,IAAA,4BAAmB,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC;IACnB,CAAC;;AA5DF,sCA6DC;;AA5De,kBAAI,GAAG,IAAA,kBAAI,EAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,AAAlD,CAAmD;AACvD,uBAAS,GAAG,EAAI,CAAC,IAAI,CAAC,SAAS,AAAtB,CAAuB;AAChC,qBAAO,GAAG,EAAI,CAAC,IAAI,CAAC,OAAO,AAApB,CAAqB","sourcesContent":["import { libx } from 'libx.js/build/bundles/essentials.js';\nimport { Route, Router, RouterType, error, json, cors, withParams, IRequest, text, ResponseHandler } from 'itty-router';\nimport { createServerAdapter } from '@whatwg-node/server';\n\ntype BaseRouterInitializer = (string) => { base: string; router: RouterType<IRequest, any[]> };\n\nexport class RouterWrapper<TCtx = any> {\n\tprivate static cors = cors({ origin: ['*'], allowMethods: ['POST'] });\n\tprivate static preflight = this.cors.preflight;\n\tprivate static corsify = this.cors.corsify;\n\n\tpublic constructor(public base: string, public router: RouterType<Request, [], any>) {\n\n\t}\n\n\tprivate static tryCors(response, request): Response {\n\t\ttry {\n\t\t\treturn this.corsify(response, request);\n\t\t} catch (err) {\n libx.log.w('tryCors: failed to perform CORS', err);\n }\n\t}\n\n\tpublic static getNew(base: string) {\n\t\tconst router = Router({\n base,\n before: [this.preflight],\n catch: this.errorHandler,\n // finally: [this.tryCors],\n });\n\t\trouter.all('*', withParams);\n\t\t// router.finally.push(this.corsify);\n\n\t\t// router.all('*', () => error(404));\n\n\t\treturn new RouterWrapper(base, router);\n\t}\n\n\n\tpublic static errorHandler(error) {\n\t\tconst isObject = libx.isObject(error);\n\t\tconst errMessage = error?.message ?? error;\n\t\tconst msg = 'Error: ' + (!isObject ? (errMessage ?? 'Server Error') : JSON.stringify(error));\n\t\tconst status = parseInt(error?.status ?? error?.statusCode ?? error?.code ?? error?.error?.code) || 500;\n\t\tconsole.error('Server error: ', error, status);\n\t\treturn new Response(msg, { status })\n\t}\n\n\tpublic registerRoute(newBase: string, baseRouterInitializer: BaseRouterInitializer) {\n\t\tconst route = baseRouterInitializer(`${this.base}${newBase}`);\n\t\tthis.router.all(newBase + '/*', route.router.fetch);\n\t\treturn this.router;\n\t};\n\n\tpublic fetchHandler(request: IRequest, ctx: TCtx) {\n\t\t// return this.router.fetch(request, ctx).then(json).then(RouterWrapper.corsify).catch(this.errorHandler);\n\t\treturn this.router.fetch(request, ctx).then(json).catch(RouterWrapper.errorHandler);\n\t}\n\n\tpublic catchNotFound() {\n\t\tthis.router.all('*', () => error(404));\n\t}\n\n\tpublic createServerAdapter() {\n\t\tconst ittyServer = createServerAdapter(this.fetchHandler.bind(this));\n\t\treturn ittyServer;\n\t}\n}"]}
|
package/build/modules/cors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/modules/cors.ts"],"names":[],"mappings":"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
|
|
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\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
|
@@ -17,17 +17,17 @@ export class RouterWrapper<TCtx = any> {
|
|
|
17
17
|
try {
|
|
18
18
|
return this.corsify(response, request);
|
|
19
19
|
} catch (err) {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
libx.log.w('tryCors: failed to perform CORS', err);
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
public static getNew(base: string) {
|
|
25
25
|
const router = Router({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
base,
|
|
27
|
+
before: [this.preflight],
|
|
28
|
+
catch: this.errorHandler,
|
|
29
|
+
// finally: [this.tryCors],
|
|
30
|
+
});
|
|
31
31
|
router.all('*', withParams);
|
|
32
32
|
// router.finally.push(this.corsify);
|
|
33
33
|
|
package/src/modules/cors.ts
CHANGED