@voxgig/build 4.0.0 → 4.2.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.
Files changed (50) hide show
  1. package/build.ts +46 -0
  2. package/dist/build.d.ts +31 -1
  3. package/dist/build.js +33 -1
  4. package/dist/build.js.map +1 -1
  5. package/dist/env/env_gen.d.ts +16 -0
  6. package/dist/env/env_gen.js +143 -0
  7. package/dist/env/env_gen.js.map +1 -0
  8. package/dist/env/lambda/generate.d.ts +8 -1
  9. package/dist/env/lambda/generate.js +59 -0
  10. package/dist/env/lambda/generate.js.map +1 -1
  11. package/dist/env/lambda/res_yml.d.ts +1 -0
  12. package/dist/env/lambda/res_yml.js +12 -41
  13. package/dist/env/lambda/res_yml.js.map +1 -1
  14. package/dist/env/lambda/srv_handler.d.ts +1 -0
  15. package/dist/env/lambda/srv_handler.js +10 -21
  16. package/dist/env/lambda/srv_handler.js.map +1 -1
  17. package/dist/env/lambda/srv_yml.d.ts +1 -0
  18. package/dist/env/lambda/srv_yml.js +11 -9
  19. package/dist/env/lambda/srv_yml.js.map +1 -1
  20. package/env/env_gen.ts +165 -0
  21. package/env/lambda/generate.ts +112 -0
  22. package/env/lambda/res_yml.ts +140 -0
  23. package/env/lambda/srv_handler.ts +132 -0
  24. package/env/lambda/srv_yml.ts +201 -0
  25. package/package.json +6 -4
  26. package/tm/env/aws/README.md.frag +9 -0
  27. package/tm/env/aws/lambda.entry.ts.frag +89 -0
  28. package/tm/env/aws/serverless.yml.frag +23 -0
  29. package/tm/env/azure/README.md.frag +7 -0
  30. package/tm/env/azure/entry.ts.frag +49 -0
  31. package/tm/env/azure/host.json.frag +8 -0
  32. package/tm/env/basic/README.md.frag +7 -0
  33. package/tm/env/basic/backend.service.frag +14 -0
  34. package/tm/env/basic/deploy.sh.frag +13 -0
  35. package/tm/env/cloudflare/README.md.frag +7 -0
  36. package/tm/env/cloudflare/worker.ts.frag +13 -0
  37. package/tm/env/cloudflare/wrangler.toml.frag +7 -0
  38. package/tm/env/docker/Dockerfile.frag +10 -0
  39. package/tm/env/docker/README.md.frag +7 -0
  40. package/tm/env/docker/compose.yml.frag +10 -0
  41. package/tm/env/local/README.md.frag +7 -0
  42. package/tm/env/local/run.sh.frag +6 -0
  43. package/tm/env/server.entry.ts.frag +48 -0
  44. package/tm/env/vm/README.md.frag +5 -0
  45. package/tm/env/vm/cloud-init.yaml.frag +23 -0
  46. package/tm/lambda/res.queue.yml.frag +6 -0
  47. package/tm/lambda/res.role.yml.frag +35 -0
  48. package/tm/lambda/srv.yml.frag +6 -0
  49. package/tm/lambda/srv_handler.js.frag +17 -0
  50. package/tm/lambda/srv_handler.ts.frag +17 -0
package/build.ts CHANGED
@@ -17,6 +17,17 @@ import { srv_yml } from './env/lambda/srv_yml'
17
17
  import { srv_handler } from './env/lambda/srv_handler'
18
18
  import { resources_yml } from './env/lambda/res_yml'
19
19
 
20
+ import { env_gen, ENV_FILES, ENV_SRC, KINDS as ENV_KINDS } from './env/env_gen'
21
+
22
+ import {
23
+ generate, empty, TM,
24
+ loadFragment, renderFragment, listFragments, PKG_TM,
25
+ } from './env/lambda/generate'
26
+
27
+ import { MsgMetaShape } from './shape/msg'
28
+ import { CoreConfShape, CloudConfShape } from './shape/conf'
29
+ import { res_dynamo_yml } from './yml/res_dynamo_yml'
30
+
20
31
 
