trm-core 9.10.6 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/changelog.txt +3 -6
- 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 -56
- 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
|
@@ -1,3 +1,31 @@
|
|
|
1
1
|
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
2
|
import { PublishWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that validates release metadata and reads the source ABAP package.
|
|
5
|
+
*
|
|
6
|
+
* 1- fill context data
|
|
7
|
+
*
|
|
8
|
+
* 2- validate/clean package name/version
|
|
9
|
+
*
|
|
10
|
+
* 3- check publish authorization (if public registry)
|
|
11
|
+
*
|
|
12
|
+
* 4- set sap package
|
|
13
|
+
*
|
|
14
|
+
* 5- ensure package version and visibility can be published
|
|
15
|
+
*
|
|
16
|
+
* 6- set visibility if not already provided
|
|
17
|
+
*
|
|
18
|
+
* 7- validate minimum publish data with registry
|
|
19
|
+
*
|
|
20
|
+
* 8- read namespace
|
|
21
|
+
*
|
|
22
|
+
* 9- read abapGit source code (if abapgit installed)
|
|
23
|
+
*
|
|
24
|
+
* 10- remove gitignore objects (if abapgit installed)
|
|
25
|
+
*
|
|
26
|
+
* 11- check for locks
|
|
27
|
+
*
|
|
28
|
+
* 12- check/set system target
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
3
31
|
export declare const init: Step<PublishWorkflowContext>;
|
|
@@ -19,8 +19,13 @@ const trmPackage_1 = require("../../trmPackage");
|
|
|
19
19
|
const semver_1 = require("semver");
|
|
20
20
|
const systemConnector_1 = require("../../systemConnector");
|
|
21
21
|
const registry_1 = require("../../registry");
|
|
22
|
-
const transport_1 = require("../../transport");
|
|
23
22
|
const chalk_1 = __importDefault(require("chalk"));
|
|
23
|
+
const prompts_1 = require("../commons/prompts");
|
|
24
|
+
const validators_1 = require("../../validators");
|
|
25
|
+
const abapgit_1 = require("../../abapgit");
|
|
26
|
+
const minimatch_1 = require("minimatch");
|
|
27
|
+
const utils_1 = require("../commons/utils");
|
|
28
|
+
const findDependencies_1 = require("./findDependencies");
|
|
24
29
|
function nextPrerelease(version, identifier) {
|
|
25
30
|
const pre = (0, semver_1.prerelease)(version);
|
|
26
31
|
const currentId = pre && typeof pre[0] === "string" ? String(pre[0]) : undefined;
|
|
@@ -33,6 +38,34 @@ function nextPrerelease(version, identifier) {
|
|
|
33
38
|
return (0, semver_1.inc)(version, "prerelease", currentId);
|
|
34
39
|
}
|
|
35
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Rejects a publish whose ABAP package is inside the SAP packages of another installed TRM package,
|
|
43
|
+
* or contains the root package of one: their objects would be shipped by two TRM packages.
|
|
44
|
+
*/
|
|
45
|
+
function checkOtherTrmPackages(context) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const devclass = context.rawInput.packageData.devclass;
|
|
48
|
+
// The same package name published to another registry (e.g. a .trm file of the same release) is the same package here.
|
|
49
|
+
const others = (context.rawInput.contextData.systemPackages || []).filter(o => !o.compareName(context.rawInput.packageData.name) && o.getDevclass());
|
|
50
|
+
if (others.length === 0) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const owner = yield (0, utils_1.getOwningInstallation)(devclass, others);
|
|
54
|
+
if (owner) {
|
|
55
|
+
if (owner.getDevclass().trim().toUpperCase() === devclass) {
|
|
56
|
+
throw new Error(`ABAP package ${devclass} is already published as TRM package "${owner.packageName}": publish a new release of "${owner.packageName}", or publish from another package.`);
|
|
57
|
+
}
|
|
58
|
+
throw new Error(`ABAP package ${devclass} is part of TRM package "${owner.packageName}" (SAP package ${owner.getDevclass()}): publish from a package outside of it.`);
|
|
59
|
+
}
|
|
60
|
+
const roots = new Map(others.map(o => [o.getDevclass().trim().toUpperCase(), o]));
|
|
61
|
+
for (const subpackage of yield systemConnector_1.SystemConnector.getSubpackages(devclass)) {
|
|
62
|
+
const nested = roots.get(subpackage.devclass.trim().toUpperCase());
|
|
63
|
+
if (nested) {
|
|
64
|
+
throw new Error(`ABAP package ${devclass} contains package ${subpackage.devclass} of TRM package "${nested.packageName}": move it out of ${devclass}, or publish from a package that doesn't contain it.`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
36
69
|
function getHighestPrerelease(versions, baseVersion, identifier) {
|
|
37
70
|
const base = (0, semver_1.parse)(baseVersion);
|
|
38
71
|
const filtered = versions.filter((v) => {
|
|
@@ -47,101 +80,180 @@ function getHighestPrerelease(versions, baseVersion, identifier) {
|
|
|
47
80
|
return false;
|
|
48
81
|
return identifier
|
|
49
82
|
? pre[0] === identifier
|
|
50
|
-
: typeof pre[0] === "number" || pre.length === 1;
|
|
83
|
+
: typeof pre[0] === "number" || pre.length === 1; // numeric-only
|
|
51
84
|
});
|
|
52
85
|
if (filtered.length === 0)
|
|
53
86
|
return null;
|
|
54
87
|
return filtered.sort(semver_1.rcompare)[0];
|
|
55
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Workflow step that validates release metadata and reads the source ABAP package.
|
|
91
|
+
*
|
|
92
|
+
* 1- fill context data
|
|
93
|
+
*
|
|
94
|
+
* 2- validate/clean package name/version
|
|
95
|
+
*
|
|
96
|
+
* 3- check publish authorization (if public registry)
|
|
97
|
+
*
|
|
98
|
+
* 4- set sap package
|
|
99
|
+
*
|
|
100
|
+
* 5- ensure package version and visibility can be published
|
|
101
|
+
*
|
|
102
|
+
* 6- set visibility if not already provided
|
|
103
|
+
*
|
|
104
|
+
* 7- validate minimum publish data with registry
|
|
105
|
+
*
|
|
106
|
+
* 8- read namespace
|
|
107
|
+
*
|
|
108
|
+
* 9- read abapGit source code (if abapgit installed)
|
|
109
|
+
*
|
|
110
|
+
* 10- remove gitignore objects (if abapgit installed)
|
|
111
|
+
*
|
|
112
|
+
* 11- check for locks
|
|
113
|
+
*
|
|
114
|
+
* 12- check/set system target
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
56
117
|
exports.init = {
|
|
57
118
|
name: 'init',
|
|
58
119
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
120
|
+
//1- fill context data
|
|
121
|
+
context.runtime = {
|
|
122
|
+
latest: {
|
|
123
|
+
data: undefined
|
|
124
|
+
},
|
|
125
|
+
sapPackage: {
|
|
126
|
+
objects: [],
|
|
127
|
+
namespace: undefined
|
|
128
|
+
},
|
|
129
|
+
abapGit: {
|
|
130
|
+
dotAbapGit: undefined,
|
|
131
|
+
sourceCode: undefined,
|
|
132
|
+
object: [],
|
|
133
|
+
excludedObjects: []
|
|
134
|
+
},
|
|
135
|
+
manifest: Object.assign(Object.assign({}, context.rawInput.packageData.manifest), { name: undefined, version: undefined, authors: Array.isArray(context.rawInput.packageData.manifest.authors)
|
|
136
|
+
? [...context.rawInput.packageData.manifest.authors]
|
|
137
|
+
: context.rawInput.packageData.manifest.authors, dependencies: [...context.rawInput.packageData.manifest.dependencies], keywords: Array.isArray(context.rawInput.packageData.manifest.keywords)
|
|
138
|
+
? [...context.rawInput.packageData.manifest.keywords]
|
|
139
|
+
: context.rawInput.packageData.manifest.keywords, postActivities: [...context.rawInput.packageData.manifest.postActivities], sapEntries: Object.assign({}, context.rawInput.packageData.manifest.sapEntries) }),
|
|
140
|
+
manifestXml: undefined,
|
|
141
|
+
customizing: {
|
|
142
|
+
retained: [],
|
|
143
|
+
new: []
|
|
144
|
+
},
|
|
145
|
+
transports: {
|
|
146
|
+
devc: undefined,
|
|
147
|
+
tadir: undefined,
|
|
148
|
+
lang: undefined,
|
|
149
|
+
cust: []
|
|
150
|
+
},
|
|
151
|
+
aggregatedTransports: [],
|
|
152
|
+
stopWarningShown: false
|
|
153
|
+
};
|
|
154
|
+
context.output = {
|
|
155
|
+
trmArtifact: undefined,
|
|
156
|
+
trmPackage: undefined
|
|
157
|
+
};
|
|
158
|
+
//2- validate/clean package name/version
|
|
159
|
+
context.rawInput.packageData.name = (0, commons_1.parsePackageName)({
|
|
62
160
|
fullName: context.rawInput.packageData.name
|
|
63
|
-
});
|
|
64
|
-
context.rawInput.packageData.
|
|
65
|
-
|
|
66
|
-
|
|
161
|
+
}).fullName;
|
|
162
|
+
context.rawInput.packageData.version = (0, semver_1.clean)(context.rawInput.packageData.version || '');
|
|
163
|
+
//3- check publish authorization (if public registry)
|
|
164
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.PUBLIC) {
|
|
165
|
+
trm_commons_1.Logger.loading(`Checking publish authorization...`);
|
|
67
166
|
try {
|
|
68
|
-
yield registry.whoAmI();
|
|
167
|
+
yield context.rawInput.packageData.registry.whoAmI();
|
|
69
168
|
}
|
|
70
169
|
catch (e) {
|
|
71
|
-
trm_commons_1.Logger.error(`Cannot publish to public registry without being logged in
|
|
170
|
+
trm_commons_1.Logger.error(`Cannot publish to public registry without being logged in!`, { important: true });
|
|
72
171
|
throw e;
|
|
73
172
|
}
|
|
74
173
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
if (!context.rawInput.packageData.manifest.postActivities) {
|
|
102
|
-
context.rawInput.packageData.manifest.postActivities = [];
|
|
103
|
-
}
|
|
104
|
-
if (!context.rawInput.publishData.customizingTransports) {
|
|
105
|
-
context.rawInput.publishData.customizingTransports = [];
|
|
174
|
+
//4- set sap package
|
|
175
|
+
//resolved before the registry checks and prompts: an invalid package (e.g. temporary) stops publish right away
|
|
176
|
+
//if not provided, derive it from the system package (previous publish), then prompt (if allowed)
|
|
177
|
+
//supplied or derived values are normalized and validated, prompted values are validated by the prompt
|
|
178
|
+
var packageNeedsValidation = true;
|
|
179
|
+
if (!context.rawInput.packageData.devclass) {
|
|
180
|
+
const trmPackage = context.rawInput.contextData.systemPackages.find(o => trmPackage_1.TrmPackage.compare(o, new trmPackage_1.TrmPackage(context.rawInput.packageData.name, context.rawInput.packageData.registry)));
|
|
181
|
+
if (trmPackage) {
|
|
182
|
+
context.rawInput.packageData.devclass = trmPackage.getDevclass();
|
|
183
|
+
}
|
|
184
|
+
if (!context.rawInput.contextData.noInquirer) {
|
|
185
|
+
context.rawInput.packageData.devclass = (yield trm_commons_1.Inquirer.prompt({
|
|
186
|
+
type: 'input',
|
|
187
|
+
message: 'ABAP package',
|
|
188
|
+
name: 'devclass',
|
|
189
|
+
default: context.rawInput.packageData.devclass,
|
|
190
|
+
validate: (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
191
|
+
return yield (0, validators_1.validateDevclass)(input, false);
|
|
192
|
+
})
|
|
193
|
+
})).devclass;
|
|
194
|
+
packageNeedsValidation = false;
|
|
195
|
+
}
|
|
196
|
+
else if (!context.rawInput.packageData.devclass) {
|
|
197
|
+
throw new Error(`packageData.devclass is required when it cannot be derived from a previous publish and interactive prompts are disabled.`);
|
|
198
|
+
}
|
|
106
199
|
}
|
|
107
|
-
|
|
108
|
-
|
|
200
|
+
context.rawInput.packageData.devclass = context.rawInput.packageData.devclass.trim().toUpperCase();
|
|
201
|
+
trm_commons_1.Logger.log(`Publish devclass set to "${context.rawInput.packageData.devclass}"`, true);
|
|
202
|
+
if (packageNeedsValidation) {
|
|
203
|
+
trm_commons_1.Logger.loading(`Validating...`);
|
|
204
|
+
const validate = yield (0, validators_1.validateDevclass)(context.rawInput.packageData.devclass, false);
|
|
205
|
+
if (validate && validate !== true) {
|
|
206
|
+
throw new Error(validate);
|
|
207
|
+
}
|
|
208
|
+
trm_commons_1.Logger.info(`ABAP package: "${context.rawInput.packageData.devclass}"`);
|
|
109
209
|
}
|
|
110
|
-
|
|
111
|
-
|
|
210
|
+
//an ABAP package belongs to at most one TRM package: the tree can't contain, or be inside, another one
|
|
211
|
+
yield checkOtherTrmPackages(context);
|
|
212
|
+
//dependencies the release can't have refuse the publish before the version and visibility questions
|
|
213
|
+
if (!context.rawInput.publishData.noDependenciesDetection && !context.rawInput.contextData.noInquirer) {
|
|
214
|
+
yield (0, findDependencies_1.checkPackageDependencies)(context);
|
|
112
215
|
}
|
|
216
|
+
//5- ensure package version and visibility can be published
|
|
217
|
+
//if it's the first package publish assume it's valid (validate publish will throw error later, in case something is wrong with it)
|
|
218
|
+
//default to 1.0.0 if no version was provided
|
|
219
|
+
//if the package already exists, check this version was not released yet
|
|
220
|
+
//if it's public registry, check visibility is not changed too (avoid useless validate publish call)
|
|
221
|
+
//in all cases, calculate the next prerelease if requested
|
|
222
|
+
//on automatic version, manual validation by user
|
|
113
223
|
trm_commons_1.Logger.loading(`Validating version...`);
|
|
114
224
|
var automaticVersion = false;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
trm_commons_1.Logger.loading(`Getting package latest release from registry...`, true);
|
|
120
|
-
const packageData = yield registry.getPackage(context.rawInput.packageData.name, 'latest');
|
|
121
|
-
latestReleaseManifest = packageData.manifest;
|
|
122
|
-
releasesInRegistry = packageData.versions;
|
|
225
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
226
|
+
//the target file is overwritten, it's not a previous release of this package:
|
|
227
|
+
//every local artifact is a standalone publication
|
|
228
|
+
trm_commons_1.Logger.log(`Local publish: target file is not read as latest release`, true);
|
|
123
229
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
context.rawInput.packageData.version = '1.0.0';
|
|
128
|
-
automaticVersion = true;
|
|
230
|
+
else {
|
|
231
|
+
try {
|
|
232
|
+
context.runtime.latest.data = yield context.rawInput.packageData.registry.getPackage(context.rawInput.packageData.name, 'latest');
|
|
129
233
|
}
|
|
130
|
-
|
|
131
|
-
|
|
234
|
+
catch (e) {
|
|
235
|
+
if (e instanceof registry_1.RegistryPackageNotFoundError) {
|
|
236
|
+
trm_commons_1.Logger.info(`First time publishing "${context.rawInput.packageData.name}". Congratulations!`);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
throw e;
|
|
240
|
+
}
|
|
132
241
|
}
|
|
133
242
|
}
|
|
134
|
-
|
|
243
|
+
if (context.runtime.latest.data) {
|
|
244
|
+
if (!context.runtime.latest.data.dist_tags.latest) {
|
|
245
|
+
throw new Error(`Package has no latest distribution tag assigned! Unable to locate latest release.`);
|
|
246
|
+
}
|
|
135
247
|
if (!context.rawInput.packageData.version || !(0, semver_1.valid)(context.rawInput.packageData.version)) {
|
|
136
|
-
context.rawInput.packageData.version = (0, semver_1.inc)(
|
|
248
|
+
context.rawInput.packageData.version = (0, semver_1.inc)(context.runtime.latest.data.dist_tags.latest, context.rawInput.packageData.inc || "patch");
|
|
137
249
|
automaticVersion = true;
|
|
138
250
|
}
|
|
139
251
|
else {
|
|
140
|
-
if (
|
|
252
|
+
if (context.runtime.latest.data.versions.concat(context.runtime.latest.data.yanked_versions).includes(context.rawInput.packageData.version)) {
|
|
141
253
|
throw new Error(`Version "${context.rawInput.packageData.version}" already published.`);
|
|
142
254
|
}
|
|
143
255
|
if (context.rawInput.packageData.preRelease) {
|
|
144
|
-
const highestPreRelease = getHighestPrerelease(
|
|
256
|
+
const highestPreRelease = getHighestPrerelease(context.runtime.latest.data.versions.concat(context.runtime.latest.data.yanked_versions), context.rawInput.packageData.version, context.rawInput.packageData.preReleaseIdentifier);
|
|
145
257
|
if (highestPreRelease) {
|
|
146
258
|
context.rawInput.packageData.version = highestPreRelease;
|
|
147
259
|
automaticVersion = true;
|
|
@@ -149,33 +261,47 @@ exports.init = {
|
|
|
149
261
|
context.rawInput.packageData.version = nextPrerelease(context.rawInput.packageData.version, context.rawInput.packageData.preReleaseIdentifier);
|
|
150
262
|
}
|
|
151
263
|
}
|
|
152
|
-
if (registry.getRegistryType() === registry_1.RegistryType.PUBLIC) {
|
|
264
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.PUBLIC) {
|
|
153
265
|
trm_commons_1.Logger.log(`Public registry, checking if visibility is the same as latest release`, true);
|
|
154
|
-
if (typeof (context.rawInput.publishData.private) === 'boolean' && context.rawInput.publishData.private !==
|
|
155
|
-
throw new Error(`Cannot change package visibility to ${context.rawInput.publishData.private ? 'private' : 'public'}`);
|
|
266
|
+
if (typeof (context.rawInput.publishData.private) === 'boolean' && context.rawInput.publishData.private !== context.runtime.latest.data.manifest.private) {
|
|
267
|
+
throw new Error(`Cannot change package visibility from ${context.runtime.latest.data.manifest.private ? 'private' : 'public'} to ${context.rawInput.publishData.private ? 'private' : 'public'}`);
|
|
156
268
|
}
|
|
157
269
|
}
|
|
158
270
|
}
|
|
271
|
+
else {
|
|
272
|
+
if (!context.rawInput.packageData.version || !(0, semver_1.valid)(context.rawInput.packageData.version)) {
|
|
273
|
+
context.rawInput.packageData.version = '1.0.0';
|
|
274
|
+
automaticVersion = true;
|
|
275
|
+
}
|
|
276
|
+
if (context.rawInput.packageData.preRelease) {
|
|
277
|
+
context.rawInput.packageData.version = nextPrerelease(context.rawInput.packageData.version, context.rawInput.packageData.preReleaseIdentifier);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
159
280
|
if (automaticVersion) {
|
|
160
281
|
trm_commons_1.Logger.info(`Automatically set publish version to "${context.rawInput.packageData.version}"`);
|
|
161
282
|
if (!context.rawInput.contextData.noInquirer) {
|
|
162
|
-
|
|
283
|
+
const promptedVersion = (yield trm_commons_1.Inquirer.prompt([{
|
|
163
284
|
type: 'confirm',
|
|
164
285
|
message: `Continue publish as version "${context.rawInput.packageData.version}"?`,
|
|
165
286
|
default: true,
|
|
166
287
|
name: 'acceptDefaultVersion'
|
|
167
288
|
}, {
|
|
168
289
|
type: 'input',
|
|
169
|
-
message: `
|
|
290
|
+
message: `Release version`,
|
|
170
291
|
name: 'version',
|
|
171
292
|
default: context.rawInput.packageData.version,
|
|
172
293
|
when: (hash) => {
|
|
173
294
|
return !hash.acceptDefaultVersion;
|
|
174
295
|
},
|
|
175
296
|
validate: (v) => {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
297
|
+
//compare the version as it will be stored (cleaned)
|
|
298
|
+
const version = (0, semver_1.clean)(v || '');
|
|
299
|
+
if (version) {
|
|
300
|
+
const publishedVersions = context.runtime.latest.data
|
|
301
|
+
? context.runtime.latest.data.versions.concat(context.runtime.latest.data.yanked_versions)
|
|
302
|
+
: [];
|
|
303
|
+
if (publishedVersions.includes(version)) {
|
|
304
|
+
return `Version "${version}" is already published.`;
|
|
179
305
|
}
|
|
180
306
|
else {
|
|
181
307
|
return true;
|
|
@@ -185,21 +311,26 @@ exports.init = {
|
|
|
185
311
|
return `Invalid version`;
|
|
186
312
|
}
|
|
187
313
|
}
|
|
188
|
-
}])).version
|
|
314
|
+
}])).version;
|
|
315
|
+
context.rawInput.packageData.version = (0, semver_1.clean)(promptedVersion || '') || context.rawInput.packageData.version;
|
|
189
316
|
}
|
|
190
317
|
}
|
|
191
|
-
|
|
192
|
-
|
|
318
|
+
//6- set visibility if not already provided
|
|
319
|
+
var isPrivate = undefined;
|
|
320
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
193
321
|
isPrivate = true;
|
|
194
322
|
}
|
|
195
323
|
else {
|
|
196
|
-
isPrivate =
|
|
197
|
-
if (
|
|
324
|
+
isPrivate = context.rawInput.publishData.private === undefined ? (context.runtime.latest.data ? context.runtime.latest.data.manifest.private : undefined) : context.rawInput.publishData.private;
|
|
325
|
+
if (isPrivate === undefined) {
|
|
326
|
+
if (context.rawInput.contextData.noInquirer) {
|
|
327
|
+
throw new Error(`publishData.private is required for the first remote publication when interactive prompts are disabled.`);
|
|
328
|
+
}
|
|
198
329
|
isPrivate = (yield trm_commons_1.Inquirer.prompt({
|
|
199
330
|
type: "list",
|
|
200
331
|
message: "Package visibility",
|
|
201
332
|
name: "private",
|
|
202
|
-
default:
|
|
333
|
+
default: true,
|
|
203
334
|
choices: [{
|
|
204
335
|
name: `Public`,
|
|
205
336
|
value: false
|
|
@@ -210,49 +341,102 @@ exports.init = {
|
|
|
210
341
|
})).private;
|
|
211
342
|
}
|
|
212
343
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
344
|
+
//7- validate minimum publish data with registry
|
|
345
|
+
//this is the bare minimum: if it fails there is no need to continue with publish
|
|
346
|
+
trm_commons_1.Logger.loading(`Validating...`);
|
|
347
|
+
yield context.rawInput.packageData.registry.validatePublish(context.rawInput.packageData.name, context.rawInput.packageData.version, isPrivate);
|
|
348
|
+
trm_commons_1.Logger.loading(`Reading ${context.rawInput.packageData.devclass} objects...`);
|
|
349
|
+
context.runtime.sapPackage.objects = yield systemConnector_1.SystemConnector.getDevclassObjects(context.rawInput.packageData.devclass, true);
|
|
350
|
+
if (context.runtime.sapPackage.objects.filter(o => !(o.pgmid === 'R3TR' && o.object === 'DEVC')).length === 0) {
|
|
351
|
+
throw new Error(`ABAP package "${context.rawInput.packageData.devclass}" doesn't contain any object!`);
|
|
217
352
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
context.runtime
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
version: context.rawInput.packageData.version,
|
|
230
|
-
private: isPrivate
|
|
231
|
-
})
|
|
232
|
-
},
|
|
233
|
-
systemData: {
|
|
234
|
-
transportTargets: [],
|
|
235
|
-
devcTransport: undefined,
|
|
236
|
-
tadirTransport: undefined,
|
|
237
|
-
releasedTransports: [],
|
|
238
|
-
originCustomizing: [],
|
|
239
|
-
custTransports: []
|
|
240
|
-
},
|
|
241
|
-
packageData: {
|
|
242
|
-
tadir: []
|
|
243
|
-
},
|
|
244
|
-
abapGitData: {
|
|
245
|
-
dotAbapGit: undefined,
|
|
246
|
-
sourceCode: {
|
|
247
|
-
ignoredObjects: [],
|
|
248
|
-
zip: undefined
|
|
249
|
-
}
|
|
353
|
+
//8- read namespace
|
|
354
|
+
//the package and its subpackages must use at most one reserved namespace
|
|
355
|
+
const packageNamespace = (0, commons_1.getPackagesNamespace)(context.rawInput.packageData.devclass, context.runtime.sapPackage.objects.flatMap(o => o.pgmid === 'R3TR' && o.object === 'DEVC' ? [o.devclass, o.objName] : [o.devclass]).filter(Boolean));
|
|
356
|
+
if (packageNamespace[0] === '/') {
|
|
357
|
+
trm_commons_1.Logger.loading(`Reading namespace ${packageNamespace}...`);
|
|
358
|
+
const namespace = yield systemConnector_1.SystemConnector.getNamespace(packageNamespace);
|
|
359
|
+
if (namespace && namespace.trnspacet && namespace.trnspacett.length > 0) {
|
|
360
|
+
context.runtime.sapPackage.namespace = {
|
|
361
|
+
trnspacet: namespace.trnspacet,
|
|
362
|
+
trnspacett: namespace.trnspacett
|
|
363
|
+
};
|
|
250
364
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
365
|
+
else {
|
|
366
|
+
throw new Error(`Namespace ${packageNamespace} couldn't be validated.`);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
//9- read abapGit source code (if abapgit installed)
|
|
370
|
+
//this step is right at the beginning to ensure locks
|
|
371
|
+
//unfortunately, we have to read the whole source code to figure out the objects path, and evetually ignore gitignored objects
|
|
372
|
+
//so it's mandatory to do this before checking for locks :(
|
|
373
|
+
try {
|
|
374
|
+
const sourceCode = yield systemConnector_1.SystemConnector.getAbapgitSource(context.rawInput.packageData.devclass);
|
|
375
|
+
context.runtime.abapGit.sourceCode = sourceCode.zip;
|
|
376
|
+
context.runtime.abapGit.object = sourceCode.objects;
|
|
377
|
+
}
|
|
378
|
+
catch (_a) {
|
|
379
|
+
trm_commons_1.Logger.log(`Couldn't read source code!`, true);
|
|
256
380
|
}
|
|
381
|
+
//10- remove gitignore objects (if abapgit installed)
|
|
382
|
+
if (context.runtime.abapGit.sourceCode && context.runtime.abapGit.object.length > 0) {
|
|
383
|
+
try {
|
|
384
|
+
context.runtime.abapGit.dotAbapGit = yield abapgit_1.DotAbapGit.fromDevclass(context.rawInput.packageData.devclass);
|
|
385
|
+
}
|
|
386
|
+
catch (_b) {
|
|
387
|
+
trm_commons_1.Logger.log(`.abapgit.xml not found`, true);
|
|
388
|
+
}
|
|
389
|
+
if (context.runtime.abapGit.dotAbapGit) {
|
|
390
|
+
const ignoredPatterns = context.runtime.abapGit.dotAbapGit.getIgnoredFiles();
|
|
391
|
+
context.runtime.sapPackage.objects.forEach(o => {
|
|
392
|
+
const abapgitObject = context.runtime.abapGit.object.find(k => k.pgmid === o.pgmid && k.object === o.object && k.objName === o.objName);
|
|
393
|
+
if (abapgitObject) {
|
|
394
|
+
ignoredPatterns.forEach(pattern => {
|
|
395
|
+
if ((0, minimatch_1.minimatch)(abapgitObject.fullPath, pattern, { matchBase: true })) {
|
|
396
|
+
if (o.pgmid === 'R3TR' && o.object === 'DEVC') {
|
|
397
|
+
throw new Error(`Cannot exclude ABAP package "${o.objName}" (.abapGit.xml)!`);
|
|
398
|
+
}
|
|
399
|
+
if (!context.runtime.abapGit.excludedObjects.find(k => k.pgmid === o.pgmid && k.object === o.object && k.objName === o.objName)) {
|
|
400
|
+
context.runtime.abapGit.excludedObjects.push(o);
|
|
401
|
+
context.runtime.sapPackage.objects = context.runtime.sapPackage.objects.filter(k => !(k.pgmid === o.pgmid && k.object === o.object && k.objName === o.objName));
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//check that after gitignore there are still objects
|
|
410
|
+
if (context.runtime.sapPackage.objects.filter(o => !(o.pgmid === 'R3TR' && o.object === 'DEVC')).length === 0) {
|
|
411
|
+
//no more objects, print what was excluded from gitignore
|
|
412
|
+
context.runtime.abapGit.excludedObjects.forEach(o => trm_commons_1.Logger.info(`Excluding ${o.pgmid} ${o.object} ${o.objName} (.abapgit gitignore)`));
|
|
413
|
+
throw new Error(`ABAP package "${context.rawInput.packageData.devclass}" doesn't contain any object!`);
|
|
414
|
+
}
|
|
415
|
+
//11- check for locks
|
|
416
|
+
//finally, with excluded objects from gitignore, we can check for locks before continuing
|
|
417
|
+
const locks = yield systemConnector_1.SystemConnector.getObjectsLocks(context.runtime.sapPackage.objects.map(o => {
|
|
418
|
+
return {
|
|
419
|
+
PGMID: o.pgmid,
|
|
420
|
+
OBJECT: o.object,
|
|
421
|
+
OBJ_NAME: o.objName
|
|
422
|
+
};
|
|
423
|
+
}));
|
|
424
|
+
if (locks.length > 0) {
|
|
425
|
+
locks.forEach(l => { trm_commons_1.Logger.error(`${l.pgmid} ${l.object} ${l.objName} is currently locked in transport ${l.trkorr}`, { important: true }); });
|
|
426
|
+
throw new Error(`To continue, all objects must be released.`);
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
trm_commons_1.Logger.log(`All objects released, continue`, true);
|
|
430
|
+
}
|
|
431
|
+
//12- check/set system target
|
|
432
|
+
trm_commons_1.Logger.loading(`Checking system target...`);
|
|
433
|
+
context.rawInput.systemData.transportTarget = yield (0, prompts_1.setTransportTarget)(context.rawInput.contextData.noInquirer, yield systemConnector_1.SystemConnector.getTransportTargets(), context.rawInput.systemData.transportTarget, "Publish transport target");
|
|
434
|
+
trm_commons_1.Logger.info(`Ready to publish ${context.rawInput.packageData.name} v${context.rawInput.packageData.version}`);
|
|
435
|
+
trm_commons_1.Logger.info(`Package visibility: ${chalk_1.default.bold(isPrivate ? 'private' : 'public')}`);
|
|
436
|
+
//this is the right time to show the excluded objects
|
|
437
|
+
context.runtime.abapGit.excludedObjects.forEach(o => trm_commons_1.Logger.info(`Excluding ${o.pgmid} ${o.object} ${o.objName} (.abapgit gitignore)`));
|
|
438
|
+
context.runtime.manifest.name = context.rawInput.packageData.name;
|
|
439
|
+
context.runtime.manifest.version = context.rawInput.packageData.version;
|
|
440
|
+
context.runtime.manifest.private = isPrivate;
|
|
257
441
|
})
|
|
258
442
|
};
|
|
@@ -9,24 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (context.runtime.generatedData.tmsTxtRefresh.length > 0) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
trm_commons_1.Logger.log(`Skipping TMS refresh`, true);
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
}),
|
|
12
|
+
exports.lockResources = void 0;
|
|
13
|
+
const utils_1 = require("../commons/utils");
|
|
14
|
+
/** Reserve the source package and all workbench objects before creating transports. */
|
|
15
|
+
exports.lockResources = {
|
|
16
|
+
name: "lock-resources",
|
|
25
17
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
18
|
+
const resources = [
|
|
19
|
+
{ type: "DEVCLASS", name: context.rawInput.packageData.devclass }
|
|
20
|
+
];
|
|
21
|
+
for (const object of context.runtime.sapPackage.objects) {
|
|
22
|
+
resources.push((0, utils_1.objectLockResource)(object));
|
|
23
|
+
if (object.pgmid.trim().toUpperCase() === "R3TR" && object.object.trim().toUpperCase() === "DEVC") {
|
|
24
|
+
resources.push({ type: "DEVCLASS", name: object.objName });
|
|
25
|
+
}
|
|
30
26
|
}
|
|
27
|
+
yield context.lockScope.acquire(resources);
|
|
31
28
|
})
|
|
32
29
|
};
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import { Step } from "@simonegaffurini/sammarksworkflow";
|
|
2
2
|
import { PublishWorkflowContext } from ".";
|
|
3
|
+
/**
|
|
4
|
+
* Workflow step that builds the binary TRM artifact and uploads the release to its registry.
|
|
5
|
+
*
|
|
6
|
+
* 1- generate TRM artifact
|
|
7
|
+
*
|
|
8
|
+
* 2- publish to registry
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
3
11
|
export declare const publishToRegistry: Step<PublishWorkflowContext>;
|