@ankhorage/infra 0.3.0 → 0.3.2
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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/{cli.d.ts → cli/bin.d.ts} +3 -3
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/{cli.js → cli/bin.js} +3 -3
- package/dist/cli/bin.js.map +1 -0
- package/dist/{ankh.provider.d.ts → cli/index.d.ts} +2 -2
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/{ankh.provider.js → cli/index.js} +3 -3
- package/dist/cli/index.js.map +1 -0
- package/dist/readme-usage.js +1 -1
- package/dist/readme-usage.js.map +1 -1
- package/package.json +8 -3
- package/src/{cli.ts → cli/bin.ts} +3 -3
- package/src/{cli.test.ts → cli/cli.test.ts} +6 -6
- package/src/{ankh.provider.test.ts → cli/index.test.ts} +3 -3
- package/src/{ankh.provider.ts → cli/index.ts} +2 -2
- package/src/package.test.ts +2 -2
- package/src/readme-usage.ts +1 -1
- package/dist/ankh.provider.d.ts.map +0 -1
- package/dist/ankh.provider.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ankhorage/infra
|
|
2
2
|
|
|
3
|
+
## 0.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f407622: Move the standalone infrastructure CLI and its tests under the canonical `src/cli/` package boundary while preserving the published `ankhorage-infra` binary.
|
|
8
|
+
|
|
9
|
+
## 0.3.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 997af24: Release package command entry changes.
|
|
14
|
+
|
|
3
15
|
## 0.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# INFRA
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Executable infra provider and standalone CLI for Ankhorage project workflows.
|
|
9
9
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import type { InfraCommandContext, InfraCommandRunResult } from '
|
|
3
|
-
import { type InfraCommandServices, type RunInfraCommandImpl } from '
|
|
2
|
+
import type { InfraCommandContext, InfraCommandRunResult } from '../commandContext.js';
|
|
3
|
+
import { type InfraCommandServices, type RunInfraCommandImpl } from '../commands.js';
|
|
4
4
|
export interface InfraCliOptions {
|
|
5
5
|
readonly context?: InfraCommandContext;
|
|
6
6
|
readonly runCommandImpl?: RunInfraCommandImpl;
|
|
7
7
|
readonly services?: Partial<InfraCommandServices>;
|
|
8
8
|
}
|
|
9
9
|
export declare function runCli(argv: readonly string[], options?: InfraCliOptions): Promise<InfraCommandRunResult>;
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAEL,KAAK,oBAAoB,EAIzB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnD;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA+BhC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import { createDefaultCommandContext } from '
|
|
3
|
-
import { findInfraCommandByStandaloneName, renderRootHelp, renderUnknownCommand, runInfraCommand, } from '
|
|
2
|
+
import { createDefaultCommandContext } from '../commandContext.js';
|
|
3
|
+
import { findInfraCommandByStandaloneName, renderRootHelp, renderUnknownCommand, runInfraCommand, } from '../commands.js';
|
|
4
4
|
export async function runCli(argv, options = {}) {
|
|
5
5
|
const context = options.context ?? createDefaultCommandContext();
|
|
6
6
|
const runCommand = options.runCommandImpl ?? runInfraCommand;
|
|
@@ -36,4 +36,4 @@ if (import.meta.main) {
|
|
|
36
36
|
const result = await runCli(process.argv.slice(2));
|
|
37
37
|
process.exit(result.exitCode);
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,gCAAgC,EAEhC,cAAc,EACd,oBAAoB,EACpB,eAAe,GAEhB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,UAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,2BAA2B,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;IAC7D,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IAEzC,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,OAAO;QACP,OAAO;KACR,EACD;QACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC","sourcesContent":["#!/usr/bin/env bun\n\nimport type { InfraCommandContext, InfraCommandRunResult } from '../commandContext.js';\nimport { createDefaultCommandContext } from '../commandContext.js';\nimport {\n findInfraCommandByStandaloneName,\n type InfraCommandServices,\n renderRootHelp,\n renderUnknownCommand,\n runInfraCommand,\n type RunInfraCommandImpl,\n} from '../commands.js';\n\nexport interface InfraCliOptions {\n readonly context?: InfraCommandContext;\n readonly runCommandImpl?: RunInfraCommandImpl;\n readonly services?: Partial<InfraCommandServices>;\n}\n\nexport async function runCli(\n argv: readonly string[],\n options: InfraCliOptions = {},\n): Promise<InfraCommandRunResult> {\n const context = options.context ?? createDefaultCommandContext();\n const runCommand = options.runCommandImpl ?? runInfraCommand;\n const [firstToken, ...restTokens] = argv;\n\n if (firstToken === undefined || isHelpToken(firstToken)) {\n context.writeStdout(renderRootHelp(context.version));\n return { exitCode: 0 };\n }\n\n if (isVersionToken(firstToken)) {\n context.writeStdout(`${context.version}\\n`);\n return { exitCode: 0 };\n }\n\n const command = findInfraCommandByStandaloneName(firstToken);\n if (command === null) {\n context.writeStderr(renderUnknownCommand(firstToken));\n return { exitCode: 1 };\n }\n\n return runCommand(\n {\n argv: restTokens,\n command,\n context,\n },\n {\n services: options.services,\n },\n );\n}\n\nfunction isHelpToken(value: string): boolean {\n return value === '--help' || value === '-h' || value === 'help';\n}\n\nfunction isVersionToken(value: string): boolean {\n return value === '--version' || value === '-v' || value === 'version';\n}\n\nif (import.meta.main) {\n const result = await runCli(process.argv.slice(2));\n process.exit(result.exitCode);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnkhRuntimeCommandProvider } from '@ankhorage/ankh';
|
|
2
|
-
import { type InfraCommandServices, type RunInfraCommandImpl } from '
|
|
2
|
+
import { type InfraCommandServices, type RunInfraCommandImpl } from '../commands.js';
|
|
3
3
|
export interface CreateInfraRuntimeProviderOptions {
|
|
4
4
|
readonly runCommandImpl?: RunInfraCommandImpl;
|
|
5
5
|
readonly services?: Partial<InfraCommandServices>;
|
|
@@ -7,4 +7,4 @@ export interface CreateInfraRuntimeProviderOptions {
|
|
|
7
7
|
export declare function createInfraRuntimeProvider(options?: CreateInfraRuntimeProviderOptions): AnkhRuntimeCommandProvider;
|
|
8
8
|
declare const provider: AnkhRuntimeCommandProvider;
|
|
9
9
|
export default provider;
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnD;AAED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAyB5B;AAED,QAAA,MAAM,QAAQ,4BAA+B,CAAC;AAE9C,eAAe,QAAQ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createProviderCommandDescriptors, INFRA_COMMANDS, runInfraCommand, } from '
|
|
2
|
-
import { INFRA_CAPABILITIES, INFRA_COMMAND_CATEGORY, INFRA_PACKAGE_NAME, INFRA_PACKAGE_VERSION, } from '
|
|
1
|
+
import { createProviderCommandDescriptors, INFRA_COMMANDS, runInfraCommand, } from '../commands.js';
|
|
2
|
+
import { INFRA_CAPABILITIES, INFRA_COMMAND_CATEGORY, INFRA_PACKAGE_NAME, INFRA_PACKAGE_VERSION, } from '../packageMetadata.js';
|
|
3
3
|
export function createInfraRuntimeProvider(options = {}) {
|
|
4
4
|
const runCommandImpl = options.runCommandImpl ?? runInfraCommand;
|
|
5
5
|
return {
|
|
@@ -24,4 +24,4 @@ export function createInfraRuntimeProvider(options = {}) {
|
|
|
24
24
|
}
|
|
25
25
|
const provider = createInfraRuntimeProvider();
|
|
26
26
|
export default provider;
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,cAAc,EAEd,eAAe,GAEhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,UAAU,0BAA0B,CACxC,UAA6C,EAAE;IAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;IAEjE,OAAO;QACL,EAAE,EAAE,kBAAkB;QACtB,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,qBAAqB;QAC9B,YAAY,EAAE,CAAC,GAAG,kBAAkB,CAAC;QACrC,QAAQ,EAAE,gCAAgC,EAAE;QAC5C,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,CAAC,OAAO;gBACb,OAAO,cAAc,CACnB;oBACE,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO;oBACP,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,EACD;oBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;KACiC,CAAC;AACzC,CAAC;AAED,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;AAE9C,eAAe,QAAQ,CAAC","sourcesContent":["import type { AnkhRuntimeCommandProvider } from '@ankhorage/ankh';\n\nimport {\n createProviderCommandDescriptors,\n INFRA_COMMANDS,\n type InfraCommandServices,\n runInfraCommand,\n type RunInfraCommandImpl,\n} from '../commands.js';\nimport {\n INFRA_CAPABILITIES,\n INFRA_COMMAND_CATEGORY,\n INFRA_PACKAGE_NAME,\n INFRA_PACKAGE_VERSION,\n} from '../packageMetadata.js';\n\nexport interface CreateInfraRuntimeProviderOptions {\n readonly runCommandImpl?: RunInfraCommandImpl;\n readonly services?: Partial<InfraCommandServices>;\n}\n\nexport function createInfraRuntimeProvider(\n options: CreateInfraRuntimeProviderOptions = {},\n): AnkhRuntimeCommandProvider {\n const runCommandImpl = options.runCommandImpl ?? runInfraCommand;\n\n return {\n id: INFRA_PACKAGE_NAME,\n category: INFRA_COMMAND_CATEGORY,\n version: INFRA_PACKAGE_VERSION,\n capabilities: [...INFRA_CAPABILITIES],\n commands: createProviderCommandDescriptors(),\n handlers: INFRA_COMMANDS.map((command) => ({\n path: command.path,\n handler(request) {\n return runCommandImpl(\n {\n argv: request.argv,\n command,\n context: request.context,\n },\n {\n services: options.services,\n },\n );\n },\n })),\n } satisfies AnkhRuntimeCommandProvider;\n}\n\nconst provider = createInfraRuntimeProvider();\n\nexport default provider;\n"]}
|
package/dist/readme-usage.js
CHANGED
package/dist/readme-usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readme-usage.js","sourceRoot":"","sources":["../src/readme-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"readme-usage.js","sourceRoot":"","sources":["../src/readme-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC","sourcesContent":["import { runCli } from './cli/bin.js';\n\n/***\n * Provider and CLI surface\n *\n * `@ankhorage/infra` owns infra command behavior.\n *\n * The same shared command implementation backs both:\n *\n * - `ankh infra ...`\n * - `bunx @ankhorage/infra ...`\n *\n * Current command surface:\n *\n * - `validate`\n * - `generate`\n * - `status`\n * - `up`\n * - `down`\n *\n * `status` runs the generated live runtime status script for a project.\n *\n * Project resolution is project-aware:\n *\n * - pass `[project]`, or\n * - omit it when cwd is already inside `apps/<project>`\n *\n * @usage\n */\nawait runCli(['--help']);\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/infra",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.2",
|
|
5
5
|
"description": "Project-aware infrastructure generation library and executable Ankh provider for Ankhorage.",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/infra#readme",
|
|
7
7
|
"bugs": {
|
|
@@ -49,6 +49,11 @@
|
|
|
49
49
|
"import": "./dist/index.js",
|
|
50
50
|
"default": "./dist/index.js"
|
|
51
51
|
},
|
|
52
|
+
"./cli": {
|
|
53
|
+
"types": "./dist/cli/index.d.ts",
|
|
54
|
+
"import": "./dist/cli/index.js",
|
|
55
|
+
"default": "./dist/cli/index.js"
|
|
56
|
+
},
|
|
52
57
|
"./metadata": {
|
|
53
58
|
"types": "./dist/metadata/index.d.ts",
|
|
54
59
|
"import": "./dist/metadata/index.js",
|
|
@@ -57,11 +62,11 @@
|
|
|
57
62
|
"./package.json": "./package.json"
|
|
58
63
|
},
|
|
59
64
|
"bin": {
|
|
60
|
-
"ankhorage-infra": "./dist/cli.js"
|
|
65
|
+
"ankhorage-infra": "./dist/cli/bin.js"
|
|
61
66
|
},
|
|
62
67
|
"ankh": {
|
|
63
68
|
"category": "infra",
|
|
64
|
-
"provider": "./dist/
|
|
69
|
+
"provider": "./dist/cli/index.js",
|
|
65
70
|
"capabilities": [
|
|
66
71
|
"infra.validate",
|
|
67
72
|
"infra.generate",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
|
|
3
|
-
import type { InfraCommandContext, InfraCommandRunResult } from '
|
|
4
|
-
import { createDefaultCommandContext } from '
|
|
3
|
+
import type { InfraCommandContext, InfraCommandRunResult } from '../commandContext.js';
|
|
4
|
+
import { createDefaultCommandContext } from '../commandContext.js';
|
|
5
5
|
import {
|
|
6
6
|
findInfraCommandByStandaloneName,
|
|
7
7
|
type InfraCommandServices,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
renderUnknownCommand,
|
|
10
10
|
runInfraCommand,
|
|
11
11
|
type RunInfraCommandImpl,
|
|
12
|
-
} from '
|
|
12
|
+
} from '../commands.js';
|
|
13
13
|
|
|
14
14
|
export interface InfraCliOptions {
|
|
15
15
|
readonly context?: InfraCommandContext;
|
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
} from '@ankhorage/ankh';
|
|
7
7
|
import { describe, expect, test } from 'bun:test';
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
import { runCli } from './
|
|
11
|
-
import {
|
|
9
|
+
import { createCapturedCommandContext } from '../testSupport.js';
|
|
10
|
+
import { runCli } from './bin.js';
|
|
11
|
+
import { createInfraRuntimeProvider } from './index.js';
|
|
12
12
|
|
|
13
13
|
describe('standalone cli and provider-backed dispatch', () => {
|
|
14
14
|
test('prints help and version for the standalone CLI', async () => {
|
|
@@ -108,7 +108,7 @@ function createDiscoveredPackage(): AnkhDiscoveredPackage {
|
|
|
108
108
|
return {
|
|
109
109
|
metadata: {
|
|
110
110
|
category: 'infra',
|
|
111
|
-
provider: './dist/
|
|
111
|
+
provider: './dist/cli/index.js',
|
|
112
112
|
capabilities: ['infra.validate', 'infra.generate', 'infra.status', 'infra.up', 'infra.down'],
|
|
113
113
|
},
|
|
114
114
|
packageJsonPath: '/workspace/package.json',
|
|
@@ -131,7 +131,7 @@ function createLoadedProvider(
|
|
|
131
131
|
commands: provider.commands,
|
|
132
132
|
},
|
|
133
133
|
providerModuleDefaultExport: provider,
|
|
134
|
-
providerModulePath: '/workspace/dist/
|
|
135
|
-
providerModuleUrl: 'file:///workspace/dist/
|
|
134
|
+
providerModulePath: '/workspace/dist/cli/index.js',
|
|
135
|
+
providerModuleUrl: 'file:///workspace/dist/cli/index.js',
|
|
136
136
|
};
|
|
137
137
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AnkhRuntimeCommandProvider } from '@ankhorage/ankh';
|
|
2
2
|
import { describe, expect, test } from 'bun:test';
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
4
|
+
import { createProviderCommandDescriptors, INFRA_COMMANDS } from '../commands.js';
|
|
5
|
+
import provider, { createInfraRuntimeProvider } from './index.js';
|
|
6
6
|
|
|
7
|
-
describe('
|
|
7
|
+
describe('infra package cli provider', () => {
|
|
8
8
|
test('publishes the expected runtime provider shape', () => {
|
|
9
9
|
const expectedProvider = createInfraRuntimeProvider() satisfies AnkhRuntimeCommandProvider;
|
|
10
10
|
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
type InfraCommandServices,
|
|
7
7
|
runInfraCommand,
|
|
8
8
|
type RunInfraCommandImpl,
|
|
9
|
-
} from '
|
|
9
|
+
} from '../commands.js';
|
|
10
10
|
import {
|
|
11
11
|
INFRA_CAPABILITIES,
|
|
12
12
|
INFRA_COMMAND_CATEGORY,
|
|
13
13
|
INFRA_PACKAGE_NAME,
|
|
14
14
|
INFRA_PACKAGE_VERSION,
|
|
15
|
-
} from '
|
|
15
|
+
} from '../packageMetadata.js';
|
|
16
16
|
|
|
17
17
|
export interface CreateInfraRuntimeProviderOptions {
|
|
18
18
|
readonly runCommandImpl?: RunInfraCommandImpl;
|
package/src/package.test.ts
CHANGED
|
@@ -7,14 +7,14 @@ describe('package metadata', () => {
|
|
|
7
7
|
test('publishes the expected Ankh metadata and bin entry', () => {
|
|
8
8
|
const expectedAnkhMetadata = {
|
|
9
9
|
category: 'infra',
|
|
10
|
-
provider: './dist/
|
|
10
|
+
provider: './dist/cli/index.js',
|
|
11
11
|
capabilities: ['infra.validate', 'infra.generate', 'infra.status', 'infra.up', 'infra.down'],
|
|
12
12
|
} as const satisfies AnkhPackageMetadata;
|
|
13
13
|
|
|
14
14
|
expect(packageJson.name).toBe('@ankhorage/infra');
|
|
15
15
|
expect(packageJson.type).toBe('module');
|
|
16
16
|
expect(packageJson.bin).toEqual({
|
|
17
|
-
'ankhorage-infra': './dist/cli.js',
|
|
17
|
+
'ankhorage-infra': './dist/cli/bin.js',
|
|
18
18
|
});
|
|
19
19
|
expect(packageJson.ankh).toEqual(expectedAnkhMetadata);
|
|
20
20
|
expect(JSON.parse(JSON.stringify(expectedAnkhMetadata))).toEqual(expectedAnkhMetadata);
|
package/src/readme-usage.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ankh.provider.d.ts","sourceRoot":"","sources":["../src/ankh.provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAQvB,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnD;AAED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAyB5B;AAED,QAAA,MAAM,QAAQ,4BAA+B,CAAC;AAE9C,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ankh.provider.js","sourceRoot":"","sources":["../src/ankh.provider.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,cAAc,EAEd,eAAe,GAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAO9B,MAAM,UAAU,0BAA0B,CACxC,UAA6C,EAAE;IAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;IAEjE,OAAO;QACL,EAAE,EAAE,kBAAkB;QACtB,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,qBAAqB;QAC9B,YAAY,EAAE,CAAC,GAAG,kBAAkB,CAAC;QACrC,QAAQ,EAAE,gCAAgC,EAAE;QAC5C,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,CAAC,OAAO;gBACb,OAAO,cAAc,CACnB;oBACE,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO;oBACP,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,EACD;oBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;KACiC,CAAC;AACzC,CAAC;AAED,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC;AAE9C,eAAe,QAAQ,CAAC","sourcesContent":["import type { AnkhRuntimeCommandProvider } from '@ankhorage/ankh';\n\nimport {\n createProviderCommandDescriptors,\n INFRA_COMMANDS,\n type InfraCommandServices,\n runInfraCommand,\n type RunInfraCommandImpl,\n} from './commands.js';\nimport {\n INFRA_CAPABILITIES,\n INFRA_COMMAND_CATEGORY,\n INFRA_PACKAGE_NAME,\n INFRA_PACKAGE_VERSION,\n} from './packageMetadata.js';\n\nexport interface CreateInfraRuntimeProviderOptions {\n readonly runCommandImpl?: RunInfraCommandImpl;\n readonly services?: Partial<InfraCommandServices>;\n}\n\nexport function createInfraRuntimeProvider(\n options: CreateInfraRuntimeProviderOptions = {},\n): AnkhRuntimeCommandProvider {\n const runCommandImpl = options.runCommandImpl ?? runInfraCommand;\n\n return {\n id: INFRA_PACKAGE_NAME,\n category: INFRA_COMMAND_CATEGORY,\n version: INFRA_PACKAGE_VERSION,\n capabilities: [...INFRA_CAPABILITIES],\n commands: createProviderCommandDescriptors(),\n handlers: INFRA_COMMANDS.map((command) => ({\n path: command.path,\n handler(request) {\n return runCommandImpl(\n {\n argv: request.argv,\n command,\n context: request.context,\n },\n {\n services: options.services,\n },\n );\n },\n })),\n } satisfies AnkhRuntimeCommandProvider;\n}\n\nconst provider = createInfraRuntimeProvider();\n\nexport default provider;\n"]}
|
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,OAAO,EAEL,KAAK,oBAAoB,EAIzB,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnD;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA+BhC"}
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,gCAAgC,EAEhC,cAAc,EACd,oBAAoB,EACpB,eAAe,GAEhB,MAAM,eAAe,CAAC;AAQvB,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,UAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,2BAA2B,EAAE,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,CAAC;IAC7D,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IAEzC,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,OAAO;QACP,OAAO;KACR,EACD;QACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC","sourcesContent":["#!/usr/bin/env bun\n\nimport type { InfraCommandContext, InfraCommandRunResult } from './commandContext.js';\nimport { createDefaultCommandContext } from './commandContext.js';\nimport {\n findInfraCommandByStandaloneName,\n type InfraCommandServices,\n renderRootHelp,\n renderUnknownCommand,\n runInfraCommand,\n type RunInfraCommandImpl,\n} from './commands.js';\n\nexport interface InfraCliOptions {\n readonly context?: InfraCommandContext;\n readonly runCommandImpl?: RunInfraCommandImpl;\n readonly services?: Partial<InfraCommandServices>;\n}\n\nexport async function runCli(\n argv: readonly string[],\n options: InfraCliOptions = {},\n): Promise<InfraCommandRunResult> {\n const context = options.context ?? createDefaultCommandContext();\n const runCommand = options.runCommandImpl ?? runInfraCommand;\n const [firstToken, ...restTokens] = argv;\n\n if (firstToken === undefined || isHelpToken(firstToken)) {\n context.writeStdout(renderRootHelp(context.version));\n return { exitCode: 0 };\n }\n\n if (isVersionToken(firstToken)) {\n context.writeStdout(`${context.version}\\n`);\n return { exitCode: 0 };\n }\n\n const command = findInfraCommandByStandaloneName(firstToken);\n if (command === null) {\n context.writeStderr(renderUnknownCommand(firstToken));\n return { exitCode: 1 };\n }\n\n return runCommand(\n {\n argv: restTokens,\n command,\n context,\n },\n {\n services: options.services,\n },\n );\n}\n\nfunction isHelpToken(value: string): boolean {\n return value === '--help' || value === '-h' || value === 'help';\n}\n\nfunction isVersionToken(value: string): boolean {\n return value === '--version' || value === '-v' || value === 'version';\n}\n\nif (import.meta.main) {\n const result = await runCli(process.argv.slice(2));\n process.exit(result.exitCode);\n}\n"]}
|