@gmod/trix 3.0.5 → 3.0.6
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/dist/dedupe.js +7 -5
- package/dist/dedupe.js.map +1 -1
- package/dist/index.js +158 -91
- package/dist/index.js.map +1 -1
- package/dist/util.js +7 -5
- package/dist/util.js.map +1 -1
- package/esm/dedupe.js +10 -5
- package/esm/dedupe.js.map +1 -1
- package/esm/index.js +175 -97
- package/esm/index.js.map +1 -1
- package/esm/util.js +13 -7
- package/esm/util.js.map +1 -1
- package/package.json +20 -11
package/dist/dedupe.js
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dedupe = dedupe;
|
|
4
4
|
// from https://github.com/seriousManual/dedupe/blob/master/LICENSE
|
|
5
|
-
function dedupe(list, hasher
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
function dedupe(list, hasher) {
|
|
6
|
+
if (hasher === void 0) { hasher = JSON.stringify; }
|
|
7
|
+
var clone = [];
|
|
8
|
+
var lookup = new Set();
|
|
9
|
+
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
|
|
10
|
+
var entry = list_1[_i];
|
|
11
|
+
var hashed = hasher(entry);
|
|
10
12
|
if (!lookup.has(hashed)) {
|
|
11
13
|
clone.push(entry);
|
|
12
14
|
lookup.add(hashed);
|
package/dist/dedupe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":";;AAGA,wBAcC;AAfD,mEAAmE;AACnE,SAAgB,MAAM,CAAI,IAAS,EAAE,SAAoB,IAAI,CAAC,SAAS;IACrE,
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":";;AAGA,wBAcC;AAfD,mEAAmE;AACnE,SAAgB,MAAM,CAAI,IAAS,EAAE,MAAkC;IAAlC,uBAAA,EAAA,SAAoB,IAAI,CAAC,SAAS;IACrE,IAAM,KAAK,GAAQ,EAAE,CAAA;IACrB,IAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAEhC,KAAoB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;QAAtB,IAAM,KAAK,aAAA;QACd,IAAM,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/dist/index.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
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
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,112 +19,168 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
20
|
});
|
|
10
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
|
+
};
|
|
11
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
50
|
+
var dedupe_ts_1 = require("./dedupe.js");
|
|
51
|
+
var util_ts_1 = require("./util.js");
|
|
52
|
+
var CHUNK_SIZE = 65536;
|
|
15
53
|
// this is the number of hex characters to use for the address in ixixx, see
|
|
16
54
|
// https://github.com/GMOD/ixixx-js/blob/master/src/index.ts#L182
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
55
|
+
var ADDRESS_SIZE = 10;
|
|
56
|
+
var Trix = /** @class */ (function () {
|
|
57
|
+
function Trix(ixxFile, ixFile, maxResults) {
|
|
58
|
+
if (maxResults === void 0) { maxResults = 20; }
|
|
20
59
|
this.ixxFile = ixxFile;
|
|
21
60
|
this.ixFile = ixFile;
|
|
22
61
|
this.maxResults = maxResults;
|
|
23
62
|
this.decoder = new TextDecoder('utf8');
|
|
24
63
|
}
|
|
25
|
-
search(searchString, opts) {
|
|
26
|
-
return __awaiter(this, void 0, void 0, function
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
64
|
+
Trix.prototype.search = function (searchString, opts) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
var resultArr, searchWords, firstWord, searchWord, res, end, buffer, done, str, lines, hits2, _i, lines_1, line, word, hits, res2;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
resultArr = [];
|
|
71
|
+
searchWords = searchString.split(' ');
|
|
72
|
+
firstWord = searchWords[0];
|
|
73
|
+
if (!firstWord) return [3 /*break*/, 4];
|
|
74
|
+
searchWord = firstWord.toLowerCase();
|
|
75
|
+
return [4 /*yield*/, this.getBuffer(searchWord, opts)];
|
|
76
|
+
case 1:
|
|
77
|
+
res = _a.sent();
|
|
78
|
+
end = res.end, buffer = res.buffer;
|
|
79
|
+
done = false;
|
|
80
|
+
_a.label = 2;
|
|
81
|
+
case 2:
|
|
82
|
+
if (!!done) return [3 /*break*/, 4];
|
|
83
|
+
str = this.decoder.decode(buffer);
|
|
84
|
+
lines = str
|
|
85
|
+
.slice(0, str.lastIndexOf('\n'))
|
|
86
|
+
.split('\n')
|
|
87
|
+
.filter(Boolean);
|
|
88
|
+
hits2 = [];
|
|
89
|
+
for (_i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
|
|
90
|
+
line = lines_1[_i];
|
|
91
|
+
word = line.split(' ')[0];
|
|
92
|
+
if (word.startsWith(searchWord)) {
|
|
93
|
+
hits2.push(line);
|
|
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
|
+
}
|
|
50
100
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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];
|
|
55
111
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
// fetch more data
|
|
69
|
-
const res2 = yield this.ixFile.read(CHUNK_SIZE, end, opts);
|
|
70
|
-
if (res2.length === 0) {
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
buffer = (0, util_ts_1.concatUint8Array)([buffer, res2]);
|
|
74
|
-
end += CHUNK_SIZE;
|
|
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)];
|
|
75
124
|
}
|
|
76
|
-
}
|
|
77
|
-
// de-duplicate results based on the detail column (resultArr[1])
|
|
78
|
-
return (0, dedupe_ts_1.dedupe)(resultArr, elt => elt[1]).slice(0, this.maxResults);
|
|
125
|
+
});
|
|
79
126
|
});
|
|
80
|
-
}
|
|
81
|
-
getIndex(opts) {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
127
|
+
};
|
|
128
|
+
Trix.prototype.getIndex = function (opts) {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
+
var file, result;
|
|
131
|
+
return __generator(this, function (_a) {
|
|
132
|
+
switch (_a.label) {
|
|
133
|
+
case 0:
|
|
134
|
+
if (this.indexCache) {
|
|
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];
|
|
152
|
+
}
|
|
96
153
|
});
|
|
97
|
-
this.indexCache = result;
|
|
98
|
-
return result;
|
|
99
154
|
});
|
|
100
|
-
}
|
|
101
|
-
getBuffer(searchWord, opts) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
155
|
+
};
|
|
156
|
+
Trix.prototype.getBuffer = function (searchWord, opts) {
|
|
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 }];
|
|
111
179
|
}
|
|
112
|
-
}
|
|
113
|
-
const buffer = yield this.ixFile.read(end - start, start, opts);
|
|
114
|
-
return { buffer, end };
|
|
180
|
+
});
|
|
115
181
|
});
|
|
116
|
-
}
|
|
117
|
-
|
|
182
|
+
};
|
|
183
|
+
return Trix;
|
|
184
|
+
}());
|
|
118
185
|
exports.default = Trix;
|
|
119
186
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/util.js
CHANGED
|
@@ -3,16 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.sum = sum;
|
|
4
4
|
exports.concatUint8Array = concatUint8Array;
|
|
5
5
|
function sum(array) {
|
|
6
|
-
|
|
7
|
-
for (
|
|
6
|
+
var total = 0;
|
|
7
|
+
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
8
|
+
var entry = array_1[_i];
|
|
8
9
|
total += entry.length;
|
|
9
10
|
}
|
|
10
11
|
return total;
|
|
11
12
|
}
|
|
12
13
|
function concatUint8Array(args) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
for (
|
|
14
|
+
var mergedArray = new Uint8Array(sum(args));
|
|
15
|
+
var offset = 0;
|
|
16
|
+
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
|
|
17
|
+
var entry = args_1[_i];
|
|
16
18
|
mergedArray.set(entry, offset);
|
|
17
19
|
offset += entry.length;
|
|
18
20
|
}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kBAMC;AACD,4CAQC;AAfD,SAAgB,GAAG,CAAC,KAAmB;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kBAMC;AACD,4CAQC;AAfD,SAAgB,GAAG,CAAC,KAAmB;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAoB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE,CAAC;QAAvB,IAAM,KAAK,cAAA;QACd,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AACD,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,IAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAoB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;QAAtB,IAAM,KAAK,aAAA;QACd,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/esm/dedupe.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dedupe = dedupe;
|
|
1
4
|
// from https://github.com/seriousManual/dedupe/blob/master/LICENSE
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function dedupe(list, hasher) {
|
|
6
|
+
if (hasher === void 0) { hasher = JSON.stringify; }
|
|
7
|
+
var clone = [];
|
|
8
|
+
var lookup = new Set();
|
|
9
|
+
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
|
|
10
|
+
var entry = list_1[_i];
|
|
11
|
+
var hashed = hasher(entry);
|
|
7
12
|
if (!lookup.has(hashed)) {
|
|
8
13
|
clone.push(entry);
|
|
9
14
|
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":";;AAGA,wBAcC;AAfD,mEAAmE;AACnE,SAAgB,MAAM,CAAI,IAAS,EAAE,MAAkC;IAAlC,uBAAA,EAAA,SAAoB,IAAI,CAAC,SAAS;IACrE,IAAM,KAAK,GAAQ,EAAE,CAAA;IACrB,IAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAEhC,KAAoB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;QAAtB,IAAM,KAAK,aAAA;QACd,IAAM,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,108 +1,186 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
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;
|
|
4
53
|
// this is the number of hex characters to use for the address in ixixx, see
|
|
5
54
|
// https://github.com/GMOD/ixixx-js/blob/master/src/index.ts#L182
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
ixxFile
|
|
9
|
-
|
|
10
|
-
maxResults;
|
|
11
|
-
decoder = new TextDecoder('utf8');
|
|
12
|
-
indexCache;
|
|
13
|
-
constructor(ixxFile, ixFile, maxResults = 20) {
|
|
55
|
+
var ADDRESS_SIZE = 10;
|
|
56
|
+
var Trix = /** @class */ (function () {
|
|
57
|
+
function Trix(ixxFile, ixFile, maxResults) {
|
|
58
|
+
if (maxResults === void 0) { maxResults = 20; }
|
|
14
59
|
this.ixxFile = ixxFile;
|
|
15
60
|
this.ixFile = ixFile;
|
|
16
61
|
this.maxResults = maxResults;
|
|
62
|
+
this.decoder = new TextDecoder('utf8');
|
|
17
63
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
Trix.prototype.search = function (searchString, opts) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
var resultArr, searchWords, firstWord, searchWord, res, end, buffer, done, str, lines, hits2, _i, lines_1, line, word, hits, res2;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
resultArr = [];
|
|
71
|
+
searchWords = searchString.split(' ');
|
|
72
|
+
firstWord = searchWords[0];
|
|
73
|
+
if (!firstWord) return [3 /*break*/, 4];
|
|
74
|
+
searchWord = firstWord.toLowerCase();
|
|
75
|
+
return [4 /*yield*/, this.getBuffer(searchWord, opts)];
|
|
76
|
+
case 1:
|
|
77
|
+
res = _a.sent();
|
|
78
|
+
end = res.end, buffer = res.buffer;
|
|
79
|
+
done = false;
|
|
80
|
+
_a.label = 2;
|
|
81
|
+
case 2:
|
|
82
|
+
if (!!done) return [3 /*break*/, 4];
|
|
83
|
+
str = this.decoder.decode(buffer);
|
|
84
|
+
lines = str
|
|
85
|
+
.slice(0, str.lastIndexOf('\n'))
|
|
86
|
+
.split('\n')
|
|
87
|
+
.filter(Boolean);
|
|
88
|
+
hits2 = [];
|
|
89
|
+
for (_i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
|
|
90
|
+
line = lines_1[_i];
|
|
91
|
+
word = line.split(' ')[0];
|
|
92
|
+
if (word.startsWith(searchWord)) {
|
|
93
|
+
hits2.push(line);
|
|
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)];
|
|
59
124
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
Trix.prototype.getIndex = function (opts) {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
+
var file, result;
|
|
131
|
+
return __generator(this, function (_a) {
|
|
132
|
+
switch (_a.label) {
|
|
133
|
+
case 0:
|
|
134
|
+
if (this.indexCache) {
|
|
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];
|
|
64
152
|
}
|
|
65
|
-
|
|
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,
|
|
153
|
+
});
|
|
79
154
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
155
|
+
};
|
|
156
|
+
Trix.prototype.getBuffer = function (searchWord, opts) {
|
|
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 }];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
89
181
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
}
|
|
182
|
+
};
|
|
183
|
+
return Trix;
|
|
184
|
+
}());
|
|
185
|
+
exports.default = Trix;
|
|
108
186
|
//# 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":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/util.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sum = sum;
|
|
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];
|
|
4
9
|
total += entry.length;
|
|
5
10
|
}
|
|
6
11
|
return total;
|
|
7
12
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
for (
|
|
13
|
+
function concatUint8Array(args) {
|
|
14
|
+
var mergedArray = new Uint8Array(sum(args));
|
|
15
|
+
var offset = 0;
|
|
16
|
+
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
|
|
17
|
+
var entry = args_1[_i];
|
|
12
18
|
mergedArray.set(entry, offset);
|
|
13
19
|
offset += entry.length;
|
|
14
20
|
}
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAAA,kBAMC;AACD,4CAQC;AAfD,SAAgB,GAAG,CAAC,KAAmB;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAoB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE,CAAC;QAAvB,IAAM,KAAK,cAAA;QACd,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AACD,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,IAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAoB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;QAAtB,IAAM,KAAK,aAAA;QACd,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,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"name": "@gmod/trix",
|
|
3
|
+
"version": "3.0.6",
|
|
3
4
|
"license": "Apache-2.0",
|
|
4
|
-
"
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
"import": {
|
|
9
|
+
"import": "./esm/index.js"
|
|
10
|
+
},
|
|
11
|
+
"require": {
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
6
15
|
"files": [
|
|
7
16
|
"dist",
|
|
8
17
|
"esm",
|
|
@@ -12,18 +21,18 @@
|
|
|
12
21
|
"node": ">=10"
|
|
13
22
|
},
|
|
14
23
|
"scripts": {
|
|
24
|
+
"test": "vitest",
|
|
15
25
|
"lint": "eslint --report-unused-disable-directives --max-warnings 0",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"build:
|
|
26
|
+
"clean": "rimraf dist esm",
|
|
27
|
+
"format": "prettier --write .",
|
|
28
|
+
"build:esm": "tsc --outDir esm",
|
|
29
|
+
"build:es5": "tsc --module commonjs --outDir dist",
|
|
19
30
|
"build": "yarn build:esm && yarn build:es5",
|
|
20
|
-
"
|
|
31
|
+
"prebuild": "yarn clean",
|
|
21
32
|
"postbuild:es5": "echo '{\"type\": \"commonjs\"}' > dist/package.json",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"format": "prettier --write ."
|
|
33
|
+
"preversion": "yarn lint && yarn test --run && yarn build",
|
|
34
|
+
"postversion": "git push --follow-tags"
|
|
25
35
|
},
|
|
26
|
-
"name": "@gmod/trix",
|
|
27
36
|
"author": "Matt Morgan",
|
|
28
37
|
"repository": "GMOD/trix-js",
|
|
29
38
|
"devDependencies": {
|