Compare commits

..

42 Commits

Author SHA1 Message Date
450b3ba379 2.0.23 2026-02-03 16:59:33 +00:00
0daae0bd07 fix(core): update 2026-02-03 16:59:32 +00:00
826f3a6c63 2.0.22 2020-10-05 10:33:44 +00:00
c1a4671ce1 fix(core): update 2020-10-05 10:33:43 +00:00
73a6d5bc31 2.0.21 2020-10-05 10:33:09 +00:00
e15a569391 fix(core): update 2020-10-05 10:33:08 +00:00
74809bd8d4 2.0.20 2020-10-04 23:02:27 +00:00
5b852d9602 fix(core): update 2020-10-04 23:02:26 +00:00
f68254eea7 2.0.19 2020-10-04 23:01:39 +00:00
5935c67f2e fix(core): update 2020-10-04 23:01:39 +00:00
98f5353744 2.0.18 2019-08-27 18:46:03 +02:00
1372a2bb7e fix(core): update 2019-08-27 18:46:03 +02:00
fa16aaa2c1 2.0.17 2019-08-27 18:27:43 +02:00
c3892096b6 fix(core): update 2019-08-27 18:27:43 +02:00
4e6646b133 2.0.16 2019-08-27 17:04:44 +02:00
da6739be6a fix(core): update 2019-08-27 17:04:43 +02:00
f72217250d 2.0.15 2019-08-26 19:29:15 +02:00
4c36174b0d fix(core): update 2019-08-26 19:29:15 +02:00
5f34bc8042 2.0.14 2019-08-26 19:27:11 +02:00
6d354a10d0 fix(core): update 2019-08-26 19:27:10 +02:00
8208ba2970 2.0.13 2019-08-26 18:09:27 +02:00
3c2b51d47e fix(core): update 2019-08-26 18:09:27 +02:00
12fab84daa 2.0.12 2019-08-23 03:55:32 +02:00
4b5b683fff fix(core): update 2019-08-23 03:55:31 +02:00
ec1958d882 2.0.11 2019-08-23 00:21:14 +02:00
1f59cd4ba1 fix(core): update 2019-08-23 00:21:13 +02:00
74c0d537cc 2.0.10 2019-06-19 14:40:59 +02:00
c4706e96cb fix(core): update 2019-06-19 14:40:59 +02:00
628b86cf3d 2.0.9 2019-06-19 14:24:09 +02:00
d0c6ebb0df fix(core): update 2019-06-19 14:24:08 +02:00
dd8c30e7cf 2.0.8 2019-06-19 13:59:38 +02:00
8f861d86c9 fix(core): update 2019-06-19 13:59:37 +02:00
fe2581b533 2.0.7 2019-06-19 13:49:57 +02:00
db906cea1a fix(core): update 2019-06-19 13:49:57 +02:00
9c1dca9ace 2.0.6 2019-06-19 13:20:07 +02:00
c620549476 fix(core): update 2019-06-19 13:20:07 +02:00
90697584d7 2.0.5 2019-06-19 13:12:11 +02:00
1252fa8f97 fix(core): update 2019-06-19 13:12:10 +02:00
cdbc9823f1 2.0.4 2019-06-17 10:27:34 +02:00
9d7023e739 fix(core): update 2019-06-17 10:27:33 +02:00
3bb3860f44 2.0.3 2019-06-17 10:26:26 +02:00
fc22ea9e4d fix(core): update 2019-06-17 10:26:26 +02:00
25 changed files with 19291 additions and 1348 deletions

18
.gitignore vendored
View File

@@ -1,4 +1,20 @@
node_modules/ .nogit/
# artifacts
coverage/ coverage/
public/ public/
pages/ pages/
# installs
node_modules/
# caches
.yarn/
.cache/
.rpt2_cache
# builds
dist/
dist_*/
# custom

View File

