@ankhorage/repository 0.4.18 → 0.5.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 (78) hide show
  1. package/CHANGELOG.md +143 -0
  2. package/README.md +16 -27
  3. package/dist/cli/commands/materialize/definitions/MaterializeCommandOptions.d.ts +6 -0
  4. package/dist/cli/commands/materialize/definitions/MaterializeCommandOptions.d.ts.map +1 -0
  5. package/dist/cli/commands/materialize/definitions/MaterializeCommandOptions.js +2 -0
  6. package/dist/cli/commands/materialize/definitions/MaterializeCommandOptions.js.map +1 -0
  7. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.d.ts +4 -0
  8. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.d.ts.map +1 -0
  9. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.js +33 -0
  10. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.js.map +1 -0
  11. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.test.d.ts +2 -0
  12. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.test.d.ts.map +1 -0
  13. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.test.js +23 -0
  14. package/dist/cli/commands/materialize/parseMaterializeCommandOptions.test.js.map +1 -0
  15. package/dist/cli/commands/materialize/runMaterializeCommandAsync.d.ts +10 -0
  16. package/dist/cli/commands/materialize/runMaterializeCommandAsync.d.ts.map +1 -0
  17. package/dist/cli/commands/materialize/runMaterializeCommandAsync.js +28 -0
  18. package/dist/cli/commands/materialize/runMaterializeCommandAsync.js.map +1 -0
  19. package/dist/cli/provider/createRepositoryRuntimeProvider.d.ts +14 -2
  20. package/dist/cli/provider/createRepositoryRuntimeProvider.d.ts.map +1 -1
  21. package/dist/cli/provider/createRepositoryRuntimeProvider.js +7 -9
  22. package/dist/cli/provider/createRepositoryRuntimeProvider.js.map +1 -1
  23. package/dist/cli/provider/createRepositoryRuntimeProvider.test.js +6 -2
  24. package/dist/cli/provider/createRepositoryRuntimeProvider.test.js.map +1 -1
  25. package/dist/github/index.d.ts +3 -0
  26. package/dist/github/index.d.ts.map +1 -1
  27. package/dist/github/index.js +1 -0
  28. package/dist/github/index.js.map +1 -1
  29. package/dist/metadata/index.d.ts +1 -1
  30. package/dist/metadata/index.js +1 -1
  31. package/dist/metadata/index.js.map +1 -1
  32. package/dist/metadata/repositoryPackageMetadata.d.ts +6 -1
  33. package/dist/metadata/repositoryPackageMetadata.d.ts.map +1 -1
  34. package/dist/metadata/repositoryPackageMetadata.js +6 -1
  35. package/dist/metadata/repositoryPackageMetadata.js.map +1 -1
  36. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.d.ts +4 -0
  37. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.d.ts.map +1 -0
  38. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.js +115 -0
  39. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.js.map +1 -0
  40. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.d.ts +2 -0
  41. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.d.ts.map +1 -0
  42. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.js +80 -0
  43. package/dist/providers/github/adapters/createGitHubHttpRepositoryReadGateway.test.js.map +1 -0
  44. package/dist/providers/github/definitions/GitHubRepositoryConnectionOptions.d.ts +0 -8
  45. package/dist/providers/github/definitions/GitHubRepositoryConnectionOptions.d.ts.map +1 -1
  46. package/dist/providers/github/definitions/GitHubRepositoryMaterializationOptions.d.ts +6 -0
  47. package/dist/providers/github/definitions/GitHubRepositoryMaterializationOptions.d.ts.map +1 -0
  48. package/dist/providers/github/definitions/GitHubRepositoryMaterializationOptions.js +2 -0
  49. package/dist/providers/github/definitions/GitHubRepositoryMaterializationOptions.js.map +1 -0
  50. package/dist/providers/github/definitions/GitHubRepositoryMaterializationResult.d.ts +12 -0
  51. package/dist/providers/github/definitions/GitHubRepositoryMaterializationResult.d.ts.map +1 -0
  52. package/dist/providers/github/definitions/GitHubRepositoryMaterializationResult.js +2 -0
  53. package/dist/providers/github/definitions/GitHubRepositoryMaterializationResult.js.map +1 -0
  54. package/dist/providers/github/ports/GitHubRepositoryReadGateway.d.ts +31 -0
  55. package/dist/providers/github/ports/GitHubRepositoryReadGateway.d.ts.map +1 -0
  56. package/dist/providers/github/ports/GitHubRepositoryReadGateway.js +2 -0
  57. package/dist/providers/github/ports/GitHubRepositoryReadGateway.js.map +1 -0
  58. package/dist/providers/github/services/connectGitHubRepositoryAsync.d.ts +10 -1
  59. package/dist/providers/github/services/connectGitHubRepositoryAsync.d.ts.map +1 -1
  60. package/dist/providers/github/services/connectGitHubRepositoryAsync.js.map +1 -1
  61. package/dist/providers/github/services/connectGitHubRepositoryAsync.test.js.map +1 -1
  62. package/dist/providers/github/services/materializeGitHubRepositoryAsync.d.ts +5 -0
  63. package/dist/providers/github/services/materializeGitHubRepositoryAsync.d.ts.map +1 -0
  64. package/dist/providers/github/services/materializeGitHubRepositoryAsync.js +7 -0
  65. package/dist/providers/github/services/materializeGitHubRepositoryAsync.js.map +1 -0
  66. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.d.ts +6 -0
  67. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.d.ts.map +1 -0
  68. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.js +156 -0
  69. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.js.map +1 -0
  70. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.d.ts +2 -0
  71. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.d.ts.map +1 -0
  72. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.js +116 -0
  73. package/dist/providers/github/services/materializeGitHubRepositoryWithGatewayAsync.test.js.map +1 -0
  74. package/package.json +9 -8
  75. package/dist/readme-usage.d.ts +0 -2
  76. package/dist/readme-usage.d.ts.map +0 -1
  77. package/dist/readme-usage.js +0 -32
  78. package/dist/readme-usage.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,148 @@
