@bitblit/ratchet-node-only 4.0.116-alpha → 4.0.120-alpha

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.
Files changed (43) hide show
  1. package/bin/cli.js +5 -5
  2. package/lib/build/ratchet-node-only-info.d.ts +1 -1
  3. package/lib/cli/abstract-ratchet-cli-handler.d.ts +1 -1
  4. package/lib/cli/ratchet-cli-handler.d.ts +1 -1
  5. package/lib/csv/csv-ratchet.d.ts +1 -1
  6. package/lib/index.d.ts +11 -1
  7. package/lib/index.mjs +3 -0
  8. package/lib/index.mjs.map +1 -0
  9. package/package.json +11 -9
  10. package/lib/build/ratchet-node-only-info.js +0 -15
  11. package/lib/build/ratchet-node-only-info.js.map +0 -1
  12. package/lib/ci/apply-ci-env-variables-to-files.js +0 -81
  13. package/lib/ci/apply-ci-env-variables-to-files.js.map +0 -1
  14. package/lib/ci/apply-ci-env-variables-to-files.spec.js +0 -24
  15. package/lib/ci/apply-ci-env-variables-to-files.spec.js.map +0 -1
  16. package/lib/ci/ci-run-information-util.js +0 -45
  17. package/lib/ci/ci-run-information-util.js.map +0 -1
  18. package/lib/ci/ci-run-information.js +0 -2
  19. package/lib/ci/ci-run-information.js.map +0 -1
  20. package/lib/cli/abstract-ratchet-cli-handler.js +0 -29
  21. package/lib/cli/abstract-ratchet-cli-handler.js.map +0 -1
  22. package/lib/cli/cli-ratchet.js +0 -29
  23. package/lib/cli/cli-ratchet.js.map +0 -1
  24. package/lib/cli/ratchet-cli-handler.js +0 -18
  25. package/lib/cli/ratchet-cli-handler.js.map +0 -1
  26. package/lib/csv/csv-ratchet.js +0 -159
  27. package/lib/csv/csv-ratchet.js.map +0 -1
  28. package/lib/csv/csv-ratchet.spec.js +0 -42
  29. package/lib/csv/csv-ratchet.spec.js.map +0 -1
  30. package/lib/files/files-to-static-class.js +0 -57
  31. package/lib/files/files-to-static-class.js.map +0 -1
  32. package/lib/files/files-to-static-class.spec.js +0 -12
  33. package/lib/files/files-to-static-class.spec.js.map +0 -1
  34. package/lib/index.js +0 -2
  35. package/lib/index.js.map +0 -1
  36. package/lib/third-party/git/git-ratchet.js +0 -72
  37. package/lib/third-party/git/git-ratchet.js.map +0 -1
  38. package/lib/third-party/git/git-ratchet.spec.js +0 -10
  39. package/lib/third-party/git/git-ratchet.spec.js.map +0 -1
  40. package/lib/third-party/slack/publish-ci-release-to-slack.js +0 -61
  41. package/lib/third-party/slack/publish-ci-release-to-slack.js.map +0 -1
  42. package/lib/third-party/slack/publish-ci-release-to-slack.spec.js +0 -25
  43. package/lib/third-party/slack/publish-ci-release-to-slack.spec.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-node-only",
3
- "version": "4.0.116-alpha",
3
+ "version": "4.0.120-alpha",
4
4
  "description": "Ratchet tools for use on node-only",
5
5
  "note-on-side-effects": "Technically the entries in 'bin' below might be side effects, but they are called explicitly",
6
6
  "sideEffects": false,
@@ -8,11 +8,16 @@
8
8
  "ratchet-cli": "./bin/cli.js"
9
9
  },
10
10
  "type": "module",
11
- "module": "index.js",
12
11
  "files": [
13
12
  "lib/*",
14
13
  "bin/*"
15
14
  ],
