@start9labs/start-sdk 0.3.6-alpha6 → 0.3.6-alpha8
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/cjs/lib/StartSdk.d.ts +12 -25
- package/cjs/lib/StartSdk.js +5 -23
- package/cjs/lib/StartSdk.js.map +1 -1
- package/cjs/lib/backup/Backups.js +2 -1
- package/cjs/lib/backup/Backups.js.map +1 -1
- package/cjs/lib/backup/setupBackups.d.ts +1 -1
- package/cjs/lib/backup/setupBackups.js +2 -1
- package/cjs/lib/backup/setupBackups.js.map +1 -1
- package/cjs/lib/config/setupConfig.js +2 -1
- package/cjs/lib/config/setupConfig.js.map +1 -1
- package/cjs/lib/dependencies/dependencies.d.ts +15 -15
- package/cjs/lib/dependencies/dependencies.js +128 -81
- package/cjs/lib/dependencies/dependencies.js.map +1 -1
- package/cjs/lib/exver/index.d.ts +30 -8
- package/cjs/lib/exver/index.js +61 -54
- package/cjs/lib/exver/index.js.map +1 -1
- package/cjs/lib/health/HealthCheck.d.ts +4 -10
- package/cjs/lib/health/HealthCheck.js +29 -38
- package/cjs/lib/health/HealthCheck.js.map +1 -1
- package/cjs/lib/health/checkFns/HealthCheckResult.d.ts +2 -0
- package/cjs/lib/{osBindings/RemoveAddressParams.js → health/checkFns/HealthCheckResult.js} +1 -1
- package/cjs/lib/health/checkFns/HealthCheckResult.js.map +1 -0
- package/cjs/lib/health/checkFns/checkPortListening.d.ts +2 -2
- package/cjs/lib/health/checkFns/checkPortListening.js +3 -3
- package/cjs/lib/health/checkFns/checkPortListening.js.map +1 -1
- package/cjs/lib/health/checkFns/checkWebUrl.d.ts +2 -2
- package/cjs/lib/health/checkFns/checkWebUrl.js +4 -3
- package/cjs/lib/health/checkFns/checkWebUrl.js.map +1 -1
- package/cjs/lib/health/checkFns/index.d.ts +1 -1
- package/cjs/lib/health/checkFns/runHealthScript.d.ts +3 -4
- package/cjs/lib/health/checkFns/runHealthScript.js +3 -3
- package/cjs/lib/health/checkFns/runHealthScript.js.map +1 -1
- package/cjs/lib/index.d.ts +1 -0
- package/cjs/lib/index.js +4 -0
- package/cjs/lib/index.js.map +1 -1
- package/cjs/lib/inits/migrations/Migration.d.ts +14 -27
- package/cjs/lib/inits/migrations/Migration.js +10 -3
- package/cjs/lib/inits/migrations/Migration.js.map +1 -1
- package/cjs/lib/inits/migrations/setupMigrations.d.ts +10 -5
- package/cjs/lib/inits/migrations/setupMigrations.js +90 -26
- package/cjs/lib/inits/migrations/setupMigrations.js.map +1 -1
- package/cjs/lib/inits/setupInit.d.ts +2 -2
- package/cjs/lib/inits/setupInit.js +29 -5
- package/cjs/lib/inits/setupInit.js.map +1 -1
- package/cjs/lib/inits/setupInstall.d.ts +1 -1
- package/cjs/lib/inits/setupInstall.js +4 -5
- package/cjs/lib/inits/setupInstall.js.map +1 -1
- package/cjs/lib/inits/setupUninstall.d.ts +1 -1
- package/cjs/lib/inits/setupUninstall.js +1 -1
- package/cjs/lib/inits/setupUninstall.js.map +1 -1
- package/cjs/lib/interfaces/Origin.js +1 -2
- package/cjs/lib/interfaces/Origin.js.map +1 -1
- package/cjs/lib/interfaces/ServiceInterfaceBuilder.d.ts +0 -2
- package/cjs/lib/interfaces/ServiceInterfaceBuilder.js.map +1 -1
- package/cjs/lib/mainFn/CommandController.d.ts +7 -4
- package/cjs/lib/mainFn/CommandController.js +18 -8
- package/cjs/lib/mainFn/CommandController.js.map +1 -1
- package/cjs/lib/mainFn/Daemon.d.ts +4 -2
- package/cjs/lib/mainFn/Daemon.js +7 -2
- package/cjs/lib/mainFn/Daemon.js.map +1 -1
- package/cjs/lib/mainFn/Daemons.d.ts +4 -4
- package/cjs/lib/mainFn/HealthDaemon.d.ts +8 -5
- package/cjs/lib/mainFn/HealthDaemon.js +34 -64
- package/cjs/lib/mainFn/HealthDaemon.js.map +1 -1
- package/cjs/lib/manifest/ManifestTypes.d.ts +1 -10
- package/cjs/lib/manifest/setupManifest.d.ts +8 -4
- package/cjs/lib/manifest/setupManifest.js +11 -2
- package/cjs/lib/manifest/setupManifest.js.map +1 -1
- package/cjs/lib/osBindings/ApiState.d.ts +1 -0
- package/cjs/lib/osBindings/{Callback.js → ApiState.js} +1 -1
- package/cjs/lib/osBindings/ApiState.js.map +1 -0
- package/cjs/lib/osBindings/CheckDependenciesParam.d.ts +1 -1
- package/cjs/lib/osBindings/CheckDependenciesResult.d.ts +5 -4
- package/cjs/lib/osBindings/DependencyRequirement.d.ts +5 -3
- package/cjs/lib/osBindings/DependencyRequirement.js +0 -1
- package/cjs/lib/osBindings/DependencyRequirement.js.map +1 -1
- package/cjs/lib/osBindings/EchoParams.d.ts +3 -0
- package/cjs/lib/osBindings/{ChrootParams.js → EchoParams.js} +1 -1
- package/cjs/lib/osBindings/EchoParams.js.map +1 -0
- package/cjs/lib/osBindings/ExecuteAction.d.ts +4 -4
- package/cjs/lib/osBindings/ExportActionParams.d.ts +4 -1
- package/cjs/lib/osBindings/ExportServiceInterfaceParams.d.ts +0 -1
- package/cjs/lib/osBindings/GetConfiguredParams.d.ts +4 -0
- package/cjs/lib/osBindings/GetConfiguredParams.js +3 -0
- package/cjs/lib/osBindings/GetConfiguredParams.js.map +1 -0
- package/cjs/lib/osBindings/GetHostInfoParams.d.ts +3 -2
- package/cjs/lib/osBindings/GetPrimaryUrlParams.d.ts +5 -4
- package/cjs/lib/osBindings/GetServiceInterfaceParams.d.ts +3 -2
- package/cjs/lib/osBindings/GetServicePortForwardParams.d.ts +3 -2
- package/cjs/lib/osBindings/GetSslCertificateParams.d.ts +1 -1
- package/cjs/lib/osBindings/GetStoreParams.d.ts +3 -2
- package/cjs/lib/osBindings/HardwareRequirements.d.ts +1 -1
- package/cjs/lib/osBindings/ListServiceInterfacesParams.d.ts +3 -2
- package/cjs/lib/osBindings/LoginParams.d.ts +1 -0
- package/cjs/lib/osBindings/LshwDevice.d.ts +7 -0
- package/cjs/lib/osBindings/LshwDevice.js +3 -0
- package/cjs/lib/osBindings/LshwDevice.js.map +1 -0
- package/cjs/lib/osBindings/LshwDisplay.d.ts +3 -0
- package/cjs/lib/osBindings/{ParamsPackageId.js → LshwDisplay.js} +1 -1
- package/cjs/lib/osBindings/LshwDisplay.js.map +1 -0
- package/cjs/lib/osBindings/LshwProcessor.d.ts +3 -0
- package/cjs/lib/osBindings/{GetVersionParams.js → LshwProcessor.js} +1 -1
- package/cjs/lib/osBindings/LshwProcessor.js.map +1 -0
- package/cjs/lib/osBindings/MainStatus.d.ts +3 -3
- package/cjs/lib/osBindings/Manifest.d.ts +2 -0
- package/cjs/lib/osBindings/MountTarget.d.ts +4 -2
- package/cjs/lib/osBindings/MountTarget.js +0 -1
- package/cjs/lib/osBindings/MountTarget.js.map +1 -1
- package/cjs/lib/osBindings/NamedHealthCheckResult.d.ts +18 -0
- package/cjs/lib/osBindings/NamedHealthCheckResult.js +4 -0
- package/cjs/lib/osBindings/NamedHealthCheckResult.js.map +1 -0
- package/cjs/lib/osBindings/PackageDataEntry.d.ts +2 -0
- package/cjs/lib/osBindings/ServiceInterface.d.ts +0 -1
- package/cjs/lib/osBindings/SetDataVersionParams.d.ts +3 -0
- package/cjs/lib/osBindings/{ParamsMaybePackageId.js → SetDataVersionParams.js} +1 -1
- package/cjs/lib/osBindings/SetDataVersionParams.js.map +1 -0
- package/cjs/lib/osBindings/index.d.ts +5 -6
- package/cjs/lib/s9pk/merkleArchive/varint.js +2 -1
- package/cjs/lib/s9pk/merkleArchive/varint.js.map +1 -1
- package/cjs/lib/test/configBuilder.test.js +7 -4
- package/cjs/lib/test/configBuilder.test.js.map +1 -1
- package/cjs/lib/test/graph.test.js +78 -0
- package/cjs/lib/test/graph.test.js.map +1 -0
- package/cjs/lib/test/host.test.js +0 -1
- package/cjs/lib/test/host.test.js.map +1 -1
- package/cjs/lib/test/output.sdk.d.ts +11 -255
- package/cjs/lib/test/output.sdk.js +9 -3
- package/cjs/lib/test/output.sdk.js.map +1 -1
- package/cjs/lib/test/startosTypeValidation.test.js +4 -6
- package/cjs/lib/test/startosTypeValidation.test.js.map +1 -1
- package/cjs/lib/trigger/TriggerInput.d.ts +0 -1
- package/cjs/lib/trigger/changeOnFirstSuccess.js +5 -3
- package/cjs/lib/trigger/changeOnFirstSuccess.js.map +1 -1
- package/cjs/lib/trigger/defaultTrigger.js +4 -4
- package/cjs/lib/trigger/defaultTrigger.js.map +1 -1
- package/cjs/lib/trigger/lastStatus.d.ts +8 -0
- package/cjs/lib/trigger/lastStatus.js +30 -0
- package/cjs/lib/trigger/lastStatus.js.map +1 -0
- package/cjs/lib/trigger/successFailure.d.ts +2 -2
- package/cjs/lib/trigger/successFailure.js +2 -19
- package/cjs/lib/trigger/successFailure.js.map +1 -1
- package/cjs/lib/types.d.ts +121 -156
- package/cjs/lib/types.js.map +1 -1
- package/cjs/lib/util/Overlay.d.ts +46 -2
- package/cjs/lib/util/Overlay.js +51 -6
- package/cjs/lib/util/Overlay.js.map +1 -1
- package/cjs/lib/util/asError.d.ts +1 -0
- package/cjs/lib/util/asError.js +11 -0
- package/cjs/lib/util/asError.js.map +1 -0
- package/cjs/lib/util/getServiceInterface.d.ts +3 -5
- package/cjs/lib/util/getServiceInterface.js +4 -1
- package/cjs/lib/util/getServiceInterface.js.map +1 -1
- package/cjs/lib/util/getServiceInterfaces.d.ts +3 -3
- package/cjs/lib/util/getServiceInterfaces.js +1 -1
- package/cjs/lib/util/getServiceInterfaces.js.map +1 -1
- package/cjs/lib/util/graph.d.ts +19 -0
- package/cjs/lib/util/graph.js +206 -0
- package/cjs/lib/util/graph.js.map +1 -0
- package/cjs/lib/util/index.d.ts +1 -0
- package/cjs/lib/util/index.js +3 -1
- package/cjs/lib/util/index.js.map +1 -1
- package/cjs/lib/version/VersionGraph.d.ts +18 -0
- package/cjs/lib/version/VersionGraph.js +104 -0
- package/cjs/lib/version/VersionGraph.js.map +1 -0
- package/cjs/lib/version/VersionInfo.d.ts +44 -0
- package/cjs/lib/version/VersionInfo.js +48 -0
- package/cjs/lib/version/VersionInfo.js.map +1 -0
- package/cjs/lib/version/index.d.ts +2 -0
- package/cjs/lib/version/index.js +19 -0
- package/cjs/lib/version/index.js.map +1 -0
- package/cjs/lib/versionInfo/VersionInfo.d.ts +44 -0
- package/cjs/lib/versionInfo/VersionInfo.js +48 -0
- package/cjs/lib/versionInfo/VersionInfo.js.map +1 -0
- package/cjs/lib/versionInfo/setupVersionGraph.d.ts +19 -0
- package/cjs/lib/versionInfo/setupVersionGraph.js +108 -0
- package/cjs/lib/versionInfo/setupVersionGraph.js.map +1 -0
- package/mjs/lib/StartSdk.d.ts +12 -25
- package/mjs/lib/StartSdk.js +6 -24
- package/mjs/lib/StartSdk.js.map +1 -1
- package/mjs/lib/backup/Backups.js +2 -1
- package/mjs/lib/backup/Backups.js.map +1 -1
- package/mjs/lib/backup/setupBackups.d.ts +1 -1
- package/mjs/lib/backup/setupBackups.js +2 -1
- package/mjs/lib/backup/setupBackups.js.map +1 -1
- package/mjs/lib/config/setupConfig.js +1 -1
- package/mjs/lib/config/setupConfig.js.map +1 -1
- package/mjs/lib/dependencies/dependencies.d.ts +15 -15
- package/mjs/lib/dependencies/dependencies.js +126 -79
- package/mjs/lib/dependencies/dependencies.js.map +1 -1
- package/mjs/lib/exver/index.d.ts +30 -8
- package/mjs/lib/exver/index.js +61 -54
- package/mjs/lib/exver/index.js.map +1 -1
- package/mjs/lib/health/HealthCheck.d.ts +4 -10
- package/mjs/lib/health/HealthCheck.js +29 -38
- package/mjs/lib/health/HealthCheck.js.map +1 -1
- package/mjs/lib/health/checkFns/HealthCheckResult.d.ts +2 -0
- package/mjs/lib/health/checkFns/HealthCheckResult.js +2 -0
- package/mjs/lib/health/checkFns/HealthCheckResult.js.map +1 -0
- package/mjs/lib/health/checkFns/checkPortListening.d.ts +2 -2
- package/mjs/lib/health/checkFns/checkPortListening.js +3 -3
- package/mjs/lib/health/checkFns/checkPortListening.js.map +1 -1
- package/mjs/lib/health/checkFns/checkWebUrl.d.ts +2 -2
- package/mjs/lib/health/checkFns/checkWebUrl.js +4 -3
- package/mjs/lib/health/checkFns/checkWebUrl.js.map +1 -1
- package/mjs/lib/health/checkFns/index.d.ts +1 -1
- package/mjs/lib/health/checkFns/runHealthScript.d.ts +3 -4
- package/mjs/lib/health/checkFns/runHealthScript.js +3 -3
- package/mjs/lib/health/checkFns/runHealthScript.js.map +1 -1
- package/mjs/lib/index.d.ts +1 -0
- package/mjs/lib/index.js +1 -0
- package/mjs/lib/index.js.map +1 -1
- package/mjs/lib/inits/migrations/Migration.d.ts +14 -27
- package/mjs/lib/inits/migrations/Migration.js +9 -2
- package/mjs/lib/inits/migrations/Migration.js.map +1 -1
- package/mjs/lib/inits/migrations/setupMigrations.d.ts +10 -5
- package/mjs/lib/inits/migrations/setupMigrations.js +92 -28
- package/mjs/lib/inits/migrations/setupMigrations.js.map +1 -1
- package/mjs/lib/inits/setupInit.d.ts +2 -2
- package/mjs/lib/inits/setupInit.js +29 -5
- package/mjs/lib/inits/setupInit.js.map +1 -1
- package/mjs/lib/inits/setupInstall.d.ts +1 -1
- package/mjs/lib/inits/setupInstall.js +4 -5
- package/mjs/lib/inits/setupInstall.js.map +1 -1
- package/mjs/lib/inits/setupUninstall.d.ts +1 -1
- package/mjs/lib/inits/setupUninstall.js +1 -1
- package/mjs/lib/inits/setupUninstall.js.map +1 -1
- package/mjs/lib/interfaces/Origin.js +1 -2
- package/mjs/lib/interfaces/Origin.js.map +1 -1
- package/mjs/lib/interfaces/ServiceInterfaceBuilder.d.ts +0 -2
- package/mjs/lib/interfaces/ServiceInterfaceBuilder.js.map +1 -1
- package/mjs/lib/mainFn/CommandController.d.ts +7 -4
- package/mjs/lib/mainFn/CommandController.js +17 -9
- package/mjs/lib/mainFn/CommandController.js.map +1 -1
- package/mjs/lib/mainFn/Daemon.d.ts +4 -2
- package/mjs/lib/mainFn/Daemon.js +7 -3
- package/mjs/lib/mainFn/Daemon.js.map +1 -1
- package/mjs/lib/mainFn/Daemons.d.ts +4 -4
- package/mjs/lib/mainFn/HealthDaemon.d.ts +8 -5
- package/mjs/lib/mainFn/HealthDaemon.js +33 -50
- package/mjs/lib/mainFn/HealthDaemon.js.map +1 -1
- package/mjs/lib/manifest/ManifestTypes.d.ts +1 -10
- package/mjs/lib/manifest/setupManifest.d.ts +8 -4
- package/mjs/lib/manifest/setupManifest.js +11 -2
- package/mjs/lib/manifest/setupManifest.js.map +1 -1
- package/mjs/lib/osBindings/ApiState.d.ts +1 -0
- package/mjs/lib/osBindings/{Callback.js → ApiState.js} +1 -1
- package/mjs/lib/osBindings/ApiState.js.map +1 -0
- package/mjs/lib/osBindings/CheckDependenciesParam.d.ts +1 -1
- package/mjs/lib/osBindings/CheckDependenciesResult.d.ts +5 -4
- package/mjs/lib/osBindings/DependencyRequirement.d.ts +5 -3
- package/mjs/lib/osBindings/DependencyRequirement.js +0 -1
- package/mjs/lib/osBindings/DependencyRequirement.js.map +1 -1
- package/mjs/lib/osBindings/EchoParams.d.ts +3 -0
- package/mjs/lib/osBindings/{ChrootParams.js → EchoParams.js} +1 -1
- package/mjs/lib/osBindings/EchoParams.js.map +1 -0
- package/mjs/lib/osBindings/ExecuteAction.d.ts +4 -4
- package/mjs/lib/osBindings/ExportActionParams.d.ts +4 -1
- package/mjs/lib/osBindings/ExportServiceInterfaceParams.d.ts +0 -1
- package/mjs/lib/osBindings/GetConfiguredParams.d.ts +4 -0
- package/mjs/lib/osBindings/GetConfiguredParams.js +2 -0
- package/mjs/lib/osBindings/GetConfiguredParams.js.map +1 -0
- package/mjs/lib/osBindings/GetHostInfoParams.d.ts +3 -2
- package/mjs/lib/osBindings/GetPrimaryUrlParams.d.ts +5 -4
- package/mjs/lib/osBindings/GetServiceInterfaceParams.d.ts +3 -2
- package/mjs/lib/osBindings/GetServicePortForwardParams.d.ts +3 -2
- package/mjs/lib/osBindings/GetSslCertificateParams.d.ts +1 -1
- package/mjs/lib/osBindings/GetStoreParams.d.ts +3 -2
- package/mjs/lib/osBindings/HardwareRequirements.d.ts +1 -1
- package/mjs/lib/osBindings/ListServiceInterfacesParams.d.ts +3 -2
- package/mjs/lib/osBindings/LoginParams.d.ts +1 -0
- package/mjs/lib/osBindings/LshwDevice.d.ts +7 -0
- package/mjs/lib/osBindings/LshwDevice.js +2 -0
- package/mjs/lib/osBindings/LshwDevice.js.map +1 -0
- package/mjs/lib/osBindings/LshwDisplay.d.ts +3 -0
- package/mjs/lib/osBindings/{ParamsPackageId.js → LshwDisplay.js} +1 -1
- package/mjs/lib/osBindings/LshwDisplay.js.map +1 -0
- package/mjs/lib/osBindings/LshwProcessor.d.ts +3 -0
- package/mjs/lib/osBindings/{GetVersionParams.js → LshwProcessor.js} +1 -1
- package/mjs/lib/osBindings/LshwProcessor.js.map +1 -0
- package/mjs/lib/osBindings/MainStatus.d.ts +3 -3
- package/mjs/lib/osBindings/Manifest.d.ts +2 -0
- package/mjs/lib/osBindings/MountTarget.d.ts +4 -2
- package/mjs/lib/osBindings/MountTarget.js +0 -1
- package/mjs/lib/osBindings/MountTarget.js.map +1 -1
- package/mjs/lib/osBindings/NamedHealthCheckResult.d.ts +18 -0
- package/mjs/lib/osBindings/NamedHealthCheckResult.js +3 -0
- package/mjs/lib/osBindings/NamedHealthCheckResult.js.map +1 -0
- package/mjs/lib/osBindings/PackageDataEntry.d.ts +2 -0
- package/mjs/lib/osBindings/ServiceInterface.d.ts +0 -1
- package/mjs/lib/osBindings/SetDataVersionParams.d.ts +3 -0
- package/mjs/lib/osBindings/{ParamsMaybePackageId.js → SetDataVersionParams.js} +1 -1
- package/mjs/lib/osBindings/SetDataVersionParams.js.map +1 -0
- package/mjs/lib/osBindings/index.d.ts +5 -6
- package/mjs/lib/s9pk/merkleArchive/varint.js +2 -1
- package/mjs/lib/s9pk/merkleArchive/varint.js.map +1 -1
- package/mjs/lib/test/configBuilder.test.js +7 -4
- package/mjs/lib/test/configBuilder.test.js.map +1 -1
- package/mjs/lib/test/graph.test.js +76 -0
- package/mjs/lib/test/graph.test.js.map +1 -0
- package/mjs/lib/test/host.test.js +0 -1
- package/mjs/lib/test/host.test.js.map +1 -1
- package/mjs/lib/test/output.sdk.d.ts +11 -255
- package/mjs/lib/test/output.sdk.js +9 -3
- package/mjs/lib/test/output.sdk.js.map +1 -1
- package/mjs/lib/test/startosTypeValidation.test.js +4 -6
- package/mjs/lib/test/startosTypeValidation.test.js.map +1 -1
- package/mjs/lib/trigger/TriggerInput.d.ts +0 -1
- package/mjs/lib/trigger/changeOnFirstSuccess.js +5 -3
- package/mjs/lib/trigger/changeOnFirstSuccess.js.map +1 -1
- package/mjs/lib/trigger/defaultTrigger.js +4 -4
- package/mjs/lib/trigger/defaultTrigger.js.map +1 -1
- package/mjs/lib/trigger/lastStatus.d.ts +8 -0
- package/mjs/lib/trigger/lastStatus.js +25 -0
- package/mjs/lib/trigger/lastStatus.js.map +1 -0
- package/mjs/lib/trigger/successFailure.d.ts +2 -2
- package/mjs/lib/trigger/successFailure.js +2 -19
- package/mjs/lib/trigger/successFailure.js.map +1 -1
- package/mjs/lib/types.d.ts +121 -156
- package/mjs/lib/types.js.map +1 -1
- package/mjs/lib/util/Overlay.d.ts +46 -2
- package/mjs/lib/util/Overlay.js +50 -5
- package/mjs/lib/util/Overlay.js.map +1 -1
- package/mjs/lib/util/asError.d.ts +1 -0
- package/mjs/lib/util/asError.js +7 -0
- package/mjs/lib/util/asError.js.map +1 -0
- package/mjs/lib/util/getServiceInterface.d.ts +3 -5
- package/mjs/lib/util/getServiceInterface.js +4 -1
- package/mjs/lib/util/getServiceInterface.js.map +1 -1
- package/mjs/lib/util/getServiceInterfaces.d.ts +3 -3
- package/mjs/lib/util/getServiceInterfaces.js +1 -1
- package/mjs/lib/util/getServiceInterfaces.js.map +1 -1
- package/mjs/lib/util/graph.d.ts +19 -0
- package/mjs/lib/util/graph.js +201 -0
- package/mjs/lib/util/graph.js.map +1 -0
- package/mjs/lib/util/index.d.ts +1 -0
- package/mjs/lib/util/index.js +1 -0
- package/mjs/lib/util/index.js.map +1 -1
- package/mjs/lib/version/VersionGraph.d.ts +18 -0
- package/mjs/lib/version/VersionGraph.js +102 -0
- package/mjs/lib/version/VersionGraph.js.map +1 -0
- package/mjs/lib/version/VersionInfo.d.ts +44 -0
- package/mjs/lib/version/VersionInfo.js +45 -0
- package/mjs/lib/version/VersionInfo.js.map +1 -0
- package/mjs/lib/version/index.d.ts +2 -0
- package/mjs/lib/version/index.js +3 -0
- package/mjs/lib/version/index.js.map +1 -0
- package/mjs/lib/versionInfo/VersionInfo.d.ts +44 -0
- package/mjs/lib/versionInfo/VersionInfo.js +45 -0
- package/mjs/lib/versionInfo/VersionInfo.js.map +1 -0
- package/mjs/lib/versionInfo/setupVersionGraph.d.ts +19 -0
- package/mjs/lib/versionInfo/setupVersionGraph.js +105 -0
- package/mjs/lib/versionInfo/setupVersionGraph.js.map +1 -0
- package/mjs/lib/versionInfo/setupVersionInfo.d.ts +19 -0
- package/mjs/lib/versionInfo/setupVersionInfo.js +105 -0
- package/mjs/lib/versionInfo/setupVersionInfo.js.map +1 -0
- package/package.json +1 -1
- package/cjs/lib/emverLite/mod.d.ts +0 -108
- package/cjs/lib/emverLite/mod.js +0 -329
- package/cjs/lib/emverLite/mod.js.map +0 -1
- package/cjs/lib/osBindings/Callback.d.ts +0 -1
- package/cjs/lib/osBindings/Callback.js.map +0 -1
- package/cjs/lib/osBindings/ChrootParams.d.ts +0 -8
- package/cjs/lib/osBindings/ChrootParams.js.map +0 -1
- package/cjs/lib/osBindings/GetVersionParams.d.ts +0 -6
- package/cjs/lib/osBindings/GetVersionParams.js.map +0 -1
- package/cjs/lib/osBindings/ParamsMaybePackageId.d.ts +0 -3
- package/cjs/lib/osBindings/ParamsMaybePackageId.js.map +0 -1
- package/cjs/lib/osBindings/ParamsPackageId.d.ts +0 -3
- package/cjs/lib/osBindings/ParamsPackageId.js.map +0 -1
- package/cjs/lib/osBindings/RemoveActionParams.d.ts +0 -3
- package/cjs/lib/osBindings/RemoveActionParams.js +0 -4
- package/cjs/lib/osBindings/RemoveActionParams.js.map +0 -1
- package/cjs/lib/osBindings/RemoveAddressParams.d.ts +0 -4
- package/cjs/lib/osBindings/RemoveAddressParams.js.map +0 -1
- package/cjs/lib/osBindings/SetSystemSmtpParams.d.ts +0 -3
- package/cjs/lib/osBindings/SetSystemSmtpParams.js +0 -4
- package/cjs/lib/osBindings/SetSystemSmtpParams.js.map +0 -1
- package/cjs/lib/test/emverList.test.js +0 -227
- package/cjs/lib/test/emverList.test.js.map +0 -1
- package/cjs/lib/test/utils.splitCommand.test.js +0 -42
- package/cjs/lib/test/utils.splitCommand.test.js.map +0 -1
- package/mjs/lib/emverLite/mod.d.ts +0 -108
- package/mjs/lib/emverLite/mod.js +0 -301
- package/mjs/lib/emverLite/mod.js.map +0 -1
- package/mjs/lib/osBindings/Callback.d.ts +0 -1
- package/mjs/lib/osBindings/Callback.js.map +0 -1
- package/mjs/lib/osBindings/ChrootParams.d.ts +0 -8
- package/mjs/lib/osBindings/ChrootParams.js.map +0 -1
- package/mjs/lib/osBindings/GetVersionParams.d.ts +0 -6
- package/mjs/lib/osBindings/GetVersionParams.js.map +0 -1
- package/mjs/lib/osBindings/ParamsMaybePackageId.d.ts +0 -3
- package/mjs/lib/osBindings/ParamsMaybePackageId.js.map +0 -1
- package/mjs/lib/osBindings/ParamsPackageId.d.ts +0 -3
- package/mjs/lib/osBindings/ParamsPackageId.js.map +0 -1
- package/mjs/lib/osBindings/RemoveActionParams.d.ts +0 -3
- package/mjs/lib/osBindings/RemoveActionParams.js +0 -3
- package/mjs/lib/osBindings/RemoveActionParams.js.map +0 -1
- package/mjs/lib/osBindings/RemoveAddressParams.d.ts +0 -4
- package/mjs/lib/osBindings/RemoveAddressParams.js +0 -2
- package/mjs/lib/osBindings/RemoveAddressParams.js.map +0 -1
- package/mjs/lib/osBindings/SetSystemSmtpParams.d.ts +0 -3
- package/mjs/lib/osBindings/SetSystemSmtpParams.js +0 -3
- package/mjs/lib/osBindings/SetSystemSmtpParams.js.map +0 -1
- package/mjs/lib/test/emverList.test.d.ts +0 -1
- package/mjs/lib/test/emverList.test.js +0 -225
- package/mjs/lib/test/emverList.test.js.map +0 -1
- package/mjs/lib/test/utils.splitCommand.test.d.ts +0 -1
- package/mjs/lib/test/utils.splitCommand.test.js +0 -40
- package/mjs/lib/test/utils.splitCommand.test.js.map +0 -1
- /package/cjs/lib/test/{emverList.test.d.ts → graph.test.d.ts} +0 -0
- /package/{cjs/lib/test/utils.splitCommand.test.d.ts → mjs/lib/test/graph.test.d.ts} +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const IMPOSSIBLE = Symbol("IMPOSSIBLE");
|
|
2
|
+
export class VersionInfo {
|
|
3
|
+
options;
|
|
4
|
+
_version = null;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
static of(options) {
|
|
9
|
+
return new VersionInfo({ ...options, satisfies: [] });
|
|
10
|
+
}
|
|
11
|
+
/** Specify a version that this version is 100% backwards compatible to */
|
|
12
|
+
satisfies(version) {
|
|
13
|
+
return new VersionInfo({
|
|
14
|
+
...this.options,
|
|
15
|
+
satisfies: [...this.options.satisfies, version],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function __type_tests() {
|
|
20
|
+
const version = VersionInfo.of({
|
|
21
|
+
version: "1.0.0:0",
|
|
22
|
+
releaseNotes: "",
|
|
23
|
+
migrations: {},
|
|
24
|
+
})
|
|
25
|
+
.satisfies("#other:1.0.0:0")
|
|
26
|
+
.satisfies("#other:2.0.0:0")
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
.satisfies("#other:2.f.0:0");
|
|
29
|
+
let a = version;
|
|
30
|
+
// @ts-expect-error
|
|
31
|
+
let b = version;
|
|
32
|
+
VersionInfo.of({
|
|
33
|
+
// @ts-expect-error
|
|
34
|
+
version: "test",
|
|
35
|
+
releaseNotes: "",
|
|
36
|
+
migrations: {},
|
|
37
|
+
});
|
|
38
|
+
VersionInfo.of({
|
|
39
|
+
// @ts-expect-error
|
|
40
|
+
version: "test",
|
|
41
|
+
releaseNotes: "",
|
|
42
|
+
migrations: {},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=VersionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../../../lib/version/VersionInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AA4B9C,MAAM,OAAO,WAAW;IAGX;IAFH,QAAQ,GAAmB,IAAI,CAAA;IACvC,YACW,OAA0D;QAA1D,YAAO,GAAP,OAAO,CAAmD;IAClE,CAAC;IACJ,MAAM,CAAC,EAAE,CAAyB,OAAgC;QAChE,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,0EAA0E;IAC1E,SAAS,CACP,OAA6B;QAE7B,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,IAAI,CAAC,OAAO;YACf,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAChD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,YAAY;IACnB,MAAM,OAAO,GAA2B,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC;SACC,SAAS,CAAC,gBAAgB,CAAC;SAC3B,SAAS,CAAC,gBAAgB,CAAC;QAC5B,mBAAmB;SAClB,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAE9B,IAAI,CAAC,GAA2B,OAAO,CAAA;IACvC,mBAAmB;IACnB,IAAI,CAAC,GAA2B,OAAO,CAAA;IAEvC,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAgB;QACzB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/version/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ValidateExVer } from "../exver";
|
|
2
|
+
import * as T from "../types";
|
|
3
|
+
export declare const IMPOSSIBLE: unique symbol;
|
|
4
|
+
export type VersionOptions<Version extends string> = {
|
|
5
|
+
/** The version being described */
|
|
6
|
+
version: Version & ValidateExVer<Version>;
|
|
7
|
+
/** The release notes for this version */
|
|
8
|
+
releaseNotes: string;
|
|
9
|
+
/** Data migrations for this version */
|
|
10
|
+
migrations: {
|
|
11
|
+
/**
|
|
12
|
+
* A migration from the previous version
|
|
13
|
+
* Leave blank to indicate no migration is necessary
|
|
14
|
+
* Set to `IMPOSSIBLE` to indicate migrating from the previous version is not possible
|
|
15
|
+
*/
|
|
16
|
+
up?: ((opts: {
|
|
17
|
+
effects: T.Effects;
|
|
18
|
+
}) => Promise<void>) | typeof IMPOSSIBLE;
|
|
19
|
+
/**
|
|
20
|
+
* A migration to the previous version
|
|
21
|
+
* Leave blank to indicate no migration is necessary
|
|
22
|
+
* Set to `IMPOSSIBLE` to indicate downgrades are prohibited
|
|
23
|
+
*/
|
|
24
|
+
down?: ((opts: {
|
|
25
|
+
effects: T.Effects;
|
|
26
|
+
}) => Promise<void>) | typeof IMPOSSIBLE;
|
|
27
|
+
/**
|
|
28
|
+
* Additional migrations, such as fast-forward migrations, or migrations from other flavors
|
|
29
|
+
*/
|
|
30
|
+
other?: Record<string, (opts: {
|
|
31
|
+
effects: T.Effects;
|
|
32
|
+
}) => Promise<void>>;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare class VersionInfo<Version extends string> {
|
|
36
|
+
readonly options: VersionOptions<Version> & {
|
|
37
|
+
satisfies: string[];
|
|
38
|
+
};
|
|
39
|
+
private _version;
|
|
40
|
+
private constructor();
|
|
41
|
+
static of<Version extends string>(options: VersionOptions<Version>): VersionInfo<Version>;
|
|
42
|
+
/** Specify a version that this version is 100% backwards compatible to */
|
|
43
|
+
satisfies<V extends string>(version: V & ValidateExVer<V>): VersionInfo<Version>;
|
|
44
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const IMPOSSIBLE = Symbol("IMPOSSIBLE");
|
|
2
|
+
export class VersionInfo {
|
|
3
|
+
options;
|
|
4
|
+
_version = null;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
static of(options) {
|
|
9
|
+
return new VersionInfo({ ...options, satisfies: [] });
|
|
10
|
+
}
|
|
11
|
+
/** Specify a version that this version is 100% backwards compatible to */
|
|
12
|
+
satisfies(version) {
|
|
13
|
+
return new VersionInfo({
|
|
14
|
+
...this.options,
|
|
15
|
+
satisfies: [...this.options.satisfies, version],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function __type_tests() {
|
|
20
|
+
const version = VersionInfo.of({
|
|
21
|
+
version: "1.0.0:0",
|
|
22
|
+
releaseNotes: "",
|
|
23
|
+
migrations: {},
|
|
24
|
+
})
|
|
25
|
+
.satisfies("#other:1.0.0:0")
|
|
26
|
+
.satisfies("#other:2.0.0:0")
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
.satisfies("#other:2.f.0:0");
|
|
29
|
+
let a = version;
|
|
30
|
+
// @ts-expect-error
|
|
31
|
+
let b = version;
|
|
32
|
+
VersionInfo.of({
|
|
33
|
+
// @ts-expect-error
|
|
34
|
+
version: "test",
|
|
35
|
+
releaseNotes: "",
|
|
36
|
+
migrations: {},
|
|
37
|
+
});
|
|
38
|
+
VersionInfo.of({
|
|
39
|
+
// @ts-expect-error
|
|
40
|
+
version: "test",
|
|
41
|
+
releaseNotes: "",
|
|
42
|
+
migrations: {},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=VersionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../../../lib/versionInfo/VersionInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AA4B9C,MAAM,OAAO,WAAW;IAGX;IAFH,QAAQ,GAAmB,IAAI,CAAA;IACvC,YACW,OAA0D;QAA1D,YAAO,GAAP,OAAO,CAAmD;IAClE,CAAC;IACJ,MAAM,CAAC,EAAE,CAAyB,OAAgC;QAChE,OAAO,IAAI,WAAW,CAAU,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,0EAA0E;IAC1E,SAAS,CACP,OAA6B;QAE7B,OAAO,IAAI,WAAW,CAAC;YACrB,GAAG,IAAI,CAAC,OAAO;YACf,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAChD,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,YAAY;IACnB,MAAM,OAAO,GAA2B,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC;SACC,SAAS,CAAC,gBAAgB,CAAC;SAC3B,SAAS,CAAC,gBAAgB,CAAC;QAC5B,mBAAmB;SAClB,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAE9B,IAAI,CAAC,GAA2B,OAAO,CAAA;IACvC,mBAAmB;IACnB,IAAI,CAAC,GAA2B,OAAO,CAAA;IAEvC,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,CAAC;QACb,mBAAmB;QACnB,OAAO,EAAE,MAAgB;QACzB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;KACf,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExtendedVersion, VersionRange } from "../exver";
|
|
2
|
+
import * as T from "../types";
|
|
3
|
+
import { VersionInfo } from "./VersionInfo";
|
|
4
|
+
export declare class VersionGraph<CurrentVersion extends string> {
|
|
5
|
+
readonly current: VersionInfo<CurrentVersion>;
|
|
6
|
+
private readonly graph;
|
|
7
|
+
private constructor();
|
|
8
|
+
currentVersion: () => ExtendedVersion;
|
|
9
|
+
static of<CurrentVersion extends string, OtherVersions extends Array<VersionInfo<any>>>(currentVersion: VersionInfo<CurrentVersion>, ...other: EnsureUniqueId<OtherVersions, OtherVersions, CurrentVersion>): VersionGraph<CurrentVersion>;
|
|
10
|
+
migrate({ effects, from, to, }: {
|
|
11
|
+
effects: T.Effects;
|
|
12
|
+
from: ExtendedVersion;
|
|
13
|
+
to: ExtendedVersion;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
canMigrateFrom: () => VersionRange;
|
|
16
|
+
canMigrateTo: () => VersionRange;
|
|
17
|
+
}
|
|
18
|
+
export declare function setupVersionGraph<CurrentVersion extends string, OtherVersions extends Array<VersionInfo<any>>>(current: VersionInfo<CurrentVersion>, ...other: EnsureUniqueId<OtherVersions, OtherVersions, CurrentVersion>): VersionGraph<CurrentVersion>;
|
|
19
|
+
export type EnsureUniqueId<A, B = A, OtherVersions = never> = B extends [] ? A : B extends [VersionInfo<infer Version>, ...infer Rest] ? (Version extends OtherVersions ? "One or more versions are not unique"[] : EnsureUniqueId<A, Rest, Version | OtherVersions>) : "There exists a migration that is not a Migration"[];
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ExtendedVersion, VersionRange } from "../exver";
|
|
2
|
+
import { Graph } from "../util/graph";
|
|
3
|
+
import { once } from "../util/once";
|
|
4
|
+
import { IMPOSSIBLE } from "./VersionInfo";
|
|
5
|
+
export class VersionGraph {
|
|
6
|
+
current;
|
|
7
|
+
graph;
|
|
8
|
+
constructor(current, versions) {
|
|
9
|
+
this.current = current;
|
|
10
|
+
this.graph = once(() => {
|
|
11
|
+
const graph = new Graph();
|
|
12
|
+
const flavorMap = {};
|
|
13
|
+
for (let version of [current, ...versions]) {
|
|
14
|
+
const v = ExtendedVersion.parse(version.options.version);
|
|
15
|
+
const vertex = graph.addVertex(v, [], []);
|
|
16
|
+
const flavor = v.flavor || "";
|
|
17
|
+
if (!flavorMap[flavor]) {
|
|
18
|
+
flavorMap[flavor] = [];
|
|
19
|
+
}
|
|
20
|
+
flavorMap[flavor].push([v, version, vertex]);
|
|
21
|
+
}
|
|
22
|
+
for (let flavor in flavorMap) {
|
|
23
|
+
flavorMap[flavor].sort((a, b) => a[0].compareForSort(b[0]));
|
|
24
|
+
let prev = undefined;
|
|
25
|
+
for (let [v, version, vertex] of flavorMap[flavor]) {
|
|
26
|
+
if (version.options.migrations.up !== IMPOSSIBLE) {
|
|
27
|
+
let range;
|
|
28
|
+
if (prev) {
|
|
29
|
+
graph.addEdge(version.options.migrations.up, prev[2], vertex);
|
|
30
|
+
range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
range = VersionRange.anchor("<", v);
|
|
34
|
+
}
|
|
35
|
+
const vRange = graph.addVertex(range, [], []);
|
|
36
|
+
graph.addEdge(version.options.migrations.up, vRange, vertex);
|
|
37
|
+
}
|
|
38
|
+
if (version.options.migrations.down !== IMPOSSIBLE) {
|
|
39
|
+
let range;
|
|
40
|
+
if (prev) {
|
|
41
|
+
graph.addEdge(version.options.migrations.down, vertex, prev[2]);
|
|
42
|
+
range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
range = VersionRange.anchor("<", v);
|
|
46
|
+
}
|
|
47
|
+
const vRange = graph.addVertex(range, [], []);
|
|
48
|
+
graph.addEdge(version.options.migrations.down, vertex, vRange);
|
|
49
|
+
}
|
|
50
|
+
if (version.options.migrations.other) {
|
|
51
|
+
for (let rangeStr in version.options.migrations.other) {
|
|
52
|
+
const range = VersionRange.parse(rangeStr);
|
|
53
|
+
const vRange = graph.addVertex(range, [], []);
|
|
54
|
+
graph.addEdge(version.options.migrations.other[rangeStr], vRange, vertex);
|
|
55
|
+
for (let matching of graph.findVertex((v) => v.metadata instanceof ExtendedVersion &&
|
|
56
|
+
v.metadata.satisfies(range))) {
|
|
57
|
+
graph.addEdge(version.options.migrations.other[rangeStr], matching, vertex);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return graph;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
currentVersion = once(() => ExtendedVersion.parse(this.current.options.version));
|
|
67
|
+
static of(currentVersion, ...other) {
|
|
68
|
+
return new VersionGraph(currentVersion, other);
|
|
69
|
+
}
|
|
70
|
+
async migrate({ effects, from, to, }) {
|
|
71
|
+
const graph = this.graph();
|
|
72
|
+
if (from && to) {
|
|
73
|
+
const path = graph.shortestPath((v) => (v.metadata instanceof VersionRange &&
|
|
74
|
+
v.metadata.satisfiedBy(from)) ||
|
|
75
|
+
(v.metadata instanceof ExtendedVersion && v.metadata.equals(from)), (v) => (v.metadata instanceof VersionRange && v.metadata.satisfiedBy(to)) ||
|
|
76
|
+
(v.metadata instanceof ExtendedVersion && v.metadata.equals(to)));
|
|
77
|
+
if (path) {
|
|
78
|
+
for (let edge of path) {
|
|
79
|
+
if (edge.metadata) {
|
|
80
|
+
await edge.metadata({ effects });
|
|
81
|
+
}
|
|
82
|
+
await effects.setDataVersion({ version: edge.to.metadata.toString() });
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw new Error();
|
|
88
|
+
}
|
|
89
|
+
canMigrateFrom = once(() => Array.from(this.graph().reverseBreadthFirstSearch((v) => (v.metadata instanceof VersionRange &&
|
|
90
|
+
v.metadata.satisfiedBy(this.currentVersion())) ||
|
|
91
|
+
(v.metadata instanceof ExtendedVersion &&
|
|
92
|
+
v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
|
|
93
|
+
? x.metadata
|
|
94
|
+
: VersionRange.anchor("=", x.metadata)), VersionRange.none()));
|
|
95
|
+
canMigrateTo = once(() => Array.from(this.graph().breadthFirstSearch((v) => (v.metadata instanceof VersionRange &&
|
|
96
|
+
v.metadata.satisfiedBy(this.currentVersion())) ||
|
|
97
|
+
(v.metadata instanceof ExtendedVersion &&
|
|
98
|
+
v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
|
|
99
|
+
? x.metadata
|
|
100
|
+
: VersionRange.anchor("=", x.metadata)), VersionRange.none()));
|
|
101
|
+
}
|
|
102
|
+
export function setupVersionGraph(current, ...other) {
|
|
103
|
+
return VersionGraph.of(current, ...other);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=setupVersionGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVersionGraph.js","sourceRoot":"","sources":["../../../../lib/versionInfo/setupVersionGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExtendedVersion, VersionRange } from "../exver";
|
|
2
|
+
import * as T from "../types";
|
|
3
|
+
import { VersionInfo } from "./VersionInfo";
|
|
4
|
+
export declare class VersionGraph<CurrentVersion extends string> {
|
|
5
|
+
readonly current: VersionInfo<CurrentVersion>;
|
|
6
|
+
private readonly graph;
|
|
7
|
+
private constructor();
|
|
8
|
+
currentVersion: () => ExtendedVersion;
|
|
9
|
+
static of<CurrentVersion extends string, OtherVersions extends Array<VersionInfo<any>>>(currentVersion: VersionInfo<CurrentVersion>, ...migrations: EnsureUniqueId<OtherVersions, OtherVersions, CurrentVersion>): VersionGraph<CurrentVersion>;
|
|
10
|
+
migrate({ effects, from, to, }: {
|
|
11
|
+
effects: T.Effects;
|
|
12
|
+
from: ExtendedVersion;
|
|
13
|
+
to: ExtendedVersion;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
canMigrateFrom: () => VersionRange;
|
|
16
|
+
canMigrateTo: () => VersionRange;
|
|
17
|
+
}
|
|
18
|
+
export declare function setupMigrations<CurrentVersion extends string, OtherVersions extends Array<VersionInfo<any>>>(version: VersionInfo<CurrentVersion>, ...migrations: EnsureUniqueId<OtherVersions, OtherVersions, CurrentVersion>): VersionGraph<CurrentVersion>;
|
|
19
|
+
export type EnsureUniqueId<A, B = A, OtherVersions = never> = B extends [] ? A : B extends [VersionInfo<infer Version>, ...infer Rest] ? (Version extends OtherVersions ? "One or more versions are not unique"[] : EnsureUniqueId<A, Rest, Version | OtherVersions>) : "There exists a migration that is not a Migration"[];
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ExtendedVersion, VersionRange } from "../exver";
|
|
2
|
+
import { Graph } from "../util/graph";
|
|
3
|
+
import { once } from "../util/once";
|
|
4
|
+
import { IMPOSSIBLE } from "./VersionInfo";
|
|
5
|
+
export class VersionGraph {
|
|
6
|
+
current;
|
|
7
|
+
graph;
|
|
8
|
+
constructor(current, versions) {
|
|
9
|
+
this.current = current;
|
|
10
|
+
this.graph = once(() => {
|
|
11
|
+
const graph = new Graph();
|
|
12
|
+
const flavorMap = {};
|
|
13
|
+
for (let version of [current, ...versions]) {
|
|
14
|
+
const v = ExtendedVersion.parse(version.options.version);
|
|
15
|
+
const vertex = graph.addVertex(v, [], []);
|
|
16
|
+
const flavor = v.flavor || "";
|
|
17
|
+
if (!flavorMap[flavor]) {
|
|
18
|
+
flavorMap[flavor] = [];
|
|
19
|
+
}
|
|
20
|
+
flavorMap[flavor].push([v, version, vertex]);
|
|
21
|
+
}
|
|
22
|
+
for (let flavor in flavorMap) {
|
|
23
|
+
flavorMap[flavor].sort((a, b) => a[0].compareForSort(b[0]));
|
|
24
|
+
let prev = undefined;
|
|
25
|
+
for (let [v, version, vertex] of flavorMap[flavor]) {
|
|
26
|
+
if (version.options.migrations.up !== IMPOSSIBLE) {
|
|
27
|
+
let range;
|
|
28
|
+
if (prev) {
|
|
29
|
+
graph.addEdge(version.options.migrations.up, prev[2], vertex);
|
|
30
|
+
range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
range = VersionRange.anchor("<", v);
|
|
34
|
+
}
|
|
35
|
+
const vRange = graph.addVertex(range, [], []);
|
|
36
|
+
graph.addEdge(version.options.migrations.up, vRange, vertex);
|
|
37
|
+
}
|
|
38
|
+
if (version.options.migrations.down !== IMPOSSIBLE) {
|
|
39
|
+
let range;
|
|
40
|
+
if (prev) {
|
|
41
|
+
graph.addEdge(version.options.migrations.down, vertex, prev[2]);
|
|
42
|
+
range = VersionRange.anchor(">=", prev[0]).and(VersionRange.anchor("<", v));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
range = VersionRange.anchor("<", v);
|
|
46
|
+
}
|
|
47
|
+
const vRange = graph.addVertex(range, [], []);
|
|
48
|
+
graph.addEdge(version.options.migrations.down, vertex, vRange);
|
|
49
|
+
}
|
|
50
|
+
if (version.options.migrations.other) {
|
|
51
|
+
for (let rangeStr in version.options.migrations.other) {
|
|
52
|
+
const range = VersionRange.parse(rangeStr);
|
|
53
|
+
const vRange = graph.addVertex(range, [], []);
|
|
54
|
+
graph.addEdge(version.options.migrations.other[rangeStr], vRange, vertex);
|
|
55
|
+
for (let matching of graph.findVertex((v) => v.metadata instanceof ExtendedVersion &&
|
|
56
|
+
v.metadata.satisfies(range))) {
|
|
57
|
+
graph.addEdge(version.options.migrations.other[rangeStr], matching, vertex);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return graph;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
currentVersion = once(() => ExtendedVersion.parse(this.current.options.version));
|
|
67
|
+
static of(currentVersion, ...migrations) {
|
|
68
|
+
return new VersionGraph(currentVersion, migrations);
|
|
69
|
+
}
|
|
70
|
+
async migrate({ effects, from, to, }) {
|
|
71
|
+
const graph = this.graph();
|
|
72
|
+
if (from && to) {
|
|
73
|
+
const path = graph.shortestPath((v) => (v.metadata instanceof VersionRange &&
|
|
74
|
+
v.metadata.satisfiedBy(from)) ||
|
|
75
|
+
(v.metadata instanceof ExtendedVersion && v.metadata.equals(from)), (v) => (v.metadata instanceof VersionRange && v.metadata.satisfiedBy(to)) ||
|
|
76
|
+
(v.metadata instanceof ExtendedVersion && v.metadata.equals(to)));
|
|
77
|
+
if (path) {
|
|
78
|
+
for (let edge of path) {
|
|
79
|
+
if (edge.metadata) {
|
|
80
|
+
await edge.metadata({ effects });
|
|
81
|
+
}
|
|
82
|
+
await effects.setDataVersion({ version: edge.to.metadata.toString() });
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw new Error();
|
|
88
|
+
}
|
|
89
|
+
canMigrateFrom = once(() => Array.from(this.graph().reverseBfs((v) => (v.metadata instanceof VersionRange &&
|
|
90
|
+
v.metadata.satisfiedBy(this.currentVersion())) ||
|
|
91
|
+
(v.metadata instanceof ExtendedVersion &&
|
|
92
|
+
v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
|
|
93
|
+
? x.metadata
|
|
94
|
+
: VersionRange.anchor("=", x.metadata)), VersionRange.none()));
|
|
95
|
+
canMigrateTo = once(() => Array.from(this.graph().bfs((v) => (v.metadata instanceof VersionRange &&
|
|
96
|
+
v.metadata.satisfiedBy(this.currentVersion())) ||
|
|
97
|
+
(v.metadata instanceof ExtendedVersion &&
|
|
98
|
+
v.metadata.equals(this.currentVersion())))).reduce((acc, x) => acc.or(x.metadata instanceof VersionRange
|
|
99
|
+
? x.metadata
|
|
100
|
+
: VersionRange.anchor("=", x.metadata)), VersionRange.none()));
|
|
101
|
+
}
|
|
102
|
+
export function setupMigrations(version, ...migrations) {
|
|
103
|
+
return VersionGraph.of(version, ...migrations);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=setupVersionInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVersionInfo.js","sourceRoot":"","sources":["../../../../lib/versionInfo/setupVersionInfo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
export type ValidEmVer = string;
|
|
2
|
-
export type ValidEmVerRange = string;
|
|
3
|
-
/**
|
|
4
|
-
* Will take in a range, like `>1.2` or `<1.2.3.4` or `=1.2` or `1.*`
|
|
5
|
-
* and return a checker, that has the check function for checking that a version is in the valid
|
|
6
|
-
* @param range
|
|
7
|
-
* @returns
|
|
8
|
-
*/
|
|
9
|
-
export declare function rangeOf(range: string | Checker): Checker;
|
|
10
|
-
/**
|
|
11
|
-
* Used to create a checker that will `and` all the ranges passed in
|
|
12
|
-
* @param ranges
|
|
13
|
-
* @returns
|
|
14
|
-
*/
|
|
15
|
-
export declare function rangeAnd(...ranges: (string | Checker)[]): Checker;
|
|
16
|
-
/**
|
|
17
|
-
* Used to create a checker that will `or` all the ranges passed in
|
|
18
|
-
* @param ranges
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
export declare function rangeOr(...ranges: (string | Checker)[]): Checker;
|
|
22
|
-
/**
|
|
23
|
-
* This will negate the checker, so given a checker that checks for >= 1.0.0, it will check for < 1.0.0
|
|
24
|
-
* @param range
|
|
25
|
-
* @returns
|
|
26
|
-
*/
|
|
27
|
-
export declare function notRange(range: string | Checker): Checker;
|
|
28
|
-
/**
|
|
29
|
-
* EmVer is a set of versioning of any pattern like 1 or 1.2 or 1.2.3 or 1.2.3.4 or ..
|
|
30
|
-
*/
|
|
31
|
-
export declare class EmVer {
|
|
32
|
-
readonly values: number[];
|
|
33
|
-
readonly extra: string | null;
|
|
34
|
-
/**
|
|
35
|
-
* Convert the range, should be 1.2.* or * into a emver
|
|
36
|
-
* Or an already made emver
|
|
37
|
-
* IsUnsafe
|
|
38
|
-
*/
|
|
39
|
-
static from(range: string | EmVer): EmVer;
|
|
40
|
-
/**
|
|
41
|
-
* Convert the range, should be 1.2.* or * into a emver
|
|
42
|
-
* IsUnsafe
|
|
43
|
-
*/
|
|
44
|
-
static parse(rangeExtra: string): EmVer;
|
|
45
|
-
private constructor();
|
|
46
|
-
/**
|
|
47
|
-
* Used when we need a new emver that has the last number incremented, used in the 1.* like things
|
|
48
|
-
*/
|
|
49
|
-
withLastIncremented(): EmVer;
|
|
50
|
-
greaterThan(other: EmVer): boolean;
|
|
51
|
-
equals(other: EmVer): boolean;
|
|
52
|
-
greaterThanOrEqual(other: EmVer): boolean;
|
|
53
|
-
lessThanOrEqual(other: EmVer): boolean;
|
|
54
|
-
lessThan(other: EmVer): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Return a enum string that describes (used for switching/iffs)
|
|
57
|
-
* to know comparison
|
|
58
|
-
* @param other
|
|
59
|
-
* @returns
|
|
60
|
-
*/
|
|
61
|
-
compare(other: EmVer): "equal" | "greater" | "less";
|
|
62
|
-
/**
|
|
63
|
-
* Used when sorting emver's in a list using the sort method
|
|
64
|
-
* @param other
|
|
65
|
-
* @returns
|
|
66
|
-
*/
|
|
67
|
-
compareForSort(other: EmVer): 0 | 1 | -1;
|
|
68
|
-
toString(): string;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* A checker is a function that takes a version and returns true if the version matches the checker.
|
|
72
|
-
* Used when we are doing range checking, like saying ">=1.0.0".check("1.2.3") will be true
|
|
73
|
-
*/
|
|
74
|
-
export declare class Checker {
|
|
75
|
-
/**
|
|
76
|
-
* Check is the function that will be given a emver or unparsed emver and should give if it follows
|
|
77
|
-
* a pattern
|
|
78
|
-
*/
|
|
79
|
-
readonly check: (value: ValidEmVer | EmVer) => boolean;
|
|
80
|
-
private readonly _range;
|
|
81
|
-
/**
|
|
82
|
-
* Will take in a range, like `>1.2` or `<1.2.3.4` or `=1.2` or `1.*`
|
|
83
|
-
* and return a checker, that has the check function for checking that a version is in the valid
|
|
84
|
-
* @param range
|
|
85
|
-
* @returns
|
|
86
|
-
*/
|
|
87
|
-
static parse(range: string | Checker): Checker;
|
|
88
|
-
constructor(
|
|
89
|
-
/**
|
|
90
|
-
* Check is the function that will be given a emver or unparsed emver and should give if it follows
|
|
91
|
-
* a pattern
|
|
92
|
-
*/
|
|
93
|
-
check: (value: ValidEmVer | EmVer) => boolean, _range: string);
|
|
94
|
-
get range(): string;
|
|
95
|
-
/**
|
|
96
|
-
* Used when we want the `and` condition with another checker
|
|
97
|
-
*/
|
|
98
|
-
and(...others: (Checker | string)[]): Checker;
|
|
99
|
-
/**
|
|
100
|
-
* Used when we want the `or` condition with another checker
|
|
101
|
-
*/
|
|
102
|
-
or(...others: (Checker | string)[]): Checker;
|
|
103
|
-
/**
|
|
104
|
-
* A useful example is making sure we don't match an exact version, like !=1.2.3
|
|
105
|
-
* @returns
|
|
106
|
-
*/
|
|
107
|
-
not(): Checker;
|
|
108
|
-
}
|