1
1
  # @ankhorage/repository
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 106bc0d: Add read-only GitHub repository materialization with exact revision pinning and an Ankh CLI command.
8
+
9
+ ### Patch Changes
10
+
11
+ - 3bbeb8e: Document repository usage from the runnable example and keep Renovate configuration out of package documentation.
12
+ - 0b57e77: Update dependencies from Renovate pull request #117.
13
+ - 0d371cc: Update dependencies from Renovate pull request #118.
14
+ - c4f17c1: Update dependencies: `@ankhorage/devtools`.
15
+ - 8b31cc8: Update dependencies from Renovate pull request #137.
16
+ - 83103d9: Update dependencies from Renovate pull request #138.
17
+ - 3257db7: Update Ankhorage dependencies: `@ankhorage/contracts`.
18
+ - 01c01e2: Update dependencies: `ignore`.
19
+ - a7f79f8: Update Renovate-managed workflows.
20
+ - 9c0766d: Update dependencies: `@types/node`.
21
+ - 3f5743e: Update dependencies: `@ankhorage/contracts`.
22
+ - 97578a9: Update dependencies: `@ankhorage/contracts`.
23
+ - f5afeaa: Update Renovate-managed workflows.
24
+ - d8f5437: Update dependencies: `@ankhorage/contracts`.
25
+ - d70430a: Update Renovate-managed workflows.
26
+ - be3886b: Update dependencies: `@ankhorage/contracts`.
27
+ - f44f522: Update Renovate-managed workflows.
28
+ - 9ac27b8: Update dependencies: `@ankhorage/contracts`.
29
+ - 6e88cf0: Update Renovate-managed workflows.
30
+ - 1304e5a: Update dependencies: `@ankhorage/contracts`.
31
+ - e0614c0: Update dependencies: `@ankhorage/contracts`.
32
+ - 290b073: Update Renovate-managed workflows.
33
+ - cf47a85: Update dependencies: `@ankhorage/contracts`.
34
+ - c4e2a83: Update Renovate-managed workflows.
35
+ - 5138514: Update dependencies: `@ankhorage/contracts`.
36
+ - 8839f8a: Update Renovate-managed workflows.
37
+ - 2035fef: Update dependencies: `@ankhorage/contracts`.
38
+ - 8ea58b4: Update Renovate-managed workflows.
39
+ - a08a558: Update dependencies: `@ankhorage/contracts`.
40
+ - b066dba: Update Renovate-managed workflows.
41
+ - af63db9: Update dependencies: `@ankhorage/contracts`.
42
+ - 0a3d958: Update dependencies: `@ankhorage/contracts`.
43
+ - 74305c4: Update Renovate-managed workflows.
44
+ - 69236ac: Update Renovate-managed workflows.
45
+ - 6e935e9: Update dependencies: `@ankhorage/contracts`.
46
+ - d0cb3e2: Update Renovate-managed workflows.
47
+ - b815d04: Update dependencies: `@ankhorage/contracts`.
48
+ - 7766b0b: Update dependencies: `@ankhorage/contracts`.
49
+ - f1926c2: Update Renovate-managed workflows.
50
+ - 5179e03: Update dependencies: `@ankhorage/contracts`.
51
+ - 566b70d: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
52
+ - 90fb9a4: Update Renovate-managed workflows.
53
+ - 150e54a: Update dependencies: `@ankhorage/contracts`.
54
+ - 066c896: Update Renovate-managed workflows.
55
+ - b042cbb: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
56
+ - 83c7bdd: Update Renovate-managed workflows.
57
+ - db6ec1b: Update dependencies: `@ankhorage/contracts`.
58
+ - 242a3b9: Update dependencies: `@ankhorage/contracts`.
59
+ - 9f5fea6: Update Renovate-managed workflows.
60
+ - 5b08df0: Update dependencies: `@ankhorage/contracts`.
61
+ - ae96fc6: Update dependencies: `@ankhorage/paradox`.
62
+ - 717644a: Update Renovate-managed workflows.
63
+ - bc598fc: Update Renovate-managed workflows.
64
+ - 3ded140: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
65
+ - 6c1463c: Update dependencies: `@ankhorage/contracts`.
66
+ - 0ce4a32: Update Renovate-managed workflows.
67
+ - 0c79dc4: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
68
+ - 74b7765: Update Renovate-managed workflows.
69
+ - 8ad0a42: Update dependencies: `@types/node`.
70
+ - 2e8384b: Update dependencies: `@ankhorage/contracts`.
71
+ - b360a77: Update Renovate-managed workflows.
72
+ - 78f904e: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
73
+ - f3a4be9: Update Renovate-managed workflows.
74
+ - e12e937: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
75
+ - 17e4584: Update dependencies: `@ankhorage/contracts`.
76
+ - c9b7a2e: Update Renovate-managed workflows.
77
+ - 36039c1: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
78
+ - c759709: Update dependencies: `@ankhorage/contracts`.
79
+ - 6c88cda: Update Renovate-managed workflows.
80
+ - 12c94c8: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
81
+ - 4557b07: Update Renovate-managed workflows.
82
+ - aadddcc: Update dependencies: `@ankhorage/contracts`.
83
+ - f19e997: Update Renovate-managed workflows.
84
+ - 3d6153a: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
85
+ - e0b87b6: Update Renovate-managed workflows.
86
+ - 97027ad: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
87
+ - 761a722: Update Renovate-managed workflows.
88
+ - 4976f9f: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
89
+ - 1f13104: Update Renovate-managed workflows.
90
+ - f0ebf5d: Update dependencies: `@ankhorage/contracts`.
91
+ - c63ebe8: Update Renovate-managed workflows.
92
+ - ec40f4b: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
93
+ - bd684b9: Update Renovate-managed workflows.
94
+ - 7a3aabe: Update dependencies: `@ankhorage/contracts`.
95
+ - 58e37f5: Update dependencies: `@ankhorage/contracts`.
96
+ - 6239f66: Update Renovate-managed workflows.
97
+ - 1f1bf1b: Update dependencies: `@ankhorage/contracts`.
98
+ - 07cf4f4: Update Renovate-managed workflows.
99
+ - 4d8adf8: Update Renovate-managed workflows.
100
+ - 822721a: Update dependencies: `@ankhorage/contracts`.
101
+ - 6ddbbcc: Update Renovate-managed workflows.
102
+ - 08a1083: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
103
+ - 2cbfb10: Update Renovate-managed workflows.
104
+ - 841d59a: Update Renovate-managed workflows.
105
+ - 8250839: Update dependencies: `@ankhorage/contracts`.
106
+ - d1dad6f: Update Renovate-managed workflows.
107
+ - 3892c18: Update Renovate-managed workflows.
108
+ - 4f51b2f: Update Renovate-managed workflows.
109
+ - c6546f6: Update dependencies: `@ankhorage/contracts`.
110
+ - 23e5e1b: Update Renovate-managed workflows.
111
+ - 41c172f: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
112
+ - c0ed749: Update Renovate-managed workflows.
113
+ - 246345c: Update dependencies: `@ankhorage/contracts`.
114
+ - 694c526: Update Renovate-managed workflows.
115
+ - f7aded4: Update dependencies: `@ankhorage/contracts`.
116
+ - 3f85796: Update dependencies: `@ankhorage/contracts`.
117
+ - 22e0c2d: Update Renovate-managed workflows.
118
+ - d505dbe: Update dependencies: `@ankhorage/contracts`.
119
+ - 1bd191c: Update Renovate-managed workflows.
120
+ - 05f9256: Update dependencies: `@ankhorage/contracts`.
121
+ - 7ef3977: Update dependencies: `ignore`.
122
+ - 10b1e06: Update Renovate-managed workflows.
123
+ - d3c1e48: Update dependencies: `@ankhorage/contracts`.
124
+ - 87cb178: Update Renovate-managed workflows.
125
+ - aedcfec: Update dependencies: `@ankhorage/contracts`.
126
+ - 676a8e3: Update Renovate-managed workflows.
127
+ - c1eefce: Update dependencies: `@ankhorage/contracts`.
128
+ - 2fc0941: Update Renovate-managed workflows.
129
+ - 5062abb: Update Renovate-managed workflows.
130
+ - d0bc585: Update dependencies: `@ankhorage/contracts`.
131
+ - 68ffe74: Update dependencies: `@ankhorage/contracts`.
132
+ - d898450: Update dependencies: `@ankhorage/contracts`.
133
+ - d450bc0: Update Renovate-managed workflows.
134
+ - 9ce5632: Update dependencies: `@ankhorage/devtools`.
135
+ - 6242afd: Update Renovate-managed workflows.
136
+ - cd2da38: Update dependencies: `@ankhorage/contracts`, `@ankhorage/paradox`.
137
+ - 91aa2d7: Update dependencies: `@ankhorage/devtools`.
138
+ - 8fde348: Update dependencies: `@ankhorage/devtools`.
139
+
140
+ ## 0.4.19
141
+
142
+ ### Patch Changes
143
+
144
+ - 2659575: Update Ankhorage dependencies: `@ankhorage/contracts`.
145
+
3
146
  ## 0.4.18
