@ankhorage/deploy 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/project/ProjectDeploymentPaths.d.ts +17 -0
  4. package/dist/project/ProjectDeploymentPaths.d.ts.map +1 -0
  5. package/dist/project/ProjectDeploymentPaths.js +2 -0
  6. package/dist/project/ProjectDeploymentPaths.js.map +1 -0
  7. package/dist/project/ResolvedDeployProject.d.ts +11 -0
  8. package/dist/project/ResolvedDeployProject.d.ts.map +1 -0
  9. package/dist/project/ResolvedDeployProject.js +2 -0
  10. package/dist/project/ResolvedDeployProject.js.map +1 -0
  11. package/dist/project/history/ProjectDeploymentHistoryRecord.d.ts +14 -0
  12. package/dist/project/history/ProjectDeploymentHistoryRecord.d.ts.map +1 -0
  13. package/dist/project/history/ProjectDeploymentHistoryRecord.js +2 -0
  14. package/dist/project/history/ProjectDeploymentHistoryRecord.js.map +1 -0
  15. package/dist/project/history/historySchemaVersion.d.ts +2 -0
  16. package/dist/project/history/historySchemaVersion.d.ts.map +1 -0
  17. package/dist/project/history/historySchemaVersion.js +2 -0
  18. package/dist/project/history/historySchemaVersion.js.map +1 -0
  19. package/dist/project/history/listProjectDeploymentHistory.d.ts +5 -0
  20. package/dist/project/history/listProjectDeploymentHistory.d.ts.map +1 -0
  21. package/dist/project/history/listProjectDeploymentHistory.js +25 -0
  22. package/dist/project/history/listProjectDeploymentHistory.js.map +1 -0
  23. package/dist/project/history/parseProjectDeploymentHistoryRecord.d.ts +3 -0
  24. package/dist/project/history/parseProjectDeploymentHistoryRecord.d.ts.map +1 -0
  25. package/dist/project/history/parseProjectDeploymentHistoryRecord.js +40 -0
  26. package/dist/project/history/parseProjectDeploymentHistoryRecord.js.map +1 -0
  27. package/dist/project/history/readProjectDeploymentHistory.d.ts +6 -0
  28. package/dist/project/history/readProjectDeploymentHistory.d.ts.map +1 -0
  29. package/dist/project/history/readProjectDeploymentHistory.js +26 -0
  30. package/dist/project/history/readProjectDeploymentHistory.js.map +1 -0
  31. package/dist/project/history/recordProjectDeploymentHistory.d.ts +6 -0
  32. package/dist/project/history/recordProjectDeploymentHistory.d.ts.map +1 -0
  33. package/dist/project/history/recordProjectDeploymentHistory.js +40 -0
  34. package/dist/project/history/recordProjectDeploymentHistory.js.map +1 -0
  35. package/dist/project/history/validation/diagnostic.d.ts +2 -0
  36. package/dist/project/history/validation/diagnostic.d.ts.map +1 -0
  37. package/dist/project/history/validation/diagnostic.js +14 -0
  38. package/dist/project/history/validation/diagnostic.js.map +1 -0
  39. package/dist/project/history/validation/execution.d.ts +2 -0
  40. package/dist/project/history/validation/execution.d.ts.map +1 -0
  41. package/dist/project/history/validation/execution.js +40 -0
  42. package/dist/project/history/validation/execution.js.map +1 -0
  43. package/dist/project/history/validation/failure.d.ts +2 -0
  44. package/dist/project/history/validation/failure.d.ts.map +1 -0
  45. package/dist/project/history/validation/failure.js +13 -0
  46. package/dist/project/history/validation/failure.js.map +1 -0
  47. package/dist/project/history/validation/isIsoTimestamp.d.ts +2 -0
  48. package/dist/project/history/validation/isIsoTimestamp.d.ts.map +1 -0
  49. package/dist/project/history/validation/isIsoTimestamp.js +6 -0
  50. package/dist/project/history/validation/isIsoTimestamp.js.map +1 -0
  51. package/dist/project/history/validation/observedTarget.d.ts +2 -0
  52. package/dist/project/history/validation/observedTarget.d.ts.map +1 -0
  53. package/dist/project/history/validation/observedTarget.js +24 -0
  54. package/dist/project/history/validation/observedTarget.js.map +1 -0
  55. package/dist/project/history/validation/plan.d.ts +2 -0
  56. package/dist/project/history/validation/plan.d.ts.map +1 -0
  57. package/dist/project/history/validation/plan.js +18 -0
  58. package/dist/project/history/validation/plan.js.map +1 -0
  59. package/dist/project/history/validation/planStep.d.ts +2 -0
  60. package/dist/project/history/validation/planStep.d.ts.map +1 -0
  61. package/dist/project/history/validation/planStep.js +17 -0
  62. package/dist/project/history/validation/planStep.js.map +1 -0
  63. package/dist/project/history/validation/providerSelection.d.ts +2 -0
  64. package/dist/project/history/validation/providerSelection.d.ts.map +1 -0
  65. package/dist/project/history/validation/providerSelection.js +13 -0
  66. package/dist/project/history/validation/providerSelection.js.map +1 -0
  67. package/dist/project/history/validation/requiredAction.d.ts +2 -0
  68. package/dist/project/history/validation/requiredAction.d.ts.map +1 -0
  69. package/dist/project/history/validation/requiredAction.js +27 -0
  70. package/dist/project/history/validation/requiredAction.js.map +1 -0
  71. package/dist/project/history/validation/shared.d.ts +3 -0
  72. package/dist/project/history/validation/shared.d.ts.map +1 -0
  73. package/dist/project/history/validation/shared.js +8 -0
  74. package/dist/project/history/validation/shared.js.map +1 -0
  75. package/dist/project/history/validation/stepOutcome.d.ts +2 -0
  76. package/dist/project/history/validation/stepOutcome.d.ts.map +1 -0
  77. package/dist/project/history/validation/stepOutcome.js +21 -0
  78. package/dist/project/history/validation/stepOutcome.js.map +1 -0
  79. package/dist/project/history/validation/targetChange.d.ts +2 -0
  80. package/dist/project/history/validation/targetChange.d.ts.map +1 -0
  81. package/dist/project/history/validation/targetChange.js +19 -0
  82. package/dist/project/history/validation/targetChange.js.map +1 -0
  83. package/dist/project/history/validation/verification.d.ts +2 -0
  84. package/dist/project/history/validation/verification.d.ts.map +1 -0
  85. package/dist/project/history/validation/verification.js +23 -0
  86. package/dist/project/history/validation/verification.js.map +1 -0
  87. package/dist/project/index.d.ts +12 -0
  88. package/dist/project/index.d.ts.map +1 -0
  89. package/dist/project/index.js +9 -0
  90. package/dist/project/index.js.map +1 -0
  91. package/dist/project/io/assertContainedPath.d.ts +2 -0
  92. package/dist/project/io/assertContainedPath.d.ts.map +1 -0
  93. package/dist/project/io/assertContainedPath.js +33 -0
  94. package/dist/project/io/assertContainedPath.js.map +1 -0
  95. package/dist/project/io/assertSafeSegment.d.ts +3 -0
  96. package/dist/project/io/assertSafeSegment.d.ts.map +1 -0
  97. package/dist/project/io/assertSafeSegment.js +15 -0
  98. package/dist/project/io/assertSafeSegment.js.map +1 -0
  99. package/dist/project/io/atomicWriteFile.d.ts +6 -0
  100. package/dist/project/io/atomicWriteFile.d.ts.map +1 -0
  101. package/dist/project/io/atomicWriteFile.js +18 -0
  102. package/dist/project/io/atomicWriteFile.js.map +1 -0
  103. package/dist/project/io/atomicWriteJson.d.ts +6 -0
  104. package/dist/project/io/atomicWriteJson.d.ts.map +1 -0
  105. package/dist/project/io/atomicWriteJson.js +10 -0
  106. package/dist/project/io/atomicWriteJson.js.map +1 -0
  107. package/dist/project/io/hasOnlyKeys.d.ts +2 -0
  108. package/dist/project/io/hasOnlyKeys.d.ts.map +1 -0
  109. package/dist/project/io/hasOnlyKeys.js +4 -0
  110. package/dist/project/io/hasOnlyKeys.js.map +1 -0
  111. package/dist/project/io/isMissingPathError.d.ts +2 -0
  112. package/dist/project/io/isMissingPathError.d.ts.map +1 -0
  113. package/dist/project/io/isMissingPathError.js +4 -0
  114. package/dist/project/io/isMissingPathError.js.map +1 -0
  115. package/dist/project/io/isRecord.d.ts +2 -0
  116. package/dist/project/io/isRecord.d.ts.map +1 -0
  117. package/dist/project/io/isRecord.js +4 -0
  118. package/dist/project/io/isRecord.js.map +1 -0
  119. package/dist/project/io/normalizeProjectRoot.d.ts +2 -0
  120. package/dist/project/io/normalizeProjectRoot.d.ts.map +1 -0
  121. package/dist/project/io/normalizeProjectRoot.js +18 -0
  122. package/dist/project/io/normalizeProjectRoot.js.map +1 -0
  123. package/dist/project/io/readJsonFile.d.ts +2 -0
  124. package/dist/project/io/readJsonFile.d.ts.map +1 -0
  125. package/dist/project/io/readJsonFile.js +11 -0
  126. package/dist/project/io/readJsonFile.js.map +1 -0
  127. package/dist/project/io/readProjectManifest.d.ts +6 -0
  128. package/dist/project/io/readProjectManifest.d.ts.map +1 -0
  129. package/dist/project/io/readProjectManifest.js +20 -0
  130. package/dist/project/io/readProjectManifest.js.map +1 -0
  131. package/dist/project/readProjectDeploymentConfig.d.ts +5 -0
  132. package/dist/project/readProjectDeploymentConfig.d.ts.map +1 -0
  133. package/dist/project/readProjectDeploymentConfig.js +6 -0
  134. package/dist/project/readProjectDeploymentConfig.js.map +1 -0
  135. package/dist/project/resolveDeployProject.d.ts +5 -0
  136. package/dist/project/resolveDeployProject.d.ts.map +1 -0
  137. package/dist/project/resolveDeployProject.js +15 -0
  138. package/dist/project/resolveDeployProject.js.map +1 -0
  139. package/dist/project/resolveProjectDeploymentPaths.d.ts +3 -0
  140. package/dist/project/resolveProjectDeploymentPaths.d.ts.map +1 -0
  141. package/dist/project/resolveProjectDeploymentPaths.js +25 -0
  142. package/dist/project/resolveProjectDeploymentPaths.js.map +1 -0
  143. package/dist/project/updateProjectDeploymentConfig.d.ts +7 -0
  144. package/dist/project/updateProjectDeploymentConfig.d.ts.map +1 -0
  145. package/dist/project/updateProjectDeploymentConfig.js +23 -0
  146. package/dist/project/updateProjectDeploymentConfig.js.map +1 -0
  147. package/package.json +6 -1
