@enspirit/emb 0.20.2 → 0.22.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.
package/README.md CHANGED
@@ -14,7 +14,7 @@ $ npm install -g @enspirit/emb
14
14
  $ emb COMMAND
15
15
  running command...
16
16
  $ emb (--version)
17
- @enspirit/emb/0.20.2 darwin-x64 node-v22.18.0
17
+ @enspirit/emb/0.22.0 darwin-arm64 node-v22.21.1
18
18
  $ emb --help [COMMAND]
19
19
  USAGE
20
20
  $ emb COMMAND
@@ -113,7 +113,7 @@ EXAMPLES
113
113
  $ emb clean
114
114
  ```
115
115
 
116
- _See code: [src/commands/clean.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/clean.ts)_
116
+ _See code: [src/commands/clean.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/clean.ts)_
117
117
 
118
118
  ## `emb components`
119
119
 
@@ -138,7 +138,7 @@ EXAMPLES
138
138
  $ emb components
139
139
  ```
140
140
 
141
- _See code: [src/commands/components/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/components/index.ts)_
141
+ _See code: [src/commands/components/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/components/index.ts)_
142
142
 
143
143
  ## `emb components logs [COMPONENT]`
144
144
 
@@ -169,7 +169,7 @@ EXAMPLES
169
169
  $ emb components logs --no-follow backend
170
170
  ```
171
171
 
172
- _See code: [src/commands/components/logs.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/components/logs.ts)_
172
+ _See code: [src/commands/components/logs.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/components/logs.ts)_
173
173
 
174
174
  ## `emb components shell COMPONENT`
175
175
 
@@ -197,7 +197,7 @@ EXAMPLES
197
197
  $ emb components shell
198
198
  ```
199
199
 
200
- _See code: [src/commands/components/shell.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/components/shell.ts)_
200
+ _See code: [src/commands/components/shell.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/components/shell.ts)_
201
201
 
202
202
  ## `emb config print`
203
203
 
@@ -222,7 +222,7 @@ EXAMPLES
222
222
  $ emb config print
223
223
  ```
224
224
 
225
- _See code: [src/commands/config/print.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/config/print.ts)_
225
+ _See code: [src/commands/config/print.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/config/print.ts)_
226
226
 
227
227
  ## `emb containers`
228
228
 
@@ -247,7 +247,7 @@ EXAMPLES
247
247
  $ emb containers
248
248
  ```
249
249
 
250
- _See code: [src/commands/containers/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/containers/index.ts)_
250
+ _See code: [src/commands/containers/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/containers/index.ts)_
251
251
 
252
252
  ## `emb containers prune`
253
253
 
@@ -271,7 +271,7 @@ EXAMPLES
271
271
  $ emb containers prune
272
272
  ```
273
273
 
274
- _See code: [src/commands/containers/prune.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/containers/prune.ts)_
274
+ _See code: [src/commands/containers/prune.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/containers/prune.ts)_
275
275
 
276
276
  ## `emb down`
277
277
 
@@ -296,7 +296,7 @@ EXAMPLES
296
296
  $ emb down
297
297
  ```
298
298
 
299
- _See code: [src/commands/down.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/down.ts)_
299
+ _See code: [src/commands/down.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/down.ts)_
300
300
 
301
301
  ## `emb help [COMMAND]`
302
302
 
@@ -342,7 +342,7 @@ EXAMPLES
342
342
  $ emb images
343
343
  ```
344
344
 
345
- _See code: [src/commands/images/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/images/index.ts)_
345
+ _See code: [src/commands/images/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/images/index.ts)_
346
346
 
347
347
  ## `emb images delete`
348
348
 
@@ -367,7 +367,7 @@ EXAMPLES
367
367
  $ emb images delete
368
368
  ```
369
369
 
370
- _See code: [src/commands/images/delete.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/images/delete.ts)_
370
+ _See code: [src/commands/images/delete.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/images/delete.ts)_
371
371
 
372
372
  ## `emb images prune`
373
373
 
@@ -392,7 +392,7 @@ EXAMPLES
392
392
  $ emb images prune
393
393
  ```
394
394
 
395
- _See code: [src/commands/images/prune.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/images/prune.ts)_
395
+ _See code: [src/commands/images/prune.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/images/prune.ts)_
396
396
 
397
397
  ## `emb images push`
398
398
 
@@ -421,7 +421,7 @@ EXAMPLES
421
421
  $ emb images push --registry my.registry.io --retag newtag
422
422
  ```