@@ -1,16 +1,16 @@
# gitzone standard # gitzone ci_default
image: hosttoday/ht-docker-node:npmci image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
cache: cache:
paths: paths:
- .npmci_cache/ - .npmci_cache/
key: "$CI_BUILD_STAGE" key: '$CI_BUILD_STAGE'
stages: stages:
- security - security
- test - test
- release - release
- metadata - metadata
# ==================== # ====================
# security stage # security stage
@@ -18,108 +18,114 @@ stages:
mirror: mirror:
stage: security stage: security
script: script:
- npmci git mirror - npmci git mirror
only:
- tags
tags: tags:
- docker - lossless
- notpriv - docker
- notpriv
snyk: auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security stage: security
script: script:
- npmci command npm install -g snyk - npmci npm prepare
- npmci command npm install --ignore-scripts - npmci command npm install --production --ignore-scripts
- npmci command snyk test - npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags: tags:
- docker - docker
- notpriv
auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
tags:
- docker
allow_failure: true
# ==================== # ====================
# test stage # test stage
# ==================== # ====================
testLEGACY:
stage: test
script:
- npmci node install legacy
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
allow_failure: true
testLTS: testStable:
stage: test stage: test
script: script:
- npmci node install lts - npmci npm prepare
- npmci npm install - npmci node install stable
- npmci npm test - npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- docker - docker
- notpriv
testSTABLE: testBuild:
stage: test stage: test
script: script:
- npmci node install stable - npmci npm prepare
- npmci npm install - npmci node install stable
- npmci npm test - npmci npm install
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/ coverage: /\d+.?\d+?\%\s*coverage/
tags: tags:
- docker - docker
- notpriv
release: release:
stage: release stage: release
script: script:
- npmci node install stable - npmci node install stable
- npmci npm publish - npmci npm publish
only: only:
- tags - tags
tags: tags:
- docker - lossless
- notpriv - docker
- notpriv
# ==================== # ====================
# metadata stage # metadata stage
# ==================== # ====================
codequality: codequality:
stage: metadata stage: metadata
image: docker:stable
allow_failure: true allow_failure: true
services: only:
- docker:stable-dind - tags
script: script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') - npmci command npm install -g tslint typescript
- docker run - npmci npm prepare
--env SOURCE_CODE="$PWD" - npmci npm install
--volume "$PWD":/code - npmci command "tslint -c tslint.json ./ts/**/*.ts"
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [codeclimate.json]
tags: tags:
- docker - lossless
- priv - docker
- priv
trigger: trigger:
stage: metadata stage: metadata
script: script:
- npmci trigger - npmci trigger
only: only:
- tags - tags
tags: tags:
- docker - lossless
- notpriv - docker
- notpriv
pages: pages:
image: hosttoday/ht-docker-node:npmci
stage: metadata stage: metadata
script: script:
- npmci command npm install -g npmpage - npmci node install lts
- npmci command npmpage - npmci command npm install -g @git.zone/tsdoc
- npmci npm prepare
- npmci npm install
- npmci command tsdoc
tags: tags:
- lossless
- docker - docker
- notpriv - notpriv
only: only:
@@ -127,4 +133,5 @@ pages:
artifacts: artifacts:
expire_in: 1 week expire_in: 1 week
paths: paths:
- public - public
allow_failure: true

29
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,29 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@git.zone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@git.zone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
}
]
}

26
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm", "wcc"]
}
}
}
}
}
}
]
}

View File

