fix(core): update

This commit is contained in:
Philipp Kunz 2021-11-07 04:20:14 +01:00
parent b8a2df66fe
commit 858d97cb5c
12 changed files with 88 additions and 100 deletions

View File

@ -12,6 +12,9 @@ stages:
- release - release
- metadata - metadata
before_script:
- npm install -g @shipzone/npmci
# ==================== # ====================
# security stage # security stage
# ==================== # ====================
@ -36,6 +39,7 @@ auditProductionDependencies:
- npmci command npm audit --audit-level=high --only=prod --production - npmci command npm audit --audit-level=high --only=prod --production
tags: tags:
- docker - docker
allow_failure: true
auditDevDependencies: auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci image: registry.gitlab.com/hosttoday/ht-docker-node:npmci

4
.snyk
View File

@ -1,4 +0,0 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.13.1
ignore: {}
patch: {}

24
.vscode/launch.json vendored
View File

@ -2,28 +2,10 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "current file", "command": "npm test",
"type": "node", "name": "Run npm test",
"request": "launch", "request": "launch",
"args": [ "type": "node-terminal"
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
} }
] ]
} }

71
package-lock.json generated
View File

@ -28,7 +28,8 @@
"@pushrocks/smartsocket": "^1.2.8", "@pushrocks/smartsocket": "^1.2.8",
"@pushrocks/smartssh": "^1.2.3", "@pushrocks/smartssh": "^1.2.3",
"@pushrocks/smartstring": "^3.0.24", "@pushrocks/smartstring": "^3.0.24",
"@servezone/servezone-interfaces": "^2.0.51", "@servezone/interfaces": "^1.0.3",
"@tsclass/tsclass": "^3.0.36",
"@types/through2": "^2.0.36", "@types/through2": "^2.0.36",
"through2": "^4.0.2" "through2": "^4.0.2"
}, },
@ -40,7 +41,7 @@
"@gitzone/tsrun": "^1.2.18", "@gitzone/tsrun": "^1.2.18",
"@gitzone/tstest": "^1.0.59", "@gitzone/tstest": "^1.0.59",
"@pushrocks/tapbundle": "^3.2.14", "@pushrocks/tapbundle": "^3.2.14",
"@types/node": "^16.11.1", "@types/node": "^16.11.6",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
} }
@ -3219,23 +3220,14 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@servezone/servezone-interfaces": { "node_modules/@servezone/interfaces": {
"version": "2.0.51", "version": "1.0.3",
"resolved": "https://verdaccio.lossless.one/@servezone%2fservezone-interfaces/-/servezone-interfaces-2.0.51.tgz", "resolved": "https://verdaccio.lossless.one/@servezone%2finterfaces/-/interfaces-1.0.3.tgz",
"integrity": "sha512-IvHhxUAlP1PAOJK+XyAj7CrJ0kByPuOsvA/3s7MUgnbFygXn4ci/FNhFlu0BNK5PoAmzmpAMQU0EdX2HQPUkTw==", "integrity": "sha512-DLfLQZGUXRRZsxPXP5rtI8PRWLDV+5CZMM/ri38V6q8eHTfIhjut6kiSDbahuLS75Y9ApjG2qLUeVZFdvgiFPg==",
"deprecated": "@servezone/servezone-interfaces has been deprecated in favour of @servezone/interfaces - please upgrade asap!!!",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@tsclass/tsclass": "^2.0.6" "@apiglobal/typedrequest-interfaces": "^1.0.15",
} "@tsclass/tsclass": "^3.0.34"
},
"node_modules/@servezone/servezone-interfaces/node_modules/@tsclass/tsclass": {
"version": "2.0.13",
"resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-2.0.13.tgz",
"integrity": "sha512-ZhN3vLAahP4DOayACh/bskG4SpeqNpR4oH9776hZvz6GoFj7KQinzf03gzC5o2o6tnmOusQ1FYu1NGYmy6Rvdg==",
"license": "MIT",
"dependencies": {
"@pushrocks/tapbundle": "^3.0.13"
} }
}, },
"node_modules/@sindresorhus/is": { "node_modules/@sindresorhus/is": {
@ -3268,9 +3260,9 @@
} }
}, },
"node_modules/@tsclass/tsclass": { "node_modules/@tsclass/tsclass": {
"version": "3.0.34", "version": "3.0.36",
"resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-3.0.34.tgz", "resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-3.0.36.tgz",
"integrity": "sha512-aWJWOCRDwepkVIaCmEVUPE62zBHN+XdBwZKS912qYmpKk3LAG4f0rr9oVPIv2kF0y4jhm31GYTP947Oht5Fdng==", "integrity": "sha512-F2kZfnBsqh53ZicMKB7GHrAZYZ1LzOZoGi8EVs4z5Hwi3qRO+3yOteL0F2NP/yvPLd8fMbZEjZgDYdi29GzXbg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@pushrocks/tapbundle": "^3.2.9", "@pushrocks/tapbundle": "^3.2.9",
@ -3554,9 +3546,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.11.1", "version": "16.11.6",
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.11.1.tgz", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.11.6.tgz",
"integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==", "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/parcel-bundler": { "node_modules/@types/parcel-bundler": {
@ -18200,22 +18192,13 @@
} }
} }
}, },
"@servezone/servezone-interfaces": { "@servezone/interfaces": {
"version": "2.0.51", "version": "1.0.3",
"resolved": "https://verdaccio.lossless.one/@servezone%2fservezone-interfaces/-/servezone-interfaces-2.0.51.tgz", "resolved": "https://verdaccio.lossless.one/@servezone%2finterfaces/-/interfaces-1.0.3.tgz",
"integrity": "sha512-IvHhxUAlP1PAOJK+XyAj7CrJ0kByPuOsvA/3s7MUgnbFygXn4ci/FNhFlu0BNK5PoAmzmpAMQU0EdX2HQPUkTw==", "integrity": "sha512-DLfLQZGUXRRZsxPXP5rtI8PRWLDV+5CZMM/ri38V6q8eHTfIhjut6kiSDbahuLS75Y9ApjG2qLUeVZFdvgiFPg==",
"requires": { "requires": {
"@tsclass/tsclass": "^2.0.6" "@apiglobal/typedrequest-interfaces": "^1.0.15",
}, "@tsclass/tsclass": "^3.0.34"
"dependencies": {
"@tsclass/tsclass": {
"version": "2.0.13",
"resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-2.0.13.tgz",
"integrity": "sha512-ZhN3vLAahP4DOayACh/bskG4SpeqNpR4oH9776hZvz6GoFj7KQinzf03gzC5o2o6tnmOusQ1FYu1NGYmy6Rvdg==",
"requires": {
"@pushrocks/tapbundle": "^3.0.13"
}
}
} }
}, },
"@sindresorhus/is": { "@sindresorhus/is": {
@ -18239,9 +18222,9 @@
} }
}, },
"@tsclass/tsclass": { "@tsclass/tsclass": {
"version": "3.0.34", "version": "3.0.36",
"resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-3.0.34.tgz", "resolved": "https://verdaccio.lossless.one/@tsclass%2ftsclass/-/tsclass-3.0.36.tgz",
"integrity": "sha512-aWJWOCRDwepkVIaCmEVUPE62zBHN+XdBwZKS912qYmpKk3LAG4f0rr9oVPIv2kF0y4jhm31GYTP947Oht5Fdng==", "integrity": "sha512-F2kZfnBsqh53ZicMKB7GHrAZYZ1LzOZoGi8EVs4z5Hwi3qRO+3yOteL0F2NP/yvPLd8fMbZEjZgDYdi29GzXbg==",
"requires": { "requires": {
"@pushrocks/tapbundle": "^3.2.9", "@pushrocks/tapbundle": "^3.2.9",
"type-fest": "^0.16.0" "type-fest": "^0.16.0"
@ -18487,9 +18470,9 @@
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
}, },
"@types/node": { "@types/node": {
"version": "16.11.1", "version": "16.11.6",
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.11.1.tgz", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.11.6.tgz",
"integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA==" "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w=="
}, },
"@types/parcel-bundler": { "@types/parcel-bundler": {
"version": "1.12.3", "version": "1.12.3",

View File

@ -28,7 +28,7 @@
"@gitzone/tsrun": "^1.2.18", "@gitzone/tsrun": "^1.2.18",
"@gitzone/tstest": "^1.0.59", "@gitzone/tstest": "^1.0.59",
"@pushrocks/tapbundle": "^3.2.14", "@pushrocks/tapbundle": "^3.2.14",
"@types/node": "^16.11.1", "@types/node": "^16.11.6",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },
@ -52,7 +52,8 @@
"@pushrocks/smartsocket": "^1.2.8", "@pushrocks/smartsocket": "^1.2.8",
"@pushrocks/smartssh": "^1.2.3", "@pushrocks/smartssh": "^1.2.3",
"@pushrocks/smartstring": "^3.0.24", "@pushrocks/smartstring": "^3.0.24",
"@servezone/servezone-interfaces": "^2.0.51", "@servezone/interfaces": "^1.0.3",
"@tsclass/tsclass": "^3.0.36",
"@types/through2": "^2.0.36", "@types/through2": "^2.0.36",
"through2": "^4.0.2" "through2": "^4.0.2"
}, },

View File

@ -100,7 +100,6 @@ For further information read the linked docs at the top of this README.
Use TypeScript for best in class instellisense. Use TypeScript for best in class instellisense.
## Contribution ## Contribution
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :) We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)

