edge.libx.js 0.2.1 → 0.2.3

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.
@@ -15,9 +15,10 @@ function getExpress() {
15
15
  req.rawBody = buf.toString(encoding || 'utf8');
16
16
  }
17
17
  };
18
- app.use(body_parser_1.default.json({ verify: rawBodySaver }));
19
- app.use(body_parser_1.default.urlencoded({ verify: rawBodySaver, extended: true }));
20
- app.use(body_parser_1.default.raw({ verify: rawBodySaver, type: '*/*' }));
18
+ const payloadLimit = '25mb';
19
+ app.use(body_parser_1.default.json({ verify: rawBodySaver, limit: payloadLimit }));
20
+ app.use(body_parser_1.default.urlencoded({ verify: rawBodySaver, extended: true, limit: payloadLimit }));
21
+ app.use(body_parser_1.default.raw({ verify: rawBodySaver, type: '*/*', limit: payloadLimit }));
21
22
  app.use((0, cors_1.default)());
22
23
  const router = express_1.default.Router();
23
24
  return { app, router };
@@ -1 +1 @@
1
- {"version":3,"file":"getExpress.js","sourceRoot":"","sources":["../../src/helpers/getExpress.ts"],"names":[],"mappings":";;;;;AAIA,gCAoBC;AAxBD,8DAAqC;AACrC,sDAA8D;AAC9D,gDAAwB;AAExB,SAAgB,UAAU;IACzB,IAAI,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAE7B,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE1B,IAAI,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;QACnD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QAChD,CAAC;IACF,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE/D,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC","sourcesContent":["import bodyParser from 'body-parser';\nimport express, { Express, Request, Response } from \"express\";\nimport cors from 'cors';\n\nexport function getExpress() {\n\tlet app: Express = express();\n\n\tapp.set('json spaces', 4);\n\n\tvar rawBodySaver = function (req, res, buf, encoding) {\n\t\tif (buf && buf.length) {\n\t\t\treq.rawBody = buf.toString(encoding || 'utf8');\n\t\t}\n\t};\n\n\tapp.use(bodyParser.json({ verify: rawBodySaver }));\n\tapp.use(bodyParser.urlencoded({ verify: rawBodySaver, extended: true }));\n\tapp.use(bodyParser.raw({ verify: rawBodySaver, type: '*/*' }));\n\n\tapp.use(cors());\n\n\tconst router = express.Router();\n\n\treturn { app, router };\n}\n"]}
1
+ {"version":3,"file":"getExpress.js","sourceRoot":"","sources":["../../src/helpers/getExpress.ts"],"names":[],"mappings":";;;;;AAIA,gCAuBC;AA3BD,8DAAqC;AACrC,sDAA8D;AAC9D,gDAAwB;AAExB,SAAgB,UAAU;IACtB,IAAI,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAE7B,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE1B,IAAI,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ;QAChD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC;IAGF,MAAM,YAAY,GAAG,MAAM,CAAC;IAE5B,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACxE,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9F,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEpF,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC","sourcesContent":["import bodyParser from 'body-parser';\nimport express, { Express, Request, Response } from \"express\";\nimport cors from 'cors';\n\nexport function getExpress() {\n let app: Express = express();\n\n app.set('json spaces', 4);\n\n var rawBodySaver = function (req, res, buf, encoding) {\n if (buf && buf.length) {\n req.rawBody = buf.toString(encoding || 'utf8');\n }\n };\n\n // Increase payload limits for audio uploads (STT) - up to 25MB to match OpenAI's limit\n const payloadLimit = '25mb';\n\n app.use(bodyParser.json({ verify: rawBodySaver, limit: payloadLimit }));\n app.use(bodyParser.urlencoded({ verify: rawBodySaver, extended: true, limit: payloadLimit }));\n app.use(bodyParser.raw({ verify: rawBodySaver, type: '*/*', limit: payloadLimit }));\n\n app.use(cors());\n\n const router = express.Router();\n\n return { app, router };\n}\n"]}
@@ -8,16 +8,16 @@ const server_1 = require("@whatwg-node/server");
8
8
  require("isomorphic-fetch");
9
9
  const getExpress_1 = require("./getExpress");
10
10
  const fs_1 = __importDefault(require("fs"));
11
- const log_1 = require("libx.js/build/modules/log");
12
- const node_essentials_1 = require("libx.js/build/bundles/node.essentials");
11
+ const log_js_1 = require("libx.js/build/modules/log.js");
12
+ const node_essentials_js_1 = require("libx.js/build/bundles/node.essentials.js");
13
13
  const path_1 = __importDefault(require("path"));