@@ -1,33 +0,0 @@
# npmg
setup your environment with the most important tools and update them easily.
## Availabililty
[![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmg)
[![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/gitzone/npmg)
[![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/npmg)
[![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/npmg/)
## Status for master
[![build status](https://GitLab.com/gitzone/npmg/badges/master/build.svg)](https://GitLab.com/gitzone/npmg/commits/master)
[![coverage report](https://GitLab.com/gitzone/npmg/badges/master/coverage.svg)](https://GitLab.com/gitzone/npmg/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmg.svg)](https://www.npmjs.com/package/npmg)
[![Dependency Status](https://david-dm.org/gitzonetools/npmg.svg)](https://david-dm.org/gitzonetools/npmg)
[![bitHound Dependencies](https://www.bithound.io/github/gitzonetools/npmg/badges/dependencies.svg)](https://www.bithound.io/github/gitzonetools/npmg/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/gitzonetools/npmg/badges/code.svg)](https://www.bithound.io/github/gitzonetools/npmg)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
Use TypeScript for best in class instellisense.
For further information read the linked docs at the top of this README.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://git.zone)

View File

@@ -0,0 +1,13 @@
{
"default": [
"@bubblewrap/cli",
"@losslessone_private/lole",
"@gitzone_private/gitzone",
"@git.zone/tsbuild",
"@git.zone/tsdocker",
"@git.zone/tsrun",
"nativescript",
"typescript",
"npm-check"
]
}

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env node
import * as tsrun from 'tsrun';
process.env.CLI_CALL = 'true';
require("../index.ts");

4
cli.js Normal file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
const cliTool = require('./dist_ts/index');
cliTool.runCli();

5
cli.ts.js Normal file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
require('@git.zone/tsrun');
const cliTool = require('./ts/index');
cliTool.runCli();

View File

@@ -1,45 +0,0 @@
# npmg
setup your environment with the most important tools and update them easily.
## Availabililty
[![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmg)
[![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/gitzone/npmg)
[![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/npmg)
[![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/npmg/)
## Status for master
[![build status](https://GitLab.com/gitzone/npmg/badges/master/build.svg)](https://GitLab.com/gitzone/npmg/commits/master)
[![coverage report](https://GitLab.com/gitzone/npmg/badges/master/coverage.svg)](https://GitLab.com/gitzone/npmg/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmg.svg)](https://www.npmjs.com/package/npmg)
[![Dependency Status](https://david-dm.org/gitzonetools/npmg.svg)](https://david-dm.org/gitzonetools/npmg)
[![bitHound Dependencies](https://www.bithound.io/github/gitzonetools/npmg/badges/dependencies.svg)](https://www.bithound.io/github/gitzonetools/npmg/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/gitzonetools/npmg/badges/code.svg)](https://www.bithound.io/github/gitzonetools/npmg)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
Use TypeScript for best in class instellisense.
To install the package type
```shell
yarn global add npmg
```
Then install a bundle by typing
```shell
npmg install
```
For further information read the linked docs at the top of this README.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://git.zone)

View File

@@ -7,5 +7,16 @@
"npmts" "npmts"
], ],
"npmAccessLevel": "public" "npmAccessLevel": "public"
},
"gitzone": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "gitzone",
"gitrepo": "tools",
"shortDescription": "setup your environment with the most important tools and update them easily.",
"npmPackagename": "@git.zone/tools",
"license": "MIT"
}
} }
} }

11721
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,17 @@
{ {
"name": "@gitzone/tools", "name": "@git.zone/tools",
"version": "2.0.2", "version": "2.0.23",
"private": false, "private": false,
"type": "module",
"description": "setup your environment with the most important tools and update them easily.", "description": "setup your environment with the most important tools and update them easily.",
"main": "dist/index.js", "main": "dist_ts/index.js",
"typings": "dist/index.d.ts", "typings": "dist_ts/index.d.ts",
"scripts": { "scripts": {
"test": "tsrun test/test.ts", "test": "(tstest test/ --web)",
"build": "echo \"Not needed for now\"" "build": "(tsbuild --web)"
}, },
"bin": { "bin": {
"gtools": "bin/cli.js" "gtools": "cli.js"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@@ -29,15 +30,30 @@
}, },
"homepage": "https://github.com/GitZoneTools/npmg#readme", "homepage": "https://github.com/GitZoneTools/npmg#readme",
"devDependencies": { "devDependencies": {
"tapbundle": "^1.0.13" "@git.zone/tsbuild": "^4.1.2",
"@git.zone/tstest": "^3.1.8"
}, },
"dependencies": { "dependencies": {
"@gitzone/tsrun": "^1.0.5", "@git.zone/tsrun": "^2.0.1",
"@pushrocks/smartcli": "^3.0.1", "@push.rocks/smartcli": "^4.0.20",
"@types/node": "^10.3.1", "@push.rocks/smartlog": "^3.1.10",
"beautylog": "^6.1.10", "@push.rocks/smartlog-destination-local": "^9.0.2",
"smartenv": "^3.0.0", "@push.rocks/smartshell": "^3.3.0",
"smartfile": "4.2.17", "@types/node": "^25.2.0"
"smartshell": "^1.0.6" },
} "files": [
"ts/**/*",
"ts_web/**/*",
"dist/**/*",
"dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"npmextra.json",
"readme.md"
],
"browserslist": [
"last 1 chrome versions"
]
} }

View File

@@ -1,10 +0,0 @@
{
"default":[
"@gitzone/npmdocker",
"@gitzone/npmts",
"@gitzone/gitzone",
"typescript",
"tslint",
"@gitzone/tsrun"
]
}

8380
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

14
test/test.node.ts Normal file
View File

@@ -0,0 +1,14 @@
import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as tools from '../ts/tools.install.js';
tap.test('should have install function exported', async () => {
expect(typeof tools.install).toEqual('function');
});
tap.test('should handle unknown package set', async () => {
// This will just log a warning, not throw
await tools.install('unknown');
});
export default tap.start();

View File

@@ -1,12 +0,0 @@
import { expect, tap } from 'tapbundle';
import * as npmgInstall from '../ts/tools.install';
import * as smartenv from 'smartenv';
let environment = new smartenv.Smartenv();
tap.test("should install default list globally when parsed 'default' as argument", async () => {
await npmgInstall.install('default');
});
tap.start();

8
ts/00_commitinfo_data.ts Normal file
View File

@@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@git.zone/tools',
version: '2.0.23',
description: 'setup your environment with the most important tools and update them easily.'
}

View File

@@ -1,2 +1,9 @@
import plugins = require('./tools.plugins'); import * as plugins from './tools.plugins.js';
import * as cli from './tools.cli'; import * as cli from './tools.cli.js';
export const runCli = async () => {
await cli.run();
};
// Auto-run when called directly
runCli();

View File

@@ -1,11 +1,13 @@
import * as plugins from './tools.plugins'; import * as plugins from './tools.plugins.js';
import * as toolsInstall from './tools.install'; import * as toolsInstall from './tools.install.js';
let npmgSmartcli = new plugins.smartcli.Smartcli(); export const run = async () => {
const toolsCli = new plugins.smartcli.Smartcli();
npmgSmartcli.addCommand('install').subscribe(async argvArg => { toolsCli.addCommand('install').subscribe(async (argvArg) => {
toolsInstall.install('default'); toolsInstall.install('default');
}); });
npmgSmartcli.addVersion('no version set'); toolsCli.addVersion('no version set');
npmgSmartcli.startParse(); toolsCli.startParse();
};

View File

@@ -1,30 +1,38 @@
import plugins = require('./tools.plugins'); import * as plugins from './tools.plugins.js';
import paths = require('./tools.paths'); import * as paths from './tools.paths.js';
import { logger } from './tools.logging.js';
const installExec = async (packageNames: string[]) => { const installExec = async (packageNames: string[]) => {
const smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
});
let installString = ''; let installString = '';
for (let packageName of packageNames) { for (const packageName of packageNames) {
logger.log('info', `Found ${packageName}!`);
installString = installString + `${packageName} `; installString = installString + `${packageName} `;
} }
await plugins.smartshell.exec(`yarn global remove ${installString}`); // lets remove old packages
for (let packageName of packageNames) { const uninstallCommand = `npm uninstall -g ${installString}`;
plugins.beautylog.info(`now preparing ${packageName}`); const installCommand = `npm install -g ${installString}`;
plugins.beautylog.log(`Installing ${packageName}`); logger.log('info', `uninstalling old packages with "${uninstallCommand}"`);
} await smartshellInstance.exec(uninstallCommand);
await plugins.smartshell.exec(`npm install -g ${installString}`); logger.log('info', `installing tools with ${installCommand}`);
await smartshellInstance.exec(installCommand);
logger.log('ok', `installed tools successfully!`);
}; };
let packageLibrary = plugins.smartfile.fs.toObjectSync( const packageLibrary = JSON.parse(
plugins.path.join(paths.packageBase, 'package_library.json') plugins.fs.readFileSync(plugins.path.join(paths.assetsDir, 'package_library.json'), 'utf8')
); );
export const install = async (packageSetArg: String) => { export const install = async (packageSetArg: string) => {
switch (packageSetArg) { switch (packageSetArg) {
case 'default': case 'default':
await installExec(packageLibrary.default); await installExec(packageLibrary.default);
break; break;
default: default:
plugins.beautylog.warn('no set has been specified'); logger.log('warn', 'no set has been specified');
break; break;
} }
}; };

15
ts/tools.logging.ts Normal file
View File

@@ -0,0 +1,15 @@
import * as plugins from './tools.plugins.js';
export const logger = new plugins.smartlog.Smartlog({
logContext: {
company: 'Some Company',
companyunit: 'Some CompanyUnit',
containerName: 'Some Containername',
environment: 'local',
runtime: 'node',
zone: 'gitzone',
},
minimumLogLevel: 'silly',
});
logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal());

View File

@@ -1,3 +1,8 @@
import plugins = require('./tools.plugins'); import * as plugins from './tools.plugins.js';
import { fileURLToPath } from 'url';
export let packageBase = plugins.path.join('__dirname', '../'); const __filename = fileURLToPath(import.meta.url);
const __dirname = plugins.path.dirname(__filename);
export const packageBase = plugins.path.join(__dirname, '../');
export const assetsDir = plugins.path.join(packageBase, './assets');

View File

@@ -1,7 +1,11 @@
import * as beautylog from 'beautylog'; // node native
import * as path from 'path'; import * as path from 'path';
import * as smartcli from '@pushrocks/smartcli'; import * as fs from 'fs';
import * as smartfile from 'smartfile';
import * as smartshell from 'smartshell';
export { beautylog, path, smartcli, smartfile, smartshell }; // push.rocks scope
import * as smartlog from '@push.rocks/smartlog';
import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
import * as smartcli from '@push.rocks/smartcli';
import * as smartshell from '@push.rocks/smartshell';
export { smartlog, smartlogDestinationLocal, path, fs, smartcli, smartshell };

View File

@@ -1,3 +1,17 @@
{ {
"extends": "tslint-config-standard" "extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
} }