@empire-builder-kit/containers 0.0.1-alpha.4

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 (81) hide show
  1. package/README.md +20 -0
  2. package/dist/executors.json +3 -0
  3. package/dist/generators/service/files-go/Dockerfile.template +11 -0
  4. package/dist/generators/service/files-go/README.md.template +11 -0
  5. package/dist/generators/service/files-go/cmd/main.go.template +34 -0
  6. package/dist/generators/service/files-go/docs/contracts.md.template +9 -0
  7. package/dist/generators/service/files-go/go.mod.template +3 -0
  8. package/dist/generators/service/files-python/Dockerfile.template +12 -0
  9. package/dist/generators/service/files-python/README.md.template +11 -0
  10. package/dist/generators/service/files-python/docs/contracts.md.template +9 -0
  11. package/dist/generators/service/files-python/pyproject.toml.template +15 -0
  12. package/dist/generators/service/files-python/src/main.py.template +20 -0
  13. package/dist/generators/service/files-rust/Cargo.toml.template +16 -0
  14. package/dist/generators/service/files-rust/Dockerfile.template +12 -0
  15. package/dist/generators/service/files-rust/README.md.template +11 -0
  16. package/dist/generators/service/files-rust/docs/contracts.md.template +9 -0
  17. package/dist/generators/service/files-rust/src/main.rs.template +29 -0
  18. package/dist/generators/service/files-typescript/Dockerfile.template +30 -0
  19. package/dist/generators/service/files-typescript/README.md.template +24 -0
  20. package/dist/generators/service/files-typescript/docs/architecture.md.template +18 -0
  21. package/dist/generators/service/files-typescript/docs/contracts.md.template +20 -0
  22. package/dist/generators/service/files-typescript/docs/operations.md.template +24 -0
  23. package/dist/generators/service/files-typescript/eslint.config.mjs.template +3 -0
  24. package/dist/generators/service/files-typescript/infra/service.ts.template +64 -0
  25. package/dist/generators/service/files-typescript/package.json.template +7 -0
  26. package/dist/generators/service/files-typescript/src/index.ts.template +2 -0
  27. package/dist/generators/service/files-typescript/src/main.ts.template +60 -0
  28. package/dist/generators/service/files-typescript/src/service.spec.ts.template +49 -0
  29. package/dist/generators/service/files-typescript/src/service.ts.template +57 -0
  30. package/dist/generators/service/files-typescript/tsconfig.app.json.template +12 -0
  31. package/dist/generators/service/files-typescript/tsconfig.json.template +7 -0
  32. package/dist/generators/service/files-typescript/tsconfig.spec.json.template +7 -0
  33. package/dist/generators/service/files-typescript/vitest.config.mts.template +17 -0
  34. package/dist/generators/service/schema.d.ts +8 -0
  35. package/dist/generators/service/schema.json +40 -0
  36. package/dist/generators/service/service.d.ts +5 -0
  37. package/dist/generators/service/service.d.ts.map +1 -0
  38. package/dist/generators/service/service.js +198 -0
  39. package/dist/generators/task/files-go/Dockerfile.template +10 -0
  40. package/dist/generators/task/files-go/README.md.template +11 -0
  41. package/dist/generators/task/files-go/cmd/main.go.template +22 -0
  42. package/dist/generators/task/files-go/docs/contracts.md.template +9 -0
  43. package/dist/generators/task/files-go/go.mod.template +3 -0
  44. package/dist/generators/task/files-python/Dockerfile.template +10 -0
  45. package/dist/generators/task/files-python/README.md.template +11 -0
  46. package/dist/generators/task/files-python/docs/contracts.md.template +9 -0
  47. package/dist/generators/task/files-python/pyproject.toml.template +12 -0
  48. package/dist/generators/task/files-python/src/main.py.template +26 -0
  49. package/dist/generators/task/files-rust/Cargo.toml.template +15 -0
  50. package/dist/generators/task/files-rust/Dockerfile.template +11 -0
  51. package/dist/generators/task/files-rust/README.md.template +11 -0
  52. package/dist/generators/task/files-rust/docs/contracts.md.template +9 -0
  53. package/dist/generators/task/files-rust/src/main.rs.template +12 -0
  54. package/dist/generators/task/files-typescript/Dockerfile.template +25 -0
  55. package/dist/generators/task/files-typescript/README.md.template +24 -0
  56. package/dist/generators/task/files-typescript/docs/architecture.md.template +18 -0
  57. package/dist/generators/task/files-typescript/docs/contracts.md.template +20 -0
  58. package/dist/generators/task/files-typescript/docs/operations.md.template +24 -0
  59. package/dist/generators/task/files-typescript/eslint.config.mjs.template +3 -0
  60. package/dist/generators/task/files-typescript/infra/task.ts.template +35 -0
  61. package/dist/generators/task/files-typescript/package.json.template +7 -0
  62. package/dist/generators/task/files-typescript/src/index.ts.template +6 -0
  63. package/dist/generators/task/files-typescript/src/main.ts.template +45 -0
  64. package/dist/generators/task/files-typescript/src/task.spec.ts.template +66 -0
  65. package/dist/generators/task/files-typescript/src/task.ts.template +71 -0
  66. package/dist/generators/task/files-typescript/tsconfig.app.json.template +13 -0
  67. package/dist/generators/task/files-typescript/tsconfig.json.template +19 -0
  68. package/dist/generators/task/files-typescript/tsconfig.spec.json.template +11 -0
  69. package/dist/generators/task/files-typescript/vitest.config.mts.template +9 -0
  70. package/dist/generators/task/schema.d.ts +8 -0
  71. package/dist/generators/task/schema.json +40 -0
  72. package/dist/generators/task/task.d.ts +5 -0
  73. package/dist/generators/task/task.d.ts.map +1 -0
  74. package/dist/generators/task/task.js +198 -0
  75. package/dist/generators.json +14 -0
  76. package/dist/index.d.ts +3 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +7 -0
  79. package/executors.json +3 -0
  80. package/generators.json +14 -0
  81. package/package.json +92 -0
