trm-core 9.10.6 → 10.0.1
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 +20 -0
- package/changelog.txt +11 -0
- package/dist/actions/cg3y/download.js +34 -4
- package/dist/actions/cg3y/index.d.ts +23 -0
- package/dist/actions/cg3y/index.js +13 -10
- package/dist/actions/cg3z/index.d.ts +67 -3
- package/dist/actions/cg3z/index.js +25 -14
- package/dist/actions/cg3z/upload.d.ts +20 -0
- package/dist/actions/cg3z/upload.js +165 -36
- package/dist/actions/checkEngines/analyze.d.ts +11 -0
- package/dist/actions/checkEngines/analyze.js +294 -0
- package/dist/actions/checkEngines/index.d.ts +87 -0
- package/dist/actions/checkEngines/index.js +38 -0
- package/dist/actions/checkEngines/init.d.ts +11 -0
- package/dist/actions/checkEngines/init.js +45 -0
- package/dist/actions/checkPackageDependencies/analyze.d.ts +10 -0
- package/dist/actions/checkPackageDependencies/analyze.js +37 -39
- package/dist/actions/checkPackageDependencies/index.d.ts +56 -0
- package/dist/actions/checkPackageDependencies/index.js +13 -10
- package/dist/actions/checkPackageDependencies/init.d.ts +8 -0
- package/dist/actions/checkPackageDependencies/init.js +24 -2
- package/dist/actions/checkSapEntries/analyze.d.ts +12 -0
- package/dist/actions/checkSapEntries/analyze.js +63 -47
- package/dist/actions/checkSapEntries/index.d.ts +35 -0
- package/dist/actions/checkSapEntries/index.js +12 -10
- package/dist/actions/checkSapEntries/init.d.ts +8 -0
- package/dist/actions/checkSapEntries/init.js +10 -2
- package/dist/actions/commons/IActionContext.d.ts +10 -0
- package/dist/actions/commons/checkServerAuth.d.ts +7 -0
- package/dist/actions/commons/checkServerAuth.js +10 -5
- package/dist/actions/commons/index.d.ts +1 -1
- package/dist/actions/commons/index.js +1 -1
- package/dist/actions/commons/prompts/index.d.ts +1 -0
- package/dist/actions/commons/prompts/index.js +1 -0
- package/dist/actions/commons/prompts/setLandscapeTarget.d.ts +14 -0
- package/dist/actions/commons/prompts/setLandscapeTarget.js +40 -0
- package/dist/actions/commons/prompts/setTransportTarget.d.ts +15 -0
- package/dist/actions/commons/prompts/setTransportTarget.js +20 -2
- package/dist/actions/commons/setSystemPackages.d.ts +7 -0
- package/dist/actions/commons/setSystemPackages.js +12 -2
- package/dist/actions/commons/utils/actionLocks.d.ts +32 -0
- package/dist/actions/commons/utils/actionLocks.js +135 -0
- package/dist/actions/commons/utils/dirtyEntries.d.ts +12 -0
- package/dist/actions/commons/utils/dirtyEntries.js +54 -0
- package/dist/actions/commons/utils/index.d.ts +10 -0
- package/dist/actions/commons/utils/index.js +26 -0
- package/dist/actions/commons/utils/installRegistry.d.ts +18 -0
- package/dist/actions/commons/utils/installRegistry.js +46 -0
- package/dist/actions/commons/utils/installedDependency.d.ts +15 -0
- package/dist/actions/commons/utils/installedDependency.js +30 -0
- package/dist/actions/commons/utils/owningInstallation.d.ts +6 -0
- package/dist/actions/commons/utils/owningInstallation.js +47 -0
- package/dist/actions/commons/utils/packageCleanup.d.ts +168 -0
- package/dist/actions/commons/utils/packageCleanup.js +1017 -0
- package/dist/actions/commons/utils/releaseDeletionTransport.d.ts +5 -0
- package/dist/actions/commons/utils/releaseDeletionTransport.js +67 -0
- package/dist/actions/commons/utils/restoreTransport.d.ts +6 -0
- package/dist/actions/commons/utils/restoreTransport.js +50 -0
- package/dist/actions/commons/utils/retainedWorkflow.d.ts +6 -0
- package/dist/actions/commons/utils/retainedWorkflow.js +49 -0
- package/dist/actions/commons/utils/withScopedPrefix.d.ts +5 -0
- package/dist/actions/commons/utils/withScopedPrefix.js +32 -0
- package/dist/actions/commons/workflowCallbacks.d.ts +21 -0
- package/dist/actions/commons/workflowCallbacks.js +157 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.js +5 -0
- package/dist/actions/install/addNamespace.d.ts +18 -0
- package/dist/actions/install/addNamespace.js +121 -51
- package/dist/actions/install/checkDependants.d.ts +15 -0
- package/dist/actions/install/checkDependants.js +74 -0
- package/dist/actions/install/checkDependencies.d.ts +11 -0
- package/dist/actions/install/checkDependencies.js +32 -13
- package/dist/actions/install/checkDependencyCycles.d.ts +17 -0
- package/dist/actions/install/checkDependencyCycles.js +105 -0
- package/dist/actions/install/checkEngines.d.ts +11 -0
- package/dist/actions/install/checkEngines.js +100 -0
- package/dist/actions/install/checkInstallDevclass.d.ts +24 -0
- package/dist/actions/install/checkInstallDevclass.js +110 -0
- package/dist/actions/install/checkSapEntries.d.ts +9 -0
- package/dist/actions/install/checkSapEntries.js +20 -12
- package/dist/actions/install/checkTransports.d.ts +34 -0
- package/dist/actions/install/checkTransports.js +329 -170
- package/dist/actions/install/cleanupCheckpoint.d.ts +11 -0
- package/dist/actions/install/cleanupCheckpoint.js +62 -0
- package/dist/actions/install/defaultTransportLayer.d.ts +5 -0
- package/dist/actions/install/defaultTransportLayer.js +36 -0
- package/dist/actions/install/executePostActivities.d.ts +6 -0
- package/dist/actions/install/executePostActivities.js +28 -38
- package/dist/actions/install/generateDevclass.d.ts +10 -0
- package/dist/actions/install/generateDevclass.js +66 -20
- package/dist/actions/install/generateLandscapeTransport.d.ts +23 -0
- package/dist/actions/install/generateLandscapeTransport.js +136 -0
- package/dist/actions/install/generateUpdateTransport.d.ts +20 -0
- package/dist/actions/install/generateUpdateTransport.js +122 -0
- package/dist/actions/install/importBatch.d.ts +22 -0
- package/dist/actions/install/importBatch.js +0 -0
- package/dist/actions/install/index.d.ts +273 -44
- package/dist/actions/install/index.js +139 -59
- package/dist/actions/install/init.d.ts +14 -0
- package/dist/actions/install/init.js +215 -108
- package/dist/actions/install/installDependencies.d.ts +14 -0
- package/dist/actions/install/installDependencies.js +122 -45
- package/dist/actions/install/lockResources.d.ts +8 -0
- package/dist/actions/install/lockResources.js +100 -0
- package/dist/actions/install/prepareCust.d.ts +13 -0
- package/dist/actions/install/prepareCust.js +138 -0
- package/dist/actions/install/prepareDevc.d.ts +15 -0
- package/dist/actions/install/prepareDevc.js +113 -0
- package/dist/actions/install/prepareLang.d.ts +13 -0
- package/dist/actions/install/prepareLang.js +110 -0
- package/dist/actions/install/prepareTadir.d.ts +13 -0
- package/dist/actions/install/prepareTadir.js +95 -0
- package/dist/actions/install/releaseLandscapeTransport.d.ts +11 -0
- package/dist/actions/install/releaseLandscapeTransport.js +79 -0
- package/dist/actions/install/setInstallDevclass.d.ts +10 -0
- package/dist/actions/install/setInstallDevclass.js +140 -54
- package/dist/actions/install/updatePackageData.d.ts +9 -0
- package/dist/actions/install/updatePackageData.js +117 -13
- package/dist/actions/installDependency/checkInstalledRelease.d.ts +13 -0
- package/dist/actions/installDependency/checkInstalledRelease.js +50 -0
- package/dist/actions/installDependency/confirmDowngrade.d.ts +11 -0
- package/dist/actions/installDependency/confirmDowngrade.js +53 -0
- package/dist/actions/installDependency/findInstallRelease.d.ts +24 -0
- package/dist/actions/installDependency/findInstallRelease.js +42 -19
- package/dist/actions/installDependency/index.d.ts +64 -3
- package/dist/actions/installDependency/index.js +30 -13
- package/dist/actions/installDependency/init.d.ts +14 -0
- package/dist/actions/installDependency/init.js +24 -3
- package/dist/actions/installDependency/installRelease.d.ts +6 -0
- package/dist/actions/installDependency/installRelease.js +22 -12
- package/dist/actions/publish/enginesUi.d.ts +53 -0
- package/dist/actions/publish/enginesUi.js +289 -0
- package/dist/actions/publish/findDependencies.d.ts +19 -0
- package/dist/actions/publish/findDependencies.js +72 -37
- package/dist/actions/publish/generateCustTransport.d.ts +6 -0
- package/dist/actions/publish/generateCustTransport.js +42 -19
- package/dist/actions/publish/generateDevcTransport.d.ts +6 -0
- package/dist/actions/publish/generateDevcTransport.js +16 -18
- package/dist/actions/publish/generateLangTransport.d.ts +6 -0
- package/dist/actions/publish/generateLangTransport.js +20 -23
- package/dist/actions/publish/generateTadirTransport.d.ts +6 -0
- package/dist/actions/publish/generateTadirTransport.js +18 -17
- package/dist/actions/publish/getSystemEngines.d.ts +27 -0
- package/dist/actions/publish/getSystemEngines.js +112 -0
- package/dist/actions/publish/index.d.ts +162 -37
- package/dist/actions/publish/index.js +51 -34
- package/dist/actions/publish/init.d.ts +28 -0
- package/dist/actions/publish/init.js +304 -120
- package/dist/actions/publish/lockResources.d.ts +4 -0
- package/dist/actions/{install/refreshTmsTxt.js → publish/lockResources.js} +14 -17
- package/dist/actions/publish/publishToRegistry.d.ts +8 -0
- package/dist/actions/publish/publishToRegistry.js +18 -8
- package/dist/actions/publish/releaseTransports.d.ts +6 -0
- package/dist/actions/publish/releaseTransports.js +48 -20
- package/dist/actions/publish/setCustomizingTransports.d.ts +6 -0
- package/dist/actions/publish/setCustomizingTransports.js +227 -101
- package/dist/actions/publish/setManifestValues.d.ts +22 -0
- package/dist/actions/publish/setManifestValues.js +455 -119
- package/dist/actions/publish/setOptionalPublishData.d.ts +11 -0
- package/dist/actions/publish/setOptionalPublishData.js +133 -0
- package/dist/actions/publish/updatePackageData.d.ts +8 -0
- package/dist/actions/publish/updatePackageData.js +20 -7
- package/dist/actions/stopWarning.d.ts +5 -0
- package/dist/actions/stopWarning.js +5 -0
- package/dist/actions/uninstall/checkDependants.d.ts +7 -0
- package/dist/actions/uninstall/checkDependants.js +55 -0
- package/dist/actions/uninstall/forwardDeletionTransport.d.ts +10 -0
- package/dist/actions/uninstall/forwardDeletionTransport.js +51 -0
- package/dist/actions/uninstall/generateDeletionTransport.d.ts +10 -0
- package/dist/actions/uninstall/generateDeletionTransport.js +45 -0
- package/dist/actions/uninstall/index.d.ts +153 -0
- package/dist/actions/uninstall/index.js +141 -0
- package/dist/actions/uninstall/init.d.ts +17 -0
- package/dist/actions/uninstall/init.js +146 -0
- package/dist/actions/uninstall/lockResources.d.ts +4 -0
- package/dist/actions/{publish/setTransportTarget.js → uninstall/lockResources.js} +16 -7
- package/dist/actions/uninstall/removePackageData.d.ts +9 -0
- package/dist/actions/uninstall/removePackageData.js +64 -0
- package/dist/actions/uninstall/uninstallNestedPackages.d.ts +26 -0
- package/dist/actions/uninstall/uninstallNestedPackages.js +174 -0
- package/dist/client/ClientError.d.ts +3 -1
- package/dist/client/ClientError.js +2 -1
- package/dist/client/RESTClient.d.ts +18 -5
- package/dist/client/RESTClient.js +194 -52
- package/dist/client/RESTClientError.d.ts +1 -2
- package/dist/client/RESTClientError.js +3 -2
- package/dist/client/RFCClient.d.ts +28 -7
- package/dist/client/RFCClient.js +325 -77
- package/dist/client/RFCClientError.d.ts +1 -1
- package/dist/client/RFCClientError.js +2 -2
- package/dist/client/TransportEntries.d.ts +8 -0
- package/dist/client/TransportEntries.js +2 -0
- package/dist/client/components/BORM_ID.d.ts +1 -0
- package/dist/client/components/BORM_ID.js +2 -0
- package/dist/client/components/BORM_NAME.d.ts +1 -0
- package/dist/client/components/BORM_NAME.js +2 -0
- package/dist/client/components/BORM_NAMEL.d.ts +1 -0
- package/dist/client/components/BORM_NAMEL.js +2 -0
- package/dist/client/components/BORM_VEND.d.ts +1 -0
- package/dist/client/components/BORM_VEND.js +2 -0
- package/dist/client/components/BORM_VERS.d.ts +1 -0
- package/dist/client/components/BORM_VERS.js +2 -0
- package/dist/client/components/CWBNTNUMM.d.ts +1 -0
- package/dist/client/components/CWBNTNUMM.js +2 -0
- package/dist/client/components/CWBNTSTAT.d.ts +1 -0
- package/dist/client/components/CWBNTSTAT.js +2 -0
- package/dist/client/components/CWBNTVERS.d.ts +1 -0
- package/dist/client/components/CWBNTVERS.js +2 -0
- package/dist/client/components/CWBPRSTAT.d.ts +1 -0
- package/dist/client/components/CWBPRSTAT.js +2 -0
- package/dist/client/components/INSTSTATE.d.ts +1 -0
- package/dist/client/components/INSTSTATE.js +2 -0
- package/dist/client/components/RELC_TYPE.d.ts +1 -0
- package/dist/client/components/RELC_TYPE.js +2 -0
- package/dist/client/components/SAPPATCHLV.d.ts +1 -0
- package/dist/client/components/SAPPATCHLV.js +2 -0
- package/dist/client/components/SAPRELEASE.d.ts +1 -0
- package/dist/client/components/SAPRELEASE.js +2 -0
- package/dist/client/components/SYSYSID.d.ts +1 -0
- package/dist/client/components/SYSYSID.js +2 -0
- package/dist/client/components/ZTRM_INSTALLTR_TYPE.d.ts +1 -0
- package/dist/client/components/ZTRM_INSTALLTR_TYPE.js +2 -0
- package/dist/client/components/index.d.ts +15 -0
- package/dist/client/components/index.js +15 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/messageLog.d.ts +7 -0
- package/dist/client/messageLog.js +21 -0
- package/dist/client/struct/ActionLockKey.d.ts +6 -0
- package/dist/client/struct/ActionLockKey.js +2 -0
- package/dist/client/struct/CVERS.d.ts +7 -0
- package/dist/client/struct/CVERS.js +2 -0
- package/dist/client/struct/CWBNTCUST.d.ts +6 -0
- package/dist/client/struct/CWBNTCUST.js +2 -0
- package/dist/client/struct/CWBNTHEAD.d.ts +5 -0
- package/dist/client/struct/CWBNTHEAD.js +2 -0
- package/dist/client/struct/E070.d.ts +2 -1
- package/dist/client/struct/E071K.d.ts +9 -0
- package/dist/client/struct/E071K.js +2 -0
- package/dist/client/struct/PRDVERS.d.ts +9 -0
- package/dist/client/struct/PRDVERS.js +2 -0
- package/dist/client/struct/SCOMPKDTLN.d.ts +21 -0
- package/dist/client/struct/STMSCALERT.d.ts +21 -0
- package/dist/client/struct/STMSCALERT.js +2 -0
- package/dist/client/struct/STMS_TP_IMPORT.d.ts +14 -0
- package/dist/client/struct/STMS_TP_IMPORT.js +2 -0
- package/dist/client/struct/STMS_TR_REQUEST.d.ts +8 -0
- package/dist/client/struct/STMS_TR_REQUEST.js +2 -0
- package/dist/client/struct/TDEVC.d.ts +38 -0
- package/dist/client/struct/TPLOGPTR.d.ts +13 -0
- package/dist/client/struct/TPLOGPTR.js +2 -0
- package/dist/client/struct/TPSTDOUT.d.ts +3 -0
- package/dist/client/struct/TPSTDOUT.js +2 -0
- package/dist/client/struct/ZTRM_INSTALLTR.d.ts +8 -0
- package/dist/client/struct/ZTRM_INSTALLTR.js +2 -0
- package/dist/client/struct/index.d.ts +12 -0
- package/dist/client/struct/index.js +12 -0
- package/dist/commons/checkCoreTrmDependencies.js +1 -1
- package/dist/commons/getAxiosInstance.js +8 -17
- package/dist/commons/getNodePackage.js +7 -0
- package/dist/commons/getPackageHierarchy.js +2 -0
- package/dist/commons/getPackagesNamespace.d.ts +9 -0
- package/dist/commons/getPackagesNamespace.js +19 -0
- package/dist/commons/index.d.ts +4 -0
- package/dist/commons/index.js +4 -0
- package/dist/commons/packageDataFromTdevc.d.ts +12 -0
- package/dist/commons/packageDataFromTdevc.js +25 -0
- package/dist/commons/resolveCoreVersion.d.ts +10 -0
- package/dist/commons/resolveCoreVersion.js +24 -0
- package/dist/commons/summarizeForLog.d.ts +22 -0
- package/dist/commons/summarizeForLog.js +120 -0
- package/dist/connection/OpenRFCConnect.d.ts +13 -0
- package/dist/connection/OpenRFCConnect.js +23 -0
- package/dist/connection/index.d.ts +1 -0
- package/dist/connection/index.js +17 -0
- package/dist/dependencies/PackageDependencies.d.ts +2 -0
- package/dist/dependencies/PackageDependencies.js +24 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lockfile/Lockfile.d.ts +23 -1
- package/dist/lockfile/Lockfile.js +45 -9
- package/dist/manifest/Manifest.d.ts +9 -5
- package/dist/manifest/Manifest.js +82 -29
- package/dist/manifest/PostActivity.js +3 -3
- package/dist/manifest/TrmManifest.d.ts +0 -2
- package/dist/manifest/TrmManifestBase.d.ts +2 -0
- package/dist/manifest/TrmManifestEngines.d.ts +64 -0
- package/dist/manifest/TrmManifestEngines.js +2 -0
- package/dist/manifest/engines/index.d.ts +2 -0
- package/dist/manifest/engines/index.js +18 -0
- package/dist/manifest/engines/sapRange.d.ts +38 -0
- package/dist/manifest/engines/sapRange.js +135 -0
- package/dist/manifest/engines/validateEngines.d.ts +44 -0
- package/dist/manifest/engines/validateEngines.js +282 -0
- package/dist/manifest/index.d.ts +3 -0
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/sapEntries.d.ts +14 -0
- package/dist/manifest/sapEntries.js +63 -0
- package/dist/protocol/Protocol.js +7 -0
- package/dist/registry/AbstractRegistry.d.ts +18 -3
- package/dist/registry/FileSystem.d.ts +22 -13
- package/dist/registry/FileSystem.js +69 -18
- package/dist/registry/RegistryDeletionTransportUnauthorizedError.d.ts +4 -0
- package/dist/registry/RegistryDeletionTransportUnauthorizedError.js +12 -0
- package/dist/registry/RegistryDeletionTransportUnavailableError.d.ts +9 -0
- package/dist/registry/RegistryDeletionTransportUnavailableError.js +17 -0
- package/dist/registry/RegistryPackageNotFoundError.d.ts +7 -0
- package/dist/registry/RegistryPackageNotFoundError.js +14 -0
- package/dist/registry/RegistryV2.d.ts +15 -5
- package/dist/registry/RegistryV2.js +308 -48
- package/dist/registry/index.d.ts +4 -0
- package/dist/registry/index.js +4 -0
- package/dist/registry/registryKey.d.ts +7 -0
- package/dist/registry/registryKey.js +21 -0
- package/dist/systemConnector/ActionLock.d.ts +1 -0
- package/dist/systemConnector/ActionLock.js +2 -0
- package/dist/systemConnector/ISystemConnector.d.ts +21 -4
- package/dist/systemConnector/ISystemConnectorBase.d.ts +16 -0
- package/dist/systemConnector/InstallTransport.d.ts +6 -0
- package/dist/systemConnector/InstallTransport.js +2 -0
- package/dist/systemConnector/OpenRFCSystemConnector.d.ts +12 -0
- package/dist/systemConnector/OpenRFCSystemConnector.js +51 -0
- package/dist/systemConnector/RESTSystemConnector.d.ts +22 -7
- package/dist/systemConnector/RESTSystemConnector.js +95 -23
- package/dist/systemConnector/RFCConnection.d.ts +0 -1
- package/dist/systemConnector/RFCSystemConnector.d.ts +25 -7
- package/dist/systemConnector/RFCSystemConnector.js +75 -16
- package/dist/systemConnector/SystemConnector.d.ts +38 -6
- package/dist/systemConnector/SystemConnector.js +138 -12
- package/dist/systemConnector/SystemConnectorBase.d.ts +24 -1
- package/dist/systemConnector/SystemConnectorBase.js +174 -22
- package/dist/systemConnector/index.d.ts +3 -0
- package/dist/systemConnector/index.js +3 -0
- package/dist/transport/E071KOwner.d.ts +10 -0
- package/dist/transport/E071KOwner.js +15 -0
- package/dist/transport/R3transLogParser.d.ts +19 -0
- package/dist/transport/R3transLogParser.js +148 -0
- package/dist/transport/Transport.d.ts +36 -3
- package/dist/transport/Transport.js +304 -138
- package/dist/transport/index.d.ts +2 -0
- package/dist/transport/index.js +2 -0
- package/dist/trmPackage/TransportBinary.d.ts +4 -1
- package/dist/trmPackage/TrmArtifact.d.ts +12 -8
- package/dist/trmPackage/TrmArtifact.js +93 -74
- package/dist/trmPackage/TrmPackage.d.ts +20 -6
- package/dist/trmPackage/TrmPackage.js +27 -1
- package/dist/validators/validateDevclass.js +4 -0
- package/package.json +15 -7
- package/dist/actions/commons/trmServerPa.d.ts +0 -3
- package/dist/actions/commons/trmServerPa.js +0 -40
- package/dist/actions/install/checkAlreadyInstalled.d.ts +0 -3
- package/dist/actions/install/checkAlreadyInstalled.js +0 -71
- package/dist/actions/install/checkObjectTypes.d.ts +0 -3
- package/dist/actions/install/checkObjectTypes.js +0 -50
- package/dist/actions/install/checkObjectsLock.d.ts +0 -3
- package/dist/actions/install/checkObjectsLock.js +0 -52
- package/dist/actions/install/generateInstallTransports.d.ts +0 -3
- package/dist/actions/install/generateInstallTransports.js +0 -128
- package/dist/actions/install/importCustTransport.d.ts +0 -3
- package/dist/actions/install/importCustTransport.js +0 -73
- package/dist/actions/install/importDevcTransport.d.ts +0 -3
- package/dist/actions/install/importDevcTransport.js +0 -93
- package/dist/actions/install/importLangTransport.d.ts +0 -3
- package/dist/actions/install/importLangTransport.js +0 -72
- package/dist/actions/install/importTadirTransport.d.ts +0 -3
- package/dist/actions/install/importTadirTransport.js +0 -83
- package/dist/actions/install/readDevc.d.ts +0 -3
- package/dist/actions/install/readDevc.js +0 -33
- package/dist/actions/install/readTadir.d.ts +0 -3
- package/dist/actions/install/readTadir.js +0 -101
- package/dist/actions/install/refreshTmsTxt.d.ts +0 -3
- package/dist/actions/install/releaseInstallTransport.d.ts +0 -3
- package/dist/actions/install/releaseInstallTransport.js +0 -80
- package/dist/actions/publish/checkAllObjectsReleased.d.ts +0 -3
- package/dist/actions/publish/checkAllObjectsReleased.js +0 -46
- package/dist/actions/publish/getSourceCode.d.ts +0 -3
- package/dist/actions/publish/getSourceCode.js +0 -49
- package/dist/actions/publish/setChangelog.d.ts +0 -3
- package/dist/actions/publish/setChangelog.js +0 -69
- package/dist/actions/publish/setDevclass.d.ts +0 -3
- package/dist/actions/publish/setDevclass.js +0 -74
- package/dist/actions/publish/setReadme.d.ts +0 -3
- package/dist/actions/publish/setReadme.js +0 -52
- package/dist/actions/publish/setTransportTarget.d.ts +0 -3
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.releaseLandscapeTransport = void 0;
|
|
13
|
+
const trm_commons_1 = require("trm-commons");
|
|
14
|
+
const transport_1 = require("../../transport");
|
|
15
|
+
const utils_1 = require("../commons/utils");
|
|
16
|
+
/**
|
|
17
|
+
* Workflow step that releases the generated landscape transport, when present.
|
|
18
|
+
*
|
|
19
|
+
* 1- add upgrade transport to target transport queue
|
|
20
|
+
*
|
|
21
|
+
* 2- release
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
exports.releaseLandscapeTransport = {
|
|
25
|
+
name: 'release-install-transports',
|
|
26
|
+
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
if (context.output.transport) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
trm_commons_1.Logger.log(`Skipping release of landscape transport (transport was not generated)`, true);
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
yield (0, utils_1.withScopedPrefix)(`(${transport_1.Transport.getTransportIcon()} Landscape) `, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
//1- add upgrade transport to target transport queue
|
|
38
|
+
//if previous package was temporary, don't add deletion entries
|
|
39
|
+
if ((0, utils_1.isDeletionForwardable)(context)) {
|
|
40
|
+
yield (0, utils_1.forwardDeletionTransport)(context, context.rawInput.installData.landscapeTransport.targetSystem);
|
|
41
|
+
}
|
|
42
|
+
//2- release
|
|
43
|
+
trm_commons_1.Logger.loading(`Releasing...`);
|
|
44
|
+
// Mark before the release: SAP may export the transport and still fail.
|
|
45
|
+
context.revert.landscapeReleaseStarted = true;
|
|
46
|
+
yield context.output.transport.release(true, false, context.rawInput.contextData.logTemporaryFolder);
|
|
47
|
+
}));
|
|
48
|
+
}),
|
|
49
|
+
revert: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
let firstError;
|
|
51
|
+
try {
|
|
52
|
+
yield (0, utils_1.revertForwardedDeletionTransport)(context, context.rawInput.installData.landscapeTransport.targetSystem);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
firstError = error;
|
|
56
|
+
}
|
|
57
|
+
const transport = context.output.transport;
|
|
58
|
+
const targetSystem = context.rawInput.installData.landscapeTransport.targetSystem;
|
|
59
|
+
try {
|
|
60
|
+
if (yield transport.canBeDeleted()) {
|
|
61
|
+
yield transport.delete();
|
|
62
|
+
context.output.transport = undefined;
|
|
63
|
+
}
|
|
64
|
+
else if (context.revert.landscapeReleaseStarted) {
|
|
65
|
+
// A released transport can't be deleted: take it out of the target import queue instead.
|
|
66
|
+
yield (0, utils_1.removeFromImportQueue)(transport.trkorr, targetSystem, `Released landscape transport`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
firstError || (firstError = error);
|
|
71
|
+
if (context.revert.landscapeReleaseStarted) {
|
|
72
|
+
trm_commons_1.Logger.warning(`Released landscape transport ${transport.trkorr} may be in the ${targetSystem} import queue: check it in STMS.`, { important: true });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (firstError) {
|
|
76
|
+
throw firstError;
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
};
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
2
|
import { InstallWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that resolves publisher ABAP packages to target-system package names.
|
|
5
|
+
*
|
|
6
|
+
* 1- find already defined replacements in system
|
|
7
|
+
*
|
|
8
|
+
* 2- get root devclass and find namespace
|
|
9
|
+
*
|
|
10
|
+
* 3- if all package names like origin, import devc transport
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
3
13
|
export declare const setInstallDevclass: Step<InstallWorkflowContext>;
|
|
@@ -13,20 +13,39 @@ exports.setInstallDevclass = void 0;
|
|
|
13
13
|
const commons_1 = require("../../commons");
|
|
14
14
|
const systemConnector_1 = require("../../systemConnector");
|
|
15
15
|
const trm_commons_1 = require("trm-commons");
|
|
16
|
-
const
|
|
16
|
+
const addNamespace_1 = require("./addNamespace");
|
|
17
|
+
const checkInstallDevclass_1 = require("./checkInstallDevclass");
|
|
18
|
+
function escapeRegExp(value) {
|
|
19
|
+
return value.replace(/[.*+?^${}()|[\]\\/]/g, '\\$&');
|
|
20
|
+
}
|
|
17
21
|
function _validateDevclass(input, namespaces) {
|
|
18
22
|
const sInput = input.trim().toUpperCase();
|
|
19
|
-
namespaces = [...new Set(namespaces)];
|
|
20
23
|
if (sInput.length > 30) {
|
|
21
24
|
return `Package name must not exceede 30 characters limit.`;
|
|
22
25
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
26
|
+
if (namespaces) {
|
|
27
|
+
namespaces = [...new Set(namespaces)]; //unique
|
|
28
|
+
if (!namespaces.some(ns => sInput.startsWith(ns))) {
|
|
29
|
+
return `Package name must use one of the following namespaces: ${namespaces.join(', ')}.`;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
25
34
|
}
|
|
26
35
|
else {
|
|
27
36
|
return true;
|
|
28
37
|
}
|
|
29
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Workflow step that resolves publisher ABAP packages to target-system package names.
|
|
41
|
+
*
|
|
42
|
+
* 1- find already defined replacements in system
|
|
43
|
+
*
|
|
44
|
+
* 2- get root devclass and find namespace
|
|
45
|
+
*
|
|
46
|
+
* 3- if all package names like origin, import devc transport
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
30
49
|
exports.setInstallDevclass = {
|
|
31
50
|
name: 'set-install-devclass',
|
|
32
51
|
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -39,43 +58,115 @@ exports.setInstallDevclass = {
|
|
|
39
58
|
}
|
|
40
59
|
}),
|
|
41
60
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
-
var _a;
|
|
43
|
-
|
|
61
|
+
var _a, _b, _c;
|
|
62
|
+
//1- find already defined replacements in system
|
|
44
63
|
if (context.rawInput.installData.installDevclass.replacements.length <= 0) {
|
|
45
|
-
|
|
64
|
+
//no input replacements = get from the trm table devclass replacements the corresponding name
|
|
65
|
+
trm_commons_1.Logger.loading(`Checking package replacements...`);
|
|
66
|
+
context.rawInput.installData.installDevclass.replacements = yield systemConnector_1.SystemConnector.getInstallPackages(context.rawInput.packageData.name, context.runtime.installRegistry);
|
|
67
|
+
}
|
|
68
|
+
else if (context.runtime.update) {
|
|
69
|
+
//explicit replacements win; stored ones keep the devclasses they don't mention renamed
|
|
70
|
+
const explicit = new Set(context.rawInput.installData.installDevclass.replacements.map(o => o.originalDevclass));
|
|
71
|
+
const stored = (context.runtime.previousInstallPackages || []).filter(o => !explicit.has(o.originalDevclass));
|
|
72
|
+
stored.forEach(o => trm_commons_1.Logger.log(`Keeping stored package replacement ${o.originalDevclass} -> ${o.installDevclass}`, true));
|
|
73
|
+
context.rawInput.installData.installDevclass.replacements = [
|
|
74
|
+
...context.rawInput.installData.installDevclass.replacements,
|
|
75
|
+
...stored.map(o => ({ originalDevclass: o.originalDevclass, installDevclass: o.installDevclass }))
|
|
76
|
+
];
|
|
46
77
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
//the release root can have a new original name (e.g. moved to a namespace): a renamed installation keeps its root
|
|
79
|
+
//package, matched by position, so the installation stays where the customer put it
|
|
80
|
+
const releaseRoot = context.runtime.package.hierarchy.devclass;
|
|
81
|
+
const installedRoot = (_a = context.runtime.update) === null || _a === void 0 ? void 0 : _a.getDevclass();
|
|
82
|
+
if (installedRoot && !context.rawInput.installData.installDevclass.replacements.some(o => o.originalDevclass === releaseRoot)) {
|
|
83
|
+
const storedRoot = context.rawInput.installData.installDevclass.replacements.find(o => o.installDevclass.trim().toUpperCase() === installedRoot.trim().toUpperCase());
|
|
84
|
+
if (storedRoot && storedRoot.installDevclass !== storedRoot.originalDevclass) {
|
|
85
|
+
trm_commons_1.Logger.log(`Release root ${releaseRoot} replaces ${storedRoot.originalDevclass}: keeping installed root ${installedRoot}`, true);
|
|
86
|
+
context.rawInput.installData.installDevclass.replacements.push({ originalDevclass: releaseRoot, installDevclass: installedRoot });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//drop replacements of devclasses that are not part of the release (e.g. removed in this version)
|
|
90
|
+
const originalDevclasses = (0, addNamespace_1.flattenDevclasses)(context.runtime.package.hierarchy);
|
|
91
|
+
context.rawInput.installData.installDevclass.replacements = context.rawInput.installData.installDevclass.replacements.filter(replacement => {
|
|
92
|
+
if (originalDevclasses.includes(replacement.originalDevclass)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
trm_commons_1.Logger.log(`Ignoring package replacement ${replacement.originalDevclass} -> ${replacement.installDevclass}: devclass is not part of the release`, true);
|
|
96
|
+
return false;
|
|
97
|
+
});
|
|
98
|
+
//if there are replacements and they all equal to original ask if you should continue
|
|
99
|
+
const replacementsKeepOriginal = context.rawInput.installData.installDevclass.replacements.length > 0
|
|
100
|
+
&& context.rawInput.installData.installDevclass.replacements.every(replacement => replacement.installDevclass === replacement.originalDevclass);
|
|
101
|
+
if (replacementsKeepOriginal) {
|
|
102
|
+
let continueWithReplacements = false;
|
|
103
|
+
if (!context.rawInput.contextData.noInquirer) {
|
|
104
|
+
continueWithReplacements = (yield trm_commons_1.Inquirer.prompt({
|
|
105
|
+
type: 'confirm',
|
|
106
|
+
name: 'continueWithReplacements',
|
|
107
|
+
message: `Do you want to change original SAP packages name?`,
|
|
108
|
+
default: false
|
|
109
|
+
})).continueWithReplacements;
|
|
110
|
+
}
|
|
111
|
+
if (!continueWithReplacements) {
|
|
112
|
+
// Later workflow steps use this flag to import the original DEVC transport.
|
|
113
|
+
context.rawInput.installData.installDevclass.keepOriginal = true;
|
|
114
|
+
// Packages new in this release keep their name too, and are mapped like the others.
|
|
115
|
+
originalDevclasses
|
|
116
|
+
.filter(originalDevclass => !context.rawInput.installData.installDevclass.replacements.some(o => o.originalDevclass === originalDevclass))
|
|
117
|
+
.forEach(originalDevclass => context.rawInput.installData.installDevclass.replacements.push({
|
|
118
|
+
originalDevclass,
|
|
119
|
+
installDevclass: originalDevclass
|
|
120
|
+
}));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
50
123
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
124
|
+
//2- find the namespace of the original root, carried over onto new devclasses
|
|
125
|
+
const originalNamespace = (0, commons_1.getPackageNamespace)(context.runtime.package.hierarchy.devclass);
|
|
126
|
+
// Only carry the currently installed namespace forward onto newly introduced original
|
|
127
|
+
// devclasses when the package was genuinely customized before (some stored replacement
|
|
128
|
+
// actually renamed a package). Otherwise "currently installed" is just this package's
|
|
129
|
+
// own untouched default from whichever version happens to be installed right now, and
|
|
130
|
+
// has nothing to do with the namespace of the version being installed/rolled back to.
|
|
131
|
+
const hasCustomization = context.rawInput.installData.installDevclass.replacements.some(replacement => replacement.installDevclass !== replacement.originalDevclass);
|
|
132
|
+
let updateNamespace;
|
|
133
|
+
if (context.runtime.update && hasCustomization) {
|
|
134
|
+
//the installed root devclass can be unknown: fall back to the stored root replacement
|
|
135
|
+
const installedRootDevclass = context.runtime.update.getDevclass()
|
|
136
|
+
|| ((_c = (_b = context.runtime.previousInstallPackages) === null || _b === void 0 ? void 0 : _b.find(o => o.originalDevclass === context.runtime.package.hierarchy.devclass)) === null || _c === void 0 ? void 0 : _c.installDevclass);
|
|
137
|
+
if (installedRootDevclass) {
|
|
138
|
+
updateNamespace = (0, commons_1.getPackageNamespace)(installedRootDevclass);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
trm_commons_1.Logger.log(`Installed root devclass is unknown, namespace won't be carried over`, true);
|
|
142
|
+
}
|
|
55
143
|
}
|
|
56
|
-
|
|
57
|
-
trm_commons_1.Logger.loading(`Analyzing
|
|
58
|
-
for (const
|
|
59
|
-
|
|
60
|
-
const replacement = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass ===
|
|
144
|
+
const inq1Prompts = [];
|
|
145
|
+
trm_commons_1.Logger.loading(`Analyzing package replacements...`);
|
|
146
|
+
for (const originalDevclass of originalDevclasses) {
|
|
147
|
+
let adaptDevclassName = originalDevclass;
|
|
148
|
+
const replacement = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass === originalDevclass);
|
|
61
149
|
if (updateNamespace) {
|
|
150
|
+
//only for trm-server and trm-rest with /ATRM/: if no replacement and updating from namespace $, adapt naming convention
|
|
62
151
|
if (!replacement && updateNamespace === '$' && (context.runtime.isTrmServer || context.runtime.isTrmRest)) {
|
|
63
152
|
adaptDevclassName = (0, commons_1.adjustTrmServerRestDevclass)(adaptDevclassName);
|
|
64
153
|
}
|
|
65
154
|
else {
|
|
66
|
-
|
|
155
|
+
//original names use the original root namespace; a function keeps `$` literal
|
|
156
|
+
adaptDevclassName = adaptDevclassName.replace(new RegExp(`^${escapeRegExp(originalNamespace)}`, 'i'), () => updateNamespace);
|
|
67
157
|
}
|
|
68
158
|
}
|
|
69
159
|
else if (context.runtime.isTrmRest) {
|
|
160
|
+
//extra guard for trm-rest first install: move /ATRM/ to $
|
|
70
161
|
adaptDevclassName = (0, commons_1.adjustTrmServerRestDevclass)(adaptDevclassName);
|
|
71
162
|
}
|
|
72
|
-
const packageExists = yield systemConnector_1.SystemConnector.getDevclass(adaptDevclassName);
|
|
73
163
|
if (!replacement) {
|
|
74
164
|
if (context.rawInput.contextData.noInquirer || (context.runtime.isTrmServer || context.runtime.isTrmRest)) {
|
|
75
|
-
const automaticValue = _validateDevclass(adaptDevclassName, [updateNamespace || originalNamespace, '$', originalNamespace]);
|
|
165
|
+
//const automaticValue = _validateDevclass(adaptDevclassName, [updateNamespace || originalNamespace, '$', originalNamespace]);
|
|
166
|
+
const automaticValue = _validateDevclass(adaptDevclassName);
|
|
76
167
|
if (automaticValue === true) {
|
|
77
168
|
context.rawInput.installData.installDevclass.replacements.push({
|
|
78
|
-
originalDevclass
|
|
169
|
+
originalDevclass,
|
|
79
170
|
installDevclass: adaptDevclassName
|
|
80
171
|
});
|
|
81
172
|
}
|
|
@@ -86,57 +177,52 @@ exports.setInstallDevclass = {
|
|
|
86
177
|
else {
|
|
87
178
|
inq1Prompts.push({
|
|
88
179
|
type: "input",
|
|
89
|
-
name:
|
|
180
|
+
name: originalDevclass,
|
|
90
181
|
default: adaptDevclassName,
|
|
91
|
-
message:
|
|
92
|
-
validate: (input) => {
|
|
93
|
-
return _validateDevclass(input, [updateNamespace || originalNamespace, '$', originalNamespace]);
|
|
94
|
-
|
|
182
|
+
message: `ABAP Package "${adaptDevclassName}" will be imported. Do you want to rename it?`,
|
|
183
|
+
validate: (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
184
|
+
//return _validateDevclass(input, [updateNamespace || originalNamespace, '$', originalNamespace]);
|
|
185
|
+
const valid = _validateDevclass(input);
|
|
186
|
+
return valid === true ? yield (0, checkInstallDevclass_1.validateInstallDevclass)(context, input.trim().toUpperCase()) : valid;
|
|
187
|
+
})
|
|
95
188
|
});
|
|
96
189
|
}
|
|
97
190
|
}
|
|
98
|
-
else {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
191
|
+
else if (!context.rawInput.contextData.noInquirer) {
|
|
192
|
+
inq1Prompts.push({
|
|
193
|
+
type: "input",
|
|
194
|
+
name: originalDevclass,
|
|
195
|
+
default: replacement.installDevclass,
|
|
196
|
+
message: `Rename ABAP Package "${replacement.installDevclass}"`,
|
|
197
|
+
validate: (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
198
|
+
//return _validateDevclass(input, [updateNamespace || originalNamespace, '$', originalNamespace]);
|
|
199
|
+
const valid = _validateDevclass(input);
|
|
200
|
+
return valid === true ? yield (0, checkInstallDevclass_1.validateInstallDevclass)(context, input.trim().toUpperCase()) : valid;
|
|
201
|
+
})
|
|
202
|
+
});
|
|
103
203
|
}
|
|
104
204
|
}
|
|
105
205
|
if (inq1Prompts.length > 0) {
|
|
106
206
|
const inq1 = yield trm_commons_1.Inquirer.prompt(inq1Prompts);
|
|
107
207
|
Object.keys(inq1).forEach(k => {
|
|
208
|
+
//clear before pushing
|
|
108
209
|
context.rawInput.installData.installDevclass.replacements = context.rawInput.installData.installDevclass.replacements.filter(o => o.originalDevclass !== k);
|
|
210
|
+
//push
|
|
109
211
|
context.rawInput.installData.installDevclass.replacements.push({
|
|
110
212
|
originalDevclass: k,
|
|
111
213
|
installDevclass: inq1[k].trim().toUpperCase()
|
|
112
214
|
});
|
|
113
215
|
});
|
|
114
216
|
}
|
|
217
|
+
//if one install package starts with $, all must start with $
|
|
218
|
+
//this check is not done by the validator, so it has to be done here
|
|
115
219
|
const hasTemp = context.rawInput.installData.installDevclass.replacements.some(x => x.installDevclass.startsWith('$'));
|
|
116
220
|
if (hasTemp && !context.rawInput.installData.installDevclass.replacements.every(x => x.installDevclass.startsWith('$'))) {
|
|
117
221
|
throw new Error(`All packages must start with prefix $ if one (or more) packages are temporary!`);
|
|
118
222
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.PUBLIC) {
|
|
123
|
-
packageRegistry = registry_1.PUBLIC_RESERVED_KEYWORD;
|
|
124
|
-
}
|
|
125
|
-
else if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
126
|
-
packageRegistry = registry_1.LOCAL_RESERVED_KEYWORD;
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
packageRegistry = context.rawInput.packageData.registry.endpoint;
|
|
130
|
-
}
|
|
131
|
-
context.rawInput.installData.installDevclass.replacements.forEach(o => {
|
|
132
|
-
installDevc.push({
|
|
133
|
-
package_name: context.rawInput.packageData.name,
|
|
134
|
-
package_registry: packageRegistry,
|
|
135
|
-
original_devclass: o.originalDevclass,
|
|
136
|
-
install_devclass: o.installDevclass
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
yield systemConnector_1.SystemConnector.setInstallDevc(installDevc);
|
|
223
|
+
//fail before locks and dependency installs (add-namespace checks again for original package names)
|
|
224
|
+
(0, addNamespace_1.getInstallNamespace)(context);
|
|
225
|
+
//3- if all package names like origin, import devc transport
|
|
140
226
|
context.rawInput.installData.installDevclass.keepOriginal = true;
|
|
141
227
|
context.rawInput.installData.installDevclass.replacements.forEach(o => {
|
|
142
228
|
if (o.installDevclass !== o.originalDevclass) {
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
2
|
import { InstallWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that records the installed release in the target system's TRM package table.
|
|
5
|
+
*
|
|
6
|
+
* Creates/update record in TRM packages table, with its install packages and the
|
|
7
|
+
* customizing and translation transports imported on this system
|
|
8
|
+
*
|
|
9
|
+
* 1- commit new values
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
3
12
|
export declare const updatePackageData: Step<InstallWorkflowContext>;
|
|
@@ -12,26 +12,130 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.updatePackageData = void 0;
|
|
13
13
|
const trm_commons_1 = require("trm-commons");
|
|
14
14
|
const systemConnector_1 = require("../../systemConnector");
|
|
15
|
-
const
|
|
15
|
+
const utils_1 = require("../commons/utils");
|
|
16
16
|
const manifest_1 = require("../../manifest");
|
|
17
17
|
const transport_1 = require("../../transport");
|
|
18
|
+
const generateUpdateTransport_1 = require("./generateUpdateTransport");
|
|
19
|
+
function installTransportRows(packageName, packageRegistry, transports) {
|
|
20
|
+
return transports.map(transport => ({
|
|
21
|
+
package_name: packageName,
|
|
22
|
+
package_registry: packageRegistry,
|
|
23
|
+
trkorr: transport.trkorr,
|
|
24
|
+
trm_type: transport.trmType
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
function installDevcRows(packageName, packageRegistry, replacements) {
|
|
28
|
+
return replacements.map(replacement => ({
|
|
29
|
+
package_name: packageName,
|
|
30
|
+
package_registry: packageRegistry,
|
|
31
|
+
original_devclass: replacement.originalDevclass,
|
|
32
|
+
install_devclass: replacement.installDevclass
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Workflow step that records the installed release in the target system's TRM package table.
|
|
37
|
+
*
|
|
38
|
+
* Creates/update record in TRM packages table, with its install packages and the
|
|
39
|
+
* customizing and translation transports imported on this system
|
|
40
|
+
*
|
|
41
|
+
* 1- commit new values
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
18
44
|
exports.updatePackageData = {
|
|
19
45
|
name: 'update-package-data',
|
|
20
46
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
|
|
47
|
+
var _a, _b;
|
|
22
48
|
trm_commons_1.Logger.loading(`Finalizing install...`);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
49
|
+
//1- commit new values
|
|
50
|
+
trm_commons_1.Logger.loading(`Updating TRM data...`);
|
|
51
|
+
const originalTransport = context.runtime.transports.tadir.instance.trkorr;
|
|
52
|
+
const installTransport = (_a = context.output.transport) === null || _a === void 0 ? void 0 : _a.trkorr;
|
|
53
|
+
const originalDevclass = context.runtime.package.hierarchy.devclass;
|
|
54
|
+
let devclass = originalDevclass;
|
|
55
|
+
if (!context.rawInput.installData.installDevclass.keepOriginal) {
|
|
56
|
+
const rootReplacement = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass === originalDevclass);
|
|
57
|
+
if (!(rootReplacement === null || rootReplacement === void 0 ? void 0 : rootReplacement.installDevclass)) {
|
|
58
|
+
throw new Error(`Missing install devclass replacement for root package "${originalDevclass}".`);
|
|
59
|
+
}
|
|
60
|
+
devclass = rootReplacement.installDevclass;
|
|
61
|
+
}
|
|
62
|
+
const packageRegistry = (0, utils_1.installRegistryKey)(context.runtime.installRegistry);
|
|
63
|
+
const installDevc = installDevcRows(context.rawInput.packageData.name, packageRegistry, context.rawInput.installData.installDevclass.replacements);
|
|
64
|
+
// Only transports imported on this system: uninstall and update delete their customizing.
|
|
65
|
+
// An upgrade that kept the installed customizing still owns the rows of the previous transports.
|
|
66
|
+
const importedCust = (context.runtime.transports.cust || [])
|
|
67
|
+
.filter(cust => cust.instance)
|
|
68
|
+
.map(cust => ({ trkorr: cust.instance.trkorr, trmType: transport_1.TrmTransportIdentifier.CUST }));
|
|
69
|
+
const keptCust = context.runtime.update && (0, generateUpdateTransport_1.keepsInstalledCustomizing)(context)
|
|
70
|
+
? (context.runtime.previousInstallTransports || [])
|
|
71
|
+
.filter(o => (o.trmType || '').trim().toUpperCase() === transport_1.TrmTransportIdentifier.CUST && !importedCust.some(k => k.trkorr === o.trkorr))
|
|
72
|
+
.map(o => ({ trkorr: o.trkorr, trmType: transport_1.TrmTransportIdentifier.CUST }))
|
|
73
|
+
: [];
|
|
74
|
+
const installTr = installTransportRows(context.rawInput.packageData.name, packageRegistry, [
|
|
75
|
+
...keptCust,
|
|
76
|
+
...importedCust,
|
|
77
|
+
...(((_b = context.runtime.transports.lang) === null || _b === void 0 ? void 0 : _b.instance)
|
|
78
|
+
? [{ trkorr: context.runtime.transports.lang.instance.trkorr, trmType: transport_1.TrmTransportIdentifier.LANG }]
|
|
79
|
+
: [])
|
|
80
|
+
]);
|
|
81
|
+
context.revert.metadataPackageRegistry = packageRegistry;
|
|
82
|
+
if (context.runtime.update) {
|
|
83
|
+
// The installed packages may have been read without their rows: read the stored row
|
|
84
|
+
// before writing, so the revert restores it exactly, or removes the row it wrote.
|
|
85
|
+
// A failed read aborts before any write.
|
|
86
|
+
context.revert.metadataPreviousPackageRow = yield systemConnector_1.SystemConnector.getTrmPackageData(context.runtime.package.data.manifest.name, packageRegistry);
|
|
87
|
+
context.revert.metadataPreviousPackageRead = true;
|
|
88
|
+
}
|
|
89
|
+
context.revert.metadataPackageRow = {
|
|
90
|
+
package_name: context.runtime.package.data.manifest.name,
|
|
91
|
+
package_registry: packageRegistry,
|
|
92
|
+
manifest: Buffer.from(new manifest_1.Manifest(context.runtime.package.data.manifest).getAbapXml(), 'utf8'),
|
|
93
|
+
trkorr: installTransport || originalTransport,
|
|
94
|
+
integrity: context.runtime.package.data.checksum,
|
|
34
95
|
devclass
|
|
96
|
+
};
|
|
97
|
+
// Mappings stored for devclasses that are no longer installed: the write only upserts.
|
|
98
|
+
const staleInstallDevc = installDevcRows(context.rawInput.packageData.name, packageRegistry, context.runtime.previousInstallPackages.filter(previous => !installDevc.some(o => o.original_devclass === previous.originalDevclass)));
|
|
99
|
+
context.revert.metadataInstallDevc = installDevc;
|
|
100
|
+
// Mark before the mutating await: SAP may commit the mapping and still
|
|
101
|
+
// fail while returning the response.
|
|
102
|
+
context.revert.metadataWriteStarted = true;
|
|
103
|
+
yield systemConnector_1.SystemConnector.setInstallDevc(installDevc);
|
|
104
|
+
if (staleInstallDevc.length > 0) {
|
|
105
|
+
yield systemConnector_1.SystemConnector.deleteInstallDevc(staleInstallDevc);
|
|
106
|
+
}
|
|
107
|
+
context.revert.metadataTransportsWriteStarted = true;
|
|
108
|
+
yield systemConnector_1.SystemConnector.setInstallTransports(context.rawInput.packageData.name, packageRegistry, installTr);
|
|
109
|
+
yield systemConnector_1.SystemConnector.updateTrmPackageData(context.revert.metadataPackageRow);
|
|
110
|
+
}),
|
|
111
|
+
revert: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
112
|
+
// First installs remove the newly written row through the same atomic SAP operation.
|
|
113
|
+
if (!context.revert.metadataWriteStarted) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (!context.runtime.update) {
|
|
117
|
+
if (context.revert.metadataPackageRow) {
|
|
118
|
+
yield systemConnector_1.SystemConnector.restoreInstallMetadata({
|
|
119
|
+
package: context.revert.metadataPackageRow,
|
|
120
|
+
packageExists: false,
|
|
121
|
+
installDevc: [],
|
|
122
|
+
installTr: []
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (!context.revert.metadataPreviousPackageRead) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// One atomic SAP operation restores the row read before writing (or deletes the row this
|
|
131
|
+
// install wrote when none was stored) and replaces the mappings and install transports.
|
|
132
|
+
const previousRow = context.revert.metadataPreviousPackageRow;
|
|
133
|
+
const packageRow = previousRow || context.revert.metadataPackageRow;
|
|
134
|
+
yield systemConnector_1.SystemConnector.restoreInstallMetadata({
|
|
135
|
+
package: packageRow,
|
|
136
|
+
packageExists: !!previousRow,
|
|
137
|
+
installDevc: installDevcRows(context.rawInput.packageData.name, packageRow.package_registry, context.runtime.previousInstallPackages),
|
|
138
|
+
installTr: installTransportRows(context.rawInput.packageData.name, packageRow.package_registry, context.runtime.previousInstallTransports || [])
|
|
35
139
|
});
|
|
36
140
|
})
|
|
37
141
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
|
+
import { InstallDependencyWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that compares the dependency installed on the system with the requested range.
|
|
5
|
+
* A compatible installed release is kept and the dependency install becomes a no-op, unless a
|
|
6
|
+
* lockfile pins the dependency to a different version. A lock outside the range aborts.
|
|
7
|
+
*
|
|
8
|
+
* 1- find installed release
|
|
9
|
+
*
|
|
10
|
+
* 2- keep compatible installed release
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare const checkInstalledRelease: Step<InstallDependencyWorkflowContext>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.checkInstalledRelease = void 0;
|
|
13
|
+
const trm_commons_1 = require("trm-commons");
|
|
14
|
+
const semver_1 = require("semver");
|
|
15
|
+
const utils_1 = require("../commons/utils");
|
|
16
|
+
/**
|
|
17
|
+
* Workflow step that compares the dependency installed on the system with the requested range.
|
|
18
|
+
* A compatible installed release is kept and the dependency install becomes a no-op, unless a
|
|
19
|
+
* lockfile pins the dependency to a different version. A lock outside the range aborts.
|
|
20
|
+
*
|
|
21
|
+
* 1- find installed release
|
|
22
|
+
*
|
|
23
|
+
* 2- keep compatible installed release
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
exports.checkInstalledRelease = {
|
|
27
|
+
name: 'check-installed-release',
|
|
28
|
+
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
//1- find installed release
|
|
30
|
+
const dependencyName = context.rawInput.dependencyDataPackage.name;
|
|
31
|
+
const versionRange = context.rawInput.dependencyDataPackage.versionRange;
|
|
32
|
+
const installed = (0, utils_1.getInstalledDependency)(context.rawInput.contextData.systemPackages, context.runtime.trmPackage, versionRange);
|
|
33
|
+
if (installed.status === 'manifestUnreadable') {
|
|
34
|
+
throw new Error(`Cannot verify installed dependency "${dependencyName}": package is installed but its manifest is unreadable.`);
|
|
35
|
+
}
|
|
36
|
+
context.runtime.installedVersion = installed.installedVersion;
|
|
37
|
+
//2- keep compatible installed release
|
|
38
|
+
if (installed.status !== 'ok') {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const lockfile = context.rawInput.installData.checks.lockfile;
|
|
42
|
+
const lock = lockfile === null || lockfile === void 0 ? void 0 : lockfile.getLock(context.runtime.trmPackage, versionRange);
|
|
43
|
+
if (lock && !(0, semver_1.eq)(lock.version, installed.installedVersion)) {
|
|
44
|
+
trm_commons_1.Logger.info(`Dependency "${dependencyName}" v${installed.installedVersion} installed, lockfile requires v${lock.version}.`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
context.runtime.alreadyInstalled = true;
|
|
48
|
+
trm_commons_1.Logger.info(`Dependency "${dependencyName}" v${installed.installedVersion} already installed (${versionRange}).`);
|
|
49
|
+
})
|
|
50
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
|
+
import { InstallDependencyWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that requires explicit confirmation before a dependency install replaces a newer
|
|
5
|
+
* installed release. `installData.checks.allowDowngrade` confirms it in advance; otherwise the
|
|
6
|
+
* user is prompted, and without a prompt the install is aborted.
|
|
7
|
+
*
|
|
8
|
+
* 1- confirm downgrade
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export declare const confirmDowngrade: Step<InstallDependencyWorkflowContext>;
|