@jahia/jahia-cli 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +33 -0
- package/dist/commands/jahia/provision.d.ts.map +1 -0
- package/dist/commands/jahia/provision.js +164 -0
- package/dist/commands/jahia/provision.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/workflow/init.d.ts +21 -0
- package/dist/commands/workflow/init.d.ts.map +1 -0
- package/dist/commands/workflow/init.js +83 -0
- package/dist/commands/workflow/init.js.map +1 -0
- package/dist/commands/workflow/run.d.ts +21 -0
- package/dist/commands/workflow/run.d.ts.map +1 -0
- package/dist/commands/workflow/run.js +97 -0
- package/dist/commands/workflow/run.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 +111 -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 +37 -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 +29 -0
- package/dist/lib/components/smtp-server.js.map +1 -0
- package/dist/lib/components/types.d.ts +89 -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 +75 -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 +26 -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 +46 -0
- package/dist/lib/config/parser.d.ts.map +1 -0
- package/dist/lib/config/parser.js +196 -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 +74 -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 +61 -0
- package/dist/lib/providers/docker/container.d.ts.map +1 -0
- package/dist/lib/providers/docker/container.js +101 -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/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-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 +34 -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/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 +7 -0
- package/dist/lib/workflow/build-sample-workflow.d.ts.map +1 -0
- package/dist/lib/workflow/build-sample-workflow.js +35 -0
- package/dist/lib/workflow/build-sample-workflow.js.map +1 -0
- package/dist/lib/workflow/executor.d.ts +21 -0
- package/dist/lib/workflow/executor.d.ts.map +1 -0
- package/dist/lib/workflow/executor.js +100 -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/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 +856 -1
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D,MAAM,iBAAiB,GAA6C;IAClE,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,oBAAoB;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAY,EAAE;IACpD,MAAM,QAAQ,GAAI,iBAAoE,CAAC,IAAI,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,2BAA2B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Provider } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* JahiaCloud v1 provider — placeholder implementation.
|
|
4
|
+
* Will be implemented when the Jahia Cloud API integration is ready.
|
|
5
|
+
*/
|
|
6
|
+
export declare const jahiaCloudV1Provider: Provider;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/providers/jahiacloudv1/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAQlC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const notImplementedError = new Error('The jahiacloudv1 provider is not yet implemented. ' +
|
|
2
|
+
'Use the "docker" provider for local environments.');
|
|
3
|
+
/**
|
|
4
|
+
* JahiaCloud v1 provider — placeholder implementation.
|
|
5
|
+
* Will be implemented when the Jahia Cloud API integration is ready.
|
|
6
|
+
*/
|
|
7
|
+
export const jahiaCloudV1Provider = {
|
|
8
|
+
name: 'jahiacloudv1',
|
|
9
|
+
createEnvironment: () => Promise.reject(notImplementedError),
|
|
10
|
+
stopEnvironment: () => Promise.reject(notImplementedError),
|
|
11
|
+
startEnvironment: () => Promise.reject(notImplementedError),
|
|
12
|
+
destroyEnvironment: () => Promise.reject(notImplementedError),
|
|
13
|
+
getEnvironmentStatus: () => Promise.reject(notImplementedError),
|
|
14
|
+
checkHealth: () => Promise.reject(notImplementedError),
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/providers/jahiacloudv1/index.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,IAAI,KAAK,CACnC,oDAAoD;IAClD,mDAAmD,CACtD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAa;IAC5C,IAAI,EAAE,cAAc;IACpB,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC5D,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC1D,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3D,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC7D,oBAAoB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC/D,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;CACvD,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { ResolvedComponent } from '../components/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Status of an individual component within an environment.
|
|
4
|
+
*/
|
|
5
|
+
export interface ComponentStatus {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly status: 'running' | 'stopped' | 'unhealthy' | 'not_found' | 'starting';
|
|
8
|
+
readonly containerId?: string | undefined;
|
|
9
|
+
readonly ports?: Readonly<Record<string, number>> | undefined;
|
|
10
|
+
readonly health?: 'healthy' | 'unhealthy' | 'starting' | 'none' | undefined;
|
|
11
|
+
readonly image?: string | undefined;
|
|
12
|
+
readonly tag?: string | undefined;
|
|
13
|
+
readonly category?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Full state of a deployed environment.
|
|
17
|
+
*/
|
|
18
|
+
export interface EnvironmentState {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly provider: string;
|
|
21
|
+
readonly network: string;
|
|
22
|
+
readonly components: readonly ComponentStatus[];
|
|
23
|
+
readonly createdAt?: string | undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Result of an environment creation operation.
|
|
27
|
+
*/
|
|
28
|
+
export interface CreateResult {
|
|
29
|
+
readonly success: boolean;
|
|
30
|
+
readonly environment: EnvironmentState;
|
|
31
|
+
readonly errors: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Result of an environment stop operation.
|
|
35
|
+
*/
|
|
36
|
+
export interface StopResult {
|
|
37
|
+
readonly success: boolean;
|
|
38
|
+
readonly stoppedComponents: readonly string[];
|
|
39
|
+
readonly errors: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result of an environment start operation.
|
|
43
|
+
*/
|
|
44
|
+
export interface StartResult {
|
|
45
|
+
readonly success: boolean;
|
|
46
|
+
readonly startedComponents: readonly string[];
|
|
47
|
+
readonly errors: readonly string[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Result of an environment destroy operation.
|
|
51
|
+
*/
|
|
52
|
+
export interface DestroyResult {
|
|
53
|
+
readonly success: boolean;
|
|
54
|
+
readonly removedComponents: readonly string[];
|
|
55
|
+
readonly removedNetwork: boolean;
|
|
56
|
+
readonly removedVolumes: readonly string[];
|
|
57
|
+
readonly errors: readonly string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Result of a health check operation.
|
|
61
|
+
*/
|
|
62
|
+
export interface HealthCheckResult {
|
|
63
|
+
readonly success: boolean;
|
|
64
|
+
readonly environment: EnvironmentState;
|
|
65
|
+
readonly checks: readonly {
|
|
66
|
+
readonly name: string;
|
|
67
|
+
readonly passed: boolean;
|
|
68
|
+
readonly message: string;
|
|
69
|
+
}[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Provider interface — implemented by each deployment backend.
|
|
73
|
+
* All methods return Promises to support async operations (Docker CLI, HTTP APIs).
|
|
74
|
+
*/
|
|
75
|
+
export interface Provider {
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly createEnvironment: (envName: string, components: readonly ResolvedComponent[], onProgress?: (message: string) => void) => Promise<CreateResult>;
|
|
78
|
+
readonly stopEnvironment: (envName: string) => Promise<StopResult>;
|
|
79
|
+
readonly startEnvironment: (envName: string) => Promise<StartResult>;
|
|
80
|
+
readonly destroyEnvironment: (envName: string) => Promise<DestroyResult>;
|
|
81
|
+
readonly getEnvironmentStatus: (envName: string) => Promise<EnvironmentState>;
|
|
82
|
+
readonly checkHealth: (envName: string) => Promise<HealthCheckResult>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/providers/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ManifestSource } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detects whether a manifest reference is a local file path or a URL.
|
|
4
|
+
* URLs start with http:// or https://, everything else is treated as a file.
|
|
5
|
+
*/
|
|
6
|
+
export declare const detectManifestSource: (manifest: string) => ManifestSource;
|
|
7
|
+
//# sourceMappingURL=detect-manifest-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-manifest-source.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/detect-manifest-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,cAC4B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether a manifest reference is a local file path or a URL.
|
|
3
|
+
* URLs start with http:// or https://, everything else is treated as a file.
|
|
4
|
+
*/
|
|
5
|
+
export const detectManifestSource = (manifest) => manifest.startsWith('http://') || manifest.startsWith('https://') ? 'url' : 'file';
|
|
6
|
+
//# sourceMappingURL=detect-manifest-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-manifest-source.js","sourceRoot":"","sources":["../../../src/lib/provisioning/detect-manifest-source.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAkB,EAAE,CACvE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Downloads a provisioning manifest from a public URL.
|
|
3
|
+
* Returns the content as a Buffer and the inferred filename.
|
|
4
|
+
*/
|
|
5
|
+
export declare const fetchManifest: (url: string) => Promise<{
|
|
6
|
+
readonly content: Buffer;
|
|
7
|
+
readonly filename: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=fetch-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-manifest.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/fetch-manifest.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,MAAM,KACV,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAejE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Downloads a provisioning manifest from a public URL.
|
|
4
|
+
* Returns the content as a Buffer and the inferred filename.
|
|
5
|
+
*/
|
|
6
|
+
export const fetchManifest = async (url) => {
|
|
7
|
+
const response = await fetch(url);
|
|
8
|
+
if (!response.ok) {
|
|
9
|
+
throw new Error(`Failed to download manifest from ${url}: HTTP ${String(response.status)} ${response.statusText}`);
|
|
10
|
+
}
|
|
11
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
12
|
+
const content = Buffer.from(arrayBuffer);
|
|
13
|
+
const urlPath = new URL(url).pathname;
|
|
14
|
+
const filename = basename(urlPath) || 'manifest.yaml';
|
|
15
|
+
return { content, filename };
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=fetch-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-manifest.js","sourceRoot":"","sources":["../../../src/lib/provisioning/fetch-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,GAAW,EACuD,EAAE;IACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,UAAU,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC;IAEtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads a provisioning manifest from a local file path.
|
|
3
|
+
* Returns the content as a Buffer and the basename for form submission.
|
|
4
|
+
*/
|
|
5
|
+
export declare const readManifest: (filePath: string) => Promise<{
|
|
6
|
+
readonly content: Buffer;
|
|
7
|
+
readonly filename: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=read-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-manifest.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/read-manifest.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,KACf,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAIjE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { basename } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Reads a provisioning manifest from a local file path.
|
|
5
|
+
* Returns the content as a Buffer and the basename for form submission.
|
|
6
|
+
*/
|
|
7
|
+
export const readManifest = async (filePath) => {
|
|
8
|
+
const content = await readFile(filePath);
|
|
9
|
+
const filename = basename(filePath);
|
|
10
|
+
return { content, filename };
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=read-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-manifest.js","sourceRoot":"","sources":["../../../src/lib/provisioning/read-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,QAAgB,EACkD,EAAE;IACpE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves an assets path to a list of file paths.
|
|
3
|
+
* If the path is a directory, returns all files in it recursively.
|
|
4
|
+
* If the path is a file, returns it as a single-element array.
|
|
5
|
+
*/
|
|
6
|
+
export declare const resolveAssetPaths: (assetsPath: string) => Promise<readonly string[]>;
|
|
7
|
+
//# sourceMappingURL=resolve-asset-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-asset-paths.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/resolve-asset-paths.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAkBrF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { readdir, stat } from 'node:fs/promises';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves an assets path to a list of file paths.
|
|
5
|
+
* If the path is a directory, returns all files in it recursively.
|
|
6
|
+
* If the path is a file, returns it as a single-element array.
|
|
7
|
+
*/
|
|
8
|
+
export const resolveAssetPaths = async (assetsPath) => {
|
|
9
|
+
const resolved = resolve(assetsPath);
|
|
10
|
+
const info = await stat(resolved);
|
|
11
|
+
if (!info.isDirectory()) {
|
|
12
|
+
return [resolved];
|
|
13
|
+
}
|
|
14
|
+
const entries = await readdir(resolved, { recursive: true });
|
|
15
|
+
const filePaths = await Promise.all(entries.map(async (entry) => {
|
|
16
|
+
const fullPath = join(resolved, entry);
|
|
17
|
+
const entryStat = await stat(fullPath);
|
|
18
|
+
return entryStat.isFile() ? fullPath : undefined;
|
|
19
|
+
}));
|
|
20
|
+
return filePaths.filter((p) => p !== undefined);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=resolve-asset-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-asset-paths.js","sourceRoot":"","sources":["../../../src/lib/provisioning/resolve-asset-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAAkB,EAA8B,EAAE;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAC/D,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ProvisioningOptions, ProvisioningResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Submits a provisioning script (and optional file attachments) to the
|
|
4
|
+
* Jahia provisioning API via multipart form POST.
|
|
5
|
+
*
|
|
6
|
+
* Endpoint: POST {url}/modules/api/provisioning
|
|
7
|
+
* Form fields:
|
|
8
|
+
* - script: the YAML manifest (type=text/yaml)
|
|
9
|
+
* - file: zero or more binary attachments
|
|
10
|
+
*/
|
|
11
|
+
export declare const submitProvisioning: (options: ProvisioningOptions) => Promise<ProvisioningResult>;
|
|
12
|
+
//# sourceMappingURL=submit-provisioning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-provisioning.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/submit-provisioning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAc1E;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,mBAAmB,KAC3B,OAAO,CAAC,kBAAkB,CAqD5B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attempts to parse a string as JSON. Returns the parsed value on success
|
|
3
|
+
* or undefined if the string is not valid JSON.
|
|
4
|
+
*/
|
|
5
|
+
const parseJsonSafe = (text) => {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(text);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Submits a provisioning script (and optional file attachments) to the
|
|
15
|
+
* Jahia provisioning API via multipart form POST.
|
|
16
|
+
*
|
|
17
|
+
* Endpoint: POST {url}/modules/api/provisioning
|
|
18
|
+
* Form fields:
|
|
19
|
+
* - script: the YAML manifest (type=text/yaml)
|
|
20
|
+
* - file: zero or more binary attachments
|
|
21
|
+
*/
|
|
22
|
+
export const submitProvisioning = async (options) => {
|
|
23
|
+
const { url, username, password, manifestContent, manifestFilename, attachments } = options;
|
|
24
|
+
const endpoint = url.endsWith('/')
|
|
25
|
+
? `${url}modules/api/provisioning`
|
|
26
|
+
: `${url}/modules/api/provisioning`;
|
|
27
|
+
const auth = Buffer.from(`${username}:${password}`).toString('base64');
|
|
28
|
+
const form = new FormData();
|
|
29
|
+
const scriptBlob = new Blob([manifestContent], { type: 'text/yaml' });
|
|
30
|
+
form.append('script', scriptBlob, manifestFilename);
|
|
31
|
+
attachments.forEach((attachment) => {
|
|
32
|
+
const blob = new Blob([attachment.content], { type: 'application/octet-stream' });
|
|
33
|
+
form.append('file', blob, attachment.filename);
|
|
34
|
+
});
|
|
35
|
+
const start = Date.now();
|
|
36
|
+
try {
|
|
37
|
+
const response = await fetch(endpoint, {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
headers: {
|
|
40
|
+
Authorization: `Basic ${auth}`,
|
|
41
|
+
Origin: url.endsWith('/') ? url.slice(0, -1) : url,
|
|
42
|
+
},
|
|
43
|
+
body: form,
|
|
44
|
+
});
|
|
45
|
+
const responseText = await response.text();
|
|
46
|
+
const durationMs = Date.now() - start;
|
|
47
|
+
const responseBody = parseJsonSafe(responseText);
|
|
48
|
+
return {
|
|
49
|
+
success: response.ok,
|
|
50
|
+
statusCode: response.status,
|
|
51
|
+
message: responseText,
|
|
52
|
+
responseBody,
|
|
53
|
+
manifest: manifestFilename,
|
|
54
|
+
durationMs,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const durationMs = Date.now() - start;
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
return {
|
|
61
|
+
success: false,
|
|
62
|
+
statusCode: 0,
|
|
63
|
+
message,
|
|
64
|
+
responseBody: undefined,
|
|
65
|
+
manifest: manifestFilename,
|
|
66
|
+
durationMs,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=submit-provisioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-provisioning.js","sourceRoot":"","sources":["../../../src/lib/provisioning/submit-provisioning.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,OAA4B,EACC,EAAE;IAC/B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC5F,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,GAAG,GAAG,0BAA0B;QAClC,CAAC,CAAC,GAAG,GAAG,2BAA2B,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAEpD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,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;SACX,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEtC,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,OAAO,EAAE,YAAY;YACrB,YAAY;YACZ,QAAQ,EAAE,gBAAgB;YAC1B,UAAU;SACX,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,OAAO;YACP,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,gBAAgB;YAC1B,UAAU;SACX,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of a provisioning script submission.
|
|
3
|
+
*/
|
|
4
|
+
export interface ProvisioningResult {
|
|
5
|
+
readonly success: boolean;
|
|
6
|
+
readonly statusCode: number;
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly responseBody: unknown;
|
|
9
|
+
readonly manifest: string;
|
|
10
|
+
readonly durationMs: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options for submitting a provisioning script to Jahia.
|
|
14
|
+
*/
|
|
15
|
+
export interface ProvisioningOptions {
|
|
16
|
+
readonly url: string;
|
|
17
|
+
readonly username: string;
|
|
18
|
+
readonly password: string;
|
|
19
|
+
readonly manifestContent: Buffer;
|
|
20
|
+
readonly manifestFilename: string;
|
|
21
|
+
readonly attachments: readonly ProvisioningAttachment[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A file attachment to include alongside the provisioning script.
|
|
25
|
+
*/
|
|
26
|
+
export interface ProvisioningAttachment {
|
|
27
|
+
readonly filename: string;
|
|
28
|
+
readonly content: Buffer;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The source type of a provisioning manifest.
|
|
32
|
+
*/
|
|
33
|
+
export type ManifestSource = 'file' | 'url';
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/provisioning/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/provisioning/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sam/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/sam/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SamQueryResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Queries the SAM GraphQL endpoint and returns the current health status.
|
|
4
|
+
*/
|
|
5
|
+
export declare const querySamStatus: (url: string, username: string, password: string, severity: string) => Promise<SamQueryResult>;
|
|
6
|
+
//# sourceMappingURL=query-sam-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-sam-status.d.ts","sourceRoot":"","sources":["../../../src/lib/sam/query-sam-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,YAAY,CAAC;AAiC5D;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,OAAO,CAAC,cAAc,CAyCxB,CAAC"}
|
|
@@ -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"}
|