View File

@ -14,7 +14,7 @@ export class CloudlyConnector {
} }
public async announceDockerContainer( public async announceDockerContainer(
optionsArg: plugins.servezoneInterfaces.version.IVersionData optionsArg: plugins.tsclass.container.IContainer
) { ) {
const cloudlyUrl = this.npmciRef.npmciConfig.getConfig().urlCloudly; const cloudlyUrl = this.npmciRef.npmciConfig.getConfig().urlCloudly;
if (!cloudlyUrl) { if (!cloudlyUrl) {
@ -25,11 +25,14 @@ export class CloudlyConnector {
return; return;
} }
const typedrequest = new plugins.typedrequest.TypedRequest<plugins.servezoneInterfaces.request.version.IRequest_Any_Cloudly_VersionManager_Update>( const typedrequest =
new plugins.typedrequest.TypedRequest<plugins.servezoneInterfaces.requests.IRequest_InformAboutNewContainerImage>(
`https://${cloudlyUrl}/versionmanager`, `https://${cloudlyUrl}/versionmanager`,
'update' 'servezonestandard_InformAboutNewContainerVersion'
); );
const response = await typedrequest.fire(optionsArg); const response = await typedrequest.fire({
containerImageInfo: optionsArg
});
} }
} }

View File

@ -134,7 +134,9 @@ export class NpmciDockerManager {
const dockerfileArray = await Dockerfile.readDockerfiles(this) const dockerfileArray = await Dockerfile.readDockerfiles(this)
.then(Dockerfile.sortDockerfiles) .then(Dockerfile.sortDockerfiles)
.then(Dockerfile.mapDockerfiles); .then(Dockerfile.mapDockerfiles);
const dockerRegistryToPushTo = await this.npmciRegistryStorage.getRegistryByUrl(dockerRegistryUrl); const dockerRegistryToPushTo = await this.npmciRegistryStorage.getRegistryByUrl(
dockerRegistryUrl
);
if (!dockerRegistryToPushTo) { if (!dockerRegistryToPushTo) {
logger.log( logger.log(
'error', 'error',

View File

@ -152,9 +152,8 @@ export class Dockerfile {
suffixArg?: string suffixArg?: string
): string { ): string {
// determine wether the repo should be mapped accordingly to the registry // determine wether the repo should be mapped accordingly to the registry
const mappedRepo = npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().dockerRegistryRepoMap[ const mappedRepo =
registryArg npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().dockerRegistryRepoMap[registryArg];
];
const repo = (() => { const repo = (() => {
if (mappedRepo) { if (mappedRepo) {
return mappedRepo; return mappedRepo;
@ -274,9 +273,11 @@ export class Dockerfile {
).split('@')[1]; ).split('@')[1];
console.log(`The image ${this.pushTag} has digest ${imageDigest}`); console.log(`The image ${this.pushTag} has digest ${imageDigest}`);
await this.npmciDockerManagerRef.npmciRef.cloudlyConnector.announceDockerContainer({ await this.npmciDockerManagerRef.npmciRef.cloudlyConnector.announceDockerContainer({
dockerImageUrl: this.pushTag, registryUrl: this.pushTag,
dockerImageVersion: this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo tag: this.buildTag,
.npm.version, labels: [],
version:
this.npmciDockerManagerRef.npmciRef.npmciConfig.getConfig().projectInfo.npm.version,
}); });
} }

View File

@ -54,7 +54,10 @@ export class NpmciNpmManager {
public async prepare() { public async prepare() {
const config = this.npmciRef.npmciConfig.getConfig(); const config = this.npmciRef.npmciConfig.getConfig();
let npmrcFileString: string = ''; let npmrcFileString: string = '';
await plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TOKEN_NPM*', (npmEnvArg: string) => { await plugins.smartparam.forEachMinimatch(
process.env,
'NPMCI_TOKEN_NPM*',
(npmEnvArg: string) => {
const npmRegistryUrl = npmEnvArg.split('|')[0]; const npmRegistryUrl = npmEnvArg.split('|')[0];
let npmToken = npmEnvArg.split('|')[1]; let npmToken = npmEnvArg.split('|')[1];
if (npmEnvArg.split('|')[2] && npmEnvArg.split('|')[2] === 'plain') { if (npmEnvArg.split('|')[2] && npmEnvArg.split('|')[2] === 'plain') {
@ -64,7 +67,8 @@ export class NpmciNpmManager {
npmToken = plugins.smartstring.base64.decode(npmToken); npmToken = plugins.smartstring.base64.decode(npmToken);
} }
npmrcFileString += `//${npmRegistryUrl}/:_authToken="${npmToken}"\n`; npmrcFileString += `//${npmRegistryUrl}/:_authToken="${npmToken}"\n`;
}); }
);
logger.log('info', `setting default npm registry to ${config.npmRegistryUrl}`); logger.log('info', `setting default npm registry to ${config.npmRegistryUrl}`);
npmrcFileString += `registry=https://${config.npmRegistryUrl}\n`; npmrcFileString += `registry=https://${config.npmRegistryUrl}\n`;
@ -95,9 +99,13 @@ export class NpmciNpmManager {
let publishVerdaccioAsWell = false; let publishVerdaccioAsWell = false;
const config = this.npmciRef.npmciConfig.getConfig(); const config = this.npmciRef.npmciConfig.getConfig();
const availableRegistries: string[] = []; const availableRegistries: string[] = [];
await plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TOKEN_NPM*', (npmEnvArg: string) => { await plugins.smartparam.forEachMinimatch(
process.env,
'NPMCI_TOKEN_NPM*',
(npmEnvArg: string) => {
availableRegistries.push(npmEnvArg.split('|')[0]); availableRegistries.push(npmEnvArg.split('|')[0]);
}); }
);
// -> configure package access level // -> configure package access level
if (config.npmAccessLevel) { if (config.npmAccessLevel) {

View File

@ -2,7 +2,8 @@ import * as plugins from './mod.plugins';
import { bash } from '../npmci.bash'; import { bash } from '../npmci.bash';
import { logger } from '../npmci.logging'; import { logger } from '../npmci.logging';
const triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/; const triggerValueRegex =
/^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|?([a-zA-Z0-9\.\-\/]*)/;
export let trigger = async () => { export let trigger = async () => {
logger.log('info', 'now running triggers'); logger.log('info', 'now running triggers');

View File

@ -9,7 +9,7 @@ import * as typedrequest from '@apiglobal/typedrequest';
export { typedrequest }; export { typedrequest };
// @servezone // @servezone
import * as servezoneInterfaces from '@servezone/servezone-interfaces'; import * as servezoneInterfaces from '@servezone/interfaces';
export { servezoneInterfaces }; export { servezoneInterfaces };
@ -51,6 +51,14 @@ export {
smartstring, smartstring,
}; };
// @tsclass scope
import * as tsclass from '@tsclass/tsclass';
export {
tsclass
}
// third party
import * as through2 from 'through2'; import * as through2 from 'through2';
export { through2 }; export { through2 };