4
147
 
5
148
  ### Patch Changes
package/README.md CHANGED
@@ -3,44 +3,33 @@
3
3
 
4
4
  # @ankhorage/repository
5
5
 
6
- ![license: MIT](./paradox/badges/license.svg) ![npm: v0.4.18](./paradox/badges/npm.svg) ![runtime: bun](./paradox/badges/runtime.svg) ![typescript: strict](./paradox/badges/typescript.svg) ![eslint: checked](./paradox/badges/eslint.svg) ![prettier: checked](./paradox/badges/prettier.svg) ![build: checked](./paradox/badges/build.svg) ![tests: checked](./paradox/badges/tests.svg) ![docs: paradox](./paradox/badges/docs.svg)
6
+ ![license: MIT](./paradox/badges/license.svg) ![npm: v0.5.0](./paradox/badges/npm.svg) ![runtime: bun](./paradox/badges/runtime.svg) ![typescript: strict](./paradox/badges/typescript.svg) ![eslint: checked](./paradox/badges/eslint.svg) ![prettier: checked](./paradox/badges/prettier.svg) ![build: checked](./paradox/badges/build.svg) ![tests: checked](./paradox/badges/tests.svg) ![paradox: warnings](./paradox/badges/docs.svg)
7
7
 
8
8
  Standalone repository capability for connecting and managing an app project's source repository.