@@ -0,0 +1,15 @@
1
+ import { normalizeProjectRoot } from './io/normalizeProjectRoot';
2
+ import { readProjectManifest } from './io/readProjectManifest';
3
+ import { resolveProjectDeploymentPaths } from './resolveProjectDeploymentPaths';
4
+ export async function resolveDeployProject(options) {
5
+ const projectRoot = await normalizeProjectRoot(options.projectRoot);
6
+ const { manifest, manifestPath } = await readProjectManifest(projectRoot);
7
+ return {
8
+ projectRoot,
9
+ manifestPath,
10
+ manifest,
11
+ deploy: manifest.deploy ?? null,
12
+ paths: resolveProjectDeploymentPaths(projectRoot),
13
+ };
14
+ }
15
+ //# sourceMappingURL=resolveDeployProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveDeployProject.js","sourceRoot":"","sources":["../../src/project/resolveDeployProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAE1C;IACC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAE1E,OAAO;QACL,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;QAC/B,KAAK,EAAE,6BAA6B,CAAC,WAAW,CAAC;KAClD,CAAC;AACJ,CAAC","sourcesContent":["import { normalizeProjectRoot } from './io/normalizeProjectRoot';\nimport { readProjectManifest } from './io/readProjectManifest';\nimport type { ResolvedDeployProject } from './ResolvedDeployProject';\nimport { resolveProjectDeploymentPaths } from './resolveProjectDeploymentPaths';\n\nexport async function resolveDeployProject(options: {\n readonly projectRoot: string;\n}): Promise<ResolvedDeployProject> {\n const projectRoot = await normalizeProjectRoot(options.projectRoot);\n const { manifest, manifestPath } = await readProjectManifest(projectRoot);\n\n return {\n projectRoot,\n manifestPath,\n manifest,\n deploy: manifest.deploy ?? null,\n paths: resolveProjectDeploymentPaths(projectRoot),\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ProjectDeploymentPaths } from './ProjectDeploymentPaths';
2
+ export declare function resolveProjectDeploymentPaths(projectRoot: string): ProjectDeploymentPaths;
3
+ //# sourceMappingURL=resolveProjectDeploymentPaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProjectDeploymentPaths.d.ts","sourceRoot":"","sources":["../../src/project/resolveProjectDeploymentPaths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAuBzF"}
@@ -0,0 +1,25 @@
1
+ import path from 'node:path';
2
+ export function resolveProjectDeploymentPaths(projectRoot) {
3
+ const root = path.resolve(projectRoot);
4
+ const authoredRoot = path.join(root, 'deploy');
5
+ const assetsRoot = path.join(authoredRoot, 'assets');
6
+ const androidAssetsRoot = path.join(assetsRoot, 'android');
7
+ const iosAssetsRoot = path.join(assetsRoot, 'ios');
8
+ return {
9
+ projectRoot: root,
10
+ manifestPath: path.join(root, 'ankh.config.json'),
11
+ authoredRoot,
12
+ listingRoot: path.join(authoredRoot, 'listing'),
13
+ assetsRoot,
14
+ sharedAssetsRoot: path.join(assetsRoot, 'shared'),
15
+ androidAssetsRoot,
16
+ androidScreenshotsRoot: path.join(androidAssetsRoot, 'screenshots'),
17
+ iosAssetsRoot,
18
+ iosScreenshotsRoot: path.join(iosAssetsRoot, 'screenshots'),
19
+ monetizationRoot: path.join(authoredRoot, 'monetization'),
20
+ productsPath: path.join(authoredRoot, 'monetization', 'products.json'),
21
+ releasePath: path.join(authoredRoot, 'release.json'),
22
+ historyRoot: path.join(root, '.ankh', 'deployments'),
23
+ };
24
+ }
25
+ //# sourceMappingURL=resolveProjectDeploymentPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProjectDeploymentPaths.js","sourceRoot":"","sources":["../../src/project/resolveProjectDeploymentPaths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,UAAU,6BAA6B,CAAC,WAAmB;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEnD,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;QACjD,YAAY;QACZ,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;QAC/C,UAAU;QACV,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;QACjD,iBAAiB;QACjB,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QACnE,aAAa;QACb,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;QAC3D,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;QACzD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,CAAC;QACtE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;QACpD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;KACrD,CAAC;AACJ,CAAC","sourcesContent":["import path from 'node:path';\n\nimport type { ProjectDeploymentPaths } from './ProjectDeploymentPaths';\n\nexport function resolveProjectDeploymentPaths(projectRoot: string): ProjectDeploymentPaths {\n const root = path.resolve(projectRoot);\n const authoredRoot = path.join(root, 'deploy');\n const assetsRoot = path.join(authoredRoot, 'assets');\n const androidAssetsRoot = path.join(assetsRoot, 'android');\n const iosAssetsRoot = path.join(assetsRoot, 'ios');\n\n return {\n projectRoot: root,\n manifestPath: path.join(root, 'ankh.config.json'),\n authoredRoot,\n listingRoot: path.join(authoredRoot, 'listing'),\n assetsRoot,\n sharedAssetsRoot: path.join(assetsRoot, 'shared'),\n androidAssetsRoot,\n androidScreenshotsRoot: path.join(androidAssetsRoot, 'screenshots'),\n iosAssetsRoot,\n iosScreenshotsRoot: path.join(iosAssetsRoot, 'screenshots'),\n monetizationRoot: path.join(authoredRoot, 'monetization'),\n productsPath: path.join(authoredRoot, 'monetization', 'products.json'),\n releasePath: path.join(authoredRoot, 'release.json'),\n historyRoot: path.join(root, '.ankh', 'deployments'),\n };\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { type AppDeployManifest } from '@ankhorage/contracts/deploy';
2
+ export type ProjectDeploymentConfigUpdater = (current: AppDeployManifest | null) => AppDeployManifest | null;
3
+ export declare function updateProjectDeploymentConfig(options: {
4
+ readonly projectRoot: string;
5
+ readonly update: ProjectDeploymentConfigUpdater;
6
+ }): Promise<AppDeployManifest | null>;
7
+ //# sourceMappingURL=updateProjectDeploymentConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateProjectDeploymentConfig.d.ts","sourceRoot":"","sources":["../../src/project/updateProjectDeploymentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAK1F,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAC9B,iBAAiB,GAAG,IAAI,CAAC;AAE9B,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAoBpC"}
@@ -0,0 +1,23 @@
1
+ import { isAppDeployManifest } from '@ankhorage/contracts/deploy';
2
+ import { atomicWriteJson } from './io/atomicWriteJson';
3
+ import { resolveDeployProject } from './resolveDeployProject';
4
+ export async function updateProjectDeploymentConfig(options) {
5
+ const project = await resolveDeployProject({ projectRoot: options.projectRoot });
6
+ const current = project.deploy === null ? null : structuredClone(project.deploy);
7
+ const next = options.update(current);
8
+ if (next !== null && !isAppDeployManifest(next)) {
9
+ throw new Error('Deployment config update returned an invalid canonical AppDeployManifest.');
10
+ }
11
+ const nextManifest = { ...project.manifest };
12
+ if (next === null)
13
+ delete nextManifest.deploy;
14
+ else
15
+ nextManifest.deploy = next;
16
+ await atomicWriteJson({
17
+ projectRoot: project.projectRoot,
18
+ filePath: project.manifestPath,
19
+ value: nextManifest,
20
+ });
21
+ return next;
22
+ }
23
+ //# sourceMappingURL=updateProjectDeploymentConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateProjectDeploymentConfig.js","sourceRoot":"","sources":["../../src/project/updateProjectDeploymentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAGnD;IACC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC;;QACzC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;IAEhC,MAAM,eAAe,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,YAAY;QAC9B,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { type AppDeployManifest, isAppDeployManifest } from '@ankhorage/contracts/deploy';\n\nimport { atomicWriteJson } from './io/atomicWriteJson';\nimport { resolveDeployProject } from './resolveDeployProject';\n\nexport type ProjectDeploymentConfigUpdater = (\n current: AppDeployManifest | null,\n) => AppDeployManifest | null;\n\nexport async function updateProjectDeploymentConfig(options: {\n readonly projectRoot: string;\n readonly update: ProjectDeploymentConfigUpdater;\n}): Promise<AppDeployManifest | null> {\n const project = await resolveDeployProject({ projectRoot: options.projectRoot });\n const current = project.deploy === null ? null : structuredClone(project.deploy);\n const next = options.update(current);\n\n if (next !== null && !isAppDeployManifest(next)) {\n throw new Error('Deployment config update returned an invalid canonical AppDeployManifest.');\n }\n\n const nextManifest = { ...project.manifest };\n if (next === null) delete nextManifest.deploy;\n else nextManifest.deploy = next;\n\n await atomicWriteJson({\n projectRoot: project.projectRoot,\n filePath: project.manifestPath,\n value: nextManifest,\n });\n\n return next;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/deploy",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Declarative deployment engine for Expo apps across web, iOS, and Android — build, provision, publish, and manage releases from one configuration.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -37,6 +37,11 @@
37
37
  "import": "./dist/index.js",
38
38
  "default": "./dist/index.js"
39
39
  },
40
+ "./project": {
41
+ "types": "./dist/project/index.d.ts",
42
+ "import": "./dist/project/index.js",
43
+ "default": "./dist/project/index.js"
44
+ },
40
45
  "./package.json": "./package.json"
41
46
  },
42
47
  "files": [