@ht-sdks/events-sdk-js-browser 1.4.0 → 1.5.1
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/cjs/generated/version.js +1 -1
- package/dist/cjs/lib/priority-queue/persisted.js +2 -2
- package/dist/cjs/lib/priority-queue/persisted.js.map +1 -1
- package/dist/cjs/lib/tsub/index.js +13 -0
- package/dist/cjs/lib/tsub/index.js.map +1 -0
- package/dist/cjs/lib/tsub/matchers.js +416 -0
- package/dist/cjs/lib/tsub/matchers.js.map +1 -0
- package/dist/cjs/lib/tsub/store.js +23 -0
- package/dist/cjs/lib/tsub/store.js.map +1 -0
- package/dist/cjs/lib/tsub/transformers.js +218 -0
- package/dist/cjs/lib/tsub/transformers.js.map +1 -0
- package/dist/cjs/lib/tsub/unset.js +20 -0
- package/dist/cjs/lib/tsub/unset.js.map +1 -0
- package/dist/cjs/plugins/routing-middleware/index.js +1 -1
- package/dist/cjs/plugins/routing-middleware/index.js.map +1 -1
- package/dist/pkg/generated/version.js +1 -1
- package/dist/pkg/lib/priority-queue/persisted.js +1 -1
- package/dist/pkg/lib/priority-queue/persisted.js.map +1 -1
- package/dist/pkg/lib/tsub/index.js +4 -0
- package/dist/pkg/lib/tsub/index.js.map +1 -0
- package/dist/pkg/lib/tsub/matchers.js +412 -0
- package/dist/pkg/lib/tsub/matchers.js.map +1 -0
- package/dist/pkg/lib/tsub/store.js +21 -0
- package/dist/pkg/lib/tsub/store.js.map +1 -0
- package/dist/pkg/lib/tsub/transformers.js +214 -0
- package/dist/pkg/lib/tsub/transformers.js.map +1 -0
- package/dist/pkg/lib/tsub/unset.js +15 -0
- package/dist/pkg/lib/tsub/unset.js.map +1 -0
- package/dist/pkg/plugins/routing-middleware/index.js +1 -1
- package/dist/pkg/plugins/routing-middleware/index.js.map +1 -1
- package/dist/types/core/buffer/index.d.ts +1 -1
- package/dist/types/generated/version.d.ts +1 -1
- package/dist/types/lib/priority-queue/persisted.d.ts +1 -1
- package/dist/types/lib/priority-queue/persisted.d.ts.map +1 -1
- package/dist/types/lib/tsub/index.d.ts +4 -0
- package/dist/types/lib/tsub/index.d.ts.map +1 -0
- package/dist/types/lib/tsub/matchers.d.ts +5 -0
- package/dist/types/lib/tsub/matchers.d.ts.map +1 -0
- package/dist/types/lib/tsub/store.d.ts +22 -0
- package/dist/types/lib/tsub/store.d.ts.map +1 -0
- package/dist/types/lib/tsub/transformers.d.ts +20 -0
- package/dist/types/lib/tsub/transformers.d.ts.map +1 -0
- package/dist/types/lib/tsub/unset.d.ts +2 -0
- package/dist/types/lib/tsub/unset.d.ts.map +1 -0
- package/dist/types/plugins/routing-middleware/index.d.ts +3 -3
- package/dist/types/plugins/routing-middleware/index.d.ts.map +1 -1
- package/dist/umd/events.min.js +1 -1
- package/dist/umd/events.min.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/tsub-middleware.bundle.59e8d6916920ab24b51c.js +2 -0
- package/dist/umd/tsub-middleware.bundle.59e8d6916920ab24b51c.js.map +1 -0
- package/package.json +3 -2
- package/src/generated/version.ts +1 -1
- package/src/lib/priority-queue/persisted.ts +1 -1
- package/src/lib/tsub/README.md +9 -0
- package/src/lib/tsub/index.ts +3 -0
- package/src/lib/tsub/matchers.ts +498 -0
- package/src/lib/tsub/store.ts +42 -0
- package/src/lib/tsub/transformers.ts +282 -0
- package/src/lib/tsub/unset.ts +14 -0
- package/src/plugins/routing-middleware/index.ts +3 -4
- package/dist/umd/870.bundle.6d7307379da86a3bf277.js +0 -2
- package/dist/umd/870.bundle.6d7307379da86a3bf277.js.map +0 -1
- package/dist/umd/tsub-middleware.bundle.a9604b3195f6189e429b.js +0 -2
- package/dist/umd/tsub-middleware.bundle.a9604b3195f6189e429b.js.map +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PersistedPriorityQueue = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var
|
|
5
|
+
var events_sdk_js_core_1 = require("@ht-sdks/events-sdk-js-core");
|
|
6
6
|
var context_1 = require("../../core/context");
|
|
7
7
|
var environment_1 = require("../../core/environment");
|
|
8
8
|
var loc = {
|
|
@@ -103,6 +103,6 @@ var PersistedPriorityQueue = /** @class */ (function (_super) {
|
|
|
103
103
|
return _this;
|
|
104
104
|
}
|
|
105
105
|
return PersistedPriorityQueue;
|
|
106
|
-
}(
|
|
106
|
+
}(events_sdk_js_core_1.PriorityQueue));
|
|
107
107
|
exports.PersistedPriorityQueue = PersistedPriorityQueue;
|
|
108
108
|
//# sourceMappingURL=persisted.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persisted.js","sourceRoot":"","sources":["../../../../src/lib/priority-queue/persisted.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"persisted.js","sourceRoot":"","sources":["../../../../src/lib/priority-queue/persisted.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Store = exports.matches = exports.transform = void 0;
|
|
7
|
+
var transformers_1 = require("./transformers");
|
|
8
|
+
Object.defineProperty(exports, "transform", { enumerable: true, get: function () { return __importDefault(transformers_1).default; } });
|
|
9
|
+
var matchers_1 = require("./matchers");
|
|
10
|
+
Object.defineProperty(exports, "matches", { enumerable: true, get: function () { return __importDefault(matchers_1).default; } });
|
|
11
|
+
var store_1 = require("./store");
|
|
12
|
+
Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return __importDefault(store_1).default; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/tsub/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAqD;AAA5C,0HAAA,OAAO,OAAa;AAC7B,uCAA+C;AAAtC,oHAAA,OAAO,OAAW;AAC3B,iCAAmE;AAA1D,+GAAA,OAAO,OAAS"}
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var dlv_1 = tslib_1.__importDefault(require("dlv"));
|
|
5
|
+
function matches(event, matcher) {
|
|
6
|
+
if (!matcher) {
|
|
7
|
+
throw new Error('No matcher supplied!');
|
|
8
|
+
}
|
|
9
|
+
switch (matcher.type) {
|
|
10
|
+
case 'all':
|
|
11
|
+
return all();
|
|
12
|
+
case 'fql':
|
|
13
|
+
return fql(matcher.ir, event);
|
|
14
|
+
default:
|
|
15
|
+
throw new Error("Matcher of type ".concat(matcher.type, " unsupported."));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = matches;
|
|
19
|
+
function all() {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
function fql(ir, event) {
|
|
23
|
+
if (!ir) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
ir = JSON.parse(ir);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
throw new Error("Failed to JSON.parse FQL intermediate representation \"".concat(ir, "\": ").concat(e));
|
|
31
|
+
}
|
|
32
|
+
var result = fqlEvaluate(ir, event);
|
|
33
|
+
if (typeof result !== 'boolean') {
|
|
34
|
+
// An error was returned, or a lowercase, typeof, or similar function was run alone. Nothing to evaluate.
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
// FQL is 100% type strict in Go. Show no mercy to types which do not comply.
|
|
40
|
+
function fqlEvaluate(ir, event) {
|
|
41
|
+
// If the given ir chunk is not an array, then we should check the single given path or value for literally `true`.
|
|
42
|
+
if (!Array.isArray(ir)) {
|
|
43
|
+
return getValue(ir, event) === true;
|
|
44
|
+
}
|
|
45
|
+
// Otherwise, it is a sequence of ordered steps to follow to reach our solution!
|
|
46
|
+
var item = ir[0];
|
|
47
|
+
switch (item) {
|
|
48
|
+
/*** Unary cases ***/
|
|
49
|
+
// '!' => Invert the result
|
|
50
|
+
case '!':
|
|
51
|
+
return !fqlEvaluate(ir[1], event);
|
|
52
|
+
/*** Binary cases ***/
|
|
53
|
+
// 'or' => Any condition being true returns true
|
|
54
|
+
case 'or':
|
|
55
|
+
for (var i = 1; i < ir.length; i++) {
|
|
56
|
+
if (fqlEvaluate(ir[i], event)) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
// 'and' => Any condition being false returns false
|
|
62
|
+
case 'and':
|
|
63
|
+
for (var i = 1; i < ir.length; i++) {
|
|
64
|
+
if (!fqlEvaluate(ir[i], event)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
// Equivalence comparisons
|
|
70
|
+
case '=':
|
|
71
|
+
case '!=':
|
|
72
|
+
return compareItems(getValue(ir[1], event), getValue(ir[2], event), item, event);
|
|
73
|
+
// Numerical comparisons
|
|
74
|
+
case '<=':
|
|
75
|
+
case '<':
|
|
76
|
+
case '>':
|
|
77
|
+
case '>=':
|
|
78
|
+
// Compare the two values with the given operator.
|
|
79
|
+
return compareNumbers(getValue(ir[1], event), getValue(ir[2], event), item, event);
|
|
80
|
+
// item in [list]' => Checks whether item is in list
|
|
81
|
+
case 'in':
|
|
82
|
+
return checkInList(getValue(ir[1], event), getValue(ir[2], event), event);
|
|
83
|
+
/*** Functions ***/
|
|
84
|
+
// 'contains(str1, str2)' => The first string has a substring of the second string
|
|
85
|
+
case 'contains':
|
|
86
|
+
return contains(getValue(ir[1], event), getValue(ir[2], event));
|
|
87
|
+
// 'match(str, match)' => The given string matches the provided glob matcher
|
|
88
|
+
case 'match':
|
|
89
|
+
return match(getValue(ir[1], event), getValue(ir[2], event));
|
|
90
|
+
// 'lowercase(str)' => Returns a lowercased string, null if the item is not a string
|
|
91
|
+
case 'lowercase': {
|
|
92
|
+
var target = getValue(ir[1], event);
|
|
93
|
+
if (typeof target !== 'string') {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
return target.toLowerCase();
|
|
97
|
+
}
|
|
98
|
+
// 'typeof(val)' => Returns the FQL type of the value
|
|
99
|
+
case 'typeof':
|
|
100
|
+
// TODO: Do we need mapping to allow for universal comparisons? e.g. Object -> JSON, Array -> List, Floats?
|
|
101
|
+
return typeof getValue(ir[1], event);
|
|
102
|
+
// 'length(val)' => Returns the length of an array or string, NaN if neither
|
|
103
|
+
case 'length':
|
|
104
|
+
return length(getValue(ir[1], event));
|
|
105
|
+
// If nothing hit, we or the IR messed up somewhere.
|
|
106
|
+
default:
|
|
107
|
+
throw new Error("FQL IR could not evaluate for token: ".concat(item));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function getValue(item, event) {
|
|
111
|
+
// If item is an array, leave it as-is.
|
|
112
|
+
if (Array.isArray(item)) {
|
|
113
|
+
return item;
|
|
114
|
+
}
|
|
115
|
+
// If item is an object, it has the form of `{"value": VAL}`
|
|
116
|
+
if (typeof item === 'object') {
|
|
117
|
+
return item.value;
|
|
118
|
+
}
|
|
119
|
+
// Otherwise, it's an event path, e.g. "properties.email"
|
|
120
|
+
return (0, dlv_1.default)(event, item);
|
|
121
|
+
}
|
|
122
|
+
function checkInList(item, list, event) {
|
|
123
|
+
return list.find(function (it) { return getValue(it, event) === item; }) !== undefined;
|
|
124
|
+
}
|
|
125
|
+
function compareNumbers(first, second, operator, event) {
|
|
126
|
+
// Check if it's more IR (such as a length() function)
|
|
127
|
+
if (isIR(first)) {
|
|
128
|
+
first = fqlEvaluate(first, event);
|
|
129
|
+
}
|
|
130
|
+
if (isIR(second)) {
|
|
131
|
+
second = fqlEvaluate(second, event);
|
|
132
|
+
}
|
|
133
|
+
if (typeof first !== 'number' || typeof second !== 'number') {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
// Reminder: NaN is not comparable to any other number (including NaN) and will always return false as desired.
|
|
137
|
+
switch (operator) {
|
|
138
|
+
// '<=' => The first number is less than or equal to the second.
|
|
139
|
+
case '<=':
|
|
140
|
+
return first <= second;
|
|
141
|
+
// '>=' => The first number is greater than or equal to the second
|
|
142
|
+
case '>=':
|
|
143
|
+
return first >= second;
|
|
144
|
+
// '<' The first number is less than the second.
|
|
145
|
+
case '<':
|
|
146
|
+
return first < second;
|
|
147
|
+
// '>' The first number is greater than the second.
|
|
148
|
+
case '>':
|
|
149
|
+
return first > second;
|
|
150
|
+
default:
|
|
151
|
+
throw new Error("Invalid operator in compareNumbers: ".concat(operator));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function compareItems(first, second, operator, event) {
|
|
155
|
+
// Check if it's more IR (such as a lowercase() function)
|
|
156
|
+
if (isIR(first)) {
|
|
157
|
+
first = fqlEvaluate(first, event);
|
|
158
|
+
}
|
|
159
|
+
if (isIR(second)) {
|
|
160
|
+
second = fqlEvaluate(second, event);
|
|
161
|
+
}
|
|
162
|
+
if (typeof first === 'object' && typeof second === 'object') {
|
|
163
|
+
first = JSON.stringify(first);
|
|
164
|
+
second = JSON.stringify(second);
|
|
165
|
+
}
|
|
166
|
+
// Objects with the exact same contents AND order ARE considered identical. (Don't compare by reference)
|
|
167
|
+
// Even in Go, this MUST be the same byte order.
|
|
168
|
+
// e.g. {a: 1, b:2} === {a: 1, b:2} BUT {a:1, b:2} !== {b:2, a:1}
|
|
169
|
+
// Maybe later we'll use a stable stringifier, but we're matching server-side behavior for now.
|
|
170
|
+
switch (operator) {
|
|
171
|
+
// '=' => The two following items are exactly identical
|
|
172
|
+
case '=':
|
|
173
|
+
return first === second;
|
|
174
|
+
// '!=' => The two following items are NOT exactly identical.
|
|
175
|
+
case '!=':
|
|
176
|
+
return first !== second;
|
|
177
|
+
default:
|
|
178
|
+
throw new Error("Invalid operator in compareItems: ".concat(operator));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function contains(first, second) {
|
|
182
|
+
if (typeof first !== 'string' || typeof second !== 'string') {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
return first.indexOf(second) !== -1;
|
|
186
|
+
}
|
|
187
|
+
function match(str, glob) {
|
|
188
|
+
if (typeof str !== 'string' || typeof glob !== 'string') {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
return globMatches(glob, str);
|
|
192
|
+
}
|
|
193
|
+
function length(item) {
|
|
194
|
+
// Match server-side behavior.
|
|
195
|
+
if (item === null) {
|
|
196
|
+
return 0;
|
|
197
|
+
}
|
|
198
|
+
// Type-check to avoid returning .length of an object
|
|
199
|
+
if (!Array.isArray(item) && typeof item !== 'string') {
|
|
200
|
+
return NaN;
|
|
201
|
+
}
|
|
202
|
+
return item.length;
|
|
203
|
+
}
|
|
204
|
+
// This is a heuristic technically speaking, but should be close enough. The odds of someone trying to test
|
|
205
|
+
// a func with identical IR notation is pretty low.
|
|
206
|
+
function isIR(value) {
|
|
207
|
+
// TODO: This can be better checked by checking if this is a {"value": THIS}
|
|
208
|
+
if (!Array.isArray(value)) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
// Function checks
|
|
212
|
+
if ((value[0] === 'lowercase' ||
|
|
213
|
+
value[0] === 'length' ||
|
|
214
|
+
value[0] === 'typeof') &&
|
|
215
|
+
value.length === 2) {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
if ((value[0] === 'contains' || value[0] === 'match') && value.length === 3) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
// Any reputable glob matcher is designed to work on filesystems and doesn't allow the override of the separator
|
|
224
|
+
// character "/". This is problematic since our server-side representation e.g. evaluates "match('ab/c', 'a*)"
|
|
225
|
+
// as TRUE, whereas any glob matcher for JS available does false. So we're rewriting it here.
|
|
226
|
+
// See: https://github.com/segmentio/glob/blob/master/glob.go
|
|
227
|
+
function globMatches(pattern, str) {
|
|
228
|
+
var _a, _b;
|
|
229
|
+
Pattern: while (pattern.length > 0) {
|
|
230
|
+
var star = void 0;
|
|
231
|
+
var chunk = void 0;
|
|
232
|
+
(_a = scanChunk(pattern), star = _a.star, chunk = _a.chunk, pattern = _a.pattern);
|
|
233
|
+
if (star && chunk === '') {
|
|
234
|
+
// Trailing * matches rest of string
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
// Look for match at current position
|
|
238
|
+
var _c = matchChunk(chunk, str), t = _c.t, ok = _c.ok, err = _c.err;
|
|
239
|
+
if (err) {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
// If we're the last chunk, make sure we've exhausted the str
|
|
243
|
+
// otherwise we'll give a false result even if we could still match
|
|
244
|
+
// using the star
|
|
245
|
+
if (ok && (t.length === 0 || pattern.length > 0)) {
|
|
246
|
+
str = t;
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (star) {
|
|
250
|
+
// Look for match, skipping i+1 bytes.
|
|
251
|
+
for (var i = 0; i < str.length; i++) {
|
|
252
|
+
;
|
|
253
|
+
(_b = matchChunk(chunk, str.slice(i + 1)), t = _b.t, ok = _b.ok, err = _b.err);
|
|
254
|
+
if (ok) {
|
|
255
|
+
// If we're the last chunk, make sure we exhausted the str.
|
|
256
|
+
if (pattern.length === 0 && t.length > 0) {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
str = t;
|
|
260
|
+
continue Pattern;
|
|
261
|
+
}
|
|
262
|
+
if (err) {
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
return str.length === 0;
|
|
270
|
+
}
|
|
271
|
+
function scanChunk(pattern) {
|
|
272
|
+
var result = {
|
|
273
|
+
star: false,
|
|
274
|
+
chunk: '',
|
|
275
|
+
pattern: '',
|
|
276
|
+
};
|
|
277
|
+
while (pattern.length > 0 && pattern[0] === '*') {
|
|
278
|
+
pattern = pattern.slice(1);
|
|
279
|
+
result.star = true;
|
|
280
|
+
}
|
|
281
|
+
var inRange = false;
|
|
282
|
+
var i;
|
|
283
|
+
Scan: for (i = 0; i < pattern.length; i++) {
|
|
284
|
+
switch (pattern[i]) {
|
|
285
|
+
case '\\':
|
|
286
|
+
// Error check handled in matchChunk: bad pattern.
|
|
287
|
+
if (i + 1 < pattern.length) {
|
|
288
|
+
i++;
|
|
289
|
+
}
|
|
290
|
+
break;
|
|
291
|
+
case '[':
|
|
292
|
+
inRange = true;
|
|
293
|
+
break;
|
|
294
|
+
case ']':
|
|
295
|
+
inRange = false;
|
|
296
|
+
break;
|
|
297
|
+
case '*':
|
|
298
|
+
if (!inRange) {
|
|
299
|
+
break Scan;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
result.chunk = pattern.slice(0, i);
|
|
304
|
+
result.pattern = pattern.slice(i);
|
|
305
|
+
return result;
|
|
306
|
+
}
|
|
307
|
+
// matchChunk checks whether chunk matches the beginning of s.
|
|
308
|
+
// If so, it returns the remainder of s (after the match).
|
|
309
|
+
// Chunk is all single-character operators: literals, char classes, and ?.
|
|
310
|
+
function matchChunk(chunk, str) {
|
|
311
|
+
var _a, _b;
|
|
312
|
+
var result = {
|
|
313
|
+
t: '',
|
|
314
|
+
ok: false,
|
|
315
|
+
err: false,
|
|
316
|
+
};
|
|
317
|
+
while (chunk.length > 0) {
|
|
318
|
+
if (str.length === 0) {
|
|
319
|
+
return result;
|
|
320
|
+
}
|
|
321
|
+
switch (chunk[0]) {
|
|
322
|
+
case '[': {
|
|
323
|
+
var char = str[0];
|
|
324
|
+
str = str.slice(1);
|
|
325
|
+
chunk = chunk.slice(1);
|
|
326
|
+
var notNegated = true;
|
|
327
|
+
if (chunk.length > 0 && chunk[0] === '^') {
|
|
328
|
+
notNegated = false;
|
|
329
|
+
chunk = chunk.slice(1);
|
|
330
|
+
}
|
|
331
|
+
// Parse all ranges
|
|
332
|
+
var foundMatch = false;
|
|
333
|
+
var nRange = 0;
|
|
334
|
+
// eslint-disable-next-line no-constant-condition
|
|
335
|
+
while (true) {
|
|
336
|
+
if (chunk.length > 0 && chunk[0] === ']' && nRange > 0) {
|
|
337
|
+
chunk = chunk.slice(1);
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
var lo = '';
|
|
341
|
+
var hi = '';
|
|
342
|
+
var err = void 0;
|
|
343
|
+
(_a = getEsc(chunk), lo = _a.char, chunk = _a.newChunk, err = _a.err);
|
|
344
|
+
if (err) {
|
|
345
|
+
return result;
|
|
346
|
+
}
|
|
347
|
+
hi = lo;
|
|
348
|
+
if (chunk[0] === '-') {
|
|
349
|
+
;
|
|
350
|
+
(_b = getEsc(chunk.slice(1)), hi = _b.char, chunk = _b.newChunk, err = _b.err);
|
|
351
|
+
if (err) {
|
|
352
|
+
return result;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
if (lo <= char && char <= hi) {
|
|
356
|
+
foundMatch = true;
|
|
357
|
+
}
|
|
358
|
+
nRange++;
|
|
359
|
+
}
|
|
360
|
+
if (foundMatch !== notNegated) {
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
case '?':
|
|
366
|
+
str = str.slice(1);
|
|
367
|
+
chunk = chunk.slice(1);
|
|
368
|
+
break;
|
|
369
|
+
case '\\':
|
|
370
|
+
chunk = chunk.slice(1);
|
|
371
|
+
if (chunk.length === 0) {
|
|
372
|
+
result.err = true;
|
|
373
|
+
return result;
|
|
374
|
+
}
|
|
375
|
+
// Fallthrough, missing break intentional.
|
|
376
|
+
default:
|
|
377
|
+
if (chunk[0] !== str[0]) {
|
|
378
|
+
return result;
|
|
379
|
+
}
|
|
380
|
+
str = str.slice(1);
|
|
381
|
+
chunk = chunk.slice(1);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
result.t = str;
|
|
385
|
+
result.ok = true;
|
|
386
|
+
result.err = false;
|
|
387
|
+
return result;
|
|
388
|
+
}
|
|
389
|
+
// getEsc gets a possibly-escaped character from chunk, for a character class.
|
|
390
|
+
function getEsc(chunk) {
|
|
391
|
+
var result = {
|
|
392
|
+
char: '',
|
|
393
|
+
newChunk: '',
|
|
394
|
+
err: false,
|
|
395
|
+
};
|
|
396
|
+
if (chunk.length === 0 || chunk[0] === '-' || chunk[0] === ']') {
|
|
397
|
+
result.err = true;
|
|
398
|
+
return result;
|
|
399
|
+
}
|
|
400
|
+
if (chunk[0] === '\\') {
|
|
401
|
+
chunk = chunk.slice(1);
|
|
402
|
+
if (chunk.length === 0) {
|
|
403
|
+
result.err = true;
|
|
404
|
+
return result;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
// Unlike Go, JS strings operate on characters instead of bytes.
|
|
408
|
+
// This is why we aren't copying over the GetRuneFromString stuff.
|
|
409
|
+
result.char = chunk[0];
|
|
410
|
+
result.newChunk = chunk.slice(1);
|
|
411
|
+
if (result.newChunk.length === 0) {
|
|
412
|
+
result.err = true;
|
|
413
|
+
}
|
|
414
|
+
return result;
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=matchers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../../src/lib/tsub/matchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var Store = /** @class */ (function () {
|
|
4
|
+
function Store(rules) {
|
|
5
|
+
this.rules = [];
|
|
6
|
+
this.rules = rules || [];
|
|
7
|
+
}
|
|
8
|
+
Store.prototype.getRulesByDestinationName = function (destinationName) {
|
|
9
|
+
var rules = [];
|
|
10
|
+
for (var _i = 0, _a = this.rules; _i < _a.length; _i++) {
|
|
11
|
+
var rule = _a[_i];
|
|
12
|
+
// Rules with no destinationName are global (workspace || workspace::source)
|
|
13
|
+
if (rule.destinationName === destinationName ||
|
|
14
|
+
rule.destinationName === undefined) {
|
|
15
|
+
rules.push(rule);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return rules;
|
|
19
|
+
};
|
|
20
|
+
return Store;
|
|
21
|
+
}());
|
|
22
|
+
exports.default = Store;
|
|
23
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/lib/tsub/store.ts"],"names":[],"mappings":";;AAoBA;IAGE,eAAY,KAAc;QAFT,UAAK,GAAW,EAAE,CAAA;QAGjC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;IAC1B,CAAC;IAEM,yCAAyB,GAAhC,UAAiC,eAAuB;QACtD,IAAM,KAAK,GAAW,EAAE,CAAA;QACxB,KAAmB,UAAU,EAAV,KAAA,IAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;YAA1B,IAAM,IAAI,SAAA;YACb,4EAA4E;YAC5E,IACE,IAAI,CAAC,eAAe,KAAK,eAAe;gBACxC,IAAI,CAAC,eAAe,KAAK,SAAS,EAClC;gBACA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACjB;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IACH,YAAC;AAAD,CAAC,AArBD,IAqBC"}
|