9
9
 
10
10
  ## Usage
11
11
 
12
- ### Connect a project folder to its source repository
12
+ ### CLI
13
13
 
14
- `@ankhorage/repository` consumes only the project's `RepositoryManifest` slice and delegates
15
- GitHub operations to the local authenticated `gh` adapter. It creates a missing repository,
16
- publishes the project snapshot to `main`, stores only the repository slice in
17
- `.ankhorage/repository.json`, and refuses unrelated existing repositories.
14
+ Ankhorage packages expose their command-line interface through `ankh`. Use `ankh --help` to discover available package commands, or run a package command with `--help` for package-specific usage.
18
15
 
19
- See [`examples/basic-usage.ts`](../examples/basic-usage.ts) for a complete programmatic example.
16
+ ```zsh
17
+ # Install the Ankhorage CLI
18
+ bun add --global @ankhorage/ankh
20
19
 
21
- Source: `src/readme-usage.ts`
20
+ # Show usage information for repository
21
+ ankh repository --help
22
+ ```
23
+
24
+ ### Connect a repository
25
+
26
+ Connect a project folder to its source repository.
27
+
28
+ This example creates a missing GitHub repository, publishes the project snapshot, and reports
29
+ whether the repository is ready for use.
22
30
 
23
31
  ```ts
24
32
  import { connectRepositoryAsync } from '@ankhorage/repository';
25
-
26
- const result = await connectRepositoryAsync({
27
- projectPath: './my-project',
28
- repository: {
29
- provider: 'github',
30
- owner: 'ankhorage',
31
- name: 'my-project',
32
- url: 'https://github.com/ankhorage/my-project',
33
- defaultBranch: 'main',
34
- },
35
- visibility: 'private',
36
- });
37
-
38
- if (result.status === 'conflict' || result.status === 'recoverable-failure') {
39
- console.error(`${result.status}: ${result.message}`);
40
- process.exitCode = 1;
41
- } else {
42
- console.log(JSON.stringify(result));
43
- }
44
33
  ```
45
34
 
46
35
  ## Generated documentation