15
+ "exports": {
16
+ ".": {
17
+ "types": "./lib/index.d.ts",
18
+ "import": "./lib/index.mjs"
19
+ }
20
+ },
16
21
  "contributors": [
17
22
  "Christopher Weiss <bitblit@gmail.com>",
18
23
  "William Weiss <npm@codification.org>",
@@ -39,9 +44,8 @@
39
44
  "docs": "typedoc",
40
45
  "lint": "eslint src/**/*.ts",
41
46
  "lint-fix": "eslint --fix src/**/*.ts",
42
- "__generate-barrels": "barrelsby -q --delete -d src -e .*\\.spec\\.ts",
43
- "__build": "yarn run generate-barrels && tsc",
44
- "build": "tsc",
47
+ "generate-barrels": "barrelsby -q --delete -d src -e .*\\.spec\\.ts && sed -i 's/\\x27;/.js\\x27;/' src/index.ts",
48
+ "build": "yarn clean && yarn generate-barrels && rollup -c rollup.config.js",
45
49
  "force-build": "tsc --build --force"
46
50
  },
47
51
  "repository": {
@@ -61,13 +65,11 @@
61
65
  },
62
66
  "license": "Apache-2.0",
63
67
  "dependencies": {
64
- "@bitblit/ratchet-common": "4.0.116-alpha",
65
- "csv": "6.2.12",
68
+ "@bitblit/ratchet-common": "4.0.120-alpha",
69
+ "csv": "6.3.0",
66
70
  "rxjs": "7.8.1"
67
71
  },
68
72
  "peerDependencies": {
69
- "csv": "^6.2.12",
70
- "rxjs": "^7.8.1"
71
73
  },