21
32
  const EnvLambda = {
22
33
  srv_yml,
@@ -25,6 +36,41 @@ const EnvLambda = {
25
36
  }
26
37
 
27
38
 
39
+ // Per-environment deployment artifacts (gen/env/<name>/), driven by the
40
+ // model's `main: env:` declarations. See env/env_gen.ts.
41
+ const EnvGen = {
42
+ env_gen,
43
+ files: ENV_FILES,
44
+ srcfiles: ENV_SRC,
45
+ kinds: ENV_KINDS,
46
+ }
47
+
48
+
49
+ // Fragment tooling (used by voxgig-system template list/eject/diff, and
50
+ // available to project code).
51
+ const Fragments = {
52
+ load: loadFragment,
53
+ render: renderFragment,
54
+ list: listFragments,
55
+ folder: PKG_TM,
56
+ }
57
+
58
+
28
59
  export {
29
60
  EnvLambda,
61
+ EnvGen,
62
+ Fragments,
63
+
64
+ // Building blocks for ejected project templates (src/gen/<name>.ts
65
+ // copies import these from '@voxgig/build' instead of package
66
+ // internals - see voxgig-system template eject --code).
67
+ generate,
68
+ empty,
69
+ TM,
70
+ loadFragment,
71
+ renderFragment,
72
+ MsgMetaShape,
73
+ CoreConfShape,
74
+ CloudConfShape,
75
+ res_dynamo_yml,
30
76
  }
package/dist/build.d.ts CHANGED
@@ -1,6 +1,11 @@
1
+ import { generate, empty, TM, loadFragment, renderFragment, listFragments } from './env/lambda/generate';
2
+ import { MsgMetaShape } from './shape/msg';
3
+ import { CoreConfShape, CloudConfShape } from './shape/conf';
4
+ import { res_dynamo_yml } from './yml/res_dynamo_yml';
1
5
  declare const EnvLambda: {
2
6
  srv_yml: (model: any, spec: {
3
7
  folder: string;
8
+ tm?: string;
4
9
  }) => Promise<void>;
5
10
  srv_handler: (model: any, spec: {
6
11
  folder: string;
@@ -9,11 +14,36 @@ declare const EnvLambda: {
9
14
  folder: string;
10
15
  };
11
16
  lang?: string;
17
+ tm?: string;
12
18
  }) => Promise<void>;
13
19
  resources_yml: (model: any, spec: {
14
20
  folder: string;
15
21
  filename: string;
16
22
  custom: string;
23
+ tm?: string;
17
24
  }) => Promise<void>;
18
25
  };
19
- export { EnvLambda, };
26
+ declare const EnvGen: {
27
+ env_gen: (model: any, spec: {
28
+ folder: string;
29
+ tm?: string;
30
+ src?: string;
31
+ }) => Promise<void>;
32
+ files: Record<string, {
33
+ frag: string;
34
+ out: string;
35
+ }[]>;
36
+ srcfiles: Record<string, {
37
+ frag: string;
38
+ dir: string;
39
+ out: string;
40
+ }[]>;
41
+ kinds: string[];
42
+ };
43
+ declare const Fragments: {
44
+ load: typeof loadFragment;
45
+ render: typeof renderFragment;
46
+ list: typeof listFragments;
47
+ folder: string;
48
+ };
49
+ export { EnvLambda, EnvGen, Fragments, generate, empty, TM, loadFragment, renderFragment, MsgMetaShape, CoreConfShape, CloudConfShape, res_dynamo_yml, };
package/dist/build.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /* Copyright © 2022-2026 Voxgig Ltd, MIT License. */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.EnvLambda = void 0;
4
+ exports.res_dynamo_yml = exports.CloudConfShape = exports.CoreConfShape = exports.MsgMetaShape = exports.renderFragment = exports.loadFragment = exports.TM = exports.empty = exports.generate = exports.Fragments = exports.EnvGen = exports.EnvLambda = void 0;
5
5
  // EnvLambda: generation of the Lambda deployment templates, built on the
6
6
  // jostraca templating library. The templates live in env/lambda/, one file
7
7
  // per output for convenience:
@@ -17,10 +17,42 @@ exports.EnvLambda = void 0;
17
17
  const srv_yml_1 = require("./env/lambda/srv_yml");
18
18
  const srv_handler_1 = require("./env/lambda/srv_handler");
19
19
  const res_yml_1 = require("./env/lambda/res_yml");
20
+ const env_gen_1 = require("./env/env_gen");
21
+ const generate_1 = require("./env/lambda/generate");
22
+ Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return generate_1.generate; } });
23
+ Object.defineProperty(exports, "empty", { enumerable: true, get: function () { return generate_1.empty; } });
24
+ Object.defineProperty(exports, "TM", { enumerable: true, get: function () { return generate_1.TM; } });
25
+ Object.defineProperty(exports, "loadFragment", { enumerable: true, get: function () { return generate_1.loadFragment; } });
26
+ Object.defineProperty(exports, "renderFragment", { enumerable: true, get: function () { return generate_1.renderFragment; } });
27
+ const msg_1 = require("./shape/msg");
28
+ Object.defineProperty(exports, "MsgMetaShape", { enumerable: true, get: function () { return msg_1.MsgMetaShape; } });
29
+ const conf_1 = require("./shape/conf");
30
+ Object.defineProperty(exports, "CoreConfShape", { enumerable: true, get: function () { return conf_1.CoreConfShape; } });
31
+ Object.defineProperty(exports, "CloudConfShape", { enumerable: true, get: function () { return conf_1.CloudConfShape; } });
32
+ const res_dynamo_yml_1 = require("./yml/res_dynamo_yml");
33
+ Object.defineProperty(exports, "res_dynamo_yml", { enumerable: true, get: function () { return res_dynamo_yml_1.res_dynamo_yml; } });
20
34
  const EnvLambda = {
21
35
  srv_yml: srv_yml_1.srv_yml,
22
36
  srv_handler: srv_handler_1.srv_handler,
23
37
  resources_yml: res_yml_1.resources_yml,
24
38
  };