@@ -0,0 +1,6 @@
1
+ export interface MaterializeCommandOptions {
2
+ readonly repositoryUrl: string;
3
+ readonly ref?: string;
4
+ readonly destinationPath?: string;
5
+ }
6
+ //# sourceMappingURL=MaterializeCommandOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterializeCommandOptions.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/materialize/definitions/MaterializeCommandOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MaterializeCommandOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterializeCommandOptions.js","sourceRoot":"","sources":["../../../../../src/cli/commands/materialize/definitions/MaterializeCommandOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { MaterializeCommandOptions } from './definitions/MaterializeCommandOptions.js';
2
+ /*** Parse `ankh repository materialize <github-url>` and its optional ref/output flags. */
3
+ export declare function parseMaterializeCommandOptions(argv: readonly string[]): MaterializeCommandOptions;
4
+ //# sourceMappingURL=parseMaterializeCommandOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseMaterializeCommandOptions.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/parseMaterializeCommandOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAE5F,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,yBAAyB,CA2BjG"}
@@ -0,0 +1,33 @@
1
+ /*** Parse `ankh repository materialize <github-url>` and its optional ref/output flags. */
2
+ export function parseMaterializeCommandOptions(argv) {
3
+ let repositoryUrl;
4
+ let ref;
5
+ let destinationPath;
6
+ for (let index = 0; index < argv.length; index += 1) {
7
+ const [argument] = argv.slice(index);
8
+ if (argument === undefined)
9
+ continue;
10
+ if (argument === '--ref' || argument === '--out') {
11
+ const [value] = argv.slice(index + 1);
12
+ if (!value || value.startsWith('--'))
13
+ throw new Error(`${argument} requires a value.`);
14
+ index += 1;
15
+ if (argument === '--ref')
16
+ ref = value;
17
+ else
18
+ destinationPath = value;
19
+ continue;
20
+ }
21
+ if (argument.startsWith('--'))
22
+ throw new Error(`Unknown option: ${argument}`);
23
+ if (repositoryUrl !== undefined) {
24
+ throw new Error('Only one GitHub repository URL may be provided.');
25
+ }
26
+ repositoryUrl = argument;
27
+ }
28
+ if (repositoryUrl === undefined) {
29
+ throw new Error('A GitHub repository URL is required.');
30
+ }
31
+ return { repositoryUrl, ref, destinationPath };
32
+ }
33
+ //# sourceMappingURL=parseMaterializeCommandOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseMaterializeCommandOptions.js","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/parseMaterializeCommandOptions.ts"],"names":[],"mappings":"AAEA,2FAA2F;AAC3F,MAAM,UAAU,8BAA8B,CAAC,IAAuB;IACpE,IAAI,aAAiC,CAAC;IACtC,IAAI,GAAuB,CAAC;IAC5B,IAAI,eAAmC,CAAC;IAExC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oBAAoB,CAAC,CAAC;YACvF,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,QAAQ,KAAK,OAAO;gBAAE,GAAG,GAAG,KAAK,CAAC;;gBACjC,eAAe,GAAG,KAAK,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC9E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,aAAa,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parseMaterializeCommandOptions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseMaterializeCommandOptions.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/parseMaterializeCommandOptions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { expect, test } from 'bun:test';
2
+ import { parseMaterializeCommandOptions } from './parseMaterializeCommandOptions.js';
3
+ test('parses the repository URL, ref, and output path', () => {
4
+ expect(parseMaterializeCommandOptions([
5
+ 'https://github.com/ankhorage/zora',
6
+ '--ref',
7
+ 'main',
8
+ '--out',
9
+ './zora',
10
+ ])).toEqual({
11
+ repositoryUrl: 'https://github.com/ankhorage/zora',
12
+ ref: 'main',
13
+ destinationPath: './zora',
14
+ });
15
+ });
16
+ test('requires exactly one repository URL', () => {
17
+ expect(() => parseMaterializeCommandOptions([])).toThrow('repository URL is required');
18
+ expect(() => parseMaterializeCommandOptions([
19
+ 'https://github.com/ankhorage/zora',
20
+ 'https://github.com/ankhorage/surface',
21
+ ])).toThrow('Only one GitHub repository URL');
22
+ });
23
+ //# sourceMappingURL=parseMaterializeCommandOptions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseMaterializeCommandOptions.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/parseMaterializeCommandOptions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC3D,MAAM,CACJ,8BAA8B,CAAC;QAC7B,mCAAmC;QACnC,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC,CACH,CAAC,OAAO,CAAC;QACR,aAAa,EAAE,mCAAmC;QAClD,GAAG,EAAE,MAAM;QACX,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,EAAE,CACV,8BAA8B,CAAC;QAC7B,mCAAmC;QACnC,sCAAsC;KACvC,CAAC,CACH,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface MaterializeCommandRequest {
2
+ readonly argv?: readonly string[];
3
+ readonly stdout?: (line: string) => void;
4
+ readonly stderr?: (line: string) => void;
5
+ }
6
+ /*** Materialize one GitHub repository and print the immutable revision plus local root. */
7
+ export declare function runMaterializeCommandAsync(request?: MaterializeCommandRequest): Promise<{
8
+ readonly exitCode: number;
9
+ }>;
10
+ //# sourceMappingURL=runMaterializeCommandAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runMaterializeCommandAsync.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/runMaterializeCommandAsync.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,2FAA2F;AAC3F,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBxC"}
@@ -0,0 +1,28 @@
1
+ import { materializeGitHubRepositoryAsync } from '../../../providers/github/services/materializeGitHubRepositoryAsync.js';
2
+ import { parseMaterializeCommandOptions } from './parseMaterializeCommandOptions.js';
3
+ /*** Materialize one GitHub repository and print the immutable revision plus local root. */
4
+ export async function runMaterializeCommandAsync(request = {}) {
5
+ const stdout = request.stdout ?? console.log;
6
+ const stderr = request.stderr ?? console.error;
7
+ try {
8
+ const options = parseMaterializeCommandOptions(request.argv ?? []);
9
+ const result = await materializeGitHubRepositoryAsync({
10
+ url: options.repositoryUrl,
11
+ ...(options.ref === undefined ? {} : { ref: options.ref }),
12
+ ...(options.destinationPath === undefined
13
+ ? {}
14
+ : { destinationPath: options.destinationPath }),
15
+ });
16
+ stdout(JSON.stringify({
17
+ rootPath: result.rootPath,
18
+ revision: result.revision,
19
+ repository: result.repository,
20
+ }));
21
+ return { exitCode: 0 };
22
+ }
23
+ catch (error) {
24
+ stderr(error instanceof Error ? error.message : 'Repository materialization failed.');
25
+ return { exitCode: 1 };
26
+ }
27
+ }
28
+ //# sourceMappingURL=runMaterializeCommandAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runMaterializeCommandAsync.js","sourceRoot":"","sources":["../../../../src/cli/commands/materialize/runMaterializeCommandAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wEAAwE,CAAC;AAC1H,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAQrF,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,8BAA8B,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,gCAAgC,CAAC;YACpD,GAAG,EAAE,OAAO,CAAC,aAAa;YAC1B,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,CACJ,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CACH,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;QACtF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -1,14 +1,20 @@
1
1
  import { type ConnectCommandRequest } from '../commands/connect/runConnectCommandAsync.js';
