marcattacks 2.0.0 → 2.2.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.
Files changed (107) hide show
  1. package/README.md +25 -13
  2. package/dist/attacker.d.ts +2 -0
  3. package/dist/attacker.d.ts.map +1 -0
  4. package/dist/attacker.js +164 -0
  5. package/dist/attacker.js.map +1 -0
  6. package/dist/filestream.d.ts +4 -0
  7. package/dist/filestream.d.ts.map +1 -0
  8. package/dist/filestream.js +32 -0
  9. package/dist/filestream.js.map +1 -0
  10. package/dist/index.js +13 -175
  11. package/dist/index.js.map +1 -1
  12. package/dist/input/alephseq.d.ts +2 -2
  13. package/dist/input/alephseq.d.ts.map +1 -1
  14. package/dist/input/alephseq.js +46 -76
  15. package/dist/input/alephseq.js.map +1 -1
  16. package/dist/input/json.d.ts +2 -2
  17. package/dist/input/json.d.ts.map +1 -1
  18. package/dist/input/json.js +15 -27
  19. package/dist/input/json.js.map +1 -1
  20. package/dist/input/jsonl.d.ts +2 -2
  21. package/dist/input/jsonl.d.ts.map +1 -1
  22. package/dist/input/jsonl.js +27 -46
  23. package/dist/input/jsonl.js.map +1 -1
  24. package/dist/input/marc.d.ts +2 -2
  25. package/dist/input/marc.d.ts.map +1 -1
  26. package/dist/input/marc.js +18 -37
  27. package/dist/input/marc.js.map +1 -1
  28. package/dist/input/rdf.d.ts +2 -2
  29. package/dist/input/rdf.d.ts.map +1 -1
  30. package/dist/input/rdf.js +23 -10
  31. package/dist/input/rdf.js.map +1 -1
  32. package/dist/{transform/rdf.d.ts → input/tsv.d.ts} +1 -1
  33. package/dist/input/tsv.d.ts.map +1 -0
  34. package/dist/input/tsv.js +45 -0
  35. package/dist/input/tsv.js.map +1 -0
  36. package/dist/input/xml.d.ts +2 -2
  37. package/dist/input/xml.d.ts.map +1 -1
  38. package/dist/input/xml.js +28 -92
  39. package/dist/input/xml.js.map +1 -1
  40. package/dist/output/alephseq.d.ts +1 -1
  41. package/dist/output/alephseq.d.ts.map +1 -1
  42. package/dist/output/alephseq.js +2 -2
  43. package/dist/output/alephseq.js.map +1 -1
  44. package/dist/output/json.d.ts +1 -1
  45. package/dist/output/json.d.ts.map +1 -1
  46. package/dist/output/json.js +2 -2
  47. package/dist/output/json.js.map +1 -1
  48. package/dist/output/jsonl.d.ts +1 -1
  49. package/dist/output/jsonl.d.ts.map +1 -1
  50. package/dist/output/jsonl.js +3 -3
  51. package/dist/output/jsonl.js.map +1 -1
  52. package/dist/output/parquet.d.ts +7 -0
  53. package/dist/output/parquet.d.ts.map +1 -0
  54. package/dist/output/parquet.js +15 -0
  55. package/dist/output/parquet.js.map +1 -0
  56. package/dist/output/rdf.d.ts +1 -1
  57. package/dist/output/rdf.d.ts.map +1 -1
  58. package/dist/output/rdf.js +3 -4
  59. package/dist/output/rdf.js.map +1 -1
  60. package/dist/output/tsv.d.ts +3 -0
  61. package/dist/output/tsv.d.ts.map +1 -0
  62. package/dist/output/tsv.js +37 -0
  63. package/dist/output/tsv.js.map +1 -0
  64. package/dist/output/xml.d.ts +1 -1
  65. package/dist/output/xml.d.ts.map +1 -1
  66. package/dist/output/xml.js +3 -3
  67. package/dist/output/xml.js.map +1 -1
  68. package/dist/s3stream.d.ts +3 -2
  69. package/dist/s3stream.d.ts.map +1 -1
  70. package/dist/s3stream.js +55 -3
  71. package/dist/s3stream.js.map +1 -1
  72. package/dist/sftpstream.d.ts +3 -3
  73. package/dist/sftpstream.d.ts.map +1 -1
  74. package/dist/sftpstream.js +48 -5
  75. package/dist/sftpstream.js.map +1 -1
  76. package/dist/transform/avram.d.ts +6 -0
  77. package/dist/transform/avram.d.ts.map +1 -0
  78. package/dist/transform/avram.js +37 -0
  79. package/dist/transform/avram.js.map +1 -0
  80. package/dist/transform/jsonata.d.ts +1 -1
  81. package/dist/transform/jsonata.d.ts.map +1 -1
  82. package/dist/transform/jsonata.js +9 -6
  83. package/dist/transform/jsonata.js.map +1 -1
  84. package/dist/transform/marc2rdf.d.ts +1 -1
  85. package/dist/transform/marc2rdf.d.ts.map +1 -1
  86. package/dist/transform/marc2rdf.js +4 -2
  87. package/dist/transform/marc2rdf.js.map +1 -1
  88. package/dist/transform/marcids.d.ts +6 -0
  89. package/dist/transform/marcids.d.ts.map +1 -0
  90. package/dist/transform/marcids.js +22 -0
  91. package/dist/transform/marcids.js.map +1 -0
  92. package/dist/transform/notation3.d.ts +1 -1
  93. package/dist/transform/notation3.d.ts.map +1 -1
  94. package/dist/transform/notation3.js +3 -3
  95. package/dist/transform/notation3.js.map +1 -1
  96. package/dist/util/stream_helpers.d.ts +8 -0
  97. package/dist/util/stream_helpers.d.ts.map +1 -1
  98. package/dist/util/stream_helpers.js +77 -3
  99. package/dist/util/stream_helpers.js.map +1 -1
  100. package/package.json +11 -7
  101. package/dist/transform/json.d.ts +0 -3
  102. package/dist/transform/json.d.ts.map +0 -1
  103. package/dist/transform/json.js +0 -32
  104. package/dist/transform/json.js.map +0 -1
  105. package/dist/transform/rdf.d.ts.map +0 -1
  106. package/dist/transform/rdf.js +0 -370
  107. package/dist/transform/rdf.js.map +0 -1