423
423
 
424
- _See code: [src/commands/images/push.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/images/push.ts)_
424
+ _See code: [src/commands/images/push.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/images/push.ts)_
425
425
 
426
426
  ## `emb kubernetes logs COMPONENT`
427
427
 
@@ -447,7 +447,7 @@ EXAMPLES
447
447
  $ emb kubernetes logs
448
448
  ```
449
449
 
450
- _See code: [src/commands/kubernetes/logs.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/kubernetes/logs.ts)_
450
+ _See code: [src/commands/kubernetes/logs.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/kubernetes/logs.ts)_
451
451
 
452
452
  ## `emb kubernetes ps`
453
453
 
@@ -470,7 +470,7 @@ EXAMPLES
470
470
  $ emb kubernetes ps
471
471
  ```
472
472
 
473
- _See code: [src/commands/kubernetes/ps.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/kubernetes/ps.ts)_
473
+ _See code: [src/commands/kubernetes/ps.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/kubernetes/ps.ts)_
474
474
 
475
475
  ## `emb kubernetes restart [DEPLOYMENT]`
476
476
 
@@ -495,7 +495,7 @@ EXAMPLES
495
495
  $ emb kubernetes restart
496
496
  ```
497
497
 
498
- _See code: [src/commands/kubernetes/restart.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/kubernetes/restart.ts)_
498
+ _See code: [src/commands/kubernetes/restart.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/kubernetes/restart.ts)_
499
499
 
500
500
  ## `emb kubernetes shell COMPONENT`
501
501
 
@@ -524,7 +524,7 @@ EXAMPLES
524
524
  $ emb kubernetes shell
525
525
  ```
526
526
 
527
- _See code: [src/commands/kubernetes/shell.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/kubernetes/shell.ts)_
527
+ _See code: [src/commands/kubernetes/shell.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/kubernetes/shell.ts)_
528
528
 
529
529
  ## `emb logs [COMPONENT]`
530
530
 
@@ -555,7 +555,7 @@ EXAMPLES
555
555
  $ emb logs --no-follow backend
556
556
  ```
557
557
 
558
- _See code: [src/commands/logs/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/logs/index.ts)_
558
+ _See code: [src/commands/logs/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/logs/index.ts)_
559
559
 
560
560
  ## `emb logs archive [COMPONENT]`
561
561
 
@@ -591,7 +591,7 @@ EXAMPLES
591
591
  $ emb logs archive --tail 1000
592
592
  ```
593
593
 
594
- _See code: [src/commands/logs/archive.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/logs/archive.ts)_
594
+ _See code: [src/commands/logs/archive.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/logs/archive.ts)_
595
595
 
596
596
  ## `emb ps`
597
597
 
@@ -614,7 +614,7 @@ EXAMPLES
614
614
  $ emb ps
615
615
  ```
616
616
 
617
- _See code: [src/commands/ps.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/ps.ts)_
617
+ _See code: [src/commands/ps.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/ps.ts)_
618
618
 
619
619
  ## `emb resources`
620
620
 
@@ -639,7 +639,7 @@ EXAMPLES
639
639
  $ emb resources
640
640
  ```
641
641
 
642
- _See code: [src/commands/resources/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/resources/index.ts)_
642
+ _See code: [src/commands/resources/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/resources/index.ts)_
643
643
 
644
644
  ## `emb resources build [COMPONENT]`
645
645
 
@@ -669,7 +669,7 @@ EXAMPLES
669
669
  $ emb resources build build --flavor development
670
670
  ```
671
671
 
672
- _See code: [src/commands/resources/build.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/resources/build.ts)_
672
+ _See code: [src/commands/resources/build.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/resources/build.ts)_
673
673
 
674
674
  ## `emb restart [COMPONENT]`
675
675
 
@@ -697,7 +697,7 @@ EXAMPLES
697
697
  $ emb restart
698
698
  ```
699
699
 
700
- _See code: [src/commands/restart.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/restart.ts)_
700
+ _See code: [src/commands/restart.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/restart.ts)_
701
701
 
702
702
  ## `emb run TASK`
703
703
 
@@ -755,7 +755,7 @@ EXAMPLES
755
755
  $ emb secrets --json
756
756
  ```
757
757
 
758
- _See code: [src/commands/secrets/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/secrets/index.ts)_
758
+ _See code: [src/commands/secrets/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/secrets/index.ts)_
759
759
 
760
760
  ## `emb secrets providers`
761
761
 
@@ -780,7 +780,7 @@ EXAMPLES
780
780
  $ emb secrets providers
781
781
  ```