14
14
  const https_1 = require("https");
15
15
  const selfsigned_1 = __importDefault(require("selfsigned"));
16
- node_essentials_1.libx.node.loadEnv({ path: `.env.${process.env.NODE_ENV}` });
17
- log_1.log.isDebug = true;
18
- log_1.log.filterLevel = log_1.LogLevel.All;
16
+ node_essentials_js_1.libx.node.loadEnv({ path: `.env.${process.env.NODE_ENV}` });
17
+ log_js_1.log.isDebug = true;
18
+ log_js_1.log.filterLevel = log_js_1.LogLevel.All;
19
19
  const envFile = '.env';
20
- const entryPoints = node_essentials_1.libx.node.args._;
20
+ const entryPoints = node_essentials_js_1.libx.node.args._;
21
21
  const { app } = (0, getExpress_1.getExpress)();
22
22
  function getEnvVars() {
23
23
  var _a;
@@ -34,7 +34,7 @@ function getEnvVars() {
34
34
  }
35
35
  return ret;
36
36
  }
37
- node_essentials_1.libx.node.catchErrors((err) => {
37
+ node_essentials_js_1.libx.node.catchErrors((err) => {
38
38
  console.error('!!!!!! ERROR: ', err);
39
39
  }, false);
40
40
  if (true || ['debug', 'debug:watch', 'api:debug', ''].indexOf(process.env.npm_lifecycle_event) !== -1) {
@@ -47,9 +47,9 @@ if (true || ['debug', 'debug:watch', 'api:debug', ''].indexOf(process.env.npm_li
47
47
  const port = process.env.PORT || 8080;
48
48
  try {
49
49
  let server = app;
50
- const isHttps = (_c = (_b = process.env.useHttps) !== null && _b !== void 0 ? _b : (node_essentials_1.libx.node.args.https != null)) !== null && _c !== void 0 ? _c : false;
50
+ const isHttps = (_c = (_b = process.env.useHttps) !== null && _b !== void 0 ? _b : (node_essentials_js_1.libx.node.args.https != null)) !== null && _c !== void 0 ? _c : false;
51
51
  if (isHttps) {
52
- node_essentials_1.libx.log.v('localServer: using https');
52
+ node_essentials_js_1.libx.log.v('localServer: using https');
53
53
  const attrs = [{ name: 'commonName', value: 'localhost' }];
54
54
  const pems = selfsigned_1.default.generate(attrs, { days: 365 });
55
55
  server = (0, https_1.createServer)({
@@ -1 +1 @@
1
- {"version":3,"file":"localServer.js","sourceRoot":"","sources":["../../src/helpers/localServer.ts"],"names":[],"mappings":"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","sourcesContent":["// $ npm_lifecycle_event=debug tsx --inspect ./src/helpers/localServer.ts --https\nimport { createServerAdapter } from '@whatwg-node/server';\nimport 'isomorphic-fetch';\nimport { IRequest, Router, error, json } from 'itty-router';\nimport express, { Express, Request, Response } from \"express\";\nimport { getExpress } from './getExpress';\n// import { router, server } from '../v5';\nimport fs from 'fs';\nimport { log, LogLevel } from 'libx.js/build/modules/log';\nimport { libx } from 'libx.js/build/bundles/node.essentials';\nimport path from 'path';\nimport https, { createServer } from 'https';\nimport selfsigned from 'selfsigned';\n\ndeclare const process: NodeJS.Process;\n\nlibx.node.loadEnv({ path: `.env.${process.env.NODE_ENV}` });\n\nlog.isDebug = true;\nlog.filterLevel = LogLevel.All;\n\nconst envFile = '.env'; //'.dev.vars'\nconst entryPoints = libx.node.args._;\n\nconst { app } = getExpress();\n\n// node-wrangler bridge:\n// global.crypto = require('crypto');\n// global.TransformStream = require('web-streams-polyfill').TransformStream;\n\nfunction getEnvVars() {\n\tconst envFilePath = path.join(process.cwd(), envFile);\n\tif (!fs.existsSync(envFilePath)) return null;\n\tconst content = fs.readFileSync(envFilePath)?.toString();\n\tconst ret = {};\n\tfor (let line of content.split('\\n')) {\n\t\tconst parts = line.split('=');\n\t\tif (parts[0].trim().startsWith('#') || parts[1] == null) continue;\n\t\tret[parts[0].trim()] = parts[1].replace(/\\s*[\\\"\\'](.+)[\\\"\\']\\s*/gi, '$1');\n\t}\n\treturn ret;\n}\n\nlibx.node.catchErrors((err) => {\n\tconsole.error('!!!!!! ERROR: ', err);\n}, false);\n\n\n// only lunch manual local server if using 'dev' command\nif (true || ['debug', 'debug:watch', 'api:debug', ''].indexOf(process.env.npm_lifecycle_event) !== -1) {\n\tconst env = getEnvVars() ?? { a: 1 };\n\n\tfor (let entryPoint of entryPoints) {\n\t\tconst dir = process.cwd(); // process.argv[1]\n\t\tconst { handler, prefix } = require(`${dir}/${entryPoint}`);\n\t\tapp.use(\n\t\t\tprefix ?? '/api',\n\t\t\tcreateServerAdapter((request, ctx) =>\n\t\t\t\thandler(<IRequest>request, env, ctx))\n\t\t);\n\t}\n\n\t// app.use(\n\t// \t'/v5-n',\n\t// \tcreateServerAdapter((request, env) =>\n\t// \t\thandler_node(<IRequest>request, env))\n\t// \t\t// handlerRedirect(<IRequest>request, env))\n\t// );\n\n\tconst port = process.env.PORT || 8080;\n\ttry {\n\t\tlet server: https.Server | Express = app;\n\n\t\tconst isHttps = process.env.useHttps ?? (libx.node.args.https != null) ?? false;\n\t\tif (isHttps) {\n\t\t\tlibx.log.v('localServer: using https');\n\t\t\tconst attrs = [{ name: 'commonName', value: 'localhost' }];\n\t\t\tconst pems = selfsigned.generate(attrs, { days: 365 });\n\n\t\t\tserver = createServer({\n\t\t\t\tkey: pems.private,\n\t\t\t\tcert: pems.cert,\n\t\t\t}, app);\n\t\t}\n\n\t\tserver.listen(port, () => {\n\t\t\tconsole.log(`Server listening on http${isHttps ? 's' : ''}://0.0.0.0:${port}`);\n\t\t});\n\t} catch (err) {\n\t\tconsole.error(`LOCAL: Failed to start local server on port: ${port}`, err);\n\t}\n}\n\n// export default server; //routes.fetch;"]}
1
+ {"version":3,"file":"localServer.js","sourceRoot":"","sources":["../../src/helpers/localServer.ts"],"names":[],"mappings":"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","sourcesContent":["// $ npm_lifecycle_event=debug tsx --inspect ./src/helpers/localServer.ts --https\nimport { createServerAdapter } from '@whatwg-node/server';\nimport 'isomorphic-fetch';\nimport { IRequest, Router, error, json } from 'itty-router';\nimport express, { Express, Request, Response } from \"express\";\nimport { getExpress } from './getExpress';\n// import { router, server } from '../v5';\nimport fs from 'fs';\nimport { log, LogLevel } from 'libx.js/build/modules/log.js';\nimport { libx } from 'libx.js/build/bundles/node.essentials.js';\nimport path from 'path';\nimport https, { createServer } from 'https';\nimport selfsigned from 'selfsigned';\n\ndeclare const process: NodeJS.Process;\n\nlibx.node.loadEnv({ path: `.env.${process.env.NODE_ENV}` });\n\nlog.isDebug = true;\nlog.filterLevel = LogLevel.All;\n\nconst envFile = '.env'; //'.dev.vars'\nconst entryPoints = libx.node.args._;\n\nconst { app } = getExpress();\n\n// node-wrangler bridge:\n// global.crypto = require('crypto');\n// global.TransformStream = require('web-streams-polyfill').TransformStream;\n\nfunction getEnvVars() {\n\tconst envFilePath = path.join(process.cwd(), envFile);\n\tif (!fs.existsSync(envFilePath)) return null;\n\tconst content = fs.readFileSync(envFilePath)?.toString();\n\tconst ret = {};\n\tfor (let line of content.split('\\n')) {\n\t\tconst parts = line.split('=');\n\t\tif (parts[0].trim().startsWith('#') || parts[1] == null) continue;\n\t\tret[parts[0].trim()] = parts[1].replace(/\\s*[\\\"\\'](.+)[\\\"\\']\\s*/gi, '$1');\n\t}\n\treturn ret;\n}\n\nlibx.node.catchErrors((err) => {\n\tconsole.error('!!!!!! ERROR: ', err);\n}, false);\n\n\n// only lunch manual local server if using 'dev' command\nif (true || ['debug', 'debug:watch', 'api:debug', ''].indexOf(process.env.npm_lifecycle_event) !== -1) {\n\tconst env = getEnvVars() ?? { a: 1 };\n\n\tfor (let entryPoint of entryPoints) {\n\t\tconst dir = process.cwd(); // process.argv[1]\n\t\tconst { handler, prefix } = require(`${dir}/${entryPoint}`);\n\t\tapp.use(\n\t\t\tprefix ?? '/api',\n\t\t\tcreateServerAdapter((request, ctx) =>\n\t\t\t\thandler(<IRequest>request, env, ctx))\n\t\t);\n\t}\n\n\t// app.use(\n\t// \t'/v5-n',\n\t// \tcreateServerAdapter((request, env) =>\n\t// \t\thandler_node(<IRequest>request, env))\n\t// \t\t// handlerRedirect(<IRequest>request, env))\n\t// );\n\n\tconst port = process.env.PORT || 8080;\n\ttry {\n\t\tlet server: https.Server | Express = app;\n\n\t\tconst isHttps = process.env.useHttps ?? (libx.node.args.https != null) ?? false;\n\t\tif (isHttps) {\n\t\t\tlibx.log.v('localServer: using https');\n\t\t\tconst attrs = [{ name: 'commonName', value: 'localhost' }];\n\t\t\tconst pems = selfsigned.generate(attrs, { days: 365 });\n\n\t\t\tserver = createServer({\n\t\t\t\tkey: pems.private,\n\t\t\t\tcert: pems.cert,\n\t\t\t}, app);\n\t\t}\n\n\t\tserver.listen(port, () => {\n\t\t\tconsole.log(`Server listening on http${isHttps ? 's' : ''}://0.0.0.0:${port}`);\n\t\t});\n\t} catch (err) {\n\t\tconsole.error(`LOCAL: Failed to start local server on port: ${port}`, err);\n\t}\n}\n\n// export default server; //routes.fetch;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edge.libx.js",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "main": "build/main.js",
5
5
  "license": "MIT",
6
6
  "author": "Elya Livshitz",
@@ -34,7 +34,7 @@
34
34
  "isomorphic-fetch": "^3.0.0",
35
35
  "itty-router": "^5.0.18",
36
36
  "js-base64": "^3.7.7",
37
- "libx.js": "^5.1.0",
37
+ "libx.js": "^5.1.1",
38
38
  "selfsigned": "^2.4.1",
39
39
  "ua-parser-js": "^1.0.39"
40
40
  },
@@ -3,23 +3,26 @@ import express, { Express, Request, Response } from "express";
3
3
  import cors from 'cors';
4
4
 
5
5
  export function getExpress() {
6
- let app: Express = express();
6
+ let app: Express = express();
7
7
 
8
- app.set('json spaces', 4);
8
+ app.set('json spaces', 4);
9
9
 
10
- var rawBodySaver = function (req, res, buf, encoding) {
11
- if (buf && buf.length) {
12
- req.rawBody = buf.toString(encoding || 'utf8');
13
- }
14
- };
10
+ var rawBodySaver = function (req, res, buf, encoding) {
11
+ if (buf && buf.length) {
12
+ req.rawBody = buf.toString(encoding || 'utf8');
13
+ }
14
+ };
15
15
 
16
- app.use(bodyParser.json({ verify: rawBodySaver }));
17
- app.use(bodyParser.urlencoded({ verify: rawBodySaver, extended: true }));
18
- app.use(bodyParser.raw({ verify: rawBodySaver, type: '*/*' }));
16
+ // Increase payload limits for audio uploads (STT) - up to 25MB to match OpenAI's limit
17
+ const payloadLimit = '25mb';
19
18
 
20
- app.use(cors());
19
+ app.use(bodyParser.json({ verify: rawBodySaver, limit: payloadLimit }));
20
+ app.use(bodyParser.urlencoded({ verify: rawBodySaver, extended: true, limit: payloadLimit }));
21
+ app.use(bodyParser.raw({ verify: rawBodySaver, type: '*/*', limit: payloadLimit }));
21
22
 
22
- const router = express.Router();
23
+ app.use(cors());
23
24
 
24
- return { app, router };
25
+ const router = express.Router();
26
+
27
+ return { app, router };
25
28
  }
@@ -6,8 +6,8 @@ import express, { Express, Request, Response } from "express";
6
6
  import { getExpress } from './getExpress';
7
7
  // import { router, server } from '../v5';
8
8
  import fs from 'fs';
9
- import { log, LogLevel } from 'libx.js/build/modules/log';
10
- import { libx } from 'libx.js/build/bundles/node.essentials';
9
+ import { log, LogLevel } from 'libx.js/build/modules/log.js';
10
+ import { libx } from 'libx.js/build/bundles/node.essentials.js';
11
11
  import path from 'path';
12
12
  import https, { createServer } from 'https';
13
13
  import selfsigned from 'selfsigned';