@ankhorage/deploy 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -2
- package/dist/domain/DeploymentCurrentState.d.ts +6 -3
- package/dist/domain/DeploymentCurrentState.d.ts.map +1 -1
- package/dist/domain/DeploymentCurrentState.js.map +1 -1
- package/dist/domain/DeploymentDesiredRevisions.d.ts +3 -0
- package/dist/domain/DeploymentDesiredRevisions.d.ts.map +1 -0
- package/dist/domain/DeploymentDesiredRevisions.js +2 -0
- package/dist/domain/DeploymentDesiredRevisions.js.map +1 -0
- package/dist/domain/DeploymentTargetChange.d.ts +1 -1
- package/dist/domain/DeploymentTargetChange.d.ts.map +1 -1
- package/dist/domain/DeploymentTargetChange.js +1 -0
- package/dist/domain/DeploymentTargetChange.js.map +1 -1
- package/dist/domain/WebDeploymentPublication.d.ts +9 -0
- package/dist/domain/WebDeploymentPublication.d.ts.map +1 -0
- package/dist/domain/WebDeploymentPublication.js +2 -0
- package/dist/domain/WebDeploymentPublication.js.map +1 -0
- package/dist/domain/WebDeploymentPublishIntent.d.ts +6 -0
- package/dist/domain/WebDeploymentPublishIntent.d.ts.map +1 -0
- package/dist/domain/WebDeploymentPublishIntent.js +2 -0
- package/dist/domain/WebDeploymentPublishIntent.js.map +1 -0
- package/dist/engine/createDeploymentChanges.d.ts +2 -0
- package/dist/engine/createDeploymentChanges.d.ts.map +1 -1
- package/dist/engine/createDeploymentChanges.js +22 -7
- package/dist/engine/createDeploymentChanges.js.map +1 -1
- package/dist/engine/createDeploymentPlan.d.ts +2 -0
- package/dist/engine/createDeploymentPlan.d.ts.map +1 -1
- package/dist/engine/createDeploymentPlan.js.map +1 -1
- package/dist/engine/targetSnapshot.d.ts +2 -2
- package/dist/engine/targetSnapshot.d.ts.map +1 -1
- package/dist/engine/targetSnapshot.js +14 -9
- package/dist/engine/targetSnapshot.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/project/history/validation/observedTarget.d.ts.map +1 -1
- package/dist/project/history/validation/observedTarget.js +13 -6
- package/dist/project/history/validation/observedTarget.js.map +1 -1
- package/dist/project/index.d.ts +6 -0
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/index.js +3 -0
- package/dist/project/index.js.map +1 -1
- package/dist/project/web/ProjectWebDeploymentAccess.d.ts +7 -0
- package/dist/project/web/ProjectWebDeploymentAccess.d.ts.map +1 -0
- package/dist/project/web/ProjectWebDeploymentAccess.js +2 -0
- package/dist/project/web/ProjectWebDeploymentAccess.js.map +1 -0
- package/dist/project/web/ProjectWebDeploymentExecution.d.ts +12 -0
- package/dist/project/web/ProjectWebDeploymentExecution.d.ts.map +1 -0
- package/dist/project/web/ProjectWebDeploymentExecution.js +2 -0
- package/dist/project/web/ProjectWebDeploymentExecution.js.map +1 -0
- package/dist/project/web/ProjectWebDeploymentInspection.d.ts +19 -0
- package/dist/project/web/ProjectWebDeploymentInspection.d.ts.map +1 -0
- package/dist/project/web/ProjectWebDeploymentInspection.js +2 -0
- package/dist/project/web/ProjectWebDeploymentInspection.js.map +1 -0
- package/dist/project/web/ProjectWebDeploymentRuntime.d.ts +9 -0
- package/dist/project/web/ProjectWebDeploymentRuntime.d.ts.map +1 -0
- package/dist/project/web/ProjectWebDeploymentRuntime.js +8 -0
- package/dist/project/web/ProjectWebDeploymentRuntime.js.map +1 -0
- package/dist/project/web/ProjectWebExecutionState.d.ts +9 -0
- package/dist/project/web/ProjectWebExecutionState.d.ts.map +1 -0
- package/dist/project/web/ProjectWebExecutionState.js +2 -0
- package/dist/project/web/ProjectWebExecutionState.js.map +1 -0
- package/dist/project/web/areDeploymentPlansEqual.d.ts +3 -0
- package/dist/project/web/areDeploymentPlansEqual.d.ts.map +1 -0
- package/dist/project/web/areDeploymentPlansEqual.js +4 -0
- package/dist/project/web/areDeploymentPlansEqual.js.map +1 -0
- package/dist/project/web/createProjectWebDeploymentPlan.d.ts +4 -0
- package/dist/project/web/createProjectWebDeploymentPlan.d.ts.map +1 -0
- package/dist/project/web/createProjectWebDeploymentPlan.js +13 -0
- package/dist/project/web/createProjectWebDeploymentPlan.js.map +1 -0
- package/dist/project/web/executeProjectWebDeployment.d.ts +14 -0
- package/dist/project/web/executeProjectWebDeployment.d.ts.map +1 -0
- package/dist/project/web/executeProjectWebDeployment.js +118 -0
- package/dist/project/web/executeProjectWebDeployment.js.map +1 -0
- package/dist/project/web/executeProjectWebStep.d.ts +16 -0
- package/dist/project/web/executeProjectWebStep.d.ts.map +1 -0
- package/dist/project/web/executeProjectWebStep.js +80 -0
- package/dist/project/web/executeProjectWebStep.js.map +1 -0
- package/dist/project/web/inspectProjectWebDeployment.d.ts +9 -0
- package/dist/project/web/inspectProjectWebDeployment.d.ts.map +1 -0
- package/dist/project/web/inspectProjectWebDeployment.js +56 -0
- package/dist/project/web/inspectProjectWebDeployment.js.map +1 -0
- package/dist/project/web/inspectProjectWebSetup.d.ts +5 -0
- package/dist/project/web/inspectProjectWebSetup.d.ts.map +1 -0
- package/dist/project/web/inspectProjectWebSetup.js +9 -0
- package/dist/project/web/inspectProjectWebSetup.js.map +1 -0
- package/dist/project/web/normalizeProjectWebDesired.d.ts +12 -0
- package/dist/project/web/normalizeProjectWebDesired.d.ts.map +1 -0
- package/dist/project/web/normalizeProjectWebDesired.js +20 -0
- package/dist/project/web/normalizeProjectWebDesired.js.map +1 -0
- package/dist/project/web/readCurrentProjectWebDeployment.d.ts +3 -0
- package/dist/project/web/readCurrentProjectWebDeployment.d.ts.map +1 -0
- package/dist/project/web/readCurrentProjectWebDeployment.js +24 -0
- package/dist/project/web/readCurrentProjectWebDeployment.js.map +1 -0
- package/dist/project/web/recordProjectWebDeployment.d.ts +19 -0
- package/dist/project/web/recordProjectWebDeployment.d.ts.map +1 -0
- package/dist/project/web/recordProjectWebDeployment.js +36 -0
- package/dist/project/web/recordProjectWebDeployment.js.map +1 -0
- package/dist/project/web/resolveProjectWebDeploymentAccess.d.ts +9 -0
- package/dist/project/web/resolveProjectWebDeploymentAccess.d.ts.map +1 -0
- package/dist/project/web/resolveProjectWebDeploymentAccess.js +7 -0
- package/dist/project/web/resolveProjectWebDeploymentAccess.js.map +1 -0
- package/dist/project/web/setupBlockingOutcome.d.ts +4 -0
- package/dist/project/web/setupBlockingOutcome.d.ts.map +1 -0
- package/dist/project/web/setupBlockingOutcome.js +34 -0
- package/dist/project/web/setupBlockingOutcome.js.map +1 -0
- package/dist/providers/eas/createEasHostingSetupAdapter.d.ts +7 -0
- package/dist/providers/eas/createEasHostingSetupAdapter.d.ts.map +1 -0
- package/dist/providers/eas/createEasHostingSetupAdapter.js +76 -0
- package/dist/providers/eas/createEasHostingSetupAdapter.js.map +1 -0
- package/dist/providers/eas/parseEasWebPublication.d.ts +3 -0
- package/dist/providers/eas/parseEasWebPublication.d.ts.map +1 -0
- package/dist/providers/eas/parseEasWebPublication.js +31 -0
- package/dist/providers/eas/parseEasWebPublication.js.map +1 -0
- package/dist/providers/eas/publishWebToEas.d.ts +27 -0
- package/dist/providers/eas/publishWebToEas.d.ts.map +1 -0
- package/dist/providers/eas/publishWebToEas.js +52 -0
- package/dist/providers/eas/publishWebToEas.js.map +1 -0
- package/dist/providers/eas/resolveEasProcessEnvironment.d.ts +15 -0
- package/dist/providers/eas/resolveEasProcessEnvironment.d.ts.map +1 -0
- package/dist/providers/eas/resolveEasProcessEnvironment.js +26 -0
- package/dist/providers/eas/resolveEasProcessEnvironment.js.map +1 -0
- package/dist/runtime/http/DeploymentHttpProbe.d.ts +6 -0
- package/dist/runtime/http/DeploymentHttpProbe.d.ts.map +1 -0
- package/dist/runtime/http/DeploymentHttpProbe.js +2 -0
- package/dist/runtime/http/DeploymentHttpProbe.js.map +1 -0
- package/dist/runtime/http/probeDeploymentHttp.d.ts +3 -0
- package/dist/runtime/http/probeDeploymentHttp.d.ts.map +1 -0
- package/dist/runtime/http/probeDeploymentHttp.js +5 -0
- package/dist/runtime/http/probeDeploymentHttp.js.map +1 -0
- package/dist/runtime/process/DeploymentProcessRunner.d.ts +13 -0
- package/dist/runtime/process/DeploymentProcessRunner.d.ts.map +1 -0
- package/dist/runtime/process/DeploymentProcessRunner.js +2 -0
- package/dist/runtime/process/DeploymentProcessRunner.js.map +1 -0
- package/dist/runtime/process/runDeploymentProcess.d.ts +3 -0
- package/dist/runtime/process/runDeploymentProcess.d.ts.map +1 -0
- package/dist/runtime/process/runDeploymentProcess.js +29 -0
- package/dist/runtime/process/runDeploymentProcess.js.map +1 -0
- package/dist/targets/web/PreparedWebArtifact.d.ts +5 -0
- package/dist/targets/web/PreparedWebArtifact.d.ts.map +1 -0
- package/dist/targets/web/PreparedWebArtifact.js +2 -0
- package/dist/targets/web/PreparedWebArtifact.js.map +1 -0
- package/dist/targets/web/createWebTargetPlanContributor.d.ts +3 -0
- package/dist/targets/web/createWebTargetPlanContributor.d.ts.map +1 -0
- package/dist/targets/web/createWebTargetPlanContributor.js +32 -0
- package/dist/targets/web/createWebTargetPlanContributor.js.map +1 -0
- package/dist/targets/web/hashWebExport.d.ts +2 -0
- package/dist/targets/web/hashWebExport.d.ts.map +1 -0
- package/dist/targets/web/hashWebExport.js +30 -0
- package/dist/targets/web/hashWebExport.js.map +1 -0
- package/dist/targets/web/normalizeWebProviders.d.ts +16 -0
- package/dist/targets/web/normalizeWebProviders.d.ts.map +1 -0
- package/dist/targets/web/normalizeWebProviders.js +16 -0
- package/dist/targets/web/normalizeWebProviders.js.map +1 -0
- package/dist/targets/web/prepareWebArtifact.d.ts +16 -0
- package/dist/targets/web/prepareWebArtifact.d.ts.map +1 -0
- package/dist/targets/web/prepareWebArtifact.js +46 -0
- package/dist/targets/web/prepareWebArtifact.js.map +1 -0
- package/dist/targets/web/verifyWebPublication.d.ts +5 -0
- package/dist/targets/web/verifyWebPublication.d.ts.map +1 -0
- package/dist/targets/web/verifyWebPublication.js +25 -0
- package/dist/targets/web/verifyWebPublication.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
export const runDeploymentProcess = async (request) => new Promise((resolve) => {
|
|
3
|
+
const child = spawn(request.command, [...request.args], {
|
|
4
|
+
cwd: request.cwd,
|
|
5
|
+
env: { ...process.env, ...request.env },
|
|
6
|
+
shell: false,
|
|
7
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
8
|
+
});
|
|
9
|
+
let stdout = '';
|
|
10
|
+
let stderr = '';
|
|
11
|
+
let settled = false;
|
|
12
|
+
child.stdout.setEncoding('utf8');
|
|
13
|
+
child.stderr.setEncoding('utf8');
|
|
14
|
+
child.stdout.on('data', (chunk) => {
|
|
15
|
+
stdout += chunk;
|
|
16
|
+
});
|
|
17
|
+
child.stderr.on('data', (chunk) => {
|
|
18
|
+
stderr += chunk;
|
|
19
|
+
});
|
|
20
|
+
child.on('error', () => settle(-1));
|
|
21
|
+
child.on('close', (code) => settle(code ?? -1));
|
|
22
|
+
function settle(exitCode) {
|
|
23
|
+
if (settled)
|
|
24
|
+
return;
|
|
25
|
+
settled = true;
|
|
26
|
+
resolve({ exitCode, stdout, stderr });
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=runDeploymentProcess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runDeploymentProcess.js","sourceRoot":"","sources":["../../../src/runtime/process/runDeploymentProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,MAAM,CAAC,MAAM,oBAAoB,GAA4B,KAAK,EAChE,OAAO,EAC2B,EAAE,CACpC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;QACtD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,SAAS,MAAM,CAAC,QAAgB;QAC9B,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { spawn } from 'node:child_process';\n\nimport type { DeploymentProcessResult, DeploymentProcessRunner } from './DeploymentProcessRunner';\n\nexport const runDeploymentProcess: DeploymentProcessRunner = async (\n request,\n): Promise<DeploymentProcessResult> =>\n new Promise((resolve) => {\n const child = spawn(request.command, [...request.args], {\n cwd: request.cwd,\n env: { ...process.env, ...request.env },\n shell: false,\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n let stdout = '';\n let stderr = '';\n let settled = false;\n child.stdout.setEncoding('utf8');\n child.stderr.setEncoding('utf8');\n child.stdout.on('data', (chunk: string) => {\n stdout += chunk;\n });\n child.stderr.on('data', (chunk: string) => {\n stderr += chunk;\n });\n child.on('error', () => settle(-1));\n child.on('close', (code) => settle(code ?? -1));\n\n function settle(exitCode: number): void {\n if (settled) return;\n settled = true;\n resolve({ exitCode, stdout, stderr });\n }\n });\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreparedWebArtifact.d.ts","sourceRoot":"","sources":["../../../src/targets/web/PreparedWebArtifact.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreparedWebArtifact.js","sourceRoot":"","sources":["../../../src/targets/web/PreparedWebArtifact.ts"],"names":[],"mappings":"","sourcesContent":["export interface PreparedWebArtifact {\n readonly directory: string;\n readonly revision: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWebTargetPlanContributor.d.ts","sourceRoot":"","sources":["../../../src/targets/web/createWebTargetPlanContributor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAEpG,wBAAgB,8BAA8B,IAAI,+BAA+B,CAMhF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export function createWebTargetPlanContributor() {
|
|
2
|
+
return {
|
|
3
|
+
target: 'web',
|
|
4
|
+
capabilities: ['prepare', 'publish', 'verify'],
|
|
5
|
+
createSteps: createWebSteps,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function createWebSteps(change) {
|
|
9
|
+
if (change.target !== 'web' || change.kind === 'none')
|
|
10
|
+
return [];
|
|
11
|
+
if (change.kind === 'remove') {
|
|
12
|
+
return [
|
|
13
|
+
{
|
|
14
|
+
id: 'web:remove',
|
|
15
|
+
target: 'web',
|
|
16
|
+
phase: 'publish',
|
|
17
|
+
operation: 'remove',
|
|
18
|
+
provider: 'eas',
|
|
19
|
+
reason: change.reason,
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
return [
|
|
24
|
+
createStep('web:prepare', 'prepare', 'run', 'expo', change.reason),
|
|
25
|
+
createStep('web:publish', 'publish', change.kind, 'eas', change.reason),
|
|
26
|
+
createStep('web:verify', 'verify', 'run', 'eas', change.reason),
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
function createStep(id, phase, operation, provider, reason) {
|
|
30
|
+
return { id, target: 'web', phase, operation, provider, reason };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=createWebTargetPlanContributor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWebTargetPlanContributor.js","sourceRoot":"","sources":["../../../src/targets/web/createWebTargetPlanContributor.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE,cAAc;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAA8B;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IACjE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL;gBACE,EAAE,EAAE,YAAY;gBAChB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QAClE,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACvE,UAAU,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,EAAU,EACV,KAAkC,EAClC,SAA0C,EAC1C,QAAgB,EAChB,MAAc;IAEd,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC","sourcesContent":["import type { DeploymentPlanStep } from '../../domain/DeploymentPlanStep';\nimport type { DeploymentTargetChange } from '../../domain/DeploymentTargetChange';\nimport type { DeploymentTargetPlanContributor } from '../../domain/DeploymentTargetPlanContributor';\n\nexport function createWebTargetPlanContributor(): DeploymentTargetPlanContributor {\n return {\n target: 'web',\n capabilities: ['prepare', 'publish', 'verify'],\n createSteps: createWebSteps,\n };\n}\n\nfunction createWebSteps(change: DeploymentTargetChange): readonly DeploymentPlanStep[] {\n if (change.target !== 'web' || change.kind === 'none') return [];\n if (change.kind === 'remove') {\n return [\n {\n id: 'web:remove',\n target: 'web',\n phase: 'publish',\n operation: 'remove',\n provider: 'eas',\n reason: change.reason,\n },\n ];\n }\n return [\n createStep('web:prepare', 'prepare', 'run', 'expo', change.reason),\n createStep('web:publish', 'publish', change.kind, 'eas', change.reason),\n createStep('web:verify', 'verify', 'run', 'eas', change.reason),\n ];\n}\n\nfunction createStep(\n id: string,\n phase: DeploymentPlanStep['phase'],\n operation: DeploymentPlanStep['operation'],\n provider: string,\n reason: string,\n): DeploymentPlanStep {\n return { id, target: 'web', phase, operation, provider, reason };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashWebExport.d.ts","sourceRoot":"","sources":["../../../src/targets/web/hashWebExport.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUjE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { promises as fs } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
export async function hashWebExport(root) {
|
|
5
|
+
const files = await listExportFiles(root, root);
|
|
6
|
+
const hash = createHash('sha256');
|
|
7
|
+
for (const file of files.sort((left, right) => left.relative.localeCompare(right.relative))) {
|
|
8
|
+
const data = await fs.readFile(file.absolute);
|
|
9
|
+
hash.update(`${file.relative.length}:${file.relative}\0${data.length}:`);
|
|
10
|
+
hash.update(data);
|
|
11
|
+
hash.update('\0');
|
|
12
|
+
}
|
|
13
|
+
return hash.digest('hex');
|
|
14
|
+
}
|
|
15
|
+
async function listExportFiles(root, directory) {
|
|
16
|
+
const entries = await fs.readdir(directory, { withFileTypes: true });
|
|
17
|
+
const files = [];
|
|
18
|
+
for (const entry of entries) {
|
|
19
|
+
const absolute = path.join(directory, entry.name);
|
|
20
|
+
if (entry.isDirectory()) {
|
|
21
|
+
files.push(...(await listExportFiles(root, absolute)));
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (!entry.isFile())
|
|
25
|
+
throw new Error('Web export contains an unsupported filesystem entry.');
|
|
26
|
+
files.push({ absolute, relative: path.relative(root, absolute).split(path.sep).join('/') });
|
|
27
|
+
}
|
|
28
|
+
return files;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=hashWebExport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashWebExport.js","sourceRoot":"","sources":["../../../src/targets/web/hashWebExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAOD,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,SAAiB;IAC5D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { createHash } from 'node:crypto';\nimport { promises as fs } from 'node:fs';\nimport path from 'node:path';\n\nexport async function hashWebExport(root: string): Promise<string> {\n const files = await listExportFiles(root, root);\n const hash = createHash('sha256');\n for (const file of files.sort((left, right) => left.relative.localeCompare(right.relative))) {\n const data = await fs.readFile(file.absolute);\n hash.update(`${file.relative.length}:${file.relative}\\0${data.length}:`);\n hash.update(data);\n hash.update('\\0');\n }\n return hash.digest('hex');\n}\n\ninterface ExportFile {\n readonly absolute: string;\n readonly relative: string;\n}\n\nasync function listExportFiles(root: string, directory: string): Promise<ExportFile[]> {\n const entries = await fs.readdir(directory, { withFileTypes: true });\n const files: ExportFile[] = [];\n for (const entry of entries) {\n const absolute = path.join(directory, entry.name);\n if (entry.isDirectory()) {\n files.push(...(await listExportFiles(root, absolute)));\n continue;\n }\n if (!entry.isFile()) throw new Error('Web export contains an unsupported filesystem entry.');\n files.push({ absolute, relative: path.relative(root, absolute).split(path.sep).join('/') });\n }\n return files;\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AppDeployProviderSelection } from '@ankhorage/contracts/deploy';
|
|
2
|
+
import type { DeploymentFailure } from '../../domain/DeploymentFailure';
|
|
3
|
+
interface NormalizedWebProviders {
|
|
4
|
+
readonly build: 'expo';
|
|
5
|
+
readonly publish: 'eas';
|
|
6
|
+
}
|
|
7
|
+
type NormalizeWebProvidersResult = {
|
|
8
|
+
readonly ok: true;
|
|
9
|
+
readonly providers: NormalizedWebProviders;
|
|
10
|
+
} | {
|
|
11
|
+
readonly ok: false;
|
|
12
|
+
readonly failure: DeploymentFailure;
|
|
13
|
+
};
|
|
14
|
+
export declare function normalizeWebProviders(providers: AppDeployProviderSelection | undefined): NormalizeWebProvidersResult;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=normalizeWebProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeWebProviders.d.ts","sourceRoot":"","sources":["../../../src/targets/web/normalizeWebProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;CACzB;AAED,KAAK,2BAA2B,GAC5B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,0BAA0B,GAAG,SAAS,GAChD,2BAA2B,CAc7B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function normalizeWebProviders(providers) {
|
|
2
|
+
const build = providers?.build ?? 'expo';
|
|
3
|
+
const publish = providers?.publish ?? 'eas';
|
|
4
|
+
if (build === 'expo' && publish === 'eas') {
|
|
5
|
+
return { ok: true, providers: { build, publish } };
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
ok: false,
|
|
9
|
+
failure: {
|
|
10
|
+
code: 'UNSUPPORTED_WEB_PROVIDER',
|
|
11
|
+
message: 'The configured Web deployment provider is not supported.',
|
|
12
|
+
target: 'web',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=normalizeWebProviders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeWebProviders.js","sourceRoot":"","sources":["../../../src/targets/web/normalizeWebProviders.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,qBAAqB,CACnC,SAAiD;IAEjD,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACrD,CAAC;IACD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE;YACP,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,0DAA0D;YACnE,MAAM,EAAE,KAAK;SACd;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { AppDeployProviderSelection } from '@ankhorage/contracts/deploy';\n\nimport type { DeploymentFailure } from '../../domain/DeploymentFailure';\n\ninterface NormalizedWebProviders {\n readonly build: 'expo';\n readonly publish: 'eas';\n}\n\ntype NormalizeWebProvidersResult =\n | { readonly ok: true; readonly providers: NormalizedWebProviders }\n | { readonly ok: false; readonly failure: DeploymentFailure };\n\nexport function normalizeWebProviders(\n providers: AppDeployProviderSelection | undefined,\n): NormalizeWebProvidersResult {\n const build = providers?.build ?? 'expo';\n const publish = providers?.publish ?? 'eas';\n if (build === 'expo' && publish === 'eas') {\n return { ok: true, providers: { build, publish } };\n }\n return {\n ok: false,\n failure: {\n code: 'UNSUPPORTED_WEB_PROVIDER',\n message: 'The configured Web deployment provider is not supported.',\n target: 'web',\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DeploymentFailure } from '../../domain/DeploymentFailure';
|
|
2
|
+
import type { DeploymentProcessRunner } from '../../runtime/process/DeploymentProcessRunner';
|
|
3
|
+
import type { PreparedWebArtifact } from './PreparedWebArtifact';
|
|
4
|
+
export type PrepareWebArtifactResult = {
|
|
5
|
+
readonly ok: true;
|
|
6
|
+
readonly artifact: PreparedWebArtifact;
|
|
7
|
+
} | {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly failure: DeploymentFailure;
|
|
10
|
+
};
|
|
11
|
+
export declare function prepareWebArtifact(options: {
|
|
12
|
+
readonly projectRoot: string;
|
|
13
|
+
readonly runProcess: DeploymentProcessRunner;
|
|
14
|
+
}): Promise<PrepareWebArtifactResult>;
|
|
15
|
+
export declare function cleanupWebArtifact(directory: string): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=prepareWebArtifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareWebArtifact.d.ts","sourceRoot":"","sources":["../../../src/targets/web/prepareWebArtifact.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAE7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;CAC9C,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAiCpC;AAED,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { promises as fs } from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { hashWebExport } from './hashWebExport';
|
|
5
|
+
export async function prepareWebArtifact(options) {
|
|
6
|
+
const directory = await fs.mkdtemp(path.join(os.tmpdir(), 'ankh-deploy-web-'));
|
|
7
|
+
const result = await options.runProcess({
|
|
8
|
+
command: projectExpoCommand(options.projectRoot),
|
|
9
|
+
args: ['export', '--platform', 'web', '--output-dir', directory],
|
|
10
|
+
cwd: options.projectRoot,
|
|
11
|
+
});
|
|
12
|
+
if (result.exitCode !== 0) {
|
|
13
|
+
await cleanupWebArtifact(directory);
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
failure: {
|
|
17
|
+
code: 'WEB_EXPORT_FAILED',
|
|
18
|
+
message: 'Web artifact export failed.',
|
|
19
|
+
target: 'web',
|
|
20
|
+
provider: 'expo',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
return { ok: true, artifact: { directory, revision: await hashWebExport(directory) } };
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
await cleanupWebArtifact(directory);
|
|
29
|
+
return {
|
|
30
|
+
ok: false,
|
|
31
|
+
failure: {
|
|
32
|
+
code: 'WEB_EXPORT_INVALID',
|
|
33
|
+
message: 'Web artifact could not be normalized.',
|
|
34
|
+
target: 'web',
|
|
35
|
+
provider: 'expo',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export async function cleanupWebArtifact(directory) {
|
|
41
|
+
await fs.rm(directory, { recursive: true, force: true });
|
|
42
|
+
}
|
|
43
|
+
function projectExpoCommand(projectRoot) {
|
|
44
|
+
return path.join(projectRoot, 'node_modules', '.bin', process.platform === 'win32' ? 'expo.cmd' : 'expo');
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=prepareWebArtifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareWebArtifact.js","sourceRoot":"","sources":["../../../src/targets/web/prepareWebArtifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAGxC;IACC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC;QAChD,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC;QAChE,GAAG,EAAE,OAAO,CAAC,WAAW;KACzB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,6BAA6B;gBACtC,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,MAAM;aACjB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,uCAAuC;gBAChD,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,MAAM;aACjB;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,SAAiB;IACxD,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CACd,WAAW,EACX,cAAc,EACd,MAAM,EACN,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CACnD,CAAC;AACJ,CAAC","sourcesContent":["import { promises as fs } from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport type { DeploymentFailure } from '../../domain/DeploymentFailure';\nimport type { DeploymentProcessRunner } from '../../runtime/process/DeploymentProcessRunner';\nimport { hashWebExport } from './hashWebExport';\nimport type { PreparedWebArtifact } from './PreparedWebArtifact';\n\nexport type PrepareWebArtifactResult =\n | { readonly ok: true; readonly artifact: PreparedWebArtifact }\n | { readonly ok: false; readonly failure: DeploymentFailure };\n\nexport async function prepareWebArtifact(options: {\n readonly projectRoot: string;\n readonly runProcess: DeploymentProcessRunner;\n}): Promise<PrepareWebArtifactResult> {\n const directory = await fs.mkdtemp(path.join(os.tmpdir(), 'ankh-deploy-web-'));\n const result = await options.runProcess({\n command: projectExpoCommand(options.projectRoot),\n args: ['export', '--platform', 'web', '--output-dir', directory],\n cwd: options.projectRoot,\n });\n if (result.exitCode !== 0) {\n await cleanupWebArtifact(directory);\n return {\n ok: false,\n failure: {\n code: 'WEB_EXPORT_FAILED',\n message: 'Web artifact export failed.',\n target: 'web',\n provider: 'expo',\n },\n };\n }\n try {\n return { ok: true, artifact: { directory, revision: await hashWebExport(directory) } };\n } catch {\n await cleanupWebArtifact(directory);\n return {\n ok: false,\n failure: {\n code: 'WEB_EXPORT_INVALID',\n message: 'Web artifact could not be normalized.',\n target: 'web',\n provider: 'expo',\n },\n };\n }\n}\n\nexport async function cleanupWebArtifact(directory: string): Promise<void> {\n await fs.rm(directory, { recursive: true, force: true });\n}\n\nfunction projectExpoCommand(projectRoot: string): string {\n return path.join(\n projectRoot,\n 'node_modules',\n '.bin',\n process.platform === 'win32' ? 'expo.cmd' : 'expo',\n );\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DeploymentVerificationResult } from '../../domain/DeploymentVerificationResult';
|
|
2
|
+
import type { WebDeploymentPublication } from '../../domain/WebDeploymentPublication';
|
|
3
|
+
import type { DeploymentHttpProbe } from '../../runtime/http/DeploymentHttpProbe';
|
|
4
|
+
export declare function verifyWebPublication(publication: WebDeploymentPublication, probe: DeploymentHttpProbe): Promise<DeploymentVerificationResult>;
|
|
5
|
+
//# sourceMappingURL=verifyWebPublication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyWebPublication.d.ts","sourceRoot":"","sources":["../../../src/targets/web/verifyWebPublication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,wBAAwB,EACrC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,4BAA4B,CAAC,CAQvC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export async function verifyWebPublication(publication, probe) {
|
|
2
|
+
try {
|
|
3
|
+
const result = await probe(publication.url);
|
|
4
|
+
if (result.status < 500)
|
|
5
|
+
return { ok: true };
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return verificationFailure(publication.provider);
|
|
9
|
+
}
|
|
10
|
+
return verificationFailure(publication.provider);
|
|
11
|
+
}
|
|
12
|
+
function verificationFailure(provider) {
|
|
13
|
+
return {
|
|
14
|
+
ok: false,
|
|
15
|
+
issues: [
|
|
16
|
+
{
|
|
17
|
+
code: 'WEB_DEPLOYMENT_UNREACHABLE',
|
|
18
|
+
message: 'Published Web deployment could not be verified.',
|
|
19
|
+
target: 'web',
|
|
20
|
+
provider,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=verifyWebPublication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyWebPublication.js","sourceRoot":"","sources":["../../../src/targets/web/verifyWebPublication.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAqC,EACrC,KAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,iDAAiD;gBAC1D,MAAM,EAAE,KAAK;gBACb,QAAQ;aACT;SACF;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { DeploymentVerificationResult } from '../../domain/DeploymentVerificationResult';\nimport type { WebDeploymentPublication } from '../../domain/WebDeploymentPublication';\nimport type { DeploymentHttpProbe } from '../../runtime/http/DeploymentHttpProbe';\n\nexport async function verifyWebPublication(\n publication: WebDeploymentPublication,\n probe: DeploymentHttpProbe,\n): Promise<DeploymentVerificationResult> {\n try {\n const result = await probe(publication.url);\n if (result.status < 500) return { ok: true };\n } catch {\n return verificationFailure(publication.provider);\n }\n return verificationFailure(publication.provider);\n}\n\nfunction verificationFailure(provider: string): DeploymentVerificationResult {\n return {\n ok: false,\n issues: [\n {\n code: 'WEB_DEPLOYMENT_UNREACHABLE',\n message: 'Published Web deployment could not be verified.',\n target: 'web',\n provider,\n },\n ],\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/deploy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.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": {
|