@jahia/jahia-cli 0.1.4 → 0.3.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/README.md +271 -56
- package/bin/dev.js +5 -1
- package/dist/commands/config/init.d.ts +12 -0
- package/dist/commands/config/init.d.ts.map +1 -0
- package/dist/commands/config/init.js +76 -0
- package/dist/commands/config/init.js.map +1 -0
- package/dist/commands/environment/create.d.ts +27 -0
- package/dist/commands/environment/create.d.ts.map +1 -0
- package/dist/commands/environment/create.js +192 -0
- package/dist/commands/environment/create.js.map +1 -0
- package/dist/commands/environment/delete.d.ts +12 -0
- package/dist/commands/environment/delete.d.ts.map +1 -0
- package/dist/commands/environment/delete.js +69 -0
- package/dist/commands/environment/delete.js.map +1 -0
- package/dist/commands/environment/doctor.d.ts +13 -0
- package/dist/commands/environment/doctor.d.ts.map +1 -0
- package/dist/commands/environment/doctor.js +63 -0
- package/dist/commands/environment/doctor.js.map +1 -0
- package/dist/commands/environment/export.d.ts +35 -0
- package/dist/commands/environment/export.d.ts.map +1 -0
- package/dist/commands/environment/export.js +127 -0
- package/dist/commands/environment/export.js.map +1 -0
- package/dist/commands/environment/list.d.ts +11 -0
- package/dist/commands/environment/list.d.ts.map +1 -0
- package/dist/commands/environment/list.js +70 -0
- package/dist/commands/environment/list.js.map +1 -0
- package/dist/commands/environment/logs.d.ts +13 -0
- package/dist/commands/environment/logs.d.ts.map +1 -0
- package/dist/commands/environment/logs.js +77 -0
- package/dist/commands/environment/logs.js.map +1 -0
- package/dist/commands/environment/start.d.ts +12 -0
- package/dist/commands/environment/start.d.ts.map +1 -0
- package/dist/commands/environment/start.js +71 -0
- package/dist/commands/environment/start.js.map +1 -0
- package/dist/commands/environment/stop.d.ts +12 -0
- package/dist/commands/environment/stop.d.ts.map +1 -0
- package/dist/commands/environment/stop.js +71 -0
- package/dist/commands/environment/stop.js.map +1 -0
- package/dist/commands/init.d.ts +39 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +178 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/jahia/alive.d.ts +18 -0
- package/dist/commands/jahia/alive.d.ts.map +1 -0
- package/dist/commands/jahia/alive.js +118 -0
- package/dist/commands/jahia/alive.js.map +1 -0
- package/dist/commands/jahia/provision.d.ts +68 -0
- package/dist/commands/jahia/provision.d.ts.map +1 -0
- package/dist/commands/jahia/provision.js +352 -0
- package/dist/commands/jahia/provision.js.map +1 -0
- package/dist/commands/tests/artifacts.d.ts +25 -0
- package/dist/commands/tests/artifacts.d.ts.map +1 -0
- package/dist/commands/tests/artifacts.js +112 -0
- package/dist/commands/tests/artifacts.js.map +1 -0
- package/dist/commands/tests/build.d.ts +30 -0
- package/dist/commands/tests/build.d.ts.map +1 -0
- package/dist/commands/tests/build.js +90 -0
- package/dist/commands/tests/build.js.map +1 -0
- package/dist/commands/tests/init.d.ts +56 -0
- package/dist/commands/tests/init.d.ts.map +1 -0
- package/dist/commands/tests/init.js +195 -0
- package/dist/commands/tests/init.js.map +1 -0
- package/dist/commands/tests/run.d.ts +28 -0
- package/dist/commands/tests/run.d.ts.map +1 -0
- package/dist/commands/tests/run.js +166 -0
- package/dist/commands/tests/run.js.map +1 -0
- package/dist/commands/workflow/init.d.ts +21 -0
- package/dist/commands/workflow/init.d.ts.map +1 -0
- package/dist/commands/workflow/init.js +84 -0
- package/dist/commands/workflow/init.js.map +1 -0
- package/dist/commands/workflow/run.d.ts +22 -0
- package/dist/commands/workflow/run.d.ts.map +1 -0
- package/dist/commands/workflow/run.js +111 -0
- package/dist/commands/workflow/run.js.map +1 -0
- package/dist/lib/artifacts/collect-all.d.ts +17 -0
- package/dist/lib/artifacts/collect-all.d.ts.map +1 -0
- package/dist/lib/artifacts/collect-all.js +107 -0
- package/dist/lib/artifacts/collect-all.js.map +1 -0
- package/dist/lib/artifacts/copy-container-artifacts.d.ts +13 -0
- package/dist/lib/artifacts/copy-container-artifacts.d.ts.map +1 -0
- package/dist/lib/artifacts/copy-container-artifacts.js +48 -0
- package/dist/lib/artifacts/copy-container-artifacts.js.map +1 -0
- package/dist/lib/artifacts/fetch-container-logs.d.ts +17 -0
- package/dist/lib/artifacts/fetch-container-logs.d.ts.map +1 -0
- package/dist/lib/artifacts/fetch-container-logs.js +36 -0
- package/dist/lib/artifacts/fetch-container-logs.js.map +1 -0
- package/dist/lib/artifacts/index.d.ts +6 -0
- package/dist/lib/artifacts/index.d.ts.map +1 -0
- package/dist/lib/artifacts/index.js +5 -0
- package/dist/lib/artifacts/index.js.map +1 -0
- package/dist/lib/artifacts/query-vlogs.d.ts +14 -0
- package/dist/lib/artifacts/query-vlogs.d.ts.map +1 -0
- package/dist/lib/artifacts/query-vlogs.js +33 -0
- package/dist/lib/artifacts/query-vlogs.js.map +1 -0
- package/dist/lib/artifacts/types.d.ts +28 -0
- package/dist/lib/artifacts/types.d.ts.map +1 -0
- package/dist/lib/artifacts/types.js +2 -0
- package/dist/lib/artifacts/types.js.map +1 -0
- package/dist/lib/components/cypress.d.ts +16 -0
- package/dist/lib/components/cypress.d.ts.map +1 -0
- package/dist/lib/components/cypress.js +35 -0
- package/dist/lib/components/cypress.js.map +1 -0
- package/dist/lib/components/index.d.ts +59 -0
- package/dist/lib/components/index.d.ts.map +1 -0
- package/dist/lib/components/index.js +114 -0
- package/dist/lib/components/index.js.map +1 -0
- package/dist/lib/components/jahia.d.ts +3 -0
- package/dist/lib/components/jahia.d.ts.map +1 -0
- package/dist/lib/components/jahia.js +38 -0
- package/dist/lib/components/jahia.js.map +1 -0
- package/dist/lib/components/smtp-server.d.ts +3 -0
- package/dist/lib/components/smtp-server.d.ts.map +1 -0
- package/dist/lib/components/smtp-server.js +30 -0
- package/dist/lib/components/smtp-server.js.map +1 -0
- package/dist/lib/components/types.d.ts +101 -0
- package/dist/lib/components/types.d.ts.map +1 -0
- package/dist/lib/components/types.js +2 -0
- package/dist/lib/components/types.js.map +1 -0
- package/dist/lib/components/victorialogs.d.ts +3 -0
- package/dist/lib/components/victorialogs.d.ts.map +1 -0
- package/dist/lib/components/victorialogs.js +29 -0
- package/dist/lib/components/victorialogs.js.map +1 -0
- package/dist/lib/config/build-blank-config.d.ts +6 -0
- package/dist/lib/config/build-blank-config.d.ts.map +1 -0
- package/dist/lib/config/build-blank-config.js +19 -0
- package/dist/lib/config/build-blank-config.js.map +1 -0
- package/dist/lib/config/config-to-yaml-with-comments.d.ts +11 -0
- package/dist/lib/config/config-to-yaml-with-comments.d.ts.map +1 -0
- package/dist/lib/config/config-to-yaml-with-comments.js +87 -0
- package/dist/lib/config/config-to-yaml-with-comments.js.map +1 -0
- package/dist/lib/config/config-to-yaml.d.ts +7 -0
- package/dist/lib/config/config-to-yaml.d.ts.map +1 -0
- package/dist/lib/config/config-to-yaml.js +37 -0
- package/dist/lib/config/config-to-yaml.js.map +1 -0
- package/dist/lib/config/defaults.d.ts +15 -0
- package/dist/lib/config/defaults.d.ts.map +1 -0
- package/dist/lib/config/defaults.js +19 -0
- package/dist/lib/config/defaults.js.map +1 -0
- package/dist/lib/config/export-config.d.ts +15 -0
- package/dist/lib/config/export-config.d.ts.map +1 -0
- package/dist/lib/config/export-config.js +27 -0
- package/dist/lib/config/export-config.js.map +1 -0
- package/dist/lib/config/initialize-config-file.d.ts +12 -0
- package/dist/lib/config/initialize-config-file.d.ts.map +1 -0
- package/dist/lib/config/initialize-config-file.js +16 -0
- package/dist/lib/config/initialize-config-file.js.map +1 -0
- package/dist/lib/config/parser.d.ts +59 -0
- package/dist/lib/config/parser.d.ts.map +1 -0
- package/dist/lib/config/parser.js +281 -0
- package/dist/lib/config/parser.js.map +1 -0
- package/dist/lib/config/resolve-env-vars.d.ts +29 -0
- package/dist/lib/config/resolve-env-vars.d.ts.map +1 -0
- package/dist/lib/config/resolve-env-vars.js +47 -0
- package/dist/lib/config/resolve-env-vars.js.map +1 -0
- package/dist/lib/config/types.d.ts +120 -0
- package/dist/lib/config/types.d.ts.map +1 -0
- package/dist/lib/config/types.js +2 -0
- package/dist/lib/config/types.js.map +1 -0
- package/dist/lib/config/with-tests-version.d.ts +6 -0
- package/dist/lib/config/with-tests-version.d.ts.map +1 -0
- package/dist/lib/config/with-tests-version.js +11 -0
- package/dist/lib/config/with-tests-version.js.map +1 -0
- package/dist/lib/output/formatter.d.ts +38 -0
- package/dist/lib/output/formatter.d.ts.map +1 -0
- package/dist/lib/output/formatter.js +172 -0
- package/dist/lib/output/formatter.js.map +1 -0
- package/dist/lib/providers/docker/container.d.ts +63 -0
- package/dist/lib/providers/docker/container.d.ts.map +1 -0
- package/dist/lib/providers/docker/container.js +105 -0
- package/dist/lib/providers/docker/container.js.map +1 -0
- package/dist/lib/providers/docker/get-container-logs.d.ts +5 -0
- package/dist/lib/providers/docker/get-container-logs.d.ts.map +1 -0
- package/dist/lib/providers/docker/get-container-logs.js +17 -0
- package/dist/lib/providers/docker/get-container-logs.js.map +1 -0
- package/dist/lib/providers/docker/index.d.ts +8 -0
- package/dist/lib/providers/docker/index.d.ts.map +1 -0
- package/dist/lib/providers/docker/index.js +424 -0
- package/dist/lib/providers/docker/index.js.map +1 -0
- package/dist/lib/providers/docker/network.d.ts +17 -0
- package/dist/lib/providers/docker/network.d.ts.map +1 -0
- package/dist/lib/providers/docker/network.js +36 -0
- package/dist/lib/providers/docker/network.js.map +1 -0
- package/dist/lib/providers/docker/start-container.d.ts +5 -0
- package/dist/lib/providers/docker/start-container.d.ts.map +1 -0
- package/dist/lib/providers/docker/start-container.js +10 -0
- package/dist/lib/providers/docker/start-container.js.map +1 -0
- package/dist/lib/providers/docker/stop-container.d.ts +5 -0
- package/dist/lib/providers/docker/stop-container.d.ts.map +1 -0
- package/dist/lib/providers/docker/stop-container.js +10 -0
- package/dist/lib/providers/docker/stop-container.js.map +1 -0
- package/dist/lib/providers/docker/volume.d.ts +13 -0
- package/dist/lib/providers/docker/volume.d.ts.map +1 -0
- package/dist/lib/providers/docker/volume.js +23 -0
- package/dist/lib/providers/docker/volume.js.map +1 -0
- package/dist/lib/providers/index.d.ts +13 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/index.js +22 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/jahiacloudv1/index.d.ts +7 -0
- package/dist/lib/providers/jahiacloudv1/index.d.ts.map +1 -0
- package/dist/lib/providers/jahiacloudv1/index.js +16 -0
- package/dist/lib/providers/jahiacloudv1/index.js.map +1 -0
- package/dist/lib/providers/types.d.ts +84 -0
- package/dist/lib/providers/types.d.ts.map +1 -0
- package/dist/lib/providers/types.js +2 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/lib/provisioning/detect-manifest-source.d.ts +7 -0
- package/dist/lib/provisioning/detect-manifest-source.d.ts.map +1 -0
- package/dist/lib/provisioning/detect-manifest-source.js +6 -0
- package/dist/lib/provisioning/detect-manifest-source.js.map +1 -0
- package/dist/lib/provisioning/fetch-manifest.d.ts +9 -0
- package/dist/lib/provisioning/fetch-manifest.d.ts.map +1 -0
- package/dist/lib/provisioning/fetch-manifest.js +17 -0
- package/dist/lib/provisioning/fetch-manifest.js.map +1 -0
- package/dist/lib/provisioning/filter-files.d.ts +7 -0
- package/dist/lib/provisioning/filter-files.d.ts.map +1 -0
- package/dist/lib/provisioning/filter-files.js +14 -0
- package/dist/lib/provisioning/filter-files.js.map +1 -0
- package/dist/lib/provisioning/read-manifest.d.ts +9 -0
- package/dist/lib/provisioning/read-manifest.d.ts.map +1 -0
- package/dist/lib/provisioning/read-manifest.js +12 -0
- package/dist/lib/provisioning/read-manifest.js.map +1 -0
- package/dist/lib/provisioning/resolve-asset-paths.d.ts +7 -0
- package/dist/lib/provisioning/resolve-asset-paths.d.ts.map +1 -0
- package/dist/lib/provisioning/resolve-asset-paths.js +22 -0
- package/dist/lib/provisioning/resolve-asset-paths.js.map +1 -0
- package/dist/lib/provisioning/submit-file-action.d.ts +29 -0
- package/dist/lib/provisioning/submit-file-action.d.ts.map +1 -0
- package/dist/lib/provisioning/submit-file-action.js +75 -0
- package/dist/lib/provisioning/submit-file-action.js.map +1 -0
- package/dist/lib/provisioning/submit-provisioning.d.ts +12 -0
- package/dist/lib/provisioning/submit-provisioning.d.ts.map +1 -0
- package/dist/lib/provisioning/submit-provisioning.js +70 -0
- package/dist/lib/provisioning/submit-provisioning.js.map +1 -0
- package/dist/lib/provisioning/types.d.ts +45 -0
- package/dist/lib/provisioning/types.d.ts.map +1 -0
- package/dist/lib/provisioning/types.js +2 -0
- package/dist/lib/provisioning/types.js.map +1 -0
- package/dist/lib/sam/index.d.ts +4 -0
- package/dist/lib/sam/index.d.ts.map +1 -0
- package/dist/lib/sam/index.js +3 -0
- package/dist/lib/sam/index.js.map +1 -0
- package/dist/lib/sam/query-sam-status.d.ts +6 -0
- package/dist/lib/sam/query-sam-status.d.ts.map +1 -0
- package/dist/lib/sam/query-sam-status.js +54 -0
- package/dist/lib/sam/query-sam-status.js.map +1 -0
- package/dist/lib/sam/types.d.ts +41 -0
- package/dist/lib/sam/types.d.ts.map +1 -0
- package/dist/lib/sam/types.js +2 -0
- package/dist/lib/sam/types.js.map +1 -0
- package/dist/lib/sam/wait-for-sam.d.ts +7 -0
- package/dist/lib/sam/wait-for-sam.d.ts.map +1 -0
- package/dist/lib/sam/wait-for-sam.js +31 -0
- package/dist/lib/sam/wait-for-sam.js.map +1 -0
- package/dist/lib/state/delete-state.d.ts +6 -0
- package/dist/lib/state/delete-state.d.ts.map +1 -0
- package/dist/lib/state/delete-state.js +16 -0
- package/dist/lib/state/delete-state.js.map +1 -0
- package/dist/lib/state/get-active-environment.d.ts +6 -0
- package/dist/lib/state/get-active-environment.d.ts.map +1 -0
- package/dist/lib/state/get-active-environment.js +9 -0
- package/dist/lib/state/get-active-environment.js.map +1 -0
- package/dist/lib/state/get-jahia-connection-defaults.d.ts +16 -0
- package/dist/lib/state/get-jahia-connection-defaults.d.ts.map +1 -0
- package/dist/lib/state/get-jahia-connection-defaults.js +28 -0
- package/dist/lib/state/get-jahia-connection-defaults.js.map +1 -0
- package/dist/lib/state/has-active-environment.d.ts +5 -0
- package/dist/lib/state/has-active-environment.d.ts.map +1 -0
- package/dist/lib/state/has-active-environment.js +9 -0
- package/dist/lib/state/has-active-environment.js.map +1 -0
- package/dist/lib/state/index.d.ts +11 -0
- package/dist/lib/state/index.d.ts.map +1 -0
- package/dist/lib/state/index.js +9 -0
- package/dist/lib/state/index.js.map +1 -0
- package/dist/lib/state/load-state.d.ts +7 -0
- package/dist/lib/state/load-state.d.ts.map +1 -0
- package/dist/lib/state/load-state.js +17 -0
- package/dist/lib/state/load-state.js.map +1 -0
- package/dist/lib/state/reconcile-with-docker.d.ts +19 -0
- package/dist/lib/state/reconcile-with-docker.d.ts.map +1 -0
- package/dist/lib/state/reconcile-with-docker.js +36 -0
- package/dist/lib/state/reconcile-with-docker.js.map +1 -0
- package/dist/lib/state/save-state.d.ts +7 -0
- package/dist/lib/state/save-state.d.ts.map +1 -0
- package/dist/lib/state/save-state.js +13 -0
- package/dist/lib/state/save-state.js.map +1 -0
- package/dist/lib/state/state-file-path.d.ts +8 -0
- package/dist/lib/state/state-file-path.d.ts.map +1 -0
- package/dist/lib/state/state-file-path.js +14 -0
- package/dist/lib/state/state-file-path.js.map +1 -0
- package/dist/lib/state/state-flag.d.ts +6 -0
- package/dist/lib/state/state-flag.d.ts.map +1 -0
- package/dist/lib/state/state-flag.js +12 -0
- package/dist/lib/state/state-flag.js.map +1 -0
- package/dist/lib/state/types.d.ts +30 -0
- package/dist/lib/state/types.d.ts.map +1 -0
- package/dist/lib/state/types.js +2 -0
- package/dist/lib/state/types.js.map +1 -0
- package/dist/lib/tests/build-image.d.ts +33 -0
- package/dist/lib/tests/build-image.d.ts.map +1 -0
- package/dist/lib/tests/build-image.js +59 -0
- package/dist/lib/tests/build-image.js.map +1 -0
- package/dist/lib/tests/clone-scaffolding.d.ts +16 -0
- package/dist/lib/tests/clone-scaffolding.d.ts.map +1 -0
- package/dist/lib/tests/clone-scaffolding.js +64 -0
- package/dist/lib/tests/clone-scaffolding.js.map +1 -0
- package/dist/lib/tests/exclusion-list.d.ts +11 -0
- package/dist/lib/tests/exclusion-list.d.ts.map +1 -0
- package/dist/lib/tests/exclusion-list.js +19 -0
- package/dist/lib/tests/exclusion-list.js.map +1 -0
- package/dist/lib/tests/gitignore-manager.d.ts +21 -0
- package/dist/lib/tests/gitignore-manager.d.ts.map +1 -0
- package/dist/lib/tests/gitignore-manager.js +47 -0
- package/dist/lib/tests/gitignore-manager.js.map +1 -0
- package/dist/lib/tests/index.d.ts +6 -0
- package/dist/lib/tests/index.d.ts.map +1 -0
- package/dist/lib/tests/index.js +5 -0
- package/dist/lib/tests/index.js.map +1 -0
- package/dist/lib/tests/sync-missing-files.d.ts +3 -0
- package/dist/lib/tests/sync-missing-files.d.ts.map +1 -0
- package/dist/lib/tests/sync-missing-files.js +65 -0
- package/dist/lib/tests/sync-missing-files.js.map +1 -0
- package/dist/lib/tests/types.d.ts +26 -0
- package/dist/lib/tests/types.d.ts.map +1 -0
- package/dist/lib/tests/types.js +2 -0
- package/dist/lib/tests/types.js.map +1 -0
- package/dist/lib/workflow/build-sample-workflow.d.ts +8 -0
- package/dist/lib/workflow/build-sample-workflow.d.ts.map +1 -0
- package/dist/lib/workflow/build-sample-workflow.js +39 -0
- package/dist/lib/workflow/build-sample-workflow.js.map +1 -0
- package/dist/lib/workflow/executor.d.ts +23 -0
- package/dist/lib/workflow/executor.d.ts.map +1 -0
- package/dist/lib/workflow/executor.js +129 -0
- package/dist/lib/workflow/executor.js.map +1 -0
- package/dist/lib/workflow/merge-workflow-into-config.d.ts +7 -0
- package/dist/lib/workflow/merge-workflow-into-config.d.ts.map +1 -0
- package/dist/lib/workflow/merge-workflow-into-config.js +9 -0
- package/dist/lib/workflow/merge-workflow-into-config.js.map +1 -0
- package/dist/lib/workflow/resolve-workflow.d.ts +20 -0
- package/dist/lib/workflow/resolve-workflow.d.ts.map +1 -0
- package/dist/lib/workflow/resolve-workflow.js +38 -0
- package/dist/lib/workflow/resolve-workflow.js.map +1 -0
- package/dist/lib/workflow/types.d.ts +30 -0
- package/dist/lib/workflow/types.d.ts.map +1 -0
- package/dist/lib/workflow/types.js +25 -0
- package/dist/lib/workflow/types.js.map +1 -0
- package/oclif.manifest.json +1057 -1
- package/package.json +11 -4
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const SAM_QUERY = `
|
|
2
|
+
query($severity: GqlProbeSeverity) {
|
|
3
|
+
admin {
|
|
4
|
+
jahia {
|
|
5
|
+
healthCheck(severity: $severity) {
|
|
6
|
+
status {
|
|
7
|
+
health
|
|
8
|
+
message
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
/**
|
|
16
|
+
* Queries the SAM GraphQL endpoint and returns the current health status.
|
|
17
|
+
*/
|
|
18
|
+
export const querySamStatus = async (url, username, password, severity) => {
|
|
19
|
+
const endpoint = url.endsWith('/') ? `${url}modules/graphql` : `${url}/modules/graphql`;
|
|
20
|
+
const auth = Buffer.from(`${username}:${password}`).toString('base64');
|
|
21
|
+
try {
|
|
22
|
+
const response = await fetch(endpoint, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: {
|
|
25
|
+
'Content-Type': 'application/json',
|
|
26
|
+
Authorization: `Basic ${auth}`,
|
|
27
|
+
Origin: url.endsWith('/') ? url.slice(0, -1) : url,
|
|
28
|
+
},
|
|
29
|
+
body: JSON.stringify({ query: SAM_QUERY, variables: { severity } }),
|
|
30
|
+
});
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
return {
|
|
33
|
+
health: 'UNREACHABLE',
|
|
34
|
+
message: `HTTP ${String(response.status)}: ${response.statusText}`,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const data = (await response.json());
|
|
38
|
+
if (data.errors && data.errors.length > 0) {
|
|
39
|
+
return { health: 'ERROR', message: `GraphQL errors: ${JSON.stringify(data.errors)}` };
|
|
40
|
+
}
|
|
41
|
+
const status = data.data?.admin?.jahia?.healthCheck?.status;
|
|
42
|
+
const health = status?.health;
|
|
43
|
+
const message = status?.message ?? '';
|
|
44
|
+
if (!health) {
|
|
45
|
+
return { health: 'UNREACHABLE', message: 'No health status in response' };
|
|
46
|
+
}
|
|
47
|
+
return { health, message };
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
51
|
+
return { health: 'UNREACHABLE', message };
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=query-sam-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-sam-status.js","sourceRoot":"","sources":["../../../src/lib/sam/query-sam-status.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG;;;;;;;;;;;;;CAajB,CAAC;AAkBF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,GAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EACS,EAAE;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC;IACxF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,SAAS,IAAI,EAAE;gBAC9B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;aACnD;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE;aACnE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,MAA+B,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type SamHealth = 'GREEN' | 'YELLOW' | 'RED';
|
|
2
|
+
/**
|
|
3
|
+
* Result of a single SAM HTTP query.
|
|
4
|
+
*/
|
|
5
|
+
export interface SamQueryResult {
|
|
6
|
+
readonly health: SamHealth | 'ERROR' | 'UNREACHABLE';
|
|
7
|
+
readonly message: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Progress event emitted on each poll tick.
|
|
11
|
+
*/
|
|
12
|
+
export interface SamPollEvent {
|
|
13
|
+
readonly health: SamHealth | 'ERROR' | 'UNREACHABLE';
|
|
14
|
+
readonly consecutiveGreen: number;
|
|
15
|
+
readonly elapsedSeconds: number;
|
|
16
|
+
readonly message: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Configuration for the SAM wait loop.
|
|
20
|
+
*/
|
|
21
|
+
export interface WaitForSamOptions {
|
|
22
|
+
readonly url: string;
|
|
23
|
+
readonly username: string;
|
|
24
|
+
readonly password: string;
|
|
25
|
+
readonly severity: string;
|
|
26
|
+
readonly intervalSeconds: number;
|
|
27
|
+
readonly timeoutSeconds: number;
|
|
28
|
+
readonly consecutiveCount: number;
|
|
29
|
+
readonly onPoll?: ((event: SamPollEvent) => void) | undefined;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Final result returned by waitForSam when polling completes.
|
|
33
|
+
*/
|
|
34
|
+
export interface SamWaitResult {
|
|
35
|
+
readonly success: boolean;
|
|
36
|
+
readonly elapsedSeconds: number;
|
|
37
|
+
readonly consecutiveGreen: number;
|
|
38
|
+
readonly lastHealth: SamHealth | 'ERROR' | 'UNREACHABLE';
|
|
39
|
+
readonly message: string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/sam/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/sam/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SamWaitResult, WaitForSamOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Polls the SAM endpoint until consecutiveCount GREEN responses are received
|
|
4
|
+
* or the timeout is exceeded. Emits a SamPollEvent on each tick via onPoll.
|
|
5
|
+
*/
|
|
6
|
+
export declare const waitForSam: (options: WaitForSamOptions) => Promise<SamWaitResult>;
|
|
7
|
+
//# sourceMappingURL=wait-for-sam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-sam.d.ts","sourceRoot":"","sources":["../../../src/lib/sam/wait-for-sam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgDjF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,iBAAiB,KAAG,OAAO,CAAC,aAAa,CAC/C,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { querySamStatus } from './query-sam-status.js';
|
|
2
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
|
+
const elapsedSeconds = (startTimeMs) => Math.round((Date.now() - startTimeMs) / 1000);
|
|
4
|
+
const makePollEvent = (health, consecutiveGreen, elapsed, message) => ({ health, consecutiveGreen, elapsedSeconds: elapsed, message });
|
|
5
|
+
const step = async (options, consecutiveGreen, startTimeMs) => {
|
|
6
|
+
const elapsed = elapsedSeconds(startTimeMs);
|
|
7
|
+
if (elapsed >= options.timeoutSeconds) {
|
|
8
|
+
throw new Error(`Timeout after ${String(options.timeoutSeconds)}s waiting for ${String(options.consecutiveCount)} consecutive GREEN responses from SAM`);
|
|
9
|
+
}
|
|
10
|
+
const result = await querySamStatus(options.url, options.username, options.password, options.severity);
|
|
11
|
+
const newConsecutive = result.health === 'GREEN' ? consecutiveGreen + 1 : 0;
|
|
12
|
+
const event = makePollEvent(result.health, newConsecutive, elapsed, result.message);
|
|
13
|
+
options.onPoll?.(event);
|
|
14
|
+
if (newConsecutive >= options.consecutiveCount) {
|
|
15
|
+
return {
|
|
16
|
+
success: true,
|
|
17
|
+
elapsedSeconds: elapsed,
|
|
18
|
+
consecutiveGreen: newConsecutive,
|
|
19
|
+
lastHealth: 'GREEN',
|
|
20
|
+
message: `SAM confirmed GREEN after ${String(elapsed)}s`,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
await sleep(options.intervalSeconds * 1000);
|
|
24
|
+
return step(options, newConsecutive, startTimeMs);
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Polls the SAM endpoint until consecutiveCount GREEN responses are received
|
|
28
|
+
* or the timeout is exceeded. Emits a SamPollEvent on each tick via onPoll.
|
|
29
|
+
*/
|
|
30
|
+
export const waitForSam = (options) => step(options, 0, Date.now());
|
|
31
|
+
//# sourceMappingURL=wait-for-sam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-for-sam.js","sourceRoot":"","sources":["../../../src/lib/sam/wait-for-sam.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAU,EAAE,CACrD,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;AAEhD,MAAM,aAAa,GAAG,CACpB,MAA8B,EAC9B,gBAAwB,EACxB,OAAe,EACf,OAAe,EACD,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAEpF,MAAM,IAAI,GAAG,KAAK,EAChB,OAA0B,EAC1B,gBAAwB,EACxB,WAAmB,EACK,EAAE;IAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,iBAAiB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,uCAAuC,CACxI,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvG,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpF,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAExB,IAAI,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,OAAO;YACvB,gBAAgB,EAAE,cAAc;YAChC,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,6BAA6B,MAAM,CAAC,OAAO,CAAC,GAAG;SACzD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAA0B,EAA0B,EAAE,CAC/E,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-state.d.ts","sourceRoot":"","sources":["../../../src/lib/state/delete-state.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAOlE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { rm } from 'node:fs/promises';
|
|
2
|
+
import { stateFilePath } from './state-file-path.js';
|
|
3
|
+
/**
|
|
4
|
+
* Deletes the state file from disk.
|
|
5
|
+
* No-op if the file does not exist.
|
|
6
|
+
*/
|
|
7
|
+
export const deleteState = async (statePath) => {
|
|
8
|
+
const path = stateFilePath(statePath);
|
|
9
|
+
try {
|
|
10
|
+
await rm(path);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// File may not exist — that's fine
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=delete-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-state.js","sourceRoot":"","sources":["../../../src/lib/state/delete-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,SAAkB,EAAiB,EAAE;IACrE,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PersistedEnvironment } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the currently active environment from state, or undefined if none exists.
|
|
4
|
+
*/
|
|
5
|
+
export declare const getActiveEnvironment: (statePath?: string) => Promise<PersistedEnvironment | undefined>;
|
|
6
|
+
//# sourceMappingURL=get-active-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-active-environment.d.ts","sourceRoot":"","sources":["../../../src/lib/state/get-active-environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAG1C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { loadState } from './load-state.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the currently active environment from state, or undefined if none exists.
|
|
4
|
+
*/
|
|
5
|
+
export const getActiveEnvironment = async (statePath) => {
|
|
6
|
+
const state = await loadState(statePath);
|
|
7
|
+
return state?.environment;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=get-active-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-active-environment.js","sourceRoot":"","sources":["../../../src/lib/state/get-active-environment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,SAAkB,EACyB,EAAE;IAC7C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,WAAW,CAAC;AAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PersistedEnvironment } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Connection details for a Jahia instance, derived from environment state.
|
|
4
|
+
*/
|
|
5
|
+
export interface JahiaConnectionDefaults {
|
|
6
|
+
readonly url: string;
|
|
7
|
+
readonly username: string;
|
|
8
|
+
readonly password: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Extracts Jahia connection defaults from the persisted environment state.
|
|
12
|
+
* Looks for a 'jahia' component to determine the host port and password.
|
|
13
|
+
* Falls back to hardcoded defaults when state is unavailable or incomplete.
|
|
14
|
+
*/
|
|
15
|
+
export declare const getJahiaConnectionDefaults: (env: PersistedEnvironment | undefined) => JahiaConnectionDefaults;
|
|
16
|
+
//# sourceMappingURL=get-jahia-connection-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-jahia-connection-defaults.d.ts","sourceRoot":"","sources":["../../../src/lib/state/get-jahia-connection-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,KAAK,oBAAoB,GAAG,SAAS,KACpC,uBAqBF,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { COMPONENT_REGISTRY } from '../components/index.js';
|
|
2
|
+
import { resolveEnvVars } from '../config/resolve-env-vars.js';
|
|
3
|
+
const DEFAULT_URL = 'http://localhost:8080';
|
|
4
|
+
const DEFAULT_USERNAME = 'root';
|
|
5
|
+
const DEFAULT_PASSWORD = 'root1234';
|
|
6
|
+
/**
|
|
7
|
+
* Extracts Jahia connection defaults from the persisted environment state.
|
|
8
|
+
* Looks for a 'jahia' component to determine the host port and password.
|
|
9
|
+
* Falls back to hardcoded defaults when state is unavailable or incomplete.
|
|
10
|
+
*/
|
|
11
|
+
export const getJahiaConnectionDefaults = (env) => {
|
|
12
|
+
if (env === undefined) {
|
|
13
|
+
return { url: DEFAULT_URL, username: DEFAULT_USERNAME, password: DEFAULT_PASSWORD };
|
|
14
|
+
}
|
|
15
|
+
const jahiaConfig = env.config.components.find((c) => c.name === 'jahia');
|
|
16
|
+
const jahiaDef = COMPONENT_REGISTRY['jahia'];
|
|
17
|
+
// Resolve the host port: override → definition default → 8080
|
|
18
|
+
const portMapping = jahiaConfig?.overrides?.ports?.[0] ?? jahiaDef?.ports[0];
|
|
19
|
+
const port = portMapping?.host ?? 8080;
|
|
20
|
+
const url = `http://localhost:${String(port)}`;
|
|
21
|
+
// Resolve password: override env → definition env (with env var resolution) → default
|
|
22
|
+
const rawPassword = jahiaConfig?.overrides?.env?.['SUPER_USER_PASSWORD'] ??
|
|
23
|
+
jahiaDef?.env['SUPER_USER_PASSWORD'] ??
|
|
24
|
+
DEFAULT_PASSWORD;
|
|
25
|
+
const password = resolveEnvVars(rawPassword);
|
|
26
|
+
return { url, username: DEFAULT_USERNAME, password };
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=get-jahia-connection-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-jahia-connection-defaults.js","sourceRoot":"","sources":["../../../src/lib/state/get-jahia-connection-defaults.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAW/D,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAqC,EACZ,EAAE;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IACtF,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE7C,8DAA8D;IAC9D,MAAM,WAAW,GAAG,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,oBAAoB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAE/C,sFAAsF;IACtF,MAAM,WAAW,GACf,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC;QACpD,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC;QACpC,gBAAgB,CAAC;IACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACvD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-active-environment.d.ts","sourceRoot":"","sources":["../../../src/lib/state/has-active-environment.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,OAAO,CAG9E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { loadState } from './load-state.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns true if there is an active environment in the state file.
|
|
4
|
+
*/
|
|
5
|
+
export const hasActiveEnvironment = async (statePath) => {
|
|
6
|
+
const state = await loadState(statePath);
|
|
7
|
+
return state?.environment !== undefined;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=has-active-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-active-environment.js","sourceRoot":"","sources":["../../../src/lib/state/has-active-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAkB,EAAoB,EAAE;IACjF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC;AAC1C,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { PersistedComponent, PersistedEnvironment, StateFile } from './types.js';
|
|
2
|
+
export { stateFilePath } from './state-file-path.js';
|
|
3
|
+
export { loadState } from './load-state.js';
|
|
4
|
+
export { saveState } from './save-state.js';
|
|
5
|
+
export { deleteState } from './delete-state.js';
|
|
6
|
+
export { getActiveEnvironment } from './get-active-environment.js';
|
|
7
|
+
export { hasActiveEnvironment } from './has-active-environment.js';
|
|
8
|
+
export { reconcileWithDocker } from './reconcile-with-docker.js';
|
|
9
|
+
export type { ReconciledComponent, ReconciledEnvironment } from './reconcile-with-docker.js';
|
|
10
|
+
export { stateFlag } from './state-flag.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/state/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { stateFilePath } from './state-file-path.js';
|
|
2
|
+
export { loadState } from './load-state.js';
|
|
3
|
+
export { saveState } from './save-state.js';
|
|
4
|
+
export { deleteState } from './delete-state.js';
|
|
5
|
+
export { getActiveEnvironment } from './get-active-environment.js';
|
|
6
|
+
export { hasActiveEnvironment } from './has-active-environment.js';
|
|
7
|
+
export { reconcileWithDocker } from './reconcile-with-docker.js';
|
|
8
|
+
export { stateFlag } from './state-flag.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/state/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StateFile } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Loads the state file from disk.
|
|
4
|
+
* Returns undefined if the file does not exist or is unreadable.
|
|
5
|
+
*/
|
|
6
|
+
export declare const loadState: (statePath?: string) => Promise<StateFile | undefined>;
|
|
7
|
+
//# sourceMappingURL=load-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-state.d.ts","sourceRoot":"","sources":["../../../src/lib/state/load-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAQjF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { stateFilePath } from './state-file-path.js';
|
|
3
|
+
/**
|
|
4
|
+
* Loads the state file from disk.
|
|
5
|
+
* Returns undefined if the file does not exist or is unreadable.
|
|
6
|
+
*/
|
|
7
|
+
export const loadState = async (statePath) => {
|
|
8
|
+
const path = stateFilePath(statePath);
|
|
9
|
+
try {
|
|
10
|
+
const content = await readFile(path, 'utf-8');
|
|
11
|
+
return JSON.parse(content);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=load-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-state.js","sourceRoot":"","sources":["../../../src/lib/state/load-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,SAAkB,EAAkC,EAAE;IACpF,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PersistedComponent, PersistedEnvironment } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reconciled component with live Docker status.
|
|
4
|
+
*/
|
|
5
|
+
export interface ReconciledComponent extends PersistedComponent {
|
|
6
|
+
readonly liveStatus: 'running' | 'stopped' | 'missing';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Reconciled environment with live Docker status on each component.
|
|
10
|
+
*/
|
|
11
|
+
export interface ReconciledEnvironment extends Omit<PersistedEnvironment, 'components'> {
|
|
12
|
+
readonly components: readonly ReconciledComponent[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Reconciles the persisted environment state with live Docker container status.
|
|
16
|
+
* Checks each container and annotates with its actual status.
|
|
17
|
+
*/
|
|
18
|
+
export declare const reconcileWithDocker: (environment: PersistedEnvironment) => Promise<ReconciledEnvironment>;
|
|
19
|
+
//# sourceMappingURL=reconcile-with-docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-with-docker.d.ts","sourceRoot":"","sources":["../../../src/lib/state/reconcile-with-docker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAwB3E;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;IACrF,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,oBAAoB,KAChC,OAAO,CAAC,qBAAqB,CAY/B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
const execFileAsync = promisify(execFile);
|
|
4
|
+
/**
|
|
5
|
+
* Checks whether a container is still running in Docker.
|
|
6
|
+
* Returns 'running', 'stopped', or 'missing'.
|
|
7
|
+
*/
|
|
8
|
+
const checkContainerStatus = async (containerId) => {
|
|
9
|
+
try {
|
|
10
|
+
const { stdout } = await execFileAsync('docker', [
|
|
11
|
+
'inspect',
|
|
12
|
+
'--format',
|
|
13
|
+
'{{.State.Running}}',
|
|
14
|
+
containerId,
|
|
15
|
+
]);
|
|
16
|
+
return stdout.trim() === 'true' ? 'running' : 'stopped';
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return 'missing';
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Reconciles the persisted environment state with live Docker container status.
|
|
24
|
+
* Checks each container and annotates with its actual status.
|
|
25
|
+
*/
|
|
26
|
+
export const reconcileWithDocker = async (environment) => {
|
|
27
|
+
const reconciledComponents = await Promise.all(environment.components.map(async (comp) => {
|
|
28
|
+
const liveStatus = await checkContainerStatus(comp.containerId);
|
|
29
|
+
return { ...comp, liveStatus };
|
|
30
|
+
}));
|
|
31
|
+
return {
|
|
32
|
+
...environment,
|
|
33
|
+
components: reconciledComponents,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=reconcile-with-docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-with-docker.js","sourceRoot":"","sources":["../../../src/lib/state/reconcile-with-docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;GAGG;AACH,MAAM,oBAAoB,GAAG,KAAK,EAChC,WAAmB,EACyB,EAAE;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;YAC/C,SAAS;YACT,UAAU;YACV,oBAAoB;YACpB,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAgBF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAiC,EACD,EAAE;IAClC,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAgC,EAAE;QACtE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,GAAG,WAAW;QACd,UAAU,EAAE,oBAAoB;KACjC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StateFile } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Saves the state file to disk.
|
|
4
|
+
* Creates the directory if it does not exist.
|
|
5
|
+
*/
|
|
6
|
+
export declare const saveState: (state: StateFile, statePath?: string) => Promise<void>;
|
|
7
|
+
//# sourceMappingURL=save-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-state.d.ts","sourceRoot":"","sources":["../../../src/lib/state/save-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C;;;GAGG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,EAChB,YAAY,MAAM,KACjB,OAAO,CAAC,IAAI,CAId,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { stateFilePath } from './state-file-path.js';
|
|
4
|
+
/**
|
|
5
|
+
* Saves the state file to disk.
|
|
6
|
+
* Creates the directory if it does not exist.
|
|
7
|
+
*/
|
|
8
|
+
export const saveState = async (state, statePath) => {
|
|
9
|
+
const path = stateFilePath(statePath);
|
|
10
|
+
await mkdir(dirname(path), { recursive: true });
|
|
11
|
+
await writeFile(path, JSON.stringify(state, null, 2), 'utf-8');
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=save-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-state.js","sourceRoot":"","sources":["../../../src/lib/state/save-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,KAAgB,EAChB,SAAkB,EACH,EAAE;IACjB,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the state file path.
|
|
3
|
+
* Priority: explicit statePath param > JAHIA_CLI_STATE env var >
|
|
4
|
+
* JAHIA_CLI_STATE_DIR env var (legacy, resolved to <dir>/state.json) >
|
|
5
|
+
* default (~/.jahia-cli/state.json).
|
|
6
|
+
*/
|
|
7
|
+
export declare const stateFilePath: (statePath?: string) => string;
|
|
8
|
+
//# sourceMappingURL=state-file-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-file-path.d.ts","sourceRoot":"","sources":["../../../src/lib/state/state-file-path.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,KAAG,MAIlD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the state file path.
|
|
5
|
+
* Priority: explicit statePath param > JAHIA_CLI_STATE env var >
|
|
6
|
+
* JAHIA_CLI_STATE_DIR env var (legacy, resolved to <dir>/state.json) >
|
|
7
|
+
* default (~/.jahia-cli/state.json).
|
|
8
|
+
*/
|
|
9
|
+
export const stateFilePath = (statePath) => {
|
|
10
|
+
const legacyStateDir = process.env['JAHIA_CLI_STATE_DIR'];
|
|
11
|
+
const legacyStatePath = legacyStateDir ? join(legacyStateDir, 'state.json') : undefined;
|
|
12
|
+
return statePath ?? process.env['JAHIA_CLI_STATE'] ?? legacyStatePath ?? join(homedir(), '.jahia-cli', 'state.json');
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=state-file-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-file-path.js","sourceRoot":"","sources":["../../../src/lib/state/state-file-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAkB,EAAU,EAAE;IAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,OAAO,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACvH,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared OCLIF flag definition for --state.
|
|
3
|
+
* Spread into any command's static flags that reads or writes state.
|
|
4
|
+
*/
|
|
5
|
+
export declare const stateFlag: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
6
|
+
//# sourceMappingURL=state-flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-flag.d.ts","sourceRoot":"","sources":["../../../src/lib/state/state-flag.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,SAAS,iHAMpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* Shared OCLIF flag definition for --state.
|
|
4
|
+
* Spread into any command's static flags that reads or writes state.
|
|
5
|
+
*/
|
|
6
|
+
export const stateFlag = Flags.string({
|
|
7
|
+
description: 'Path to the state JSON file. ' +
|
|
8
|
+
'Overrides JAHIA_CLI_STATE env var. ' +
|
|
9
|
+
'Defaults to ~/.jahia-cli/state.json',
|
|
10
|
+
env: 'JAHIA_CLI_STATE',
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=state-flag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-flag.js","sourceRoot":"","sources":["../../../src/lib/state/state-flag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,WAAW,EACT,+BAA+B;QAC/B,qCAAqC;QACrC,qCAAqC;IACvC,GAAG,EAAE,iBAAiB;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { EnvironmentConfig } from '../config/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A persisted component entry — tracks container identity for lifecycle ops.
|
|
4
|
+
*/
|
|
5
|
+
export interface PersistedComponent {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly image: string;
|
|
8
|
+
readonly tag: string;
|
|
9
|
+
readonly containerId: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Full persisted environment state — stored in the state file.
|
|
13
|
+
*/
|
|
14
|
+
export interface PersistedEnvironment {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly provider: string;
|
|
17
|
+
readonly network: string;
|
|
18
|
+
readonly components: readonly PersistedComponent[];
|
|
19
|
+
readonly config: EnvironmentConfig;
|
|
20
|
+
readonly createdAt: string;
|
|
21
|
+
readonly stoppedAt?: string | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Top-level state file structure with schema version.
|
|
25
|
+
*/
|
|
26
|
+
export interface StateFile {
|
|
27
|
+
readonly version: 1;
|
|
28
|
+
readonly environment?: PersistedEnvironment | undefined;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/state/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Dockerfile path relative to the working directory.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_DOCKERFILE = "docker/Dockerfile.local";
|
|
5
|
+
/**
|
|
6
|
+
* Default image name prefix for built test images.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_IMAGE_NAME = "jahia-tests";
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the image tag for the test image build.
|
|
11
|
+
* Uses the scaffolding version from config, with env var substitution.
|
|
12
|
+
*/
|
|
13
|
+
export declare const resolveImageTag: (imageName: string, version: string) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Parses a repeatable `KEY=VALUE` flag into a record.
|
|
16
|
+
* Applies `${VAR:-default}` env var resolution to values for consistency
|
|
17
|
+
* with the config system.
|
|
18
|
+
*/
|
|
19
|
+
export declare const parseKeyValueArgs: (args: readonly string[]) => Readonly<Record<string, string>>;
|
|
20
|
+
/**
|
|
21
|
+
* Builds the argument list for `docker buildx build`.
|
|
22
|
+
*
|
|
23
|
+
* Pure function — all inputs explicit, no side effects.
|
|
24
|
+
*/
|
|
25
|
+
export declare const buildBuildxArgs: (params: {
|
|
26
|
+
readonly dockerfile: string;
|
|
27
|
+
readonly tag: string;
|
|
28
|
+
readonly baseVersion: string;
|
|
29
|
+
readonly platform?: string | undefined;
|
|
30
|
+
readonly noCache?: boolean | undefined;
|
|
31
|
+
readonly extraBuildArgs?: Readonly<Record<string, string>> | undefined;
|
|
32
|
+
}) => readonly string[];
|
|
33
|
+
//# sourceMappingURL=build-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-image.d.ts","sourceRoot":"","sources":["../../../src/lib/tests/build-image.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,MAAM,EACjB,SAAS,MAAM,KACd,MAAmC,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,SAAS,MAAM,EAAE,KACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW/B,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE,KAAG,SAAS,MAAM,EAgClB,CAAC"}
|