@voxgig/build 3.1.0 → 4.0.0

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.
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /* Copyright © 2022-2026 Voxgig Ltd, MIT License. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.srv_handler = void 0;
5
+ // Lambda handler template: one handler source file per lambda service,
6
+ // bootstrapping Seneca via the env folder and delegating to gateway-lambda.
7
+ const util_1 = require("@voxgig/util");
8
+ const msg_1 = require("../../shape/msg");
9
+ const generate_1 = require("./generate");
10
+ // Only create if does not exist
11
+ const srv_handler = async (model, spec) => {
12
+ let lang = spec.lang || 'js';
13
+ let TS = 'ts' === lang;
14
+ const files = [];
15
+ Object
16
+ .entries(model.main.srv)
17
+ .filter((entry) => { var _a; return (_a = entry[1].env) === null || _a === void 0 ? void 0 : _a.lambda; })
18
+ .forEach((entry) => {
19
+ var _a;
20
+ const name = entry[0];
21
+ const srv = entry[1];
22
+ if ('custom' === srv.env.lambda.kind) {
23
+ return;
24
+ }
25
+ let start = spec.start || 'setup';
26
+ let envFolder = ((_a = spec.env) === null || _a === void 0 ? void 0 : _a.folder) || '../../../env/lambda';
27
+ let handler = 'handler';
28
+ let modify = '';
29
+ // if (!srv.api.web.active) {
30
+ // if (srv.on && 0 < Object.keys(srv.on).length) {
31
+ // handler = 'eventhandler'
32
+ // modify = `
33
+ // event = {
34
+ // ...event,
35
+ // // TODO: @voxgig/system? util needed to handle this dynamically
36
+ // seneca$: { msg: '${srv.on[Object.keys(srv.on)[0]].events[0].msg}' },
37
+ // }
38
+ // `
39
+ // }
40
+ // }
41
+ let prepare = '';
42
+ let complete = '';
43
+ (0, util_1.dive)(model.main.msg.aim[name], 128).map((entry) => {
44
+ var _a, _b;
45
+ let path = ['aim', name, ...entry[0]];
46
+ let msgMeta = (0, msg_1.MsgMetaShape)(entry[1]);
47
+ let pin = (0, util_1.pinify)(path);
48
+ if ((_b = (_a = msgMeta.transport) === null || _a === void 0 ? void 0 : _a.queue) === null || _b === void 0 ? void 0 : _b.active) {
49
+ complete += `
50
+ seneca.listen({type:'sqs',pin:'${pin}'})`;
51
+ }
52
+ });
53
+ (0, util_1.dive)(model.main.srv[name].out, 128).map((entry) => {
54
+ var _a, _b;
55
+ let path = entry[0];
56
+ let msgMetaMaybe = (0, util_1.get)(model.main.msg, path);
57
+ // console.log(name, path, msgMetaMaybe)
58
+ if (msgMetaMaybe === null || msgMetaMaybe === void 0 ? void 0 : msgMetaMaybe.$) {
59
+ let msgMeta = (0, msg_1.MsgMetaShape)(msgMetaMaybe === null || msgMetaMaybe === void 0 ? void 0 : msgMetaMaybe.$);
60
+ let pin = (0, util_1.pinify)(path);
61
+ if ((_b = (_a = msgMeta.transport) === null || _a === void 0 ? void 0 : _a.queue) === null || _b === void 0 ? void 0 : _b.active) {
62
+ complete += `
63
+ seneca.client({type:'sqs',pin:'${pin}'})`;
64
+ }
65
+ }
66
+ });
67
+ let makeGatewayHandler = false;
68
+ let onlist = model.main.srv[name].on || {};
69
+ Object.entries(onlist).map((onitem) => {
70
+ onitem[1].events.map((event) => {
71
+ if ('s3' === event.source) {
72
+ if (!makeGatewayHandler) {
73
+ complete += `
74
+
75
+ const makeGatewayHandler = seneca.export('s3-store/makeGatewayHandler')`;
76
+ makeGatewayHandler = true;
77
+ }
78
+ complete += `
79
+ seneca
80
+ .act('sys:gateway,kind:lambda,add:hook,hook:handler', {
81
+ handler: makeGatewayHandler('${event.msg}') })`;
82
+ }
83
+ });
84
+ });
85
+ let content = TS ? `import { getSeneca } from '${envFolder}/${start}'`
86
+ :
87
+ `const getSeneca = require('${envFolder}/${start}')`;
88
+ content += `
89
+
90
+ function complete(seneca: any) {${complete}
91
+ }
92
+
93
+ exports.handler = async (
94
+ event${TS ? ':any' : ''},
95
+ context${TS ? ':any' : ''}
96
+ ) => {
97
+ ${modify}
98
+ let seneca = await getSeneca('${name}', complete)
99
+ ${prepare}
100
+ let handler = seneca.export('gateway-lambda/${handler}')
101
+ let res = await handler(event, context)
102
+ return res
103
+ }
104
+ `;
105
+ files.push({ name: name + '.' + lang, content });
106
+ });
107
+ if (0 < files.length) {
108
+ await (0, generate_1.generate)(spec.folder, files);
109
+ }
110
+ };
111
+ exports.srv_handler = srv_handler;
112
+ //# sourceMappingURL=srv_handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv_handler.js","sourceRoot":"","sources":["../../../env/lambda/srv_handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare const srv_yml: (model: any, spec: {
2
+ folder: string;
3
+ }) => Promise<void>;
4
+ export { srv_yml, };
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /* Copyright © 2022-2026 Voxgig Ltd, MIT License. */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.srv_yml = void 0;
8
+ // gen/serverless/srv.yml template: one Serverless function definition per
9
+ // lambda-active service, derived from the model.
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const util_1 = require("@voxgig/util");
13
+ const conf_1 = require("../../shape/conf");
14
+ const generate_1 = require("./generate");
15
+ const srv_yml = async (model, spec) => {
16
+ const core = (0, conf_1.CoreConfShape)(model.main.conf.core);
17
+ let appname = core.name;
18
+ let AppName = (0, util_1.camelify)(appname);
19
+ let srv_yml_prefix_path = path_1.default.join(spec.folder, 'srv.prefix.yml');
20
+ let srv_yml_suffix_path = path_1.default.join(spec.folder, 'srv.suffix.yml');
21
+ let prefixContent = fs_1.default.existsSync(srv_yml_prefix_path) ?
22
+ fs_1.default.readFileSync(srv_yml_prefix_path) : '';
23
+ let suffixContent = fs_1.default.existsSync(srv_yml_suffix_path) ?
24
+ fs_1.default.readFileSync(srv_yml_suffix_path) : '';
25
+ let content = prefixContent +
26
+ Object
27
+ .entries(model.main.srv)
28
+ .filter((entry) => { var _a, _b; return (_b = (_a = entry[1].env) === null || _a === void 0 ? void 0 : _a.lambda) === null || _b === void 0 ? void 0 : _b.active; })
29
+ .map((entry) => {
30
+ var _a, _b, _c, _d;
31
+ const name = entry[0];
32
+ const srv = entry[1];
33
+ const lambda = srv.env.lambda;
34
+ const handler = lambda.handler;
35
+ // NOTE: gen.custom convention: allows for complete overwrite
36
+ // as a get-out-of-jail
37
+ if ((_c = (_b = (_a = srv.gen) === null || _a === void 0 ? void 0 : _a.custom) === null || _b === void 0 ? void 0 : _b.lambda) === null || _c === void 0 ? void 0 : _c.srv_yml) {
38
+ return srv.gen.custom.lambda.srv_yml;
39
+ }
40
+ // TODO: this should be a JSON structure exported as YAML
41
+ let srvyml = `${name}:
42
+ handler: ${handler.path.prefix}${name}${handler.path.suffix}
43
+ role: Basic${AppName}LambdaRole
44
+ timeout: ${lambda.timeout}
45
+ memorySize: ${lambda.memory || 1024}
46
+ `;
47
+ const web = srv.api.web;
48
+ let events = '';
49
+ let onEvents = srv.on;
50
+ if (onEvents) {
51
+ Object.entries(onEvents).forEach((entry) => {
52
+ // let name = entry[0]
53
+ let spec = entry[1];
54
+ if ('aws' === spec.provider) {
55
+ spec.events.forEach((ev) => {
56
+ if ('s3' === ev.source) {
57
+ events += (0, generate_1.TM)(`
58
+ - s3:
59
+ bucket: ${ev.bucket}
60
+ event: ${ev.event}
61
+ existing: true
62
+ `);
63
+ if (ev.rules) {
64
+ events += (0, generate_1.TM)(`
65
+ rules:
66
+ `);
67
+ if (ev.rules.prefix) {
68
+ events += (0, generate_1.TM)(`
69
+ - prefix: ${ev.rules.prefix}
70
+ `);
71
+ }
72
+ if (ev.rules.suffix) {
73
+ events += (0, generate_1.TM)(`
74
+ - suffix: ${ev.rules.suffix}
75
+ `);
76
+ }
77
+ }
78
+ }
79
+ else if ('schedule' === ev.source) {
80
+ let entries = 'string' === typeof ev.recur ? [ev.recur] : (ev.recur || []);
81
+ let recur = entries.map((entry) => {
82
+ let schedule = `
83
+ - schedule:
84
+ rate: ${entry}`;
85
+ if (ev.msg) {
86
+ schedule += `
87
+ input:
88
+ msg: ${JSON.stringify(ev.msg)} `;
89
+ }
90
+ return schedule;
91
+ });
92
+ events += (0, generate_1.TM)(`
93
+ ${recur}
94
+ `);
95
+ }
96
+ else if ('sqs' === ev.source) {
97
+ events += (0, generate_1.TM)(`
98
+ - sqs:
99
+ arn:
100
+ Fn::GetAtt:
101
+ - ${ev.qrn}
102
+ - Arn
103
+ batchSize: 1
104
+ `);
105
+ }
106
+ });
107
+ }
108
+ });
109
+ }
110
+ // TODO: move to `on`
111
+ if (web.active) {
112
+ let prefix = web.path.prefix;
113
+ let suffix = web.path.suffix;
114
+ let area = web.path.area;
115
+ let method = web.method;
116
+ let corsflag = 'false';
117
+ let corsprops = '';
118
+ let methods = method.split(',');
119
+ // console.log('METHODS', methods)
120
+ if (web.cors.active) {
121
+ corsflag = 'true';
122
+ if (web.cors.props && !(0, generate_1.empty)(web.cors.props)) {
123
+ corsflag = '';
124
+ corsprops = Object
125
+ .entries(web.cors.props)
126
+ .reduce(((a, nv) => (a += ` ${nv[0]}: ${nv[1]}\n`
127
+ , a)), '');
128
+ }
129
+ }
130
+ if ('v2' === ((_d = web.lambda) === null || _d === void 0 ? void 0 : _d.gateway)) {
131
+ for (let method of methods) {
132
+ events += (0, generate_1.TM)(`
133
+ - httpApi:
134
+ path: "${prefix}${area}${name}${suffix}"
135
+ method: ${method}
136
+ `);
137
+ }
138
+ }
139
+ else {
140
+ for (let method of methods) {
141
+ events += (0, generate_1.TM)(`
142
+ - http:
143
+ path: "${prefix}${area}${name}${suffix}"
144
+ method: ${method}
145
+ cors: ${corsflag}
146
+ ${corsprops}
147
+ `);
148
+ }
149
+ }
150
+ }
151
+ if ('' !== events) {
152
+ srvyml += (0, generate_1.TM)(`
153
+ events:
154
+ ${events}
155
+ `);
156
+ }
157
+ return srvyml;
158
+ }).join('\n\n\n') +
159
+ suffixContent;
160
+ await (0, generate_1.generate)(spec.folder, [{ name: 'srv.yml', content }]);
161
+ };
162
+ exports.srv_yml = srv_yml;
163
+ //# sourceMappingURL=srv_yml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srv_yml.js","sourceRoot":"","sources":["../../../env/lambda/srv_yml.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ declare const CloudConfShape: {
44
44
  }[];
