@gmod/trix 3.0.7 → 3.0.9
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/esm/dedupe.js +5 -10
- package/esm/dedupe.js.map +1 -1
- package/esm/index.js +97 -175
- package/esm/index.js.map +1 -1
- package/esm/util.js +7 -13
- package/esm/util.js.map +1 -1
- package/package.json +4 -2
package/esm/dedupe.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dedupe = dedupe;
|
|
4
1
|
// from https://github.com/seriousManual/dedupe/blob/master/LICENSE
|
|
5
|
-
function dedupe(list, hasher) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var entry = list_1[_i];
|
|
11
|
-
var hashed = hasher(entry);
|
|
2
|
+
export function dedupe(list, hasher = JSON.stringify) {
|
|
3
|
+
const clone = [];
|
|
4
|
+
const lookup = new Set();
|
|
5
|
+
for (const entry of list) {
|
|
6
|
+
const hashed = hasher(entry);
|
|
12
7
|
if (!lookup.has(hashed)) {
|
|
13
8
|
clone.push(entry);
|
|
14
9
|
lookup.add(hashed);
|
package/esm/dedupe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"AAEA,mEAAmE;AACnE,MAAM,UAAU,MAAM,CAAI,IAAS,EAAE,SAAoB,IAAI,CAAC,SAAS;IACrE,MAAM,KAAK,GAAQ,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAE5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -1,186 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
var dedupe_ts_1 = require("./dedupe.js");
|
|
51
|
-
var util_ts_1 = require("./util.js");
|
|
52
|
-
var CHUNK_SIZE = 65536;
|
|
1
|
+
import { dedupe } from "./dedupe.js";
|
|
2
|
+
import { concatUint8Array } from "./util.js";
|
|
3
|
+
const CHUNK_SIZE = 65536;
|
|
53
4
|
// this is the number of hex characters to use for the address in ixixx, see
|
|
54
5
|
// https://github.com/GMOD/ixixx-js/blob/master/src/index.ts#L182
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
6
|
+
const ADDRESS_SIZE = 10;
|
|
7
|
+
export default class Trix {
|
|
8
|
+
ixxFile;
|
|
9
|
+
ixFile;
|
|
10
|
+
maxResults;
|
|
11
|
+
decoder = new TextDecoder('utf8');
|
|
12
|
+
indexCache;
|
|
13
|
+
constructor(ixxFile, ixFile, maxResults = 20) {
|
|
59
14
|
this.ixxFile = ixxFile;
|
|
60
15
|
this.ixFile = ixFile;
|
|
61
16
|
this.maxResults = maxResults;
|
|
62
|
-
this.decoder = new TextDecoder('utf8');
|
|
63
17
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
else if (word > searchWord) {
|
|
96
|
-
// we are done scanning if we are lexicographically greater than
|
|
97
|
-
// the search string
|
|
98
|
-
done = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
hits = hits2.flatMap(function (line) {
|
|
102
|
-
var _a = line.split(' '), term = _a[0], parts = _a.slice(1);
|
|
103
|
-
return parts
|
|
104
|
-
.filter(Boolean)
|
|
105
|
-
.map(function (elt) { return [term, elt.split(',')[0]]; });
|
|
106
|
-
});
|
|
107
|
-
resultArr = resultArr.concat(hits);
|
|
108
|
-
// if we are done or have filled up maxResults, break
|
|
109
|
-
if (done || resultArr.length >= this.maxResults) {
|
|
110
|
-
return [3 /*break*/, 4];
|
|
111
|
-
}
|
|
112
|
-
return [4 /*yield*/, this.ixFile.read(CHUNK_SIZE, end, opts)];
|
|
113
|
-
case 3:
|
|
114
|
-
res2 = _a.sent();
|
|
115
|
-
if (res2.length === 0) {
|
|
116
|
-
return [3 /*break*/, 4];
|
|
117
|
-
}
|
|
118
|
-
buffer = (0, util_ts_1.concatUint8Array)([buffer, res2]);
|
|
119
|
-
end += CHUNK_SIZE;
|
|
120
|
-
return [3 /*break*/, 2];
|
|
121
|
-
case 4:
|
|
122
|
-
// de-duplicate results based on the detail column (resultArr[1])
|
|
123
|
-
return [2 /*return*/, (0, dedupe_ts_1.dedupe)(resultArr, function (elt) { return elt[1]; }).slice(0, this.maxResults)];
|
|
18
|
+
async search(searchString, opts) {
|
|
19
|
+
let resultArr = [];
|
|
20
|
+
const searchWords = searchString.split(' ');
|
|
21
|
+
const firstWord = searchWords[0];
|
|
22
|
+
// validate that we have a non-empty search term
|
|
23
|
+
if (firstWord) {
|
|
24
|
+
const searchWord = firstWord.toLowerCase();
|
|
25
|
+
const res = await this.getBuffer(searchWord, opts);
|
|
26
|
+
let { end, buffer } = res;
|
|
27
|
+
let done = false;
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
29
|
+
while (!done) {
|
|
30
|
+
const str = this.decoder.decode(buffer);
|
|
31
|
+
// slice to lastIndexOf('\n') to make sure we get complete records
|
|
32
|
+
// since the buffer fetch could get halfway into a record
|
|
33
|
+
const lines = str
|
|
34
|
+
.slice(0, str.lastIndexOf('\n'))
|
|
35
|
+
.split('\n')
|
|
36
|
+
.filter(Boolean);
|
|
37
|
+
const hits2 = [];
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
const word = line.split(' ')[0];
|
|
40
|
+
if (word.startsWith(searchWord)) {
|
|
41
|
+
hits2.push(line);
|
|
42
|
+
}
|
|
43
|
+
else if (word > searchWord) {
|
|
44
|
+
// we are done scanning if we are lexicographically greater than
|
|
45
|
+
// the search string
|
|
46
|
+
done = true;
|
|
47
|
+
}
|
|
124
48
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return [2 /*return*/, this.indexCache];
|
|
136
|
-
}
|
|
137
|
-
return [4 /*yield*/, this.ixxFile.readFile(__assign({ encoding: 'utf8' }, opts))];
|
|
138
|
-
case 1:
|
|
139
|
-
file = _a.sent();
|
|
140
|
-
result = file
|
|
141
|
-
.split('\n')
|
|
142
|
-
.filter(Boolean)
|
|
143
|
-
.map(function (line) {
|
|
144
|
-
var p = line.length - ADDRESS_SIZE;
|
|
145
|
-
var prefix = line.slice(0, p);
|
|
146
|
-
var posStr = line.slice(p);
|
|
147
|
-
var pos = Number.parseInt(posStr, 16);
|
|
148
|
-
return [prefix, pos];
|
|
149
|
-
});
|
|
150
|
-
this.indexCache = result;
|
|
151
|
-
return [2 /*return*/, result];
|
|
49
|
+
const hits = hits2.flatMap(line => {
|
|
50
|
+
const [term, ...parts] = line.split(' ');
|
|
51
|
+
return parts
|
|
52
|
+
.filter(Boolean)
|
|
53
|
+
.map(elt => [term, elt.split(',')[0]]);
|
|
54
|
+
});
|
|
55
|
+
resultArr = resultArr.concat(hits);
|
|
56
|
+
// if we are done or have filled up maxResults, break
|
|
57
|
+
if (done || resultArr.length >= this.maxResults) {
|
|
58
|
+
break;
|
|
152
59
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
158
|
-
var start, end, indexes, _i, indexes_1, _a, key, value, trimmedKey, buffer;
|
|
159
|
-
return __generator(this, function (_b) {
|
|
160
|
-
switch (_b.label) {
|
|
161
|
-
case 0:
|
|
162
|
-
start = 0;
|
|
163
|
-
end = CHUNK_SIZE;
|
|
164
|
-
return [4 /*yield*/, this.getIndex(opts)];
|
|
165
|
-
case 1:
|
|
166
|
-
indexes = _b.sent();
|
|
167
|
-
for (_i = 0, indexes_1 = indexes; _i < indexes_1.length; _i++) {
|
|
168
|
-
_a = indexes_1[_i], key = _a[0], value = _a[1];
|
|
169
|
-
trimmedKey = key.slice(0, searchWord.length);
|
|
170
|
-
if (trimmedKey < searchWord) {
|
|
171
|
-
start = value;
|
|
172
|
-
end = value + CHUNK_SIZE;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return [4 /*yield*/, this.ixFile.read(end - start, start, opts)];
|
|
176
|
-
case 2:
|
|
177
|
-
buffer = _b.sent();
|
|
178
|
-
return [2 /*return*/, { buffer: buffer, end: end }];
|
|
60
|
+
// fetch more data
|
|
61
|
+
const res2 = await this.ixFile.read(CHUNK_SIZE, end, opts);
|
|
62
|
+
if (res2.length === 0) {
|
|
63
|
+
break;
|
|
179
64
|
}
|
|
180
|
-
|
|
65
|
+
buffer = concatUint8Array([buffer, res2]);
|
|
66
|
+
end += CHUNK_SIZE;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// de-duplicate results based on the detail column (resultArr[1])
|
|
70
|
+
return dedupe(resultArr, elt => elt[1]).slice(0, this.maxResults);
|
|
71
|
+
}
|
|
72
|
+
async getIndex(opts) {
|
|
73
|
+
if (this.indexCache) {
|
|
74
|
+
return this.indexCache;
|
|
75
|
+
}
|
|
76
|
+
const file = await this.ixxFile.readFile({
|
|
77
|
+
encoding: 'utf8',
|
|
78
|
+
...opts,
|
|
181
79
|
});
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
80
|
+
const result = file
|
|
81
|
+
.split('\n')
|
|
82
|
+
.filter(Boolean)
|
|
83
|
+
.map(line => {
|
|
84
|
+
const p = line.length - ADDRESS_SIZE;
|
|
85
|
+
const prefix = line.slice(0, p);
|
|
86
|
+
const posStr = line.slice(p);
|
|
87
|
+
const pos = Number.parseInt(posStr, 16);
|
|
88
|
+
return [prefix, pos];
|
|
89
|
+
});
|
|
90
|
+
this.indexCache = result;
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
async getBuffer(searchWord, opts) {
|
|
94
|
+
let start = 0;
|
|
95
|
+
let end = CHUNK_SIZE;
|
|
96
|
+
const indexes = await this.getIndex(opts);
|
|
97
|
+
for (const [key, value] of indexes) {
|
|
98
|
+
const trimmedKey = key.slice(0, searchWord.length);
|
|
99
|
+
if (trimmedKey < searchWord) {
|
|
100
|
+
start = value;
|
|
101
|
+
end = value + CHUNK_SIZE;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const buffer = await this.ixFile.read(end - start, start, opts);
|
|
105
|
+
return { buffer, end };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
186
108
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/util.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.concatUint8Array = concatUint8Array;
|
|
5
|
-
function sum(array) {
|
|
6
|
-
var total = 0;
|
|
7
|
-
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
8
|
-
var entry = array_1[_i];
|
|
1
|
+
export function sum(array) {
|
|
2
|
+
let total = 0;
|
|
3
|
+
for (const entry of array) {
|
|
9
4
|
total += entry.length;
|
|
10
5
|
}
|
|
11
6
|
return total;
|
|
12
7
|
}
|
|
13
|
-
function concatUint8Array(args) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
for (
|
|
17
|
-
var entry = args_1[_i];
|
|
8
|
+
export function concatUint8Array(args) {
|
|
9
|
+
const mergedArray = new Uint8Array(sum(args));
|
|
10
|
+
let offset = 0;
|
|
11
|
+
for (const entry of args) {
|
|
18
12
|
mergedArray.set(entry, offset);
|
|
19
13
|
offset += entry.length;
|
|
20
14
|
}
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,KAAmB;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,IAAkB;IACjD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IACxB,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/trix",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.9",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "./esm/index.js",
|
|
7
|
+
"types": "./esm/index.d.ts",
|
|
6
8
|
"exports": {
|
|
7
9
|
".": {
|
|
8
10
|
"import": {
|
|
@@ -28,7 +30,7 @@
|
|
|
28
30
|
"lint": "eslint --report-unused-disable-directives --max-warnings 0",
|
|
29
31
|
"clean": "rimraf dist esm",
|
|
30
32
|
"format": "prettier --write .",
|
|
31
|
-
"build:esm": "tsc --outDir esm",
|
|
33
|
+
"build:esm": "tsc --module nodenext --moduleResolution nodenext --outDir esm",
|
|
32
34
|
"build:es5": "tsc --module commonjs --outDir dist",
|
|
33
35
|
"build": "yarn build:esm && yarn build:es5",
|
|
34
36
|
"prebuild": "yarn clean",
|