@@ -0,0 +1,45 @@
1
+ import { formatLogEvent, readTaskConfig, runTask, type TaskInput } from './task.js';
2
+
3
+ function readTaskInput(env: NodeJS.ProcessEnv = process.env): TaskInput {
4
+ const trigger = env.TASK_TRIGGER?.trim();
5
+
6
+ return {
7
+ trigger: trigger && trigger.length > 0 ? trigger : 'manual',
8
+ };
9
+ }
10
+
11
+ async function main() {
12
+ const config = readTaskConfig();
13
+ const input = readTaskInput();
14
+
15
+ console.log(
16
+ formatLogEvent(config, 'task.started', {
17
+ trigger: input.trigger,
18
+ })
19
+ );
20
+
21
+ const result = await runTask(config, input);
22
+
23
+ console.log(
24
+ formatLogEvent(config, 'task.completed', {
25
+ status: result.status,
26
+ trigger: result.trigger,
27
+ })
28
+ );
29
+
30
+ console.log(JSON.stringify(result));
31
+ }
32
+
33
+ void main().catch((error: unknown) => {
34
+ const message = error instanceof Error ? error.message : 'Unknown task failure';
35
+
36
+ console.error(
37
+ JSON.stringify({
38
+ level: 'error',
39
+ message: 'task.failed',
40
+ error: message,
41
+ })
42
+ );
43
+
44
+ process.exitCode = 1;
45
+ });
@@ -0,0 +1,66 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { createTaskResult, formatLogEvent, readTaskConfig, runTask } from './task.js';
3
+
4
+ describe('task helpers', () => {
5
+ it('falls back to task defaults', () => {
6
+ expect(readTaskConfig({})).toEqual({
7
+ taskName: '<%= className %>Task',
8
+ version: '0.0.1',
9
+ });
10
+ });
11
+
12
+ it('builds a stable task result', () => {
13
+ expect(
14
+ createTaskResult(
15
+ {
16
+ taskName: '<%= className %>Task',
17
+ version: '1.2.3',
18
+ },
19
+ { trigger: 'schedule' }
20
+ )
21
+ ).toEqual({
22
+ status: 'ok',
23
+ task: '<%= className %>Task',
24
+ trigger: 'schedule',
25
+ version: '1.2.3',
26
+ });
27
+ });
28
+
29
+ it('formats structured log output', () => {
30
+ expect(
31
+ formatLogEvent(
32
+ {
33
+ taskName: '<%= className %>Task',
34
+ version: '1.2.3',
35
+ },
36
+ 'task.started',
37
+ { trigger: 'manual' }
38
+ )
39
+ ).toBe(
40
+ JSON.stringify({
41
+ level: 'info',
42
+ message: 'task.started',
43
+ task: '<%= className %>Task',
44
+ version: '1.2.3',
45
+ trigger: 'manual',
46
+ })
47
+ );
48
+ });
49
+
50
+ it('runs the starter task', async () => {
51
+ await expect(
52
+ runTask(
53
+ {
54
+ taskName: '<%= className %>Task',
55
+ version: '1.2.3',
56
+ },
57
+ { trigger: 'queue' }
58
+ )
59
+ ).resolves.toEqual({
60
+ status: 'ok',
61
+ task: '<%= className %>Task',
62
+ trigger: 'queue',
63
+ version: '1.2.3',
64
+ });
65
+ });
66
+ });
@@ -0,0 +1,71 @@
1
+ export interface TaskConfig {
2
+ taskName: string;
3
+ version: string;
4
+ }
5
+
6
+ export interface TaskInput {
7
+ trigger: string;
8
+ }
9
+
10
+ export interface TaskResult {
11
+ status: 'ok';
12
+ task: string;
13
+ trigger: string;
14
+ version: string;
15
+ }
16
+
17
+ export interface LogContext {
18
+ [key: string]: string | number | boolean | null;
19
+ }
20
+
21
+ const DEFAULT_TASK_NAME = '<%= className %>Task';
22
+ const DEFAULT_TASK_VERSION = '0.0.1';
23
+
24
+ function readOptionalEnv(
25
+ env: NodeJS.ProcessEnv,
26
+ key: string,
27
+ fallback: string
28
+ ): string {
29
+ const value = env[key]?.trim();
30
+ return value && value.length > 0 ? value : fallback;
31
+ }
32
+
33
+ export function readTaskConfig(env: NodeJS.ProcessEnv = process.env): TaskConfig {
34
+ return {
35
+ taskName: readOptionalEnv(env, 'TASK_NAME', DEFAULT_TASK_NAME),
36
+ version: readOptionalEnv(env, 'TASK_VERSION', DEFAULT_TASK_VERSION),
37
+ };
38
+ }
39
+
40
+ export function createTaskResult(
41
+ config: TaskConfig,
42
+ input: TaskInput
43
+ ): TaskResult {
44
+ return {
45
+ status: 'ok',
46
+ task: config.taskName,
47
+ trigger: input.trigger,
48
+ version: config.version,
49
+ };
50
+ }
51
+
52
+ export async function runTask(
53
+ config: TaskConfig,
54
+ input: TaskInput
55
+ ): Promise<TaskResult> {
56
+ return createTaskResult(config, input);
57
+ }
58
+
59
+ export function formatLogEvent(
60
+ config: TaskConfig,
61
+ message: string,
62
+ context: LogContext = {}
63
+ ): string {
64
+ return JSON.stringify({
65
+ level: 'info',
66
+ message,
67
+ task: config.taskName,
68
+ version: config.version,
69
+ ...context,
70
+ });
71
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "composite": true,
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "tsBuildInfoFile": "./dist/tsconfig.app.tsbuildinfo"
10
+ },
11
+ "include": ["src/**/*.ts"],
12
+ "exclude": ["src/**/*.spec.ts"]
13
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "extends": "<%= offsetFromRoot %>tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "module": "nodenext",
5
+ "moduleResolution": "nodenext",
6
+ "target": "ES2022",
7
+ "types": ["node", "vitest/globals"]
8
+ },
9
+ "files": [],
10
+ "include": [],
11
+ "references": [
12
+ {
13
+ "path": "./tsconfig.app.json"
14
+ },
15
+ {
16
+ "path": "./tsconfig.spec.json"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "composite": true,
5
+ "module": "nodenext",
6
+ "moduleResolution": "nodenext",
7
+ "noEmit": true,
8
+ "tsBuildInfoFile": "./dist/tsconfig.spec.tsbuildinfo"
9
+ },
10
+ "include": ["src/**/*.spec.ts", "src/**/*.test.ts"]
11
+ }
@@ -0,0 +1,9 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ environment: 'node',
6
+ globals: true,
7
+ include: ['src/**/*.spec.ts'],
8
+ },
9
+ });
@@ -0,0 +1,8 @@
1
+ export interface TaskGeneratorSchema {
2
+ name: string;
3
+ app: string;
4
+ language?: 'typescript' | 'rust' | 'go' | 'python';
5
+ directory?: string;
6
+ skipFormat?: boolean;
7
+ tags?: string;
8
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "Task",
4
+ "title": "Generate an EBK container task",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "Name for the task within the app group.",
10
+ "$default": { "$source": "argv", "index": 0 },
11
+ "x-prompt": "What name should the task have?"
12
+ },
13
+ "app": {
14
+ "type": "string",
15
+ "description": "Owning Empire Builder Kit app-group name.",
16
+ "x-prompt": "Which app group should receive the task?"
17
+ },
18
+ "language": {
19
+ "type": "string",
20
+ "description": "Programming language for the task.",
21
+ "enum": ["typescript", "rust", "go", "python"],
22
+ "default": "typescript"
23
+ },
24
+ "directory": {
25
+ "type": "string",
26
+ "description": "Base directory for app groups.",
27
+ "default": "packages"
28
+ },
29
+ "tags": {
30
+ "type": "string",
31
+ "description": "Comma-separated additional tags to apply to the project."
32
+ },
33
+ "skipFormat": {
34
+ "type": "boolean",
35
+ "description": "Skip formatting files.",
36
+ "default": false
37
+ }
38
+ },
39
+ "required": ["name", "app"]
40
+ }
@@ -0,0 +1,5 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { TaskGeneratorSchema } from './schema';
3
+ export declare function taskGenerator(tree: Tree, options: TaskGeneratorSchema): Promise<void>;
4
+ export default taskGenerator;
5
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/generators/task/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,IAAI,EACL,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA+M/C,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,iBA6C3E;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.taskGenerator = taskGenerator;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const path = tslib_1.__importStar(require("node:path"));
7
+ function runtimeForLanguage(language) {
8
+ switch (language) {
9
+ case 'typescript':
10
+ return 'node';
11
+ case 'rust':
12
+ return 'native';
13
+ case 'go':
14
+ return 'native';
15
+ case 'python':
16
+ return 'python';
17
+ }
18
+ }
19
+ function targetsForLanguage(language, projectRoot, projectName, outputPath) {
20
+ const cwd = projectRoot;
21
+ switch (language) {
22
+ case 'typescript':
23
+ return {
24
+ build: {
25
+ executor: 'nx:run-commands',
26
+ outputs: [`{workspaceRoot}/${outputPath}`],
27
+ options: { cwd, command: 'tsc -p tsconfig.app.json' },
28
+ },
29
+ lint: {
30
+ executor: 'nx:run-commands',
31
+ options: { cwd, command: 'eslint .' },
32
+ },
33
+ typecheck: {
34
+ executor: 'nx:run-commands',
35
+ options: { cwd, command: 'tsc --noEmit -p tsconfig.json' },
36
+ },
37
+ test: {
38
+ executor: 'nx:run-commands',
39
+ options: {
40
+ cwd,
41
+ command: 'vitest run --config vitest.config.mts',
42
+ },
43
+ },
44
+ dev: {
45
+ executor: 'nx:run-commands',
46
+ options: {
47
+ cwd,
48
+ command: 'node --watch --enable-source-maps --import @swc-node/register/esm-register src/main.ts',
49
+ },
50
+ },
51
+ 'docker-build': {
52
+ executor: 'nx:run-commands',
53
+ options: {
54
+ command: `docker build --tag ${projectName} ${projectRoot}`,
55
+ },
56
+ },
57
+ };
58
+ case 'rust':
59
+ return {
60
+ build: {
61
+ executor: 'nx:run-commands',
62
+ options: { cwd, command: 'cargo build --release' },
63
+ },
64
+ lint: {
65
+ executor: 'nx:run-commands',
66
+ options: { cwd, command: 'cargo clippy -- -D warnings' },
67
+ },
68
+ test: {
69
+ executor: 'nx:run-commands',
70
+ options: { cwd, command: 'cargo test' },
71
+ },
72
+ dev: {
73
+ executor: 'nx:run-commands',
74
+ options: { cwd, command: 'cargo run' },
75
+ },
76
+ 'docker-build': {
77
+ executor: 'nx:run-commands',
78
+ options: {
79
+ command: `docker build --tag ${projectName} ${projectRoot}`,
80
+ },
81
+ },
82
+ };
83
+ case 'go':
84
+ return {
85
+ build: {
86
+ executor: 'nx:run-commands',
87
+ options: { cwd, command: 'go build -o bin/task ./cmd/...' },
88
+ },
89
+ lint: {
90
+ executor: 'nx:run-commands',
91
+ options: { cwd, command: 'golangci-lint run' },
92
+ },
93
+ typecheck: {
94
+ executor: 'nx:run-commands',
95
+ options: { cwd, command: 'go vet ./...' },
96
+ },
97
+ test: {
98
+ executor: 'nx:run-commands',
99
+ options: { cwd, command: 'go test ./...' },
100
+ },
101
+ dev: {
102
+ executor: 'nx:run-commands',
103
+ options: { cwd, command: 'go run ./cmd/...' },
104
+ },
105
+ 'docker-build': {
106
+ executor: 'nx:run-commands',
107
+ options: {
108
+ command: `docker build --tag ${projectName} ${projectRoot}`,
109
+ },
110
+ },
111
+ };
112
+ case 'python':
113
+ return {
114
+ lint: {
115
+ executor: 'nx:run-commands',
116
+ options: { cwd, command: 'ruff check .' },
117
+ },
118
+ typecheck: {
119
+ executor: 'nx:run-commands',
120
+ options: { cwd, command: 'mypy src/' },
121
+ },
122
+ test: {
123
+ executor: 'nx:run-commands',
124
+ options: { cwd, command: 'pytest' },
125
+ },
126
+ dev: {
127
+ executor: 'nx:run-commands',
128
+ options: { cwd, command: 'python src/main.py' },
129
+ },
130
+ 'docker-build': {
131
+ executor: 'nx:run-commands',
132
+ options: {
133
+ command: `docker build --tag ${projectName} ${projectRoot}`,
134
+ },
135
+ },
136
+ };
137
+ }
138
+ }
139
+ function normalizeOptions(options) {
140
+ const appNames = (0, devkit_1.names)(options.app);
141
+ const taskNames = (0, devkit_1.names)(options.name);
142
+ const language = options.language ?? 'typescript';
143
+ const directory = (options.directory ?? 'packages').replace(/\\/g, '/');
144
+ const projectRoot = (0, devkit_1.joinPathFragments)(directory, appNames.fileName, 'apps', 'task', taskNames.fileName);
145
+ const userTags = options.tags
146
+ ?.split(',')
147
+ .map((tag) => tag.trim())
148
+ .filter(Boolean) ?? [];
149
+ return {
150
+ app: appNames.fileName,
151
+ appName: appNames.fileName,
152
+ className: appNames.className,
153
+ directory,
154
+ language,
155
+ name: taskNames.fileName,
156
+ offsetFromRoot: (0, devkit_1.offsetFromRoot)(projectRoot),
157
+ outputPath: (0, devkit_1.joinPathFragments)('dist', projectRoot),
158
+ projectName: `${appNames.fileName}-task-${taskNames.fileName}`,
159
+ projectRoot,
160
+ projectTitle: `${appNames.className} Task ${taskNames.className}`,
161
+ skipFormat: options.skipFormat,
162
+ tags: [
163
+ `scope:${appNames.fileName}`,
164
+ 'layer:app',
165
+ 'type:task',
166
+ `runtime:${runtimeForLanguage(language)}`,
167
+ 'deploy:container',
168
+ 'visibility:internal',
169
+ ...userTags,
170
+ ],
171
+ };
172
+ }
173
+ async function taskGenerator(tree, options) {
174
+ const normalized = normalizeOptions(options);
175
+ const appRoot = (0, devkit_1.joinPathFragments)(normalized.directory, normalized.appName);
176
+ if (!tree.exists(appRoot)) {
177
+ throw new Error(`App group "${normalized.app}" does not exist at "${appRoot}". Generate the app group first.`);
178
+ }
179
+ if (tree.exists((0, devkit_1.joinPathFragments)(normalized.projectRoot, 'project.json')) ||
180
+ tree.exists((0, devkit_1.joinPathFragments)(normalized.projectRoot, 'package.json'))) {
181
+ throw new Error(`Task "${normalized.name}" already exists at "${normalized.projectRoot}".`);
182
+ }
183
+ (0, devkit_1.addProjectConfiguration)(tree, normalized.projectName, {
184
+ root: normalized.projectRoot,
185
+ projectType: 'application',
186
+ sourceRoot: `${normalized.projectRoot}/src`,
187
+ tags: normalized.tags,
188
+ targets: targetsForLanguage(normalized.language, normalized.projectRoot, normalized.projectName, normalized.outputPath),
189
+ });
190
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, `files-${normalized.language}`), normalized.projectRoot, {
191
+ ...normalized,
192
+ tmpl: '',
193
+ });
194
+ if (!normalized.skipFormat) {
195
+ await (0, devkit_1.formatFiles)(tree);
196
+ }
197
+ }
198
+ exports.default = taskGenerator;
@@ -0,0 +1,14 @@
1
+ {
2
+ "generators": {
3
+ "service": {
4
+ "factory": "./dist/generators/service/service",
5
+ "schema": "./dist/generators/service/schema.json",
6
+ "description": "Generate service artifacts for @empire-builder-kit/containers."
7
+ },
8
+ "task": {
9
+ "factory": "./dist/generators/task/task",
10
+ "schema": "./dist/generators/task/schema.json",
11
+ "description": "Generate task artifacts for @empire-builder-kit/containers."
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ export { serviceGenerator } from './generators/service/service.js';
2
+ export { taskGenerator } from './generators/task/task.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.taskGenerator = exports.serviceGenerator = void 0;
4
+ var service_js_1 = require("./generators/service/service.js");
5
+ Object.defineProperty(exports, "serviceGenerator", { enumerable: true, get: function () { return service_js_1.serviceGenerator; } });
6
+ var task_js_1 = require("./generators/task/task.js");
7
+ Object.defineProperty(exports, "taskGenerator", { enumerable: true, get: function () { return task_js_1.taskGenerator; } });
package/executors.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "executors": {}
3
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "generators": {
3
+ "service": {
4
+ "factory": "./dist/generators/service/service",
5
+ "schema": "./dist/generators/service/schema.json",
6
+ "description": "Generate service artifacts for @empire-builder-kit/containers."
7
+ },
8
+ "task": {
9
+ "factory": "./dist/generators/task/task",
10
+ "schema": "./dist/generators/task/schema.json",
11
+ "description": "Generate task artifacts for @empire-builder-kit/containers."
12
+ }
13
+ }
14
+ }
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@empire-builder-kit/containers",
3
+ "version": "0.0.1-alpha.4",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "provenance": true
7
+ },
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ "./package.json": "./package.json",
13
+ ".": {
14
+ "@org/source": "./src/index.ts",
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "nx": {
21
+ "name": "@empire-builder-kit/containers",
22
+ "targets": {
23
+ "build": {
24
+ "executor": "@nx/js:tsc",
25
+ "outputs": [
26
+ "{options.outputPath}"
27
+ ],
28
+ "options": {
29
+ "outputPath": "packages/containers/dist",
30
+ "main": "packages/containers/src/index.ts",
31
+ "tsConfig": "packages/containers/tsconfig.lib.json",
32
+ "rootDir": "packages/containers/src",
33
+ "generatePackageJson": false,
34
+ "assets": [
35
+ {
36
+ "input": "./packages/containers/src",
37
+ "glob": "**/!(*.ts)",
38
+ "output": "."
39
+ },
40
+ {
41
+ "input": "./packages/containers/src",
42
+ "glob": "**/.*",
43
+ "output": "."
44
+ },
45
+ {
46
+ "input": "./packages/containers/src",
47
+ "glob": "**/*.d.ts",
48
+ "output": "."
49
+ },
50
+ {
51
+ "input": "./packages/containers",
52
+ "glob": "generators.json",
53
+ "output": "."
54
+ },
55
+ {
56
+ "input": "./packages/containers",
57
+ "glob": "executors.json",
58
+ "output": "."
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ },
64
+ "tags": [
65
+ "scope:workspace",
66
+ "layer:tooling",
67
+ "visibility:public"
68
+ ]
69
+ },
70
+ "dependencies": {
71
+ "@nx/devkit": "22.6.5",
72
+ "tslib": "^2.3.0",
73
+ "vitest": "4.1.4"
74
+ },
75
+ "generators": "./generators.json",
76
+ "executors": "./executors.json",
77
+ "files": [
78
+ "dist",
79
+ "!**/*.tsbuildinfo",
80
+ "generators.json",
81
+ "executors.json"
82
+ ],
83
+ "repository": {
84
+ "type": "git",
85
+ "url": "https://github.com/LukasGuptaLeary/empire-builder-kit.git",
86
+ "directory": "packages/containers"
87
+ },
88
+ "bugs": {
89
+ "url": "https://github.com/LukasGuptaLeary/empire-builder-kit/issues"
90
+ },
91
+ "homepage": "https://github.com/LukasGuptaLeary/empire-builder-kit#readme"
92
+ }