marcattacks 2.3.0 → 2.3.2
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.
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAkE9D"}
|
package/dist/input/alephseq.js
CHANGED
|
@@ -6,6 +6,33 @@ export async function transform(_opts) {
|
|
|
6
6
|
let rec = [];
|
|
7
7
|
let previd = "";
|
|
8
8
|
let tail = "";
|
|
9
|
+
function processLine(line, stream) {
|
|
10
|
+
if (!line.match(/^\w+\s[\x20-\x7E]{5}\sL\s.*/u)) {
|
|
11
|
+
logger.error(`syntax error in record ${recordNum + 1}`);
|
|
12
|
+
logger.error(`error> ${line}`);
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const [id, ...rest] = line.split(" ");
|
|
16
|
+
const lineData = rest.join(" ");
|
|
17
|
+
if (previd && previd !== id) {
|
|
18
|
+
stream.push({ record: rec });
|
|
19
|
+
rec = [];
|
|
20
|
+
recordNum++;
|
|
21
|
+
}
|
|
22
|
+
const tag = lineData.substring(0, 3);
|
|
23
|
+
const ind1 = lineData.substring(3, 4);
|
|
24
|
+
const ind2 = lineData.substring(4, 5);
|
|
25
|
+
const sf = lineData.substring(8);
|
|
26
|
+
const parts = sf.split(/\$\$(.)/);
|
|
27
|
+
if (tag === 'FMT' || tag === 'LDR' || tag.startsWith("00")) {
|
|
28
|
+
rec.push([tag, ind1, ind2, "_", ...parts]);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
rec.push([tag, ind1, ind2, ...parts.slice(1)]);
|
|
32
|
+
}
|
|
33
|
+
previd = id;
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
9
36
|
return new Transform({
|
|
10
37
|
objectMode: true,
|
|
11
38
|
transform(chunk, _encoding, callback) {
|
|
@@ -15,36 +42,13 @@ export async function transform(_opts) {
|
|
|
15
42
|
for (const line of lines) {
|
|
16
43
|
if (line.length === 0)
|
|
17
44
|
continue;
|
|
18
|
-
|
|
19
|
-
logger.error(`syntax error in record ${recordNum + 1}`);
|
|
20
|
-
logger.error(`error> ${line}`);
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
const [id, ...rest] = line.split(" ");
|
|
24
|
-
const lineData = rest.join(" ");
|
|
25
|
-
if (previd && previd !== id) {
|
|
26
|
-
this.push({ record: rec });
|
|
27
|
-
rec = [];
|
|
28
|
-
recordNum++;
|
|
29
|
-
}
|
|
30
|
-
const tag = lineData?.substring(0, 3);
|
|
31
|
-
const ind1 = lineData?.substring(3, 4);
|
|
32
|
-
const ind2 = lineData?.substring(4, 5);
|
|
33
|
-
const sf = lineData?.substring(8);
|
|
34
|
-
const parts = sf.split(/\$\$(.)/);
|
|
35
|
-
if (tag === 'FMT' || tag === 'LDR' || tag.startsWith("00")) {
|
|
36
|
-
rec.push([tag, ind1, ind2, "_", ...parts]);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
rec.push([tag, ind1, ind2, ...parts.slice(1)]);
|
|
40
|
-
}
|
|
41
|
-
previd = id;
|
|
45
|
+
processLine(line, this);
|
|
42
46
|
}
|
|
43
47
|
callback();
|
|
44
48
|
},
|
|
45
49
|
flush(callback) {
|
|
46
|
-
if (tail) {
|
|
47
|
-
|
|
50
|
+
if (tail.length > 0) {
|
|
51
|
+
processLine(tail, this);
|
|
48
52
|
}
|
|
49
53
|
if (rec.length > 0) {
|
|
50
54
|
this.push({ record: rec });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alephseq.js","sourceRoot":"","sources":["../../src/input/alephseq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,QAAQ,CAAC;AAC3D,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAU;IACtC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,GAAG,GAAe,EAAE,CAAC;IACzB,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,
|
|
1
|
+
{"version":3,"file":"alephseq.js","sourceRoot":"","sources":["../../src/input/alephseq.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filestream.d.ts","sourceRoot":"","sources":["../../src/stream/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,
|
|
1
|
+
{"version":3,"file":"filestream.d.ts","sourceRoot":"","sources":["../../src/stream/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,CAsD5D;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAuC5D"}
|
|
@@ -15,18 +15,40 @@ export async function fileLatestFile(url) {
|
|
|
15
15
|
const directory = url.pathname.replaceAll(/@latest:.*/g, "");
|
|
16
16
|
const extension = url.pathname.replaceAll(/.*@latest:/g, "");
|
|
17
17
|
logger.debug(`directory: ${directory} ; extension: ${extension}`);
|
|
18
|
+
let candidate;
|
|
19
|
+
let candidateStats;
|
|
18
20
|
fs.readdir(directory, (err, files) => {
|
|
19
21
|
if (err) {
|
|
20
22
|
throw new Error("Error finding latest file:", err);
|
|
21
23
|
}
|
|
22
24
|
for (let i = 0; i < files.length; i++) {
|
|
23
25
|
if (files[i]?.toLowerCase().endsWith(extension)) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
const testFile = "file://" + directory + files[i];
|
|
27
|
+
const stats = fs.statSync(directory + files[i]);
|
|
28
|
+
if (candidate) {
|
|
29
|
+
if (stats.mtime > candidateStats.mtime) {
|
|
30
|
+
logger.debug(`found a more recent ${testFile} than ${candidate}`);
|
|
31
|
+
candidate = testFile;
|
|
32
|
+
candidateStats = stats;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
logger.debug(`found ${testFile}, but older than ${candidate}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
logger.debug(`set candidate to ${testFile}`);
|
|
40
|
+
candidate = testFile;
|
|
41
|
+
candidateStats = stats;
|
|
42
|
+
}
|
|
27
43
|
}
|
|
28
44
|
}
|
|
29
|
-
|
|
45
|
+
if (!candidate) {
|
|
46
|
+
throw new Error("No latest file found!");
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
logger.info(`resolved as ${candidate}`);
|
|
50
|
+
resolve(new URL(candidate));
|
|
51
|
+
}
|
|
30
52
|
});
|
|
31
53
|
});
|
|
32
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filestream.js","sourceRoot":"","sources":["../../src/stream/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,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,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;
|
|
1
|
+
{"version":3,"file":"filestream.js","sourceRoot":"","sources":["../../src/stream/filestream.ts"],"names":[],"mappings":"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"}
|