marcattacks 2.5.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -2
- package/dist/attacker.d.ts +6 -0
- package/dist/attacker.d.ts.map +1 -1
- package/dist/attacker.js +38 -0
- package/dist/attacker.js.map +1 -1
- package/dist/command.js +1 -0
- package/dist/command.js.map +1 -1
- package/dist/fix/binds.d.ts +5 -0
- package/dist/fix/binds.d.ts.map +1 -0
- package/dist/fix/binds.js +82 -0
- package/dist/fix/binds.js.map +1 -0
- package/dist/fix/conditions.d.ts +5 -0
- package/dist/fix/conditions.d.ts.map +1 -0
- package/dist/fix/conditions.js +111 -0
- package/dist/fix/conditions.js.map +1 -0
- package/dist/fix/fixes.d.ts +7 -0
- package/dist/fix/fixes.d.ts.map +1 -0
- package/dist/fix/fixes.js +478 -0
- package/dist/fix/fixes.js.map +1 -0
- package/dist/fix/index.d.ts +12 -0
- package/dist/fix/index.d.ts.map +1 -0
- package/dist/fix/index.js +40 -0
- package/dist/fix/index.js.map +1 -0
- package/dist/fix/parser.d.ts +25 -0
- package/dist/fix/parser.d.ts.map +1 -0
- package/dist/fix/parser.js +156 -0
- package/dist/fix/parser.js.map +1 -0
- package/dist/fix/path.d.ts +23 -0
- package/dist/fix/path.d.ts.map +1 -0
- package/dist/fix/path.js +351 -0
- package/dist/fix/path.js.map +1 -0
- package/dist/fix/signal.d.ts +2 -0
- package/dist/fix/signal.d.ts.map +1 -0
- package/dist/fix/signal.js +5 -0
- package/dist/fix/signal.js.map +1 -0
- package/dist/fix/util.d.ts +6 -0
- package/dist/fix/util.d.ts.map +1 -0
- package/dist/fix/util.js +133 -0
- package/dist/fix/util.js.map +1 -0
- package/dist/input/alephseq.d.ts.map +1 -1
- package/dist/input/alephseq.js +18 -5
- package/dist/input/alephseq.js.map +1 -1
- package/dist/input/fastxml.d.ts +3 -0
- package/dist/input/fastxml.d.ts.map +1 -0
- package/dist/input/fastxml.js +134 -0
- package/dist/input/fastxml.js.map +1 -0
- package/dist/input/xml.d.ts.map +1 -1
- package/dist/input/xml.js +4 -2
- package/dist/input/xml.js.map +1 -1
- package/dist/marcmap.d.ts.map +1 -1
- package/dist/marcmap.js +15 -3
- package/dist/marcmap.js.map +1 -1
- package/dist/output/alephseq.d.ts.map +1 -1
- package/dist/output/alephseq.js +29 -5
- package/dist/output/alephseq.js.map +1 -1
- package/dist/output/null.d.ts +3 -0
- package/dist/output/null.d.ts.map +1 -0
- package/dist/output/null.js +13 -0
- package/dist/output/null.js.map +1 -0
- package/dist/output/xml.d.ts.map +1 -1
- package/dist/output/xml.js +27 -0
- package/dist/output/xml.js.map +1 -1
- package/dist/stream/framer.d.ts.map +1 -0
- package/dist/stream/framer.js.map +1 -0
- package/dist/stream/worker-pool-str.d.ts.map +1 -0
- package/dist/stream/worker-pool-str.js.map +1 -0
- package/dist/stream/worker-pool.d.ts +10 -0
- package/dist/stream/worker-pool.d.ts.map +1 -0
- package/dist/stream/worker-pool.js +217 -0
- package/dist/stream/worker-pool.js.map +1 -0
- package/dist/transform/fix.d.ts +16 -0
- package/dist/transform/fix.d.ts.map +1 -0
- package/dist/transform/fix.js +46 -0
- package/dist/transform/fix.js.map +1 -0
- package/dist/transform/jsonata.d.ts +5 -0
- package/dist/transform/jsonata.d.ts.map +1 -1
- package/dist/transform/jsonata.js +45 -44
- package/dist/transform/jsonata.js.map +1 -1
- package/dist/transform/marcids.d.ts.map +1 -1
- package/dist/transform/marcids.js +3 -0
- package/dist/transform/marcids.js.map +1 -1
- package/dist/util/marc_record.d.ts +19 -0
- package/dist/util/marc_record.d.ts.map +1 -0
- package/dist/util/marc_record.js +16 -0
- package/dist/util/marc_record.js.map +1 -0
- package/dist/worker-str.d.ts.map +1 -0
- package/dist/worker-str.js.map +1 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +33 -0
- package/dist/worker.js.map +1 -0
- package/package.json +5 -2
- package/dist/output/mulitipart.d.ts +0 -7
- package/dist/output/mulitipart.d.ts.map +0 -1
- package/dist/output/mulitipart.js +0 -53
- package/dist/output/mulitipart.js.map +0 -1
- package/dist/output/text.d.ts +0 -6
- package/dist/output/text.d.ts.map +0 -1
- package/dist/output/text.js +0 -34
- package/dist/output/text.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,YAAY;AACZ,8CAA8C;AAC9C,gFAAgF;AAChF,+EAA+E;AAC/E,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,UAAyC,CAAC;AAEjE,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC/C,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;IACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,2CAA2C,CAAC,CAAC;AAC5E,CAAC;AACD,MAAM,MAAM,GAAuB,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAEvE,UAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzC,UAAW,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAkC,EAAE,EAAE;IACnE,IAAI,CAAC;QACD,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAG,8BAA8B;QAC1E,CAAC;QACD,UAAW,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,UAAW,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "marcattacks",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "A powerful streaming MARC21 to RDF converter with JSONata transformation and S3 support.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"marc21",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dist"
|
|
29
29
|
],
|
|
30
30
|
"scripts": {
|
|
31
|
-
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
31
|
+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --forceExit",
|
|
32
32
|
"build:ts": "npx tsc",
|
|
33
33
|
"build:watch": "npx tsc -w",
|
|
34
34
|
"demo:alephseq": "npx marcattacks --to alephseq data/sample.xml",
|
|
@@ -36,6 +36,9 @@
|
|
|
36
36
|
"demo:jsonl": "npx marcattacks --to jsonl data/sample.xml",
|
|
37
37
|
"demo:rdf": "npx marcattacks --to rdf --map marc2rdf data/sample.xml",
|
|
38
38
|
"demo:jsonld": "npx marcattacks --to jsonl --param fix=./demo/marc2rdf.jsonata data/sample.xml",
|
|
39
|
+
"demo:fix": "npx marcattacks --to jsonl --map fix --param fix=./demo/example.fix data/sample.xml",
|
|
40
|
+
"demo:fix:rdf": "npx marcattacks --to jsonl --map fix --param fix=./demo/marc2rdf.fix data/sample.xml",
|
|
41
|
+
"demo:workers": "npx marcattacks --to jsonl --param fix=./demo/marc2rdf.jsonata --workers 4 --info data/sample.xml",
|
|
39
42
|
"demo:biblio:one": "npx marcattacks --from json --info ./data/biblio.json",
|
|
40
43
|
"demo:biblio:all": "npx marcattacks --from jsonl --info https://biblio.ugent.be/exports/publications.json",
|
|
41
44
|
"demo:parquet": " npx marcattacks ./data/sample.xml --to parquet --map avram --param schema=./demo/avram.schema --info --out ./data/avram.parquet",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mulitipart.d.ts","sourceRoot":"","sources":["../../src/output/mulitipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,sBAA2B,GAAI,OAAO,CAAC,SAAS,CAAC,CAyDtF"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'stream';
|
|
2
|
-
import log4js from 'log4js';
|
|
3
|
-
const logger = log4js.getLogger();
|
|
4
|
-
export async function transform(opts = {}) {
|
|
5
|
-
let header = opts.header ? opts.header :
|
|
6
|
-
"Content-Type: multipart/mixed; boundary=\"marcattacks\"";
|
|
7
|
-
let delimiter = opts.delimiter ? opts.delimiter : "--marcattacks";
|
|
8
|
-
let isFirst = true;
|
|
9
|
-
return new Transform({
|
|
10
|
-
objectMode: true,
|
|
11
|
-
transform(data, _encoding, callback) {
|
|
12
|
-
if (Object.keys(data).length == 0) {
|
|
13
|
-
logger.debug('skipped empty record');
|
|
14
|
-
callback();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
let output = "";
|
|
18
|
-
if (isFirst) {
|
|
19
|
-
output += header + "\n\n";
|
|
20
|
-
isFirst = false;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
output += delimiter + "\n";
|
|
24
|
-
}
|
|
25
|
-
let fields = [];
|
|
26
|
-
let sortedKeys = Object.keys(data).sort();
|
|
27
|
-
sortedKeys.forEach(key => {
|
|
28
|
-
if (Array.isArray(data[key])) {
|
|
29
|
-
fields.push(`ARRAY[${data[key].length}]`);
|
|
30
|
-
}
|
|
31
|
-
else if (typeof data[key] === 'object') {
|
|
32
|
-
fields.push(`HASH[${Object.keys(data[key]).length}]`);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
fields.push(data[key]);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
output += fields.join(" ") + "\n";
|
|
39
|
-
logger.trace(`adding ${output.length} bytes`);
|
|
40
|
-
callback(null, output);
|
|
41
|
-
},
|
|
42
|
-
flush(callback) {
|
|
43
|
-
logger.debug('flush reached');
|
|
44
|
-
if (!isFirst) {
|
|
45
|
-
let output = delimiter + "--\n";
|
|
46
|
-
logger.trace(`adding ${output.length} bytes`);
|
|
47
|
-
this.push(output);
|
|
48
|
-
}
|
|
49
|
-
callback();
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=mulitipart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mulitipart.js","sourceRoot":"","sources":["../../src/output/mulitipart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAOlC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA+B,EAAE;IAC7D,IAAI,MAAM,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,yDAAyD,CAAC;IAC9D,IAAI,SAAS,GAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAE3E,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,IAAS,EAAE,SAAS,EAAE,QAAQ;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC;gBAC1B,OAAO,GAAG,KAAK,CAAC;YACpB,CAAC;iBACI,CAAC;gBACF,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,IAAI,MAAM,GAAc,EAAE,CAAC;YAE3B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAE1C,UAAU,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1D,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAElC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,QAAQ;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,IAAI,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,QAAQ,EAAE,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
package/dist/output/text.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/output/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKnC,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,iBAAsB,GAAI,OAAO,CAAC,SAAS,CAAC,CAkCjF"}
|
package/dist/output/text.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'stream';
|
|
2
|
-
import log4js from 'log4js';
|
|
3
|
-
const logger = log4js.getLogger();
|
|
4
|
-
export async function transform(opts = {}) {
|
|
5
|
-
let newline = opts.newline ? opts.newline : "no";
|
|
6
|
-
return new Transform({
|
|
7
|
-
objectMode: true,
|
|
8
|
-
transform(data, _encoding, callback) {
|
|
9
|
-
if (Object.keys(data).length == 0) {
|
|
10
|
-
logger.debug('skipped empty record');
|
|
11
|
-
callback();
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
let output = "";
|
|
15
|
-
let fields = [];
|
|
16
|
-
let sortedKeys = Object.keys(data).sort();
|
|
17
|
-
sortedKeys.forEach(key => {
|
|
18
|
-
if (Array.isArray(data[key])) {
|
|
19
|
-
fields.push(`ARRAY[${data[key].length}]`);
|
|
20
|
-
}
|
|
21
|
-
else if (typeof data[key] === 'object') {
|
|
22
|
-
fields.push(`HASH[${Object.keys(data[key]).length}]`);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
fields.push(data[key]);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
output += fields.join(delimiter) + "\n";
|
|
29
|
-
logger.trace(`adding ${output.length} bytes`);
|
|
30
|
-
callback(null, output);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=text.js.map
|
package/dist/output/text.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/output/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAMlC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA0B,EAAE;IACxD,IAAI,OAAO,GAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1D,OAAO,IAAI,SAAS,CAAC;QACjB,UAAU,EAAE,IAAI;QAChB,SAAS,CAAC,IAAS,EAAE,SAAS,EAAE,QAAQ;YACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAc,EAAE,CAAC;YAC3B,IAAI,UAAU,GAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAErD,UAAU,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9C,CAAC;qBACI,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1D,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAExC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|