72
74
  "peerDependenciesMeta": {
73
75
  "csv": {
@@ -1,15 +0,0 @@
1
- export class RatchetNodeOnlyInfo {
2
- constructor() { }
3
- static buildInformation() {
4
- const val = {
5
- version: 'LOCAL-SNAPSHOT',
6
- hash: 'LOCAL-HASH',
7
- branch: 'LOCAL-BRANCH',
8
- tag: 'LOCAL-TAG',
9
- timeBuiltISO: 'LOCAL-TIME-ISO',
10
- notes: 'LOCAL-NOTES',
11
- };
12
- return val;
13
- }
14
- }
15
- //# sourceMappingURL=ratchet-node-only-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ratchet-node-only-info.js","sourceRoot":"","sources":["../../src/build/ratchet-node-only-info.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAG9B,gBAAuB,CAAC;IAEjB,MAAM,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAqB;YAC5B,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,gBAAgB;YAC9B,KAAK,EAAE,aAAa;SACrB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,81 +0,0 @@
1
- import fs from 'fs';
2
- import { ErrorRatchet } from '@bitblit/ratchet-common/lib/lang/error-ratchet.js';
3
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
4
- import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
5
- import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
6
- import { CiRunInformationUtil } from './ci-run-information-util.js';
7
- export class ApplyCiEnvVariablesToFiles {
8
- static async process(fileNames, cfg, buildFinder = 'LOCAL-SNAPSHOT', branchFinder = 'LOCAL-BRANCH', hashFinder = 'LOCAL-HASH', tagFinder = 'LOCAL-TAG', timeFinder = 'LOCAL-TIME') {
9
- RequireRatchet.notNullOrUndefined(cfg, 'cfg');
10
- RequireRatchet.notNullOrUndefined(cfg.buildNumber, 'cfg.buildNumber');
11
- RequireRatchet.notNullOrUndefined(cfg.localTime, 'cfg.localTime');
12
- if (!fileNames) {
13
- throw new Error('fileNames must be defined');
14
- }
15
- if (fileNames.length === 0) {
16
- Logger.warn('Warning - no files supplied to process');
17
- }
18
- if (!cfg.buildNumber) {
19
- ErrorRatchet.throwFormattedErr('%s env var not set - apparently not in a CI environment', cfg.buildNumber);
20
- }
21
- Logger.info('Processing files %j with run info %j', cfg);
22
- let foundCount = 0;
23
- fileNames.forEach((f) => {
24
- if (!fs.existsSync(f)) {
25
- Logger.error('Could not find file %s to process, continuing', f);
26
- }
27
- else {
28
- try {
29
- let contents = fs.readFileSync(f).toString();
30
- contents = contents.split(buildFinder).join(cfg.buildNumber);
31
- contents = contents.split(branchFinder).join(cfg.branch || '');
32
- contents = contents.split(hashFinder).join(cfg.commitHash || '');
33
- contents = contents.split(tagFinder).join(cfg.tag || '');
34
- contents = contents.split(timeFinder).join(cfg.localTime || '');
35
- fs.writeFileSync(f, contents);
36
- foundCount++;
37
- }
38
- catch (err) {
39
- Logger.error('Error processing %s , continuing: %s', f, err, err);
40
- }
41
- }
42
- });
43
- return foundCount;
44
- }
45
- static extractFileNames() {
46
- let rval = [];
47
- if (process && process.argv && process.argv.length > 3) {
48
- rval = process.argv.slice(3);
49
- }
50
- return rval;
51
- }
52
- static extractVariableConfig(inName) {
53
- let rval = null;
54
- const name = StringRatchet.trimToEmpty(inName).toLowerCase();
55
- switch (name) {
56
- case 'circleci':
57
- rval = CiRunInformationUtil.createDefaultCircleCiRunInformation();
58
- break;
59
- case 'github':
60
- rval = CiRunInformationUtil.createDefaultGithubActionsRunInformation();
61
- break;
62
- case 'test':
63
- rval = CiRunInformationUtil.createTestingCiRunInformation();
64
- break;
65
- default:
66
- ErrorRatchet.throwFormattedErr('Unrecognized env var config type : %s', name);
67
- }
68
- Logger.info('Using variable config : %j', rval);
69
- return rval;
70
- }
71
- static async runFromCliArgs(args) {
72
- if (args.length > 1) {
73
- return ApplyCiEnvVariablesToFiles.process(args.slice(1), ApplyCiEnvVariablesToFiles.extractVariableConfig(args[0]));
74
- }
75
- else {
76
- Logger.infoP('Usage : apply-ci-env-variables-to-files {file1} {file2} ...');
77
- return -1;
78
- }
79
- }
80
- }
81
- //# sourceMappingURL=apply-ci-env-variables-to-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply-ci-env-variables-to-files.js","sourceRoot":"","sources":["../../src/ci/apply-ci-env-variables-to-files.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { ApplyCiEnvVariablesToFiles } from './apply-ci-env-variables-to-files.js';
2
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
3
- import { GlobalRatchet } from '@bitblit/ratchet-common/lib/lang/global-ratchet.js';
4
- import { CiRunInformationUtil } from './ci-run-information-util.js';
5
- describe('#applyCiEnvVariablesToFiles', function () {
6
- xit('should fail if not in a ci environment', async () => {
7
- try {
8
- const result = await ApplyCiEnvVariablesToFiles.process(['test1.txt'], CiRunInformationUtil.createDefaultCircleCiRunInformation());
9
- this.bail();
10
- }
11
- catch (err) {
12
- Logger.debug('Caught expected error : %s', err['message']);
13
- }
14
- });
15
- it('should not fail if in a ci environment', async () => {
16
- GlobalRatchet.setGlobalVar('CIRCLE_BUILD_NUM', '1');
17
- GlobalRatchet.setGlobalVar('CIRCLE_BRANCH', 'B');
18
- GlobalRatchet.setGlobalVar('CIRCLE_TAG', 'T');
19
- GlobalRatchet.setGlobalVar('CIRCLE_SHA1', 'S');
20
- const result = await ApplyCiEnvVariablesToFiles.process([], CiRunInformationUtil.createDefaultCircleCiRunInformation());
21
- expect(result).toEqual(0);
22
- });
23
- });
24
- //# sourceMappingURL=apply-ci-env-variables-to-files.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply-ci-env-variables-to-files.spec.js","sourceRoot":"","sources":["../../src/ci/apply-ci-env-variables-to-files.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,QAAQ,CAAC,6BAA6B,EAAE;IACtC,GAAG,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACvD,IAAI;YACF,MAAM,MAAM,GAAW,MAAM,0BAA0B,CAAC,OAAO,CAC7D,CAAC,WAAW,CAAC,EACb,oBAAoB,CAAC,mCAAmC,EAAE,CAC3D,CAAC;YACF,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;SAE5D;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACpD,aAAa,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACjD,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC9C,aAAa,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAW,MAAM,0BAA0B,CAAC,OAAO,CAAC,EAAE,EAAE,oBAAoB,CAAC,mCAAmC,EAAE,CAAC,CAAC;QAChI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,45 +0,0 @@
1
- import { DateTime } from 'luxon';
2
- import { GlobalRatchet } from '@bitblit/ratchet-common/lib/lang/global-ratchet.js';
3
- class CiRunInformationUtil {
4
- static DEFAULT_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss a z';
5
- static DEFAULT_TIME_ZONE = 'America/Los_Angeles';
6
- static createTestingCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
7
- const now = new Date().toISOString();
8
- const rval = {
9
- buildNumber: 'Test_buildNumberVar_' + now,
10
- localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
11
- branch: 'Test_branchVar_' + now,
12
- tag: 'Test_tagVar_' + now,
13
- commitHash: 'Test_hashVar_' + now,
14
- userName: 'Test_userNameVar_' + now,
15
- projectName: 'Test_projectNameVar_' + now,
16
- };
17
- return rval;
18
- }
19
- static createDefaultCircleCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
20
- const rval = {
21
- buildNumber: GlobalRatchet.fetchGlobalVar('CIRCLE_BUILD_NUM'),
22
- branch: GlobalRatchet.fetchGlobalVar('CIRCLE_BRANCH'),
23
- tag: GlobalRatchet.fetchGlobalVar('CIRCLE_TAG'),
24
- commitHash: GlobalRatchet.fetchGlobalVar('CIRCLE_SHA1'),
25
- localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
26
- userName: GlobalRatchet.fetchGlobalVar('CIRCLE_USERNAME'),
27
- projectName: GlobalRatchet.fetchGlobalVar('CIRCLE_PROJECT_REPONAME'),
28
- };
29
- return rval;
30
- }
31
- static createDefaultGithubActionsRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {
32
- const rval = {
33
- buildNumber: GlobalRatchet.fetchGlobalVar('GITHUB_RUN_NUMBER'),
34
- branch: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),
35
- tag: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),
36
- commitHash: GlobalRatchet.fetchGlobalVar('GITHUB_SHA'),
37
- localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),
38
- userName: GlobalRatchet.fetchGlobalVar('GITHUB_ACTOR'),
39
- projectName: GlobalRatchet.fetchGlobalVar('GITHUB_REPOSITORY'),
40
- };
41
- return rval;
42
- }
43
- }
44
- export { CiRunInformationUtil };
45
- //# sourceMappingURL=ci-run-information-util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci-run-information-util.js","sourceRoot":"","sources":["../../src/ci/ci-run-information-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AAEnF,MAAa,oBAAoB;IACxB,MAAM,CAAU,mBAAmB,GAAW,yBAAyB,CAAC;IACxE,MAAM,CAAU,iBAAiB,GAAW,qBAAqB,CAAC;IAElE,MAAM,CAAC,6BAA6B,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QAC3F,MAAM,GAAG,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,sBAAsB,GAAG,GAAG;YACzC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,MAAM,EAAE,iBAAiB,GAAG,GAAG;YAC/B,GAAG,EAAE,cAAc,GAAG,GAAG;YACzB,UAAU,EAAE,eAAe,GAAG,GAAG;YACjC,QAAQ,EAAE,mBAAmB,GAAG,GAAG;YACnC,WAAW,EAAE,sBAAsB,GAAG,GAAG;SAC1C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,mCAAmC,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QACjG,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;YAC7D,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;YACrD,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC;YAC/C,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC;YACvD,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACzD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,yBAAyB,CAAC;SACrE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,wCAAwC,CAAC,QAAQ,GAAG,oBAAoB,CAAC,iBAAiB;QACtG,MAAM,IAAI,GAAqB;YAC7B,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC;YAC9D,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACvD,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACpD,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC;YACtD,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;YAChG,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC;YACtD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC;SAC/D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;;SA1CU,oBAAoB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ci-run-information.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ci-run-information.js","sourceRoot":"","sources":["../../src/ci/ci-run-information.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- import { CliRatchet } from './cli-ratchet.js';
2
- export class AbstractRatchetCliHandler {
3
- async findAndExecuteHandler() {
4
- let handler = null;
5
- if (CliRatchet.argsAfterCommand(['version'])) {
6
- console.log('Version : ' + JSON.stringify(this.fetchVersionInfo()));
7
- }
8
- else {
9
- const handlerMap = this.fetchHandlerMap();
10
- const keys = Object.keys(handlerMap);
11
- let remainArgs = null;
12
- for (let i = 0; i < keys.length && !handler; i++) {
13
- remainArgs = CliRatchet.argsAfterCommand([keys[i], keys[i] + '.js']);
14
- if (remainArgs) {
15
- handler = handlerMap[keys[i]];
16
- }
17
- }
18
- if (handler) {
19
- console.debug('Running command with args ' + JSON.stringify(remainArgs));
20
- await handler(remainArgs);
21
- }
22
- else {
23
- console.log('Unrecognized command : ', process.argv);
24
- console.log('Valid commands are : ', Object.keys(handlerMap));
25
- }
26
- }
27
- }
28
- }
29
- //# sourceMappingURL=abstract-ratchet-cli-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-ratchet-cli-handler.js","sourceRoot":"","sources":["../../src/cli/abstract-ratchet-cli-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAgB,yBAAyB;IAItC,KAAK,CAAC,qBAAqB;QAChC,IAAI,OAAO,GAAQ,IAAI,CAAC;QACxB,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;YAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;SACrE;aAAM;YACL,MAAM,UAAU,GAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAa,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,UAAU,GAAa,IAAI,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAChD,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACrE,IAAI,UAAU,EAAE;oBACd,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;aACF;YACD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;aAC3B;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aAC/D;SACF;IACH,CAAC;CACF"}
@@ -1,29 +0,0 @@
1
- export class CliRatchet {
2
- static isCalledFromCLI(filenames) {
3
- let rval = false;
4
- for (let i = 0; filenames && i < filenames.length && !rval; i++) {
5
- rval = CliRatchet.indexOfCommandArgument(filenames[i]) > -1;
6
- }
7
- return rval;
8
- }
9
- static argsAfterCommand(filenames) {
10
- let rval = null;
11
- if (process?.argv?.length && filenames?.length) {
12
- let idx = null;
13
- for (let i = 0; i < filenames.length && idx === null; i++) {
14
- idx = CliRatchet.indexOfCommandArgument(filenames[i]);
15
- }
16
- rval = idx !== null ? process.argv.slice(idx + 1, process.argv.length) : null;
17
- }
18
- return rval;
19
- }
20
- static isCalledFromCLISingle(filename) {
21
- return CliRatchet.isCalledFromCLI([filename]);
22
- }
23
- static indexOfCommandArgument(filename) {
24
- const contFileName = process.argv.map((arg) => arg.indexOf(filename) !== -1);
25
- const idx = contFileName.indexOf(true);
26
- return idx === -1 ? null : idx;
27
- }
28
- }
29
- //# sourceMappingURL=cli-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-ratchet.js","sourceRoot":"","sources":["../../src/cli/cli-ratchet.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,eAAe,CAAC,SAAmB;QAC/C,IAAI,IAAI,GAAY,KAAK,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC/D,IAAI,GAAG,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,SAAmB;QAChD,IAAI,IAAI,GAAa,IAAI,CAAC;QAC1B,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE;YAC9C,IAAI,GAAG,GAAW,IAAI,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE;gBACzD,GAAG,GAAG,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD;YACD,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC/E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,QAAgB;QACnD,MAAM,YAAY,GAAc,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,GAAG,GAAW,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;CACF"}
@@ -1,18 +0,0 @@
1
- import { RatchetNodeOnlyInfo } from '../build/ratchet-node-only-info.js';
2
- import { ApplyCiEnvVariablesToFiles } from '../ci/apply-ci-env-variables-to-files.js';
3
- import { FilesToStaticClass } from '../files/files-to-static-class.js';
4
- import { PublishCiReleaseToSlack } from '../third-party/slack/publish-ci-release-to-slack.js';
5
- import { AbstractRatchetCliHandler } from './abstract-ratchet-cli-handler.js';
6
- export class RatchetCliHandler extends AbstractRatchetCliHandler {
7
- fetchHandlerMap() {
8
- return {
9
- 'apply-ci-env-variables-to-files': ApplyCiEnvVariablesToFiles.runFromCliArgs,
10
- 'files-to-static-class': FilesToStaticClass.runFromCliArgs,
11
- 'publish-ci-release-to-slack': PublishCiReleaseToSlack.runFromCliArgs,
12
- };
13
- }
14
- fetchVersionInfo() {
15
- return RatchetNodeOnlyInfo.buildInformation();
16
- }
17
- }
18
- //# sourceMappingURL=ratchet-cli-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ratchet-cli-handler.js","sourceRoot":"","sources":["../../src/cli/ratchet-cli-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,OAAO,iBAAkB,SAAQ,yBAAyB;IAC9D,eAAe;QACb,OAAO;YACL,iCAAiC,EAAE,0BAA0B,CAAC,cAAc;YAC5E,uBAAuB,EAAE,kBAAkB,CAAC,cAAc;YAC1D,6BAA6B,EAAE,uBAAuB,CAAC,cAAc;SACtE,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC;CACF"}
@@ -1,159 +0,0 @@
1
- import fs from 'fs';
2
- import { parse } from 'csv-parse';
3
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
4
- import { RequireRatchet } from '@bitblit/ratchet-common/lib/lang/require-ratchet.js';
5
- import { MapRatchet } from '@bitblit/ratchet-common/lib/lang/map-ratchet.js';
6
- import { stringify } from 'csv-stringify';
7
- import { Readable } from 'stream';
8
- export class CsvRatchet {
9
- static defaultParseOptions() {
10
- const rval = {
11
- delimiter: ',',
12
- columns: true,
13
- };
14
- return rval;
15
- }
16
- static defaultStringifyOptions() {
17
- const rval = {
18
- header: true,
19
- };
20
- return rval;
21
- }
22
- static async stringParse(input, pf, opts = CsvRatchet.defaultParseOptions()) {
23
- return CsvRatchet.streamParse(Readable.from(input), pf, opts);
24
- }
25
- static async streamParse(readStream, pf, opts = CsvRatchet.defaultParseOptions()) {
26
- return new Promise((res, rej) => {
27
- const rval = [];
28
- const p = parse(opts);
29
- p.on('readable', () => {
30
- let record = p.read();
31
- while (record) {
32
- const newVal = pf(record);
33
- if (newVal) {
34
- rval.push(newVal);
35
- }
36
- else {
37
- }
38
- record = p.read();
39
- }
40
- });
41
- p.on('error', (err) => {
42
- rej(err);
43
- });
44
- p.on('end', () => {
45
- res(rval);
46
- });
47
- readStream.pipe(p);
48
- });
49
- }
50
- static async fileParse(filename, pf) {
51
- const readStream = fs.createReadStream(filename);
52
- return CsvRatchet.streamParse(readStream, pf);
53
- }
54
- static async generateCsvData(objectsToConvert, opts = CsvRatchet.defaultStringifyOptions()) {
55
- Logger.silly('Converting %d items into csv file', objectsToConvert.length);
56
- const genProm = new Promise((res, rej) => {
57
- stringify(objectsToConvert, opts, function (err, data) {
58
- if (err) {
59
- rej(err);
60
- }
61
- else {
62
- res(data);
63
- }
64
- });
65
- });
66
- return genProm;
67
- }
68
- static async generateComparison(file1, file2, keyField) {
69
- RequireRatchet.notNullOrUndefined(file1, 'file1');
70
- RequireRatchet.notNullOrUndefined(file2, 'file2');
71
- RequireRatchet.notNullOrUndefined(keyField, 'keyField');
72
- Logger.info('Created csv compare with files %s and %s keyed on %s', file1, file2, keyField);
73
- let file1Parsed = await this.streamParse(fs.createReadStream(file1), (f) => {
74
- f;
75
- });
76
- file1Parsed = file1Parsed.map((m) => {
77
- const next = {};
78
- Object.keys(m).forEach((k) => {
79
- next[k.trim()] = m[k];
80
- });
81
- return next;
82
- });
83
- const file1Mapped = MapRatchet.mapByUniqueProperty(file1Parsed, keyField);
84
- let file2Parsed = await this.streamParse(fs.createReadStream(file2), (f) => {
85
- f;
86
- });
87
- file2Parsed = file2Parsed.map((m) => {
88
- const next = {};
89
- Object.keys(m).forEach((k) => {
90
- next[k.trim()] = m[k];
91
- });
92
- return next;
93
- });
94
- const file2Mapped = MapRatchet.mapByUniqueProperty(file2Parsed, keyField);
95
- const f1Only = [];
96
- const f2Only = [];
97
- const both = [];
98
- Array.from(file1Mapped.keys()).forEach((f1k) => {
99
- if (file2Mapped.has(f1k)) {
100
- both.push(f1k);
101
- }
102
- else {
103
- f1Only.push(f1k);
104
- }
105
- });
106
- Array.from(file2Mapped.keys()).forEach((f1k) => {
107
- if (!file1Mapped.has(f1k)) {
108
- f2Only.push(f1k);
109
- }
110
- });
111
- const rval = {
112
- file1Data: file1Mapped,
113
- file2Data: file2Mapped,
114
- file1OnlyKeys: f1Only,
115
- file2OnlyKeys: f2Only,
116
- bothFilesKeys: both,
117
- };
118
- return rval;
119
- }
120
- static async streamObjectsToCsv(srcSubject, output, inOpts) {
121
- RequireRatchet.notNullOrUndefined(srcSubject, 'srcSubject');
122
- RequireRatchet.notNullOrUndefined(output, 'output');
123
- const opts = inOpts || CsvRatchet.defaultStringifyOptions();
124
- Logger.silly('Running pipe to csv output : %j', opts);
125
- let count = 0;
126
- const genProm = new Promise((res, rej) => {
127
- const stringifier = stringify(opts);
128
- stringifier.on('error', (err) => {
129
- if (sub) {
130
- sub.unsubscribe();
131
- }
132
- rej(err);
133
- });
134
- stringifier.on('finish', () => {
135
- if (sub) {
136
- sub.unsubscribe();
137
- }
138
- res(count);
139
- });
140
- stringifier.pipe(output);
141
- const sub = srcSubject.subscribe((next) => {
142
- Logger.debug('Adding %j to csv', next);
143
- count++;
144
- stringifier.write(next);
145
- }, (err) => {
146
- Logger.error('Error generating : %s', err);
147
- rej(err);
148
- }, () => {
149
- Logger.debug('Finished');
150
- stringifier.end();
151
- });
152
- });
153
- return genProm;
154
- }
155
- static defaultParseFunction(row) {
156
- return row;
157
- }
158
- }
159
- //# sourceMappingURL=csv-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-ratchet.js","sourceRoot":"","sources":["../../src/csv/csv-ratchet.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { StringWritable } from '@bitblit/ratchet-common/lib/stream/string-writable.js';
3
- import { CsvRatchet } from './csv-ratchet.js';
4
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
5
- import { PromiseRatchet } from '@bitblit/ratchet-common/lib/lang/promise-ratchet.js';
6
- describe('#streamObjectsToCsv', function () {
7
- it('should parse a string', async () => {
8
- const testString = 'a,b\n1,2\n3,4\n';
9
- const out = await CsvRatchet.stringParse(testString, (CsvRatchet.defaultParseFunction));
10
- expect(out).toBeTruthy();
11
- expect(out.length).toEqual(2);
12
- expect(out[0].a).toEqual('1');
13
- expect(out[1].a).toEqual('3');
14
- });
15
- it('should generate csv data', async () => {
16
- const output = [
17
- { a: 1, b: '2' },
18
- { a: 3, b: '4' },
19
- ];
20
- const testString = await CsvRatchet.generateCsvData(output);
21
- expect(testString).toBeTruthy();
22
- expect(testString.length).toBeGreaterThan(10);
23
- });
24
- it('should stream objects to a csv', async () => {
25
- const sub = new Subject();
26
- const out = new StringWritable();
27
- const prom = CsvRatchet.streamObjectsToCsv(sub, out);
28
- for (let i = 1; i < 6; i++) {
29
- Logger.debug('Proc : %d', i);
30
- sub.next({ a: i, b: 'test ' + i + ' ,,' });
31
- await PromiseRatchet.wait(10);
32
- }
33
- sub.complete();
34
- Logger.debug('Waiting on write');
35
- const result = await prom;
36
- Logger.debug('Write complete');
37
- const val = out.value;
38
- expect(result).toEqual(5);
39
- Logger.debug('Have res : %d and val : \n%s', result, val);
40
- });
41
- });
42
- //# sourceMappingURL=csv-ratchet.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv-ratchet.spec.js","sourceRoot":"","sources":["../../src/csv/csv-ratchet.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAErF,QAAQ,CAAC,qBAAqB,EAAE;IAC9B,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,UAAU,GAAW,iBAAiB,CAAC;QAC7C,MAAM,GAAG,GAAe,MAAM,UAAU,CAAC,WAAW,CAAW,UAAU,EAAE,CAAA,UAAU,CAAC,oBAA8B,CAAA,CAAC,CAAC;QAEtH,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAe;YACzB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;YAChB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;SACjB,CAAC;QACF,MAAM,UAAU,GAAW,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAE9C,MAAM,GAAG,GAAsB,IAAI,OAAO,EAAY,CAAC;QACvD,MAAM,GAAG,GAAmB,IAAI,cAAc,EAAE,CAAC;QAEjD,MAAM,IAAI,GAAoB,UAAU,CAAC,kBAAkB,CAAW,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;YAC3C,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEf,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAW,GAAG,CAAC,KAAK,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,57 +0,0 @@
1
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
2
- import fs from 'fs';
3
- import { CliRatchet } from '../cli/cli-ratchet.js';
4
- export class FilesToStaticClass {
5
- static async process(fileNames, outClassName, outFileName = null) {
6
- if (!fileNames) {
7
- throw new Error('fileNames must be defined');
8
- }
9
- if (!outClassName) {
10
- throw new Error('outClassName must be defined');
11
- }
12
- if (fileNames.length === 0) {
13
- Logger.warn('Warning - no files supplied to process');
14
- }
15
- Logger.info('Generating class %s from files %j (output file: %s)', outClassName, fileNames, outFileName);
16
- let rval = '/** \n';
17
- rval += '* Holder for the constants to be used by consumers \n';
18
- rval += '* Moves it into code so that it can survive a trip through WebPack \n';
19
- rval += '*/ \n\n';
20
- rval += 'export class ' + outClassName + ' { \n';
21
- rval += ' public static readonly VALUES:Record<string, string> = { \n';
22
- for (let i = 0; i < fileNames.length; i++) {
23
- let contents = 'NOT-FOUND';
24
- if (fs.existsSync(fileNames[i])) {
25
- const trimmed = fileNames[i].substring(fileNames[i].lastIndexOf('/') + 1);
26
- contents = fs.readFileSync(fileNames[i]).toString();
27
- rval += i > 0 ? ',' : '';
28
- rval += '"' + trimmed + '":' + JSON.stringify(contents) + '\n';
29
- }
30
- else {
31
- Logger.warn('Could not find file %s', fileNames[i]);
32
- }
33
- }
34
- rval += '}; \n';
35
- rval += '}';
36
- if (!!outFileName) {
37
- Logger.info('Writing to %s', outFileName);
38
- fs.writeFileSync(outFileName, rval);
39
- }
40
- return rval;
41
- }
42
- static async runFromCliArgs(args) {
43
- if (args.length < 4) {
44
- Logger.infoP('Usage: ratchet-files-to-static-class {outFileName} {outClassName} {file0} ... {fileN}');
45
- return null;
46
- }
47
- else {
48
- const idx = CliRatchet.indexOfCommandArgument('files-to-static-class');
49
- const outFileName = process.argv[idx + 1];
50
- const outClassName = process.argv[idx + 2];
51
- const files = process.argv.slice(idx + 3);
52
- Logger.info('Running FilesToStaticClass from command line arguments Target: %s TargetClass: %s InFiles: %j', outFileName, outClassName, files);
53
- return FilesToStaticClass.process(files, outClassName, outFileName);
54
- }
55
- }
56
- }
57
- //# sourceMappingURL=files-to-static-class.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files-to-static-class.js","sourceRoot":"","sources":["../../src/files/files-to-static-class.ts"],"names":[],"mappings":"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"}