25
39
  exports.EnvLambda = EnvLambda;
40
+ // Per-environment deployment artifacts (gen/env/<name>/), driven by the
41
+ // model's `main: env:` declarations. See env/env_gen.ts.
42
+ const EnvGen = {
43
+ env_gen: env_gen_1.env_gen,
44
+ files: env_gen_1.ENV_FILES,
45
+ srcfiles: env_gen_1.ENV_SRC,
46
+ kinds: env_gen_1.KINDS,
47
+ };
48
+ exports.EnvGen = EnvGen;
49
+ // Fragment tooling (used by voxgig-system template list/eject/diff, and
50
+ // available to project code).
51
+ const Fragments = {
52
+ load: generate_1.loadFragment,
53
+ render: generate_1.renderFragment,
54
+ list: generate_1.listFragments,
55
+ folder: generate_1.PKG_TM,
56
+ };
57
+ exports.Fragments = Fragments;
26
58
  //# sourceMappingURL=build.js.map
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../build.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,yEAAyE;AACzE,2EAA2E;AAC3E,8BAA8B;AAC9B,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,yEAAyE;AACzE,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,qCAAqC;AAErC,kDAA8C;AAC9C,0DAAsD;AACtD,kDAAoD;AAGpD,MAAM,SAAS,GAAG;IAChB,OAAO,EAAP,iBAAO;IACP,WAAW,EAAX,yBAAW;IACX,aAAa,EAAb,uBAAa;CACd,CAAA;AAIC,8BAAS"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../build.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,yEAAyE;AACzE,2EAA2E;AAC3E,8BAA8B;AAC9B,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,yEAAyE;AACzE,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,qCAAqC;AAErC,kDAA8C;AAC9C,0DAAsD;AACtD,kDAAoD;AAEpD,2CAA+E;AAE/E,oDAG8B;AA0C5B,yFA5CA,mBAAQ,OA4CA;AACR,sFA7CU,gBAAK,OA6CV;AACL,mFA9CiB,aAAE,OA8CjB;AACF,6FA9CA,uBAAY,OA8CA;AACZ,+FA/Cc,yBAAc,OA+Cd;AA5ChB,qCAA0C;AA6CxC,6FA7CO,kBAAY,OA6CP;AA5Cd,uCAA4D;AA6C1D,8FA7CO,oBAAa,OA6CP;AACb,+FA9CsB,qBAAc,OA8CtB;AA7ChB,yDAAqD;AA8CnD,+FA9CO,+BAAc,OA8CP;AA3ChB,MAAM,SAAS,GAAG;IAChB,OAAO,EAAP,iBAAO;IACP,WAAW,EAAX,yBAAW;IACX,aAAa,EAAb,uBAAa;CACd,CAAA;AAwBC,8BAAS;AArBX,wEAAwE;AACxE,yDAAyD;AACzD,MAAM,MAAM,GAAG;IACb,OAAO,EAAP,iBAAO;IACP,KAAK,EAAE,mBAAS;IAChB,QAAQ,EAAE,iBAAO;IACjB,KAAK,EAAE,eAAS;CACjB,CAAA;AAeC,wBAAM;AAZR,wEAAwE;AACxE,8BAA8B;AAC9B,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,uBAAY;IAClB,MAAM,EAAE,yBAAc;IACtB,IAAI,EAAE,wBAAa;IACnB,MAAM,EAAE,iBAAM;CACf,CAAA;AAMC,8BAAS"}
@@ -0,0 +1,16 @@
1
+ declare const ENV_FILES: Record<string, {
2
+ frag: string;
3
+ out: string;
4
+ }[]>;
5
+ declare const ENV_SRC: Record<string, {
6
+ frag: string;
7
+ dir: string;
8
+ out: string;
9
+ }[]>;
10
+ declare const KINDS: string[];
11
+ declare const env_gen: (model: any, spec: {
12
+ folder: string;
13
+ tm?: string;
14
+ src?: string;
15
+ }) => Promise<void>;
16
+ export { env_gen, ENV_FILES, ENV_SRC, KINDS, };
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /* Copyright © 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.KINDS = exports.ENV_SRC = exports.ENV_FILES = exports.env_gen = void 0;
8
+ // EnvGen: per-environment deployment artifact generation. The project
9
+ // model declares its target environments under `main: env:`:
10
+ //
11
+ // main: env: local: { active: true }
12
+ // main: env: aws: { active: true, region: 'eu-west-1', stage: 'dev' }
13
+ //
14
+ // For each active environment this generates gen/env/<name>/ from the
15
+ // fragment set tm/env/<kind>/ (kind defaults to the env name, so a
16
+ // project can declare e.g. `aws2: { kind: 'aws', region: ... }`).
17
+ // Fragments are project-shadowable via spec.tm (the project's tm/env
18
+ // folder), like the lambda templates.
19
+ const fs_1 = __importDefault(require("fs"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const util_1 = require("@voxgig/util");
22
+ const conf_1 = require("../shape/conf");
23
+ const generate_1 = require("./lambda/generate");
24
+ // The supported environment kinds and the files each generates.
25
+ // `out` may contain $$slots$$ (rendered with the same slot values).
26
+ const ENV_FILES = {
27
+ local: [
28
+ { frag: 'local/run.sh.frag', out: 'run.sh' },
29
+ { frag: 'local/README.md.frag', out: 'README.md' },
30
+ ],
31
+ basic: [
32
+ { frag: 'basic/backend.service.frag', out: '$$name$$-backend.service' },
33
+ { frag: 'basic/deploy.sh.frag', out: 'deploy.sh' },
34
+ { frag: 'basic/README.md.frag', out: 'README.md' },
35
+ ],
36
+ docker: [
37
+ { frag: 'docker/Dockerfile.frag', out: 'Dockerfile' },
38
+ { frag: 'docker/compose.yml.frag', out: 'compose.yml' },
39
+ { frag: 'docker/README.md.frag', out: 'README.md' },
40
+ ],
41
+ vm: [
42
+ { frag: 'vm/cloud-init.yaml.frag', out: 'cloud-init.yaml' },
43
+ { frag: 'vm/README.md.frag', out: 'README.md' },
44
+ ],
45
+ aws: [
46
+ { frag: 'aws/serverless.yml.frag', out: 'serverless.yml' },
47
+ { frag: 'aws/README.md.frag', out: 'README.md' },
48
+ ],
49
+ azure: [
50
+ { frag: 'azure/host.json.frag', out: 'host.json' },
51
+ { frag: 'azure/README.md.frag', out: 'README.md' },
52
+ ],
53
+ cloudflare: [
54
+ { frag: 'cloudflare/wrangler.toml.frag', out: 'wrangler.toml' },
55
+ { frag: 'cloudflare/README.md.frag', out: 'README.md' },
56
+ ],
57
+ };
58
+ exports.ENV_FILES = ENV_FILES;
59
+ // The runtime entry point + Seneca config setup each environment needs
60
+ // under src/env/. These are generated ONCE (only when missing): after
61
+ // creation the project owns them, like the scaffold's local entry. All
62
+ // entries route Seneca configuration through src/env/shared/basic.ts.
63
+ // `dir` is relative to the project src/env folder.
64
+ const ENV_SRC = {
65
+ local: [], // scaffold provides src/env/local/local.ts
66
+ basic: [
67
+ { frag: 'server.entry.ts.frag', dir: 'basic', out: 'basic.ts' },
68
+ ],
69
+ docker: [
70
+ { frag: 'server.entry.ts.frag', dir: 'docker', out: 'docker.ts' },
71
+ ],
72
+ vm: [
73
+ { frag: 'server.entry.ts.frag', dir: 'vm', out: 'vm.ts' },
74
+ ],
75
+ aws: [
76
+ // The Lambda bootstrap the generated handlers import.
77
+ { frag: 'aws/lambda.entry.ts.frag', dir: 'lambda', out: 'lambda.ts' },
78
+ ],
79
+ azure: [
80
+ { frag: 'azure/entry.ts.frag', dir: 'azure', out: 'azure.ts' },
81
+ ],
82
+ cloudflare: [
83
+ { frag: 'cloudflare/worker.ts.frag', dir: 'cloudflare', out: 'worker.ts' },
84
+ ],
85
+ };
86
+ exports.ENV_SRC = ENV_SRC;
87
+ const KINDS = Object.keys(ENV_FILES);
88
+ exports.KINDS = KINDS;
89
+ const env_gen = async (model, spec) => {
90
+ var _a;
91
+ const core = (0, conf_1.CoreConfShape)(model.main.conf.core);
92
+ const envs = model.main.env || {};
93
+ for (const entry of Object.entries(envs)) {
94
+ const name = entry[0];
95
+ const def = entry[1] || {};
96
+ if (false === def.active) {
97
+ continue;
98
+ }
99
+ const kind = def.kind || name;
100
+ const filedefs = ENV_FILES[kind];
101
+ if (null == filedefs) {
102
+ throw new Error('@voxgig/build: unknown environment kind: ' + kind +
103
+ ' (env ' + name + '; known kinds: ' + KINDS.join(', ') + ')');
104
+ }
105
+ // Slot values: project identity, ports, and per-env config with
106
+ // sensible defaults. Additional scalar config keys on the env
107
+ // definition become slots too.
108
+ const slots = {
109
+ name: core.name,
110
+ Name: (0, util_1.camelify)(core.name),
111
+ env: name,
112
+ port: ((_a = model.main.conf.port) === null || _a === void 0 ? void 0 : _a.backend) || 8080,
113
+ node: def.node || '22',
114
+ region: def.region || 'us-east-1',
115
+ stage: def.stage || 'dev',
116
+ };
117
+ for (const key of Object.keys(def)) {
118
+ if ('object' !== typeof def[key] && null == slots[key]) {
119
+ slots[key] = def[key];
120
+ }
121
+ }
122
+ // Slot for the env name inside entry fragments.
123
+ slots.env = name;
124
+ const files = filedefs.map((fd) => ({
125
+ name: (0, generate_1.renderFragment)(fd.out, slots),
126
+ content: (0, generate_1.renderFragment)((0, generate_1.loadFragment)(fd.frag, spec, 'env'), slots),
127
+ }));
128
+ await (0, generate_1.generate)(spec.folder + '/' + name, files);
129
+ // Runtime entries: create-once into src/env (user-owned afterwards).
130
+ if (null != spec.src) {
131
+ for (const sd of (ENV_SRC[kind] || [])) {
132
+ const dest = path_1.default.join(spec.src, sd.dir, (0, generate_1.renderFragment)(sd.out, slots));
133
+ if (!fs_1.default.existsSync(dest)) {
134
+ const content = (0, generate_1.renderFragment)((0, generate_1.loadFragment)(sd.frag, spec, 'env'), slots);
135
+ fs_1.default.mkdirSync(path_1.default.dirname(dest), { recursive: true });
136
+ fs_1.default.writeFileSync(dest, content);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ };
142
+ exports.env_gen = env_gen;
143
+ //# sourceMappingURL=env_gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env_gen.js","sourceRoot":"","sources":["../../env/env_gen.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
+ declare const PKG_TM_ROOT: string;
2
+ declare const PKG_TM: string;
3
+ declare function loadFragment(name: string, spec?: {
4
+ tm?: string;
5
+ }, area?: string): string;
6
+ declare function renderFragment(src: string, slots: Record<string, any>): string;
7
+ declare function listFragments(): string[];
1
8
  declare function generate(folder: string, files: {
2
9
  name: string;
3
10
  content: string;
4
11
  }[]): Promise<void>;
5
12
  declare function empty(o: any): boolean;
6
13
  declare function TM(str: string): string;
7
- export { generate, empty, TM, };
14
+ export { generate, empty, TM, loadFragment, renderFragment, listFragments, PKG_TM, PKG_TM_ROOT, };
@@ -1,13 +1,72 @@
1
1
  "use strict";
2
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
+ };
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PKG_TM_ROOT = exports.PKG_TM = void 0;
4
8
  exports.generate = generate;
5
9
  exports.empty = empty;
6
10
  exports.TM = TM;
11
+ exports.loadFragment = loadFragment;
12
+ exports.renderFragment = renderFragment;
13
+ exports.listFragments = listFragments;
7
14
  // Shared generation utilities for the lambda templates. File output goes
8
15
  // through the jostraca templating library (Project/File/Content components),
9
16
  // which also maintains .jostraca/ build metadata next to the outputs.
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const path_1 = __importDefault(require("path"));
10
19
  const jostraca_1 = require("jostraca");
20
+ // The text shape of each generated output lives in a jostraca-style
21
+ // fragment file with $$slot$$ placeholders. Fragments ship with this
22
+ // package under tm/lambda/, and a project can shadow any of them by
23
+ // placing a same-named file in its own tm folder (passed as spec.tm by
24
+ // the project's build actions). The fragment file's final newline is
25
+ // dropped at load, so slot values fully control trailing bytes.
26
+ // Package tm root: compiled code lives at <pkg>/dist/env/lambda (three
27
+ // levels down), but test transforms run the source at <pkg>/env/lambda
28
+ // (two levels down) - probe both. Areas (tm/<area>/...) group fragment
29
+ // sets: 'lambda' (the EnvLambda templates) and 'env' (per-environment
30
+ // deployment templates).
31
+ const PKG_TM_ROOT = [
32
+ path_1.default.join(__dirname, '..', '..', '..', 'tm'),
33
+ path_1.default.join(__dirname, '..', '..', 'tm'),
34
+ ].find((p) => fs_1.default.existsSync(p)) ||
35
+ path_1.default.join(__dirname, '..', '..', '..', 'tm');
36
+ exports.PKG_TM_ROOT = PKG_TM_ROOT;
37
+ const PKG_TM = path_1.default.join(PKG_TM_ROOT, 'lambda');
38
+ exports.PKG_TM = PKG_TM;
39
+ function loadFragment(name, spec, area = 'lambda') {
40
+ const candidates = [];
41
+ if (spec === null || spec === void 0 ? void 0 : spec.tm) {
42
+ candidates.push(path_1.default.join(spec.tm, name));
43
+ }
44
+ candidates.push(path_1.default.join(PKG_TM_ROOT, area, name));
45
+ for (const c of candidates) {
46
+ if (fs_1.default.existsSync(c)) {
47
+ let src = fs_1.default.readFileSync(c, 'utf8');
48
+ if (src.endsWith('\n')) {
49
+ src = src.substring(0, src.length - 1);
50
+ }
51
+ return src;
52
+ }
53
+ }
54
+ throw new Error('@voxgig/build: fragment not found: ' + name +
55
+ ' (looked in ' + candidates.join(', ') + ')');
56
+ }
57
+ // Literal $$slot$$ substitution (split/join - values are never
58
+ // interpreted, so ${...}, $&, etc. pass through untouched).
59
+ function renderFragment(src, slots) {
60
+ let out = src;
61
+ for (const key of Object.keys(slots)) {
62
+ out = out.split('$$' + key + '$$').join(String(slots[key]));
63
+ }
64
+ return out;
65
+ }
66
+ // Fragment names shipped by this package (for tooling: list/eject).
67
+ function listFragments() {
68
+ return fs_1.default.readdirSync(PKG_TM).filter((f) => f.endsWith('.frag')).sort();
69
+ }
11
70
  // Generate one or more files in folder, each with exact content.
12
71
  async function generate(folder, files) {
13
72
  const jostraca = (0, jostraca_1.Jostraca)();
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../env/lambda/generate.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAuClD,4BAAQ;AACR,sBAAK;AACL,gBAAE;AAvCJ,yEAAyE;AACzE,6EAA6E;AAC7E,sEAAsE;AAEtE,uCAA2D;AAG3D,iEAAiE;AACjE,KAAK,UAAU,QAAQ,CACrB,MAAc,EACd,KAA0C;IAE1C,MAAM,QAAQ,GAAG,IAAA,mBAAQ,GAAE,CAAA;IAE3B,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvC,IAAA,kBAAO,EAAC,EAAE,EAAE,GAAG,EAAE;YACf,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;oBAC1B,IAAA,kBAAO,EAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,KAAK,CAAC,CAAM;IACnB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACvD,CAAC;AAED,uBAAuB;AACvB,SAAS,EAAE,CAAC,GAAW;IACrB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../env/lambda/generate.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;AAuGlD,4BAAQ;AACR,sBAAK;AACL,gBAAE;AACF,oCAAY;AACZ,wCAAc;AACd,sCAAa;AA1Gf,yEAAyE;AACzE,6EAA6E;AAC7E,sEAAsE;AAEtE,4CAAmB;AACnB,gDAAuB;AAEvB,uCAA2D;AAG3D,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,uEAAuE;AACvE,qEAAqE;AACrE,gEAAgE;AAEhE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,yBAAyB;AACzB,MAAM,WAAW,GAAG;IAClB,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5C,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACvC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAkF5C,kCAAW;AAhFb,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AA+E7C,wBAAM;AA5ER,SAAS,YAAY,CACnB,IAAY,EAAE,IAAsB,EAAE,OAAe,QAAQ;IAE7D,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEnD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,IAAI;QAC1D,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;AACjD,CAAC;AAGD,+DAA+D;AAC/D,4DAA4D;AAC5D,SAAS,cAAc,CAAC,GAAW,EAAE,KAA0B;IAC7D,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,oEAAoE;AACpE,SAAS,aAAa;IACpB,OAAO,YAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACzE,CAAC;AAGD,iEAAiE;AACjE,KAAK,UAAU,QAAQ,CACrB,MAAc,EACd,KAA0C;IAE1C,MAAM,QAAQ,GAAG,IAAA,mBAAQ,GAAE,CAAA;IAE3B,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvC,IAAA,kBAAO,EAAC,EAAE,EAAE,GAAG,EAAE;YACf,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;oBAC1B,IAAA,kBAAO,EAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpB,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAGD,SAAS,KAAK,CAAC,CAAM;IACnB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACvD,CAAC;AAED,uBAAuB;AACvB,SAAS,EAAE,CAAC,GAAW;IACrB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC"}
@@ -2,5 +2,6 @@ declare const resources_yml: (model: any, spec: {
2
2
  folder: string;
3
3
  filename: string;
4
4
  custom: string;
5
+ tm?: string;
5
6
  }) => Promise<void>;
6
7
  export { resources_yml, };
@@ -15,6 +15,8 @@ const conf_1 = require("../../shape/conf");
15
15
  const res_dynamo_yml_1 = require("../../yml/res_dynamo_yml");
16
16
  const generate_1 = require("./generate");
17
17
  const resources_yml = async (model, spec) => {
18
+ const queueFrag = (0, generate_1.loadFragment)('res.queue.yml.frag', spec);
19
+ const roleFrag = (0, generate_1.loadFragment)('res.role.yml.frag', spec);
18
20
  const core = (0, conf_1.CoreConfShape)(model.main.conf.core);
19
21
  const appname = core.name;
20
22
  const AppName = (0, util_1.camelify)(appname);
@@ -58,12 +60,11 @@ const resources_yml = async (model, spec) => {
58
60
  (queue_suffix || '') +
59
61
  (stage_suffix || '');
60
62
  let queueTimeout = queue.timeout || 30;
61
- return `${resname}:
62
- Type: "AWS::SQS::Queue"
63
- Properties:
64
- QueueName: '${queueName}'
65
- VisibilityTimeout: ${queueTimeout}
66
- `;
63
+ return (0, generate_1.renderFragment)(queueFrag, {
64
+ resname,
65
+ queueName,
66
+ queueTimeout,
67
+ });
67
68
  }
68
69
  return '';
69
70
  }).filter(n => '' !== n).join('');
@@ -72,41 +73,11 @@ const resources_yml = async (model, spec) => {
72
73
  let customLambdaPolicyStatementPath = path_1.default.join(spec.folder, 'res.lambda.policy.statements.yml');
73
74
  let customLambdaPolicyStatementContent = fs_1.default.existsSync(customLambdaPolicyStatementPath) ?
74
75
  fs_1.default.readFileSync(customLambdaPolicyStatementPath) : '';
75
- content += `
76
- Basic${AppName}LambdaRole:
77
- Type: AWS::IAM::Role
78
- Properties:
79
- RoleName: Basic${AppName}LambdaRole\${self:custom.index.BasicLambdaRole,"01"}
80
- AssumeRolePolicyDocument:
81
- Version: '2012-10-17'
82
- Statement:
83
- - Effect: Allow
84
- Principal:
85
- Service:
86
- - lambda.amazonaws.com
87
- - events.amazonaws.com
88
- - ecs-tasks.amazonaws.com
89
- Action: sts:AssumeRole
90
- Policies:
91
- - PolicyName: LambdaServiceAccess
92
- PolicyDocument:
93
- Version: '2012-10-17'
94
- Statement:
95
- - Effect: Allow
96
- Action:
97
- - dynamodb:DescribeTable
98
- - dynamodb:GetItem
99
- - dynamodb:PutItem
100
- - dynamodb:UpdateItem
101
- - dynamodb:DeleteItem
102
- - dynamodb:Query
103
- - dynamodb:Scan
104
- Resource:
105
- ${dynamoResources.map(r => ' - ' + r.arn).join('\n')}
106
- ${customLambdaPolicyStatementContent}
107
- ManagedPolicyArns:
108
- - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
109
- `;
76
+ content += (0, generate_1.renderFragment)(roleFrag, {
77
+ AppName,
78
+ dynamoArns: dynamoResources.map(r => ' - ' + r.arn).join('\n'),
79
+ customPolicy: customLambdaPolicyStatementContent,
80
+ });
110
81
  if (spec.custom) {
111
82
  content = fs_1.default.readFileSync(spec.custom).toString() + '\n\n\n' + content;
112
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"res_yml.js","sourceRoot":"","sources":["../../../env/lambda/res_yml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"res_yml.js","sourceRoot":"","sources":["../../../env/lambda/res_yml.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ declare const srv_handler: (model: any, spec: {
5
5
  folder: string;
6
6
  };
7
7
  lang?: string;
8
+ tm?: string;
8
9
  }) => Promise<void>;
9
10
  export { srv_handler, };
@@ -10,7 +10,7 @@ const generate_1 = require("./generate");
10
10
  // Only create if does not exist
11
11
  const srv_handler = async (model, spec) => {
12
12
  let lang = spec.lang || 'js';
13
- let TS = 'ts' === lang;
13
+ const frag = (0, generate_1.loadFragment)('srv_handler.' + lang + '.frag', spec);
14
14
  const files = [];
15
15
  Object
16
16
  .entries(model.main.srv)
@@ -82,26 +82,15 @@ const srv_handler = async (model, spec) => {
82
82
  }
83
83
  });
84
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
- `;
85
+ const content = (0, generate_1.renderFragment)(frag, {
86
+ envFolder,
87
+ start,
88
+ name,
89
+ complete,
90
+ modify,
91
+ prepare,
92
+ handler,
93
+ });
105
94
  files.push({ name: name + '.' + lang, content });
106
95
  });
107
96
  if (0 < files.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"srv_handler.js","sourceRoot":"","sources":["../../../env/lambda/srv_handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"srv_handler.js","sourceRoot":"","sources":["../../../env/lambda/srv_handler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  declare const srv_yml: (model: any, spec: {
2
2
  folder: string;
3
+ tm?: string;
3
4
  }) => Promise<void>;
4
5
  export { srv_yml, };