782
782
 
783
- _See code: [src/commands/secrets/providers.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/secrets/providers.ts)_
783
+ _See code: [src/commands/secrets/providers.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/secrets/providers.ts)_
784
784
 
785
785
  ## `emb secrets validate`
786
786
 
@@ -810,7 +810,7 @@ EXAMPLES
810
810
  $ emb secrets validate --json
811
811
  ```
812
812
 
813
- _See code: [src/commands/secrets/validate.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/secrets/validate.ts)_
813
+ _See code: [src/commands/secrets/validate.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/secrets/validate.ts)_
814
814
 
815
815
  ## `emb shell COMPONENT`
816
816
 
@@ -863,7 +863,7 @@ EXAMPLES
863
863
  $ emb start
864
864
  ```
865
865
 
866
- _See code: [src/commands/start.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/start.ts)_
866
+ _See code: [src/commands/start.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/start.ts)_
867
867
 
868
868
  ## `emb stop`
869
869
 
@@ -888,7 +888,7 @@ EXAMPLES
888
888
  $ emb stop
889
889
  ```
890
890
 
891
- _See code: [src/commands/stop.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/stop.ts)_
891
+ _See code: [src/commands/stop.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/stop.ts)_
892
892
 
893
893
  ## `emb tasks`
894
894
 
@@ -912,7 +912,7 @@ EXAMPLES
912
912
  $ emb tasks
913
913
  ```
914
914
 
915
- _See code: [src/commands/tasks/index.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/tasks/index.ts)_
915
+ _See code: [src/commands/tasks/index.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/tasks/index.ts)_
916
916
 
917
917
  ## `emb tasks run TASK`
918
918
 
@@ -945,7 +945,7 @@ EXAMPLES
945
945
  $ emb tasks run
946
946
  ```
947
947
 
948
- _See code: [src/commands/tasks/run.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/tasks/run.ts)_
948
+ _See code: [src/commands/tasks/run.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/tasks/run.ts)_
949
949
 
950
950
  ## `emb up [COMPONENT]`
951
951
 
@@ -974,7 +974,7 @@ EXAMPLES
974
974
  $ emb up
975
975
  ```
976
976
 