45
45
  ctx: any;
46
46
  });
47
- toJSON(): any & {
47
+ toJSON(): /*elided*/ any & {
48
48
  err: any;
49
49
  name: string;
50
50
  message: string;
@@ -105,7 +105,7 @@ declare const CoreConfShape: {
105
105
  }[];
106
106
  ctx: any;
107
107
  });
108
- toJSON(): any & {
108
+ toJSON(): /*elided*/ any & {
109
109
  err: any;
110
110
  name: string;
111
111
  message: string;
@@ -68,7 +68,7 @@ declare const EntShape: {
68
68
  }[];
69
69
  ctx: any;
70
70
  });
71
- toJSON(): any & {
71
+ toJSON(): /*elided*/ any & {
72
72
  err: any;
73
73
  name: string;
74
74
  message: string;
@@ -48,7 +48,7 @@ declare const MsgMetaShape: {
48
48
  }[];
49
49
  ctx: any;
50
50
  });
51
- toJSON(): any & {
51
+ toJSON(): /*elided*/ any & {
52
52
  err: any;
53
53
  name: string;
54
54
  message: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/build",
3
- "version": "3.1.0",
3
+ "version": "4.0.0",
4
4
  "main": "dist/build.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/build.d.ts",
@@ -28,7 +28,13 @@
28
28
  "reset": "npm run clean && npm i && npm run build && npm test",
29
29
  "repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag v$REPO_VERSION && git push --tags;",
30
30
  "repo-publish": "npm run clean && npm i && npm run repo-publish-quick",
31
- "repo-publish-quick": "npm run build && npm run test && npm run repo-tag && npm publish --registry https://registry.npmjs.org --access=public"
31
+ "repo-publish-quick": "npm run build && npm run test && npm run repo-tag && npm run repo-stage-publish",
32
+ "repo-stage-publish": "aql vault exec --for=npm vxg:pub01 -- npm stage publish --registry https://registry.npmjs.org --access=public",
33
+ "repo-stage-publish-dry": "aql vault exec --dry-run --for=npm vxg:pub01 -- npm stage publish --registry https://registry.npmjs.org --access=public --dry-run",
34
+ "repo-stage-list": "aql vault exec --for=npm vxg:pub01 -- npm stage list",
35
+ "repo-stage-view": "aql vault exec --for=npm vxg:pub01 -- npm stage view",
36
+ "repo-stage-approve": "aql vault exec --for=npm vxg:pub01 -- npm stage approve",
37
+ "repo-stage-reject": "aql vault exec --for=npm vxg:pub01 -- npm stage reject"
32
38
  },
33
39
  "license": "MIT",
34
40
  "files": [
@@ -39,13 +45,15 @@
39
45
  "LICENSE"
40
46
  ],
41
47
  "dependencies": {
42
- "gubu": "^8.0.2",
48
+ "@voxgig/util": "0.5.4",
49
+ "gubu": "8.0.2",
50
+ "jostraca": "0.31.2",
43
51
  "js-yaml": "^4.1.0"
44
52
  },
45
53
  "devDependencies": {
46
54
  "@types/jest": "^29.5.12",
47
55
  "@types/js-yaml": "^4.0.9",
48
- "@types/node": "20.14.10",
56
+ "@types/node": "26.1.2",
49
57
  "@voxgig/model": "^2.1.0",
50
58
  "@voxgig/system": "^1.2.0",
51
59
  "esbuild": "^0.23.0",