@gmod/trix 2.0.3 → 2.0.5
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/CHANGELOG.md +8 -0
- package/README.md +1 -1
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/esm/index.js +14 -13
- package/esm/index.js.map +1 -1
- package/package.json +14 -14
- package/src/index.ts +15 -20
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+

|
|
2
2
|
|
|
3
3
|
# trix-js
|
|
4
4
|
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
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
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
31
|
switch (op[0]) {
|
|
@@ -68,7 +68,7 @@ var Trix = /** @class */ (function () {
|
|
|
68
68
|
}
|
|
69
69
|
Trix.prototype.search = function (searchString, opts) {
|
|
70
70
|
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
-
var resultArr, searchWords, searchWord, res,
|
|
71
|
+
var resultArr, searchWords, searchWord, res, end, buffer, done, _loop_1, this_1, state_1;
|
|
72
72
|
return __generator(this, function (_a) {
|
|
73
73
|
switch (_a.label) {
|
|
74
74
|
case 0:
|
|
@@ -81,7 +81,7 @@ var Trix = /** @class */ (function () {
|
|
|
81
81
|
if (!res) {
|
|
82
82
|
return [2 /*return*/, []];
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
end = res.end, buffer = res.buffer;
|
|
85
85
|
done = false;
|
|
86
86
|
_loop_1 = function () {
|
|
87
87
|
var foundSomething, str, lines, hits, res2;
|
|
@@ -104,7 +104,7 @@ var Trix = /** @class */ (function () {
|
|
|
104
104
|
}
|
|
105
105
|
// we are done scanning if we are lexicographically greater than the
|
|
106
106
|
// search string
|
|
107
|
-
if (word > searchWord) {
|
|
107
|
+
if (word.slice(0, searchWord.length) > searchWord) {
|
|
108
108
|
done = true;
|
|
109
109
|
}
|
|
110
110
|
return match;
|
|
@@ -115,7 +115,7 @@ var Trix = /** @class */ (function () {
|
|
|
115
115
|
})
|
|
116
116
|
.flat();
|
|
117
117
|
if (!(resultArr.length + hits.length < this_1.maxResults && !done)) return [3 /*break*/, 2];
|
|
118
|
-
return [4 /*yield*/, this_1.ixFile.read(Buffer.alloc(CHUNK_SIZE), 0, CHUNK_SIZE,
|
|
118
|
+
return [4 /*yield*/, this_1.ixFile.read(Buffer.alloc(CHUNK_SIZE), 0, CHUNK_SIZE, end, opts)
|
|
119
119
|
// early break if empty response
|
|
120
120
|
];
|
|
121
121
|
case 1:
|
|
@@ -126,7 +126,7 @@ var Trix = /** @class */ (function () {
|
|
|
126
126
|
return [2 /*return*/, "break"];
|
|
127
127
|
}
|
|
128
128
|
buffer = Buffer.concat([buffer, res2.buffer]);
|
|
129
|
-
|
|
129
|
+
end += CHUNK_SIZE;
|
|
130
130
|
return [3 /*break*/, 3];
|
|
131
131
|
case 2:
|
|
132
132
|
if (resultArr.length + hits.length >= this_1.maxResults || done) {
|
|
@@ -179,31 +179,31 @@ var Trix = /** @class */ (function () {
|
|
|
179
179
|
};
|
|
180
180
|
Trix.prototype._getBuffer = function (searchWord, opts) {
|
|
181
181
|
return __awaiter(this, void 0, void 0, function () {
|
|
182
|
-
var
|
|
183
|
-
return __generator(this, function (
|
|
184
|
-
switch (
|
|
182
|
+
var start, end, indexes, i, _a, key, value, trimmedKey, len, res;
|
|
183
|
+
return __generator(this, function (_b) {
|
|
184
|
+
switch (_b.label) {
|
|
185
185
|
case 0:
|
|
186
|
-
|
|
187
|
-
|
|
186
|
+
start = 0;
|
|
187
|
+
end = 65536;
|
|
188
188
|
return [4 /*yield*/, this.getIndex(opts)];
|
|
189
189
|
case 1:
|
|
190
|
-
indexes =
|
|
191
|
-
indexes.
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
indexes = _b.sent();
|
|
191
|
+
for (i = 0; i < indexes.length; i++) {
|
|
192
|
+
_a = indexes[i], key = _a[0], value = _a[1];
|
|
193
|
+
trimmedKey = key.slice(0, searchWord.length);
|
|
194
194
|
if (trimmedKey < searchWord) {
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
start = value;
|
|
196
|
+
end = value + 65536;
|
|
197
197
|
}
|
|
198
|
-
}
|
|
199
|
-
len =
|
|
198
|
+
}
|
|
199
|
+
len = end - start;
|
|
200
200
|
if (len < 0) {
|
|
201
201
|
return [2 /*return*/, undefined];
|
|
202
202
|
}
|
|
203
|
-
return [4 /*yield*/, this.ixFile.read(Buffer.alloc(len), 0, len,
|
|
203
|
+
return [4 /*yield*/, this.ixFile.read(Buffer.alloc(len), 0, len, start, opts)];
|
|
204
204
|
case 2:
|
|
205
|
-
res =
|
|
206
|
-
return [2 /*return*/, __assign(__assign({}, res), {
|
|
205
|
+
res = _b.sent();
|
|
206
|
+
return [2 /*return*/, __assign(__assign({}, res), { end: end })];
|
|
207
207
|
}
|
|
208
208
|
});
|
|
209
209
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,UAAU,GAAG,KAAK,CAAA;AAExB,4EAA4E;AAC5E,iEAAiE;AACjE,IAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,8CAA8C;AAC9C,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export default class Trix {
|
|
|
25
25
|
if (!res) {
|
|
26
26
|
return [];
|
|
27
27
|
}
|
|
28
|
-
let {
|
|
28
|
+
let { end, buffer } = res;
|
|
29
29
|
let done = false;
|
|
30
30
|
while (!done) {
|
|
31
31
|
let foundSomething = false;
|
|
@@ -46,7 +46,7 @@ export default class Trix {
|
|
|
46
46
|
}
|
|
47
47
|
// we are done scanning if we are lexicographically greater than the
|
|
48
48
|
// search string
|
|
49
|
-
if (word > searchWord) {
|
|
49
|
+
if (word.slice(0, searchWord.length) > searchWord) {
|
|
50
50
|
done = true;
|
|
51
51
|
}
|
|
52
52
|
return match;
|
|
@@ -60,14 +60,14 @@ export default class Trix {
|
|
|
60
60
|
// then refetch
|
|
61
61
|
if (resultArr.length + hits.length < this.maxResults && !done) {
|
|
62
62
|
// eslint-disable-next-line no-await-in-loop
|
|
63
|
-
const res2 = await this.ixFile.read(Buffer.alloc(CHUNK_SIZE), 0, CHUNK_SIZE,
|
|
63
|
+
const res2 = await this.ixFile.read(Buffer.alloc(CHUNK_SIZE), 0, CHUNK_SIZE, end, opts);
|
|
64
64
|
// early break if empty response
|
|
65
65
|
if (!res2.bytesRead) {
|
|
66
66
|
resultArr = resultArr.concat(hits);
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
69
69
|
buffer = Buffer.concat([buffer, res2.buffer]);
|
|
70
|
-
|
|
70
|
+
end += CHUNK_SIZE;
|
|
71
71
|
}
|
|
72
72
|
// if we have filled up the hits, or we are detected to be done via the
|
|
73
73
|
// filtering, then return
|
|
@@ -96,25 +96,26 @@ export default class Trix {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
async _getBuffer(searchWord, opts) {
|
|
99
|
-
let
|
|
100
|
-
let
|
|
99
|
+
let start = 0;
|
|
100
|
+
let end = 65536;
|
|
101
101
|
const indexes = await this.getIndex(opts);
|
|
102
|
-
indexes.
|
|
102
|
+
for (let i = 0; i < indexes.length; i++) {
|
|
103
|
+
const [key, value] = indexes[i];
|
|
103
104
|
const trimmedKey = key.slice(0, searchWord.length);
|
|
104
105
|
if (trimmedKey < searchWord) {
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
start = value;
|
|
107
|
+
end = value + 65536;
|
|
107
108
|
}
|
|
108
|
-
}
|
|
109
|
+
}
|
|
109
110
|
// Return the buffer and its end position in the file.
|
|
110
|
-
const len =
|
|
111
|
+
const len = end - start;
|
|
111
112
|
if (len < 0) {
|
|
112
113
|
return undefined;
|
|
113
114
|
}
|
|
114
|
-
const res = await this.ixFile.read(Buffer.alloc(len), 0, len,
|
|
115
|
+
const res = await this.ixFile.read(Buffer.alloc(len), 0, len, start, opts);
|
|
115
116
|
return {
|
|
116
117
|
...res,
|
|
117
|
-
|
|
118
|
+
end,
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
}
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,4EAA4E;AAC5E,iEAAiE;AACjE,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,8CAA8C;AAC9C,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.0.
|
|
2
|
+
"version": "2.0.5",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
@@ -25,22 +25,22 @@
|
|
|
25
25
|
"author": "Matt Morgan",
|
|
26
26
|
"repository": "GMOD/trix-js",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@types/jest": "^
|
|
29
|
-
"@types/node": "^
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
31
|
-
"@typescript-eslint/parser": "^5.
|
|
32
|
-
"eslint": "^
|
|
28
|
+
"@types/jest": "^29.2.4",
|
|
29
|
+
"@types/node": "^18.11.16",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
31
|
+
"@typescript-eslint/parser": "^5.46.1",
|
|
32
|
+
"eslint": "^8.29.0",
|
|
33
33
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
34
|
-
"eslint-config-airbnb-typescript": "^
|
|
34
|
+
"eslint-config-airbnb-typescript": "^17.0.0",
|
|
35
35
|
"eslint-config-prettier": "^8.3.0",
|
|
36
|
-
"eslint-plugin-import": "^2.
|
|
37
|
-
"eslint-plugin-prettier": "^4.
|
|
38
|
-
"generic-filehandle": "^
|
|
39
|
-
"jest": "^
|
|
40
|
-
"prettier": "^2.
|
|
36
|
+
"eslint-plugin-import": "^2.26.0",
|
|
37
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
38
|
+
"generic-filehandle": "^3.0.0",
|
|
39
|
+
"jest": "^29.3.1",
|
|
40
|
+
"prettier": "^2.8.1",
|
|
41
41
|
"rimraf": "^3.0.2",
|
|
42
|
-
"ts-jest": "^
|
|
43
|
-
"typescript": "^4.
|
|
42
|
+
"ts-jest": "^29.0.3",
|
|
43
|
+
"typescript": "^4.9.4"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {},
|
|
46
46
|
"publishConfig": {
|
package/src/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ const CHUNK_SIZE = 65536
|
|
|
7
7
|
const ADDRESS_SIZE = 10
|
|
8
8
|
|
|
9
9
|
// https://stackoverflow.com/a/9229821/2129219
|
|
10
|
-
function uniqBy(a: [
|
|
10
|
+
function uniqBy<T>(a: T[], key: (elt: T) => string) {
|
|
11
11
|
const seen = new Set()
|
|
12
12
|
return a.filter(item => {
|
|
13
13
|
const k = key(item)
|
|
@@ -43,7 +43,7 @@ export default class Trix {
|
|
|
43
43
|
return []
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
let {
|
|
46
|
+
let { end, buffer } = res
|
|
47
47
|
let done = false
|
|
48
48
|
while (!done) {
|
|
49
49
|
let foundSomething = false
|
|
@@ -67,7 +67,7 @@ export default class Trix {
|
|
|
67
67
|
|
|
68
68
|
// we are done scanning if we are lexicographically greater than the
|
|
69
69
|
// search string
|
|
70
|
-
if (word > searchWord) {
|
|
70
|
+
if (word.slice(0, searchWord.length) > searchWord) {
|
|
71
71
|
done = true
|
|
72
72
|
}
|
|
73
73
|
return match
|
|
@@ -86,7 +86,7 @@ export default class Trix {
|
|
|
86
86
|
Buffer.alloc(CHUNK_SIZE),
|
|
87
87
|
0,
|
|
88
88
|
CHUNK_SIZE,
|
|
89
|
-
|
|
89
|
+
end,
|
|
90
90
|
opts,
|
|
91
91
|
)
|
|
92
92
|
|
|
@@ -96,7 +96,7 @@ export default class Trix {
|
|
|
96
96
|
break
|
|
97
97
|
}
|
|
98
98
|
buffer = Buffer.concat([buffer, res2.buffer])
|
|
99
|
-
|
|
99
|
+
end += CHUNK_SIZE
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
// if we have filled up the hits, or we are detected to be done via the
|
|
@@ -132,32 +132,27 @@ export default class Trix {
|
|
|
132
132
|
searchWord: string,
|
|
133
133
|
opts?: { signal?: AbortSignal },
|
|
134
134
|
) {
|
|
135
|
-
let
|
|
136
|
-
let
|
|
135
|
+
let start = 0
|
|
136
|
+
let end = 65536
|
|
137
137
|
const indexes = await this.getIndex(opts)
|
|
138
|
-
indexes.
|
|
138
|
+
for (let i = 0; i < indexes.length; i++) {
|
|
139
|
+
const [key, value] = indexes[i]
|
|
139
140
|
const trimmedKey = key.slice(0, searchWord.length)
|
|
140
141
|
if (trimmedKey < searchWord) {
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
start = value
|
|
143
|
+
end = value + 65536
|
|
143
144
|
}
|
|
144
|
-
}
|
|
145
|
+
}
|
|
145
146
|
|
|
146
147
|
// Return the buffer and its end position in the file.
|
|
147
|
-
const len =
|
|
148
|
+
const len = end - start
|
|
148
149
|
if (len < 0) {
|
|
149
150
|
return undefined
|
|
150
151
|
}
|
|
151
|
-
const res = await this.ixFile.read(
|
|
152
|
-
Buffer.alloc(len),
|
|
153
|
-
0,
|
|
154
|
-
len,
|
|
155
|
-
seekPosStart,
|
|
156
|
-
opts,
|
|
157
|
-
)
|
|
152
|
+
const res = await this.ixFile.read(Buffer.alloc(len), 0, len, start, opts)
|
|
158
153
|
return {
|
|
159
154
|
...res,
|
|
160
|
-
|
|
155
|
+
end,
|
|
161
156
|
}
|
|
162
157
|
}
|
|
163
158
|
}
|