977
- _See code: [src/commands/up.ts](https://github.com/enspirit/emb/blob/v0.20.2/src/commands/up.ts)_
977
+ _See code: [src/commands/up.ts](https://github.com/enspirit/emb/blob/v0.22.0/src/commands/up.ts)_
978
978
 
979
979
  ## `emb update [CHANNEL]`
980
980
 
@@ -207,6 +207,14 @@
207
207
  "DockerImageConfig": {
208
208
  "type": "object",
209
209
  "properties": {
210
+ "image": {
211
+ "type": "string",
212
+ "description": "Image name (without project prefix or tag). Defaults to component name."
213
+ },
214
+ "tag": {
215
+ "type": "string",
216
+ "description": "Image tag. Defaults to defaults.docker.tag or 'latest'."
217
+ },
210
218
  "buildArgs": {
211
219
  "type": "object",
212
220
  "properties": {},
@@ -50,7 +50,7 @@ export class PushImagesOperation extends AbstractOperation {
50
50
  });
51
51
  return manager.run([
52
52
  {
53
- title: 'Push imags',
53
+ title: 'Push images',
54
54
  async task(ctx, task) {
55
55
  return task.newListr(tasks, {
56
56
  rendererOptions: {
@@ -19,22 +19,10 @@ class DockerImageResourceBuilder extends SentinelFileBasedBuilder {
19
19
  : buildContext.monorepo.join(buildContext.component.rootDir);
20
20
  }
21
21
  async getReference() {
22
- const configTag = this.config?.tag;
23
- let imageNamePart;
24
- let tagPart;
25
- if (configTag && configTag.includes(':')) {
26
- // config.tag contains both image name and tag (e.g., "myimage:v1.0.0")
27
- const colonIndex = configTag.lastIndexOf(':');
28
- imageNamePart = configTag.slice(0, colonIndex);
29
- tagPart = configTag.slice(colonIndex + 1);
30
- }
31
- else {
32
- // config.tag is just an image name or undefined
33
- imageNamePart = configTag || this.component.name;
34
- tagPart = this.monorepo.defaults.docker?.tag || 'latest';
35
- }
36
- const imageName = [this.monorepo.name, imageNamePart].join('/');
37
- return this.monorepo.expand(`${imageName}:${tagPart}`);
22
+ const imageName = this.config?.image || this.component.name;
23
+ const tag = this.config?.tag || this.monorepo.defaults.docker?.tag || 'latest';
24
+ const fullImageName = [this.monorepo.name, imageName].join('/');
25
+ return this.monorepo.expand(`${fullImageName}:${tag}`);
38
26
  }
39
27
  get monorepo() {
40
28
  return this.buildContext.monorepo;
@@ -53,6 +41,8 @@ class DockerImageResourceBuilder extends SentinelFileBasedBuilder {
53
41
  .withRelativePaths()
54
42
  .crawl(this.dockerContext)
55
43
  .withPromise();
44
+ // Build operation input - note that 'image' from config is only used for
45
+ // getReference(), it's not passed to the build operation
56
46
  const buildParams = {
57
47
  context: this.dockerContext,
58
48
  dockerfile: this.config?.dockerfile || 'Dockerfile',
@@ -3,6 +3,7 @@ import * as z from 'zod';
3
3
  import { AbstractOperation } from '../../../operations/index.js';
4
4
  declare const schema: z.ZodObject<{
5
5
  path: z.ZodString;
6
+ content: z.ZodOptional<z.ZodString>;
6
7
  script: z.ZodOptional<z.ZodString>;
7
8
  cwd: z.ZodOptional<z.ZodString>;
8
9
  force: z.ZodOptional<z.ZodBoolean>;
@@ -1,10 +1,11 @@
1
1
  import { execa } from 'execa';
2
- import { open, statfs, utimes } from 'node:fs/promises';
2
+ import { open, statfs, utimes, writeFile } from 'node:fs/promises';
3
3
  import * as z from 'zod';
4
4
  import { AbstractOperation } from '../../../operations/index.js';
5
5
  const schema = z.object({
6
6
  //
7
7
  path: z.string().describe('Path to the file to create'),
8
+ content: z.string().optional().describe('Content to write to the file'),
8
9
  script: z.string().optional().describe('The script to generate the file'),
9
10
  cwd: z.string().optional().describe('Working directory to execute scripts'),
10
11
  force: z
@@ -25,6 +26,7 @@ export class CreateFileOperation extends AbstractOperation {
25
26
  if (input.force) {
26
27
  await utimes(input.path, Date.now(), Date.now());
27
28
  }
29
+ return;
28
30
  }
29
31
  catch (error) {
30
32
  // Ignore ENOENT error (file does not exist)
@@ -32,7 +34,10 @@ export class CreateFileOperation extends AbstractOperation {
32
34
  throw error;
33
35
  }
34
36
  }
35
- if (input.script) {
37
+ if (input.content !== undefined) {
38
+ await writeFile(input.path, input.content);
39
+ }
40
+ else if (input.script) {
36
41
  await execa(input.script, {
37
42
  all: true,
38
43
  cwd: input.cwd,
@@ -11,6 +11,7 @@ export declare class FileResourceBuilder implements IResourceBuilder<OpInput<Cre
11
11
  build(resource: ResourceInfo<OpInput<CreateFileOperation>>, out?: Writable): Promise<{
12
12
  input: {
13
13
  path: string;
14
+ content?: string | undefined;
14
15
  script?: string | undefined;
15
16
  cwd?: string | undefined;
16
17
  force?: boolean | undefined;
@@ -21,8 +21,14 @@ export class FileResourceBuilder {
21
21
  }
22
22
  }
23
23
  async build(resource, out) {
24
+ let content = resource.params?.content;
25
+ // Expand content with secrets if provided
26
+ if (content !== undefined) {
27
+ content = await this.context.monorepo.expand(content);
28
+ }
24
29
  const input = {
25
30
  path: await this.getPath(),
31
+ content,
26
32
  script: resource.params?.script,
27
33
  cwd: this.context.component.join('./'),
28
34
  };
@@ -1367,18 +1367,13 @@
1367
1367
  "index.js"
1368
1368
  ]
1369
1369
  },
1370
- "resources:build": {
1370
+ "secrets": {
1371
1371
  "aliases": [],
1372
- "args": {
1373
- "component": {
1374
- "description": "List of resources to build (defaults to all)",
1375
- "name": "component",
1376
- "required": false
1377
- }
1378
- },
1379
- "description": "Build the resources of the monorepo",
1372
+ "args": {},
1373
+ "description": "List all secret references in the configuration.",
1380
1374
  "examples": [
1381
- "<%= config.bin %> <%= command.id %> build --flavor development"
1375
+ "<%= config.bin %> <%= command.id %>",
1376
+ "<%= config.bin %> <%= command.id %> --json"
1382
1377
  ],
1383
1378
  "flags": {
1384
1379
  "json": {
@@ -1409,30 +1404,15 @@
1409
1404
  "hasDynamicHelp": false,
1410
1405
  "multiple": false,
1411
1406
  "type": "option"
1412
- },
1413
- "dry-run": {
1414
- "description": "Do not build the resources but only produce build meta information",
1415
- "name": "dry-run",
1416
- "required": false,
1417
- "allowNo": false,
1418
- "type": "boolean"
1419
- },
1420
- "force": {
1421
- "char": "f",
1422
- "description": "Bypass the cache and force the build",
1423
- "name": "force",
1424
- "required": false,
1425
- "allowNo": false,
1426
- "type": "boolean"
1427
1407
  }
1428
1408
  },
1429
1409
  "hasDynamicHelp": false,
1430
1410
  "hiddenAliases": [],
1431
- "id": "resources:build",
1411
+ "id": "secrets",
1432
1412
  "pluginAlias": "@enspirit/emb",
1433
1413
  "pluginName": "@enspirit/emb",
1434
1414
  "pluginType": "core",
1435
- "strict": false,
1415
+ "strict": true,
1436
1416
  "enableJsonFlag": true,
1437
1417
  "isESM": true,
1438
1418
  "relativePath": [
@@ -1440,14 +1420,14 @@
1440
1420
  "src",
1441
1421
  "cli",
1442
1422
  "commands",
1443
- "resources",
1444
- "build.js"
1423
+ "secrets",
1424
+ "index.js"
1445
1425
  ]
1446
1426
  },
1447
- "resources": {
1427
+ "secrets:providers": {
1448
1428
  "aliases": [],
1449
1429
  "args": {},
1450
- "description": "List resources.",
1430
+ "description": "Show configured secret providers and their status.",
1451
1431
  "examples": [
1452
1432
  "<%= config.bin %> <%= command.id %>"
1453
1433
  ],
@@ -1484,7 +1464,7 @@
1484
1464
  },
1485
1465
  "hasDynamicHelp": false,
1486
1466
  "hiddenAliases": [],
1487
- "id": "resources",
1467
+ "id": "secrets:providers",
1488
1468
  "pluginAlias": "@enspirit/emb",
1489
1469
  "pluginName": "@enspirit/emb",
1490
1470
  "pluginType": "core",
@@ -1496,16 +1476,17 @@
1496
1476
  "src",
1497
1477
  "cli",
1498
1478
  "commands",
1499
- "resources",
1500
- "index.js"
1479
+ "secrets",
1480
+ "providers.js"
1501
1481
  ]
1502
1482
  },
1503
- "secrets": {
1483
+ "secrets:validate": {
1504
1484
  "aliases": [],
1505
1485
  "args": {},
1506
- "description": "List all secret references in the configuration.",
1486
+ "description": "Validate that all secret references can be resolved (without showing values).",
1507
1487
  "examples": [
1508
1488
  "<%= config.bin %> <%= command.id %>",
1489
+ "<%= config.bin %> <%= command.id %> --fail-fast",
1509
1490
  "<%= config.bin %> <%= command.id %> --json"
1510
1491
  ],
1511
1492
  "flags": {
@@ -1537,11 +1518,17 @@
1537
1518
  "hasDynamicHelp": false,
1538
1519
  "multiple": false,
1539
1520
  "type": "option"
1521
+ },
1522
+ "fail-fast": {
1523
+ "description": "Stop on first validation error",
1524
+ "name": "fail-fast",
1525
+ "allowNo": false,
1526
+ "type": "boolean"
1540
1527
  }
1541
1528
  },
1542
1529
  "hasDynamicHelp": false,
1543
1530
  "hiddenAliases": [],
1544
- "id": "secrets",
1531
+ "id": "secrets:validate",
1545
1532
  "pluginAlias": "@enspirit/emb",
1546
1533
  "pluginName": "@enspirit/emb",
1547
1534
  "pluginType": "core",
@@ -1554,15 +1541,21 @@
1554
1541
  "cli",
1555
1542
  "commands",
1556
1543
  "secrets",
1557
- "index.js"
1544
+ "validate.js"
1558
1545
  ]
1559
1546
  },
1560
- "secrets:providers": {
1547
+ "resources:build": {
1561
1548
  "aliases": [],
1562
- "args": {},
1563
- "description": "Show configured secret providers and their status.",
1549
+ "args": {
1550
+ "component": {
1551
+ "description": "List of resources to build (defaults to all)",
1552
+ "name": "component",
1553
+ "required": false
1554
+ }
1555
+ },
1556
+ "description": "Build the resources of the monorepo",
1564
1557
  "examples": [
1565
- "<%= config.bin %> <%= command.id %>"
1558
+ "<%= config.bin %> <%= command.id %> build --flavor development"
1566
1559
  ],
1567
1560
  "flags": {
1568
1561
  "json": {
@@ -1593,15 +1586,30 @@
1593
1586
  "hasDynamicHelp": false,
1594
1587
  "multiple": false,
1595
1588
  "type": "option"
1589
+ },
1590
+ "dry-run": {
1591
+ "description": "Do not build the resources but only produce build meta information",
1592
+ "name": "dry-run",
1593
+ "required": false,
1594
+ "allowNo": false,
1595
+ "type": "boolean"
1596
+ },
1597
+ "force": {
1598
+ "char": "f",
1599
+ "description": "Bypass the cache and force the build",
1600
+ "name": "force",
1601
+ "required": false,
1602
+ "allowNo": false,
1603
+ "type": "boolean"
1596
1604
  }
1597
1605
  },
1598
1606
  "hasDynamicHelp": false,
1599
1607
  "hiddenAliases": [],
1600
- "id": "secrets:providers",
1608
+ "id": "resources:build",
1601
1609
  "pluginAlias": "@enspirit/emb",
1602
1610
  "pluginName": "@enspirit/emb",
1603
1611
  "pluginType": "core",
1604
- "strict": true,
1612
+ "strict": false,
1605
1613
  "enableJsonFlag": true,
1606
1614
  "isESM": true,
1607
1615
  "relativePath": [
@@ -1609,18 +1617,16 @@
1609
1617
  "src",
1610
1618
  "cli",
1611
1619
  "commands",
1612
- "secrets",
1613
- "providers.js"
1620
+ "resources",
1621
+ "build.js"
1614
1622
  ]
1615
1623
  },
1616
- "secrets:validate": {
1624
+ "resources": {
1617
1625
  "aliases": [],
1618
1626
  "args": {},
1619
- "description": "Validate that all secret references can be resolved (without showing values).",
1627
+ "description": "List resources.",
1620
1628
  "examples": [
1621
- "<%= config.bin %> <%= command.id %>",
1622
- "<%= config.bin %> <%= command.id %> --fail-fast",
1623
- "<%= config.bin %> <%= command.id %> --json"
1629
+ "<%= config.bin %> <%= command.id %>"
1624
1630
  ],
1625
1631
  "flags": {
1626
1632
  "json": {
@@ -1651,17 +1657,11 @@
1651
1657
  "hasDynamicHelp": false,
1652
1658
  "multiple": false,
1653
1659
  "type": "option"
1654
- },
1655
- "fail-fast": {
1656
- "description": "Stop on first validation error",
1657
- "name": "fail-fast",
1658
- "allowNo": false,
1659
- "type": "boolean"
1660
1660
  }
1661
1661
  },
1662
1662
  "hasDynamicHelp": false,
1663
1663
  "hiddenAliases": [],
1664
- "id": "secrets:validate",
1664
+ "id": "resources",
1665
1665
  "pluginAlias": "@enspirit/emb",
1666
1666
  "pluginName": "@enspirit/emb",
1667
1667
  "pluginType": "core",
@@ -1673,8 +1673,8 @@
1673
1673
  "src",
1674
1674
  "cli",
1675
1675
  "commands",
1676
- "secrets",
1677
- "validate.js"
1676
+ "resources",
1677
+ "index.js"
1678
1678
  ]
1679
1679
  },
1680
1680
  "tasks": {
@@ -1801,5 +1801,5 @@
1801
1801
  ]
1802
1802
  }
1803
1803
  },
1804
- "version": "0.20.2"
1804
+ "version": "0.22.0"
1805
1805
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@enspirit/emb",
3
3
  "type": "module",
4
- "version": "0.20.2",
4
+ "version": "0.22.0",
5
5
  "keywords": [
6
6
  "monorepo",
7
7
  "docker",