package/README.md CHANGED
@@ -24,31 +24,37 @@ npm link
24
24
  Generate JSON:
25
25
 
26
26
  ```
27
- marcattacks --to json <file>
27
+ marcattacks --to json ./data/sample.xml
28
+ ```
29
+
30
+ We can also do this for tar (and) gzipped files
31
+
32
+ ```
33
+ marcattacks --to json ./data/sample.tar.gz
28
34
  ```
29
35
 
30
36
  Generate Aleph sequential:
31
37
 
32
38
  ```
33
- marcattacks --to alephseq <file>
39
+ marcattacks --to alephseq ./data/sample.xml
34
40
  ```
35
41
 
36
42
  Generate RDF:
37
43
 
38
44
  ```
39
- marcattacks --to rdf --map marc2rdf <file>
45
+ marcattacks --to rdf --map marc2rdf ./data/sample.xml
40
46
  ```
41
47
 
42
48
  Generate XML:
43
49
 
44
50
  ```
45
- marcattacks --to xml <file>
51
+ marcattacks --from alephseq --to xml ./data/one.alephseq
46
52
  ```
47
53
 
48
54
  Transform the MARC input using a [JSONata](https://docs.jsonata.org/overview.html) expression or file:
49
55
 
50
56
  ```
51
- marcattacks <file> --fix ./demo/demo.jsonata
57
+ marcattacks --param fix=./demo/demo.jsonata ./data/sample.xml
52
58
  ```
53
59
 
54
60
  ## Remote files
@@ -88,6 +94,7 @@ use `s3s://...` for using an SSL layer.
88
94
  - jsonl
89
95
  - marc (ISO2709)
90
96
  - rdf
97
+ - tsv
91
98
  - xml (MARCXML)
92
99
 
93
100
  ### Output (--to)
@@ -95,25 +102,28 @@ use `s3s://...` for using an SSL layer.
95
102
  - alephseq (Aleph sequential)
96
103
  - json
97
104
  - jsonl
105
+ - parquet
98
106
  - rdf
107
+ - tsv
99
108
  - xml (MARCXML)
100
109
 
101
110
  ### Transform (--map)
102
111
 
112
+ - avram : A mapper from MARC to [Avram](https://format.gbv.de/schema/avram/specification)
103
113
  - jsonata : _default_ A jsonata fixer
104
- - marc2rdf : A mapper from MARC to RDF
114
+ - marcids : A mapper from MARC to a list of record ids
115
+ - marc2rdf : A mapper from MARC to RDF (demonstrator)
105
116
  - notation3 : A [Notation3](https://w3c.github.io/N3/spec/) reasoner
106
117
 
107
118
  Or, provide your own transformers using JavaScript plugins. See: ./plugin/demo.js for an example.
108
119
 
109
- ### Fix (--fix)
120
+ ### Param (--param)
110
121
 
111
- Provide a fix file to the mapper. See examples:
122
+ Provide a params to the mapper, input and output. See examples:
112
123
 
113
124
  - `npm run demo:jsonld`
114
125
  - `npm run demo:n3`
115
126
  - `npm run biblio:one`
116
- - `npm run biblio:all`
117
127
 
118
128
  ### Writable (--out)
119
129
 
@@ -121,9 +131,8 @@ Provide a fix file to the mapper. See examples:
121
131
  - _file path_
122
132
  - sftp://username@host:port/path
123
133
  - s3://accessKey:secretKey@host:port/bucket/key (or s3s://)
124
- - stdin://local
125
134
 
126
- ### Logging (--info,--debug,--log)
135
+ ### Logging (--info,--debug,--trace,--log)
127
136
 
128
137
  Logging messages can be provided with the `--info`, `--debug` and `--trace` options.
129
138
 
@@ -133,6 +142,9 @@ Default the logging format is a text format that is written to stderr. This logg
133
142
  - `--log stdout` : write logs to the stdout
134
143
  - `--log json+stdout` : write logs in a JSON format and to the stdout
135
144
 
136
- ### Compression (-z)
145
+ ### Compression (--z,--tar)
146
+
147
+ Gzip and tar compression of input files can be automatically detected by file name extension. If no such extensions are provided the following flags can be set to force decompression:
137
148
 
138
- - `-z` : the input file is gzipped
149
+ - `--z` : the input file is gzipped
150
+ - `--tar` : the input file is tarred
@@ -0,0 +1,2 @@
1
+ export declare function attack(url: string, opts: any): Promise<void>;
2
+ //# sourceMappingURL=attacker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attacker.d.ts","sourceRoot":"","sources":["../src/attacker.ts"],"names":[],"mappings":"AAsBA,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,CA6JnE"}
@@ -0,0 +1,164 @@
1
+ import log4js from 'log4js';
2
+ import { loadPlugin } from './plugin-loader.js';
3
+ import { sftpLatestFile, sftpReadStream, sftpWriteStream } from './sftpstream.js';
4
+ import { httpReadStream } from './httpstream.js';
5
+ import { Readable } from 'stream';
6
+ import { pathToFileURL } from "node:url";
7
+ import {} from 'node:stream';
8
+ import { SlowWritable } from './slow-writable.js';
9
+ import path from "node:path";
10
+ import fs from 'fs';
11
+ import { s3LatestObject, s3ReadStream, s3WriteStream } from './s3stream.js';
12
+ import { pipeline } from 'node:stream/promises';
13
+ import { createCountableSkippedStream, createUntarredStream, createUncompressedStream, createVerboseStream } from './util/stream_helpers.js';
14
+ import { fileLatestFile, fileReadStream } from './filestream.js';
15
+ const logger = log4js.getLogger();
16
+ export async function attack(url, opts) {
17
+ try {
18
+ let inputFile;
19
+ if (fs.existsSync(url)) {
20
+ const filePath = path.resolve(process.cwd(), url);
21
+ inputFile = pathToFileURL(filePath);
22
+ }
23
+ else {
24
+ inputFile = new URL(url);
25
+ }
26
+ logger.info(`using: ${getCleanURL(inputFile)}`);
27
+ let readableStream;
28
+ if (inputFile.protocol.startsWith("http")) {
29
+ readableStream = await httpReadStream(inputFile.toString());
30
+ }
31
+ else if (inputFile.protocol.startsWith("s3")) {
32
+ // optional resolve @latest
33
+ inputFile = await s3LatestObject(inputFile, opts);
34
+ readableStream = await s3ReadStream(inputFile, opts);
35
+ }
36
+ else if (inputFile.protocol === 'sftp:') {
37
+ // optional resolve @latest
38
+ inputFile = await sftpLatestFile(inputFile, opts);
39
+ readableStream = await sftpReadStream(inputFile, opts);
40
+ }
41
+ else if (inputFile.protocol === 'stdin:') {
42
+ readableStream = process.stdin;
43
+ }
44
+ else {
45
+ inputFile = await fileLatestFile(inputFile);
46
+ readableStream = await fileReadStream(inputFile);
47
+ }
48
+ const stages = [readableStream];
49
+ if (opts.z || inputFile.pathname.endsWith(".gz")) {
50
+ stages.push(createUncompressedStream());
51
+ }
52
+ if (opts.tar || inputFile.pathname.match(/.tar(.\w+$)?$/) || inputFile.pathname.endsWith(".tgz")) {
53
+ stages.push(await createUntarredStream());
54
+ }
55
+ if (opts.from) {
56
+ const mod = await loadPlugin(opts.from, 'input');
57
+ const transformer = await mod.transform(Object.assign({ path: inputFile }, opts.param));
58
+ transformer.on('error', (error) => {
59
+ if (error.code === 'ERR_STREAM_PREMATURE_CLOSE') {
60
+ stages[0]?.destroy();
61
+ }
62
+ else {
63
+ logger.error("input stream processing error: ", error.message);
64
+ stages[0]?.destroy();
65
+ process.exitCode = 2;
66
+ }
67
+ });
68
+ transformer.on('finish', () => logger.debug('writeable finished'));
69
+ transformer.on('end', () => logger.debug('readable ended'));
70
+ transformer.on('close', () => logger.debug('stream closed'));
71
+ stages.push(transformer);
72
+ }
73
+ else {
74
+ console.error(`Need --from`);
75
+ process.exit(1);
76
+ }
77
+ if (opts.count || opts.skip) {
78
+ stages.push(createCountableSkippedStream(opts.count, opts.skip));
79
+ }
80
+ stages.push(createVerboseStream());
81
+ if (opts.map) {
82
+ const mod = await loadPlugin(opts.map, 'transform');
83
+ const transformer = await mod.transform(opts.param);
84
+ stages.push(transformer);
85
+ }
86
+ let outStream;
87
+ if (isWritableStream(opts.out)) {
88
+ outStream = opts.out;
89
+ }
90
+ else if (opts.out === '@slow') {
91
+ outStream = new SlowWritable({ delayMs: 100 });
92
+ }
93
+ else if (opts.out === '@errors') {
94
+ outStream = new SlowWritable({ simulateErrorEveryN: 2 });
95
+ }
96
+ else if (opts.out) {
97
+ if (opts.out.startsWith("sftp")) {
98
+ const url = new URL(opts.out);
99
+ if (process.env.SFTP_USERNAME) {
100
+ url.username = process.env.SFTP_USERNAME;
101
+ }
102
+ if (process.env.SFTP_PASSWORD) {
103
+ url.password = process.env.SFTP_PASSWORD;
104
+ }
105
+ logger.info(`put ${getCleanURL(url)}`);
106
+ outStream = await sftpWriteStream(url, opts);
107
+ }
108
+ else if (opts.out.startsWith("s3")) {
109
+ const url = new URL(opts.out);
110
+ if (process.env.S3_ACCESS_KEY) {
111
+ url.username = process.env.S3_ACCESS_KEY;
112
+ }
113
+ if (process.env.S3_SECRET_KEY) {
114
+ url.password = process.env.S3_SECRET_KEY;
115
+ }
116
+ logger.info(`put ${getCleanURL(url)}`);
117
+ outStream = await s3WriteStream(url, {});
118
+ }
119
+ else {
120
+ outStream = fs.createWriteStream(opts.out, { encoding: 'utf-8' });
121
+ }
122
+ }
123
+ else {
124
+ outStream = process.stdout;
125
+ }
126
+ if (opts.to) {
127
+ const mod = await loadPlugin(opts.to, 'output');
128
+ stages.push(await mod.transform(opts.param));
129
+ stages.push(outStream);
130
+ try {
131
+ await pipeline(stages);
132
+ logger.info("pipeline finished cleanly");
133
+ }
134
+ catch (err) {
135
+ if (err.code === 'ERR_STREAM_PREMATURE_CLOSE') {
136
+ logger.info("Stream closed by limiter.");
137
+ }
138
+ else {
139
+ logger.error("pipeline error:", err);
140
+ process.exitCode = 3;
141
+ }
142
+ }
143
+ }
144
+ }
145
+ catch (e) {
146
+ logger.error(`process crashed with: ${e}`);
147
+ process.exitCode = 8;
148
+ }
149
+ }
150
+ function getCleanURL(url) {
151
+ const tempUrl = new URL(url.href); // Clone to avoid mutating original
152
+ tempUrl.username = '***';
153
+ tempUrl.password = '***';
154
+ return tempUrl;
155
+ }
156
+ function isWritableStream(obj) {
157
+ return (obj !== null &&
158
+ typeof obj === 'object' &&
159
+ typeof obj.write === 'function' &&
160
+ typeof obj.end === 'function' &&
161
+ // internal state check
162
+ obj.writable !== false);
163
+ }
164
+ //# sourceMappingURL=attacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attacker.js","sourceRoot":"","sources":["../src/attacker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Readable } from "stream";
2
+ export declare function fileReadStream(url: URL): Promise<Readable>;
3
+ export declare function fileLatestFile(url: URL): Promise<URL>;
4
+ //# sourceMappingURL=filestream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filestream.d.ts","sourceRoot":"","sources":["../src/filestream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKvC,wBAAsB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAI,OAAO,CAAC,QAAQ,CAAC,CAEjE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAI,OAAO,CAAC,GAAG,CAAC,CA6B5D"}
@@ -0,0 +1,32 @@
1
+ import fs from "fs";
2
+ import log4js from 'log4js';
3
+ const logger = log4js.getLogger();
4
+ export async function fileReadStream(url) {
5
+ return fs.createReadStream(url);
6
+ }
7
+ export async function fileLatestFile(url) {
8
+ return new Promise((resolve) => {
9
+ logger.debug(url.href);
10
+ if (!url.href.includes("@latest:")) {
11
+ resolve(url);
12
+ return;
13
+ }
14
+ const directory = url.pathname.replaceAll(/@latest:.*/g, "");
15
+ const extension = url.pathname.replaceAll(/.*@latest:/g, "");
16
+ logger.debug(`directory: ${directory} ; extension: ${extension}`);
17
+ fs.readdir(directory, (err, files) => {
18
+ if (err) {
19
+ throw new Error("Error finding latest file:", err);
20
+ }
21
+ for (let i = 0; i < files.length; i++) {
22
+ if (files[i]?.toLowerCase().endsWith(extension)) {
23
+ logger.info(`resolved as file://${directory}${files[i]}`);
24
+ resolve(new URL("file://" + directory + files[i]));
25
+ return;
26
+ }
27
+ }
28
+ throw new Error("No latest file found!");
29
+ });
30
+ });
31
+ }
32
+ //# sourceMappingURL=filestream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filestream.js","sourceRoot":"","sources":["../src/filestream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAQ;IACzC,OAAO,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAQ;IACzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,CAAC,cAAc,SAAS,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAElE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAC,KAAK,EAAE,EAAE;YACjC,IAAI,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAG,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,sBAAsB,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC1D,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnD,OAAO;gBACX,CAAC;YACF,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import log4js from 'log4js';
3
3
  import { program } from 'commander';
4
- import { loadPlugin } from './plugin-loader.js';
5
- import { sftpReadStream, sftpWriteStream, sftpLatestFile } from './sftpstream.js';
6
- import { httpReadStream } from './httpstream.js';
7
- import { Readable } from 'stream';
8
- import { pathToFileURL } from "node:url";
9
- import { SlowWritable } from './slow-writable.js';
10
4
  import path from "node:path";
11
- import fs from 'fs';
12
- import { s3ReaderStream, s3WriterStream } from './s3stream.js';
13
5
  import dotenv from 'dotenv';
14
- import { pipeline } from 'node:stream/promises';
15
- import { createGunzip } from 'zlib';
16
- import { createCountableSkippedStream, createVerboseStream } from './util/stream_helpers.js';
6
+ import { attack } from './attacker.js';
7
+ import { asyncWrapProviders } from 'node:async_hooks';
17
8
  program.version('0.1.0')
18
9
  .argument('<file>')
19
10
  .option('-c,--config <config>', 'config .env', path.join(process.cwd(), '.env'))
@@ -21,8 +12,10 @@ program.version('0.1.0')
21
12
  .option('-t,--to <output>', 'output type', 'json')
22
13
  .option('-m,--map <map>', 'data mapper', 'jsonata')
23
14
  .option('--fix <what>', 'jsonata')
15
+ .option('-p,--param <key=value>', 'repeated params', collect, {})
24
16
  .option('-o,--out <file>', 'output file')
25
- .option('-z', 'compressed')
17
+ .option('--z', 'uncompress input')
18
+ .option('--tar', 'untar input')
26
19
  .option('--count <num>', 'output only <num> records')
27
20
  .option('--skip <num>', 'skip first <num> records')
28
21
  .option('--key <keyfile>', 'private key file')
@@ -65,7 +58,6 @@ if (opts.trace) {
65
58
  if (opts.config) {
66
59
  dotenv.config({ path: opts.config, quiet: true });
67
60
  }
68
- logger.info('here');
69
61
  main();
70
62
  function configureDefaultLogger(output) {
71
63
  log4js.configure({
@@ -117,175 +109,21 @@ async function main() {
117
109
  console.error(`need an input file`);
118
110
  process.exit(2);
119
111
  }
120
- let inputFile;
121
- if (fs.existsSync(url)) {
122
- const filePath = path.resolve(process.cwd(), url);
123
- inputFile = pathToFileURL(filePath);
124
- }
125
- else {
126
- inputFile = new URL(url);
127
- }
128
- logger.info(`using: ${getCleanURL(inputFile)}`);
129
- let readableStream;
130
- if (inputFile.protocol.startsWith("http")) {
131
- readableStream = await httpReadStream(inputFile.toString());
132
- }
133
- else if (inputFile.protocol.startsWith("s3")) {
134
- readableStream = await s3ReaderStream(inputFile, {});
135
- }
136
- else if (inputFile.protocol === 'sftp:') {
137
- const config = makeSftpConfig(inputFile, opts);
138
- let remotePath;
139
- if (inputFile.pathname.match(/\/@latest:\w+$/)) {
140
- const remoteDir = inputFile.pathname.replace(/\/@latest.*/, "");
141
- const extension = inputFile.pathname.replace(/.*\/@latest:/, "");
142
- remotePath = await sftpLatestFile(config, remoteDir, extension);
143
- }
144
- else {
145
- remotePath = inputFile.pathname;
146
- }
147
- readableStream = await sftpReadStream(remotePath, config);
148
- }
149
- else if (inputFile.protocol === 'stdin:') {
150
- readableStream = process.stdin;
151
- }
152
- else {
153
- readableStream = fs.createReadStream(inputFile);
154
- }
155
- let inputStream;
156
- if (opts.z) {
157
- inputStream = getDecompressedStream(readableStream);
158
- }
159
- else {
160
- inputStream = readableStream;
161
- }
162
- let objectStream;
163
- if (opts.from) {
164
- const mod = await loadPlugin(opts.from, 'input');
165
- objectStream = await mod.stream2readable(inputStream, {
166
- path: inputFile
167
- });
168
- objectStream.on('error', (error) => {
169
- if (error.code === 'ERR_STREAM_PREMATURE_CLOSE') {
170
- inputStream.destroy();
171
- }
172
- else {
173
- logger.error("input stream processing error: ", error.message);
174
- inputStream.destroy();
175
- process.exitCode = 2;
176
- }
177
- });
178
- }
179
- else {
180
- console.error(`Need --from`);
181
- process.exit(1);
182
- }
183
- const stages = [objectStream];
184
- if (opts.count || opts.skip) {
185
- stages.push(createCountableSkippedStream(opts.count, opts.skip));
186
- }
187
- stages.push(createVerboseStream());
188
- if (opts.map) {
189
- const mod = await loadPlugin(opts.map, 'transform');
190
- const transformer = await mod.transform(opts.fix);
191
- stages.push(transformer);
192
- }
193
- let outStream;
194
- if (opts.out === '@slow') {
195
- outStream = new SlowWritable({ delayMs: 100 });
196
- }
197
- else if (opts.out === '@errors') {
198
- outStream = new SlowWritable({ simulateErrorEveryN: 2 });
199
- }
200
- else if (opts.out) {
201
- if (opts.out.startsWith("sftp")) {
202
- const url = new URL(opts.out);
203
- if (process.env.SFTP_USERNAME) {
204
- url.username = process.env.SFTP_USERNAME;
205
- }
206
- if (process.env.SFTP_PASSWORD) {
207
- url.password = process.env.SFTP_PASSWORD;
208
- }
209
- const config = makeSftpConfig(url, opts);
210
- logger.info(`put ${getCleanURL(url)}`);
211
- outStream = await sftpWriteStream(url.href, config);
212
- }
213
- else if (opts.out.startsWith("s3")) {
214
- const url = new URL(opts.out);
215
- if (process.env.S3_ACCESS_KEY) {
216
- url.username = process.env.S3_ACCESS_KEY;
217
- }
218
- if (process.env.S3_SECRET_KEY) {
219
- url.password = process.env.S3_SECRET_KEY;
220
- }
221
- logger.info(`put ${getCleanURL(url)}`);
222
- outStream = await s3WriterStream(url, {});
223
- }
224
- else {
225
- outStream = fs.createWriteStream(opts.out, { encoding: 'utf-8' });
226
- }
227
- }
228
- else {
229
- outStream = process.stdout;
230
- }
231
- if (opts.to) {
232
- const mod = await loadPlugin(opts.to, 'output');
233
- stages.push(await mod.transform());
234
- stages.push(outStream);
235
- try {
236
- await pipeline(stages);
237
- logger.info("pipeline finished cleanly");
238
- }
239
- catch (err) {
240
- if (err.code === 'ERR_STREAM_PREMATURE_CLOSE') {
241
- logger.info("Stream closed by limiter.");
242
- }
243
- else {
244
- logger.error("pipeline error:", err);
245
- process.exitCode = 3;
246
- }
247
- }
248
- }
112
+ await attack(url, opts);
249
113
  }
250
114
  catch (e) {
251
115
  logger.error(`process crashed with: ${e}`);
252
116
  process.exitCode = 8;
253
117
  }
254
118
  }
255
- function getCleanURL(url) {
256
- const tempUrl = new URL(url.href); // Clone to avoid mutating original
257
- tempUrl.username = '***';
258
- tempUrl.password = '***';
259
- return tempUrl;
260
- }
261
- function makeSftpConfig(inputFile, opts) {
262
- let privateKey = undefined;
263
- if (opts.key) {
264
- privateKey = fs.readFileSync(opts.key, { encoding: 'utf-8' });
119
+ function collect(value, previous) {
120
+ const keyval = value.split("=", 2);
121
+ if (keyval.length == 2 && keyval[0]) {
122
+ previous[keyval[0]] = keyval[1];
123
+ return previous;
265
124
  }
266
- else if (opts.keyEnv) {
267
- privateKey = process.env[opts.keyEnv];
268
- }
269
- let config = {
270
- host: inputFile.hostname,
271
- port: Number(inputFile.port) ?? 22,
272
- username: inputFile.username
273
- };
274
- if (inputFile.password) {
275
- config.password = inputFile.password;
276
- }
277
- if (privateKey) {
278
- config.privateKey = privateKey;
125
+ else {
126
+ return previous;
279
127
  }
280
- return config;
281
- }
282
- function getDecompressedStream(sourceStream) {
283
- const gunzip = createGunzip();
284
- // Forward errors from the source to the gunzip stream
285
- sourceStream.on('error', (err) => {
286
- logger.error("gunzip error: ", err.message);
287
- gunzip.emit('error', err);
288
- });
289
- return sourceStream.pipe(gunzip);
290
128
  }
291
129
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { Readable } from "stream";
2
- export declare function stream2readable(stream: Readable, _opts: any): Promise<Readable>;
1
+ import { Transform } from "stream";
2
+ export declare function transform(_opts: any): Promise<Transform>;
3
3
  //# sourceMappingURL=alephseq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alephseq.d.ts","sourceRoot":"","sources":["../../src/input/alephseq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,wBAAsB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAI,OAAO,CAAC,QAAQ,CAAC,CA8FtF"}
1
+ {"version":3,"file":"alephseq.d.ts","sourceRoot":"","sources":["../../src/input/alephseq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,QAAQ,CAAC;AAK3D,wBAAsB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CA8D9D"}