2
+ import { type MaterializeCommandRequest } from '../commands/materialize/runMaterializeCommandAsync.js';
2
3
  export interface RepositoryRuntimeProvider {
3
4
  readonly id: 'repository';
4
5
  readonly category: 'repository';
5
6
  readonly version: string;
6
- readonly capabilities: readonly ['repository.connect'];
7
+ readonly capabilities: readonly ['repository.connect', 'repository.materialize'];
7
8
  readonly commands: readonly [
8
9
  {
9
10
  readonly path: readonly ['connect'];
10
11
  readonly capability: 'repository.connect';
11
12
  readonly summary: string;
13
+ },
14
+ {
15
+ readonly path: readonly ['materialize'];
16
+ readonly capability: 'repository.materialize';
17
+ readonly summary: string;
12
18
  }
13
19
  ];
14
20
  readonly handlers: readonly [
@@ -17,9 +23,15 @@ export interface RepositoryRuntimeProvider {
17
23
  readonly handler: (request: ConnectCommandRequest) => Promise<{
18
24
  readonly exitCode: number;
19
25
  }>;
26
+ },
27
+ {
28
+ readonly path: readonly ['materialize'];
29
+ readonly handler: (request: MaterializeCommandRequest) => Promise<{
30
+ readonly exitCode: number;
31
+ }>;
20
32
  }
21
33
  ];
22
34
  }
23
- /** Create the package-level Ankh provider for `ankh repository connect`. */
35
+ /*** Create the package-level Ankh provider for repository connect and materialization commands. */
24
36
  export declare function createRepositoryRuntimeProvider(): RepositoryRuntimeProvider;
25
37
  //# sourceMappingURL=createRepositoryRuntimeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRepositoryRuntimeProvider.d.ts","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,+CAA+C,CAAC;AAEvD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;YAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B;KACF,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC;gBAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC9F;KACF,CAAC;CACH;AAED,4EAA4E;AAC5E,wBAAgB,+BAA+B,IAAI,yBAAyB,CAe3E"}
1
+ {"version":3,"file":"createRepositoryRuntimeProvider.d.ts","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,uDAAuD,CAAC;AAE/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;IACjF,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;YAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B;QACD;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;YAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;SAC1B;KACF,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC;gBAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC9F;QACD;YACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC;gBAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC7C;KACF,CAAC;CACH;AAED,mGAAmG;AACnG,wBAAgB,+BAA+B,IAAI,yBAAyB,CAY3E"}
@@ -1,20 +1,18 @@
1
1
  import { repositoryPackageMetadata } from '../../metadata/repositoryPackageMetadata.js';
2
2
  import { runConnectCommandAsync, } from '../commands/connect/runConnectCommandAsync.js';
3
- /** Create the package-level Ankh provider for `ankh repository connect`. */
3
+ import { runMaterializeCommandAsync, } from '../commands/materialize/runMaterializeCommandAsync.js';
4
+ /*** Create the package-level Ankh provider for repository connect and materialization commands. */
4
5
  export function createRepositoryRuntimeProvider() {
5
6
  return {
6
7
  id: repositoryPackageMetadata.provider,
7
8
  category: repositoryPackageMetadata.category,
8
9
  version: repositoryPackageMetadata.version,
9
- capabilities: ['repository.connect'],
10
- commands: [
11
- {
12
- path: ['connect'],
13
- capability: 'repository.connect',
14
- summary: repositoryPackageMetadata.command.summary,
15
- },
10
+ capabilities: repositoryPackageMetadata.capabilities,
11
+ commands: [repositoryPackageMetadata.command, repositoryPackageMetadata.materializeCommand],
12
+ handlers: [
13
+ { path: ['connect'], handler: runConnectCommandAsync },
14
+ { path: ['materialize'], handler: runMaterializeCommandAsync },
16
15
  ],
17
- handlers: [{ path: ['connect'], handler: runConnectCommandAsync }],
18
16
  };
19
17
  }
20
18
  //# sourceMappingURL=createRepositoryRuntimeProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRepositoryRuntimeProvider.js","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAEL,sBAAsB,GACvB,MAAM,+CAA+C,CAAC;AAsBvD,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,EAAE,EAAE,yBAAyB,CAAC,QAAQ;QACtC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;QAC5C,OAAO,EAAE,yBAAyB,CAAC,OAAO;QAC1C,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,UAAU,EAAE,oBAAoB;gBAChC,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO;aACnD;SACF;QACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createRepositoryRuntimeProvider.js","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAEL,sBAAsB,GACvB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAEL,0BAA0B,GAC3B,MAAM,uDAAuD,CAAC;AAiC/D,mGAAmG;AACnG,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,EAAE,EAAE,yBAAyB,CAAC,QAAQ;QACtC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;QAC5C,OAAO,EAAE,yBAAyB,CAAC,OAAO;QAC1C,YAAY,EAAE,yBAAyB,CAAC,YAAY;QACpD,QAAQ,EAAE,CAAC,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,CAAC,kBAAkB,CAAC;QAC3F,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE;YACtD,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE;SAC/D;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +1,16 @@
1
1
  import { expect, test } from 'bun:test';
2
2
  import packageJson from '../../../package.json';
3
3
  import { createRepositoryRuntimeProvider } from './createRepositoryRuntimeProvider.js';
4
- test('reports the installed package version and canonical repository capability', () => {
4
+ test('reports the installed package version and canonical repository capabilities', () => {
5
5
  expect(createRepositoryRuntimeProvider()).toMatchObject({
6
6
  id: 'repository',
7
7
  category: 'repository',
8
8
  version: packageJson.version,
9
- capabilities: ['repository.connect'],
9
+ capabilities: ['repository.connect', 'repository.materialize'],
10
+ commands: [
11
+ { path: ['connect'], capability: 'repository.connect' },
12
+ { path: ['materialize'], capability: 'repository.materialize' },
13
+ ],
10
14
  });
11
15
  });
12
16
  //# sourceMappingURL=createRepositoryRuntimeProvider.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createRepositoryRuntimeProvider.test.js","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAEvF,IAAI,CAAC,2EAA2E,EAAE,GAAG,EAAE;IACrF,MAAM,CAAC,+BAA+B,EAAE,CAAC,CAAC,aAAa,CAAC;QACtD,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,YAAY,EAAE,CAAC,oBAAoB,CAAC;KACrC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createRepositoryRuntimeProvider.test.js","sourceRoot":"","sources":["../../../src/cli/provider/createRepositoryRuntimeProvider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAEvF,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;IACvF,MAAM,CAAC,+BAA+B,EAAE,CAAC,CAAC,aAAa,CAAC;QACtD,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;QAC9D,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE;YACvD,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE;SAChE;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  export type { GitHubRepositoryConnectionOptions } from '../providers/github/definitions/GitHubRepositoryConnectionOptions.js';
2
2
  export type { GitHubRepositoryConnectionFailure, GitHubRepositoryConnectionResult, GitHubRepositoryConnectionStatus, } from '../providers/github/definitions/GitHubRepositoryConnectionResult.js';
3
+ export type { GitHubRepositoryMaterializationOptions } from '../providers/github/definitions/GitHubRepositoryMaterializationOptions.js';
4
+ export type { GitHubRepositoryMaterializationResult } from '../providers/github/definitions/GitHubRepositoryMaterializationResult.js';
3
5
  export type { GitHubRepositoryVisibility } from '../providers/github/definitions/GitHubRepositoryVisibility.js';
4
6
  export { connectGitHubRepositoryAsync } from '../providers/github/services/connectGitHubRepositoryAsync.js';
7
+ export { materializeGitHubRepositoryAsync } from '../providers/github/services/materializeGitHubRepositoryAsync.js';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,sEAAsE,CAAC;AAC9H,YAAY,EACV,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,YAAY,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AAChH,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iCAAiC,EAAE,MAAM,sEAAsE,CAAC;AAC9H,YAAY,EACV,iCAAiC,EACjC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qEAAqE,CAAC;AAC7E,YAAY,EAAE,sCAAsC,EAAE,MAAM,2EAA2E,CAAC;AACxI,YAAY,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AACtI,YAAY,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAC;AAChH,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { connectGitHubRepositoryAsync } from '../providers/github/services/connectGitHubRepositoryAsync.js';
2
+ export { materializeGitHubRepositoryAsync } from '../providers/github/services/materializeGitHubRepositoryAsync.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC"}
@@ -3,7 +3,7 @@ export declare const REPOSITORY_PACKAGE_METADATA: {
3
3
  readonly manifestProperty: "repository";
4
4
  readonly contractSubpath: "@ankhorage/contracts/repository";
5
5
  readonly providers: readonly ["github"];
6
- readonly capabilities: readonly ["repository.connect"];
6
+ readonly capabilities: readonly ["repository.connect", "repository.materialize"];
7
7
  readonly github: {
8
8
  readonly cli: "gh";
9
9
  readonly defaultBranch: "main";
@@ -3,7 +3,7 @@ export const REPOSITORY_PACKAGE_METADATA = {
3
3
  manifestProperty: 'repository',
4
4
  contractSubpath: '@ankhorage/contracts/repository',
5
5
  providers: ['github'],
6
- capabilities: ['repository.connect'],
6
+ capabilities: ['repository.connect', 'repository.materialize'],
7
7
  github: {
8
8
  cli: 'gh',
9
9
  defaultBranch: 'main',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,WAAW,EAAE,uBAAuB;IACpC,gBAAgB,EAAE,YAAY;IAC9B,eAAe,EAAE,iCAAiC;IAClD,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,YAAY,EAAE,CAAC,oBAAoB,CAAC;IACpC,MAAM,EAAE;QACN,GAAG,EAAE,IAAI;QACT,aAAa,EAAE,MAAM;KACtB;CACO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,WAAW,EAAE,uBAAuB;IACpC,gBAAgB,EAAE,YAAY;IAC9B,eAAe,EAAE,iCAAiC;IAClD,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;IAC9D,MAAM,EAAE;QACN,GAAG,EAAE,IAAI;QACT,aAAa,EAAE,MAAM;KACtB;CACO,CAAC"}
@@ -3,11 +3,16 @@ export declare const repositoryPackageMetadata: {
3
3
  readonly provider: "repository";
4
4
  readonly category: "repository";
5
5
  readonly version: string;
6
- readonly capabilities: readonly ["repository.connect"];
6
+ readonly capabilities: readonly ["repository.connect", "repository.materialize"];
7
7
  readonly command: {
8
8
  readonly path: readonly ["connect"];
9
9
  readonly capability: "repository.connect";
10
10
  readonly summary: "Create or safely resume a source repository connection.";
11
11
  };
12
+ readonly materializeCommand: {
13
+ readonly path: readonly ["materialize"];
14
+ readonly capability: "repository.materialize";
15
+ readonly summary: "Materialize a GitHub repository URL as a local filesystem snapshot.";
16
+ };
12
17
  };
13
18
  //# sourceMappingURL=repositoryPackageMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryPackageMetadata.d.ts","sourceRoot":"","sources":["../../src/metadata/repositoryPackageMetadata.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAW5B,CAAC"}
1
+ {"version":3,"file":"repositoryPackageMetadata.d.ts","sourceRoot":"","sources":["../../src/metadata/repositoryPackageMetadata.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;CAgB5B,CAAC"}
@@ -4,11 +4,16 @@ export const repositoryPackageMetadata = {
4
4
  provider: 'repository',
5
5
  category: 'repository',
6
6
  version: packageJson.version,
7
- capabilities: ['repository.connect'],
7
+ capabilities: ['repository.connect', 'repository.materialize'],
8
8
  command: {
9
9
  path: ['connect'],
10
10
  capability: 'repository.connect',
11
11
  summary: 'Create or safely resume a source repository connection.',
12
12
  },
13
+ materializeCommand: {
14
+ path: ['materialize'],
15
+ capability: 'repository.materialize',
16
+ summary: 'Materialize a GitHub repository URL as a local filesystem snapshot.',
17
+ },
13
18
  };
14
19
  //# sourceMappingURL=repositoryPackageMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryPackageMetadata.js","sourceRoot":"","sources":["../../src/metadata/repositoryPackageMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,WAAW,EAAE,WAAW,CAAC,IAAI;IAC7B,QAAQ,EAAE,YAAqB;IAC/B,QAAQ,EAAE,YAAqB;IAC/B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,YAAY,EAAE,CAAC,oBAAoB,CAAU;IAC7C,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,SAAS,CAAU;QAC1B,UAAU,EAAE,oBAA6B;QACzC,OAAO,EAAE,yDAAyD;KACnE;CACO,CAAC"}
1
+ {"version":3,"file":"repositoryPackageMetadata.js","sourceRoot":"","sources":["../../src/metadata/repositoryPackageMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,WAAW,EAAE,WAAW,CAAC,IAAI;IAC7B,QAAQ,EAAE,YAAqB;IAC/B,QAAQ,EAAE,YAAqB;IAC/B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAU;IACvE,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,SAAS,CAAU;QAC1B,UAAU,EAAE,oBAA6B;QACzC,OAAO,EAAE,yDAAyD;KACnE;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,aAAa,CAAU;QAC9B,UAAU,EAAE,wBAAiC;QAC7C,OAAO,EAAE,qEAAqE;KAC/E;CACO,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { GitHubRepositoryReadGateway } from '../ports/GitHubRepositoryReadGateway.js';
2
+ /*** Create the read-only GitHub gateway used to materialize repository snapshots over HTTPS. */
3
+ export declare function createGitHubHttpRepositoryReadGateway(fetcher?: typeof fetch): GitHubRepositoryReadGateway;
4
+ //# sourceMappingURL=createGitHubHttpRepositoryReadGateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGitHubHttpRepositoryReadGateway.d.ts","sourceRoot":"","sources":["../../../../src/providers/github/adapters/createGitHubHttpRepositoryReadGateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAM5B,MAAM,yCAAyC,CAAC;AAEjD,gGAAgG;AAChG,wBAAgB,qCAAqC,CACnD,OAAO,GAAE,OAAO,KAAa,GAC5B,2BAA2B,CAO7B"}