@driveflux/reporter 6.0.1 → 6.0.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.
- package/dist/config.js +55 -43
- package/dist/drivers/console.js +13 -194
- package/dist/drivers/rollbar.js +16 -207
- package/dist/drivers/sentry-nextjs.js +25 -207
- package/dist/drivers/slack.js +117 -340
- package/dist/index.js +68 -377
- package/dist/types.js +2 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -1,200 +1,3 @@
|
|
|
1
|
-
function _array_like_to_array(arr, len) {
|
|
2
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
-
return arr2;
|
|
5
|
-
}
|
|
6
|
-
function _array_without_holes(arr) {
|
|
7
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
8
|
-
}
|
|
9
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
10
|
-
try {
|
|
11
|
-
var info = gen[key](arg);
|
|
12
|
-
var value = info.value;
|
|
13
|
-
} catch (error) {
|
|
14
|
-
reject(error);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (info.done) {
|
|
18
|
-
resolve(value);
|
|
19
|
-
} else {
|
|
20
|
-
Promise.resolve(value).then(_next, _throw);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function _async_to_generator(fn) {
|
|
24
|
-
return function() {
|
|
25
|
-
var self = this, args = arguments;
|
|
26
|
-
return new Promise(function(resolve, reject) {
|
|
27
|
-
var gen = fn.apply(self, args);
|
|
28
|
-
function _next(value) {
|
|
29
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
30
|
-
}
|
|
31
|
-
function _throw(err) {
|
|
32
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
33
|
-
}
|
|
34
|
-
_next(undefined);
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function _define_property(obj, key, value) {
|
|
39
|
-
if (key in obj) {
|
|
40
|
-
Object.defineProperty(obj, key, {
|
|
41
|
-
value: value,
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true
|
|
45
|
-
});
|
|
46
|
-
} else {
|
|
47
|
-
obj[key] = value;
|
|
48
|
-
}
|
|
49
|
-
return obj;
|
|
50
|
-
}
|
|
51
|
-
function _iterable_to_array(iter) {
|
|
52
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
53
|
-
}
|
|
54
|
-
function _non_iterable_spread() {
|
|
55
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
56
|
-
}
|
|
57
|
-
function _object_spread(target) {
|
|
58
|
-
for(var i = 1; i < arguments.length; i++){
|
|
59
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
60
|
-
var ownKeys = Object.keys(source);
|
|
61
|
-
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
62
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
63
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
ownKeys.forEach(function(key) {
|
|
67
|
-
_define_property(target, key, source[key]);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return target;
|
|
71
|
-
}
|
|
72
|
-
function ownKeys(object, enumerableOnly) {
|
|
73
|
-
var keys = Object.keys(object);
|
|
74
|
-
if (Object.getOwnPropertySymbols) {
|
|
75
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
76
|
-
if (enumerableOnly) {
|
|
77
|
-
symbols = symbols.filter(function(sym) {
|
|
78
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
keys.push.apply(keys, symbols);
|
|
82
|
-
}
|
|
83
|
-
return keys;
|
|
84
|
-
}
|
|
85
|
-
function _object_spread_props(target, source) {
|
|
86
|
-
source = source != null ? source : {};
|
|
87
|
-
if (Object.getOwnPropertyDescriptors) {
|
|
88
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
89
|
-
} else {
|
|
90
|
-
ownKeys(Object(source)).forEach(function(key) {
|
|
91
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return target;
|
|
95
|
-
}
|
|
96
|
-
function _to_consumable_array(arr) {
|
|
97
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
98
|
-
}
|
|
99
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
100
|
-
if (!o) return;
|
|
101
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
102
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
103
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
104
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
105
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
106
|
-
}
|
|
107
|
-
function _ts_generator(thisArg, body) {
|
|
108
|
-
var f, y, t, _ = {
|
|
109
|
-
label: 0,
|
|
110
|
-
sent: function() {
|
|
111
|
-
if (t[0] & 1) throw t[1];
|
|
112
|
-
return t[1];
|
|
113
|
-
},
|
|
114
|
-
trys: [],
|
|
115
|
-
ops: []
|
|
116
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
117
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
118
|
-
return this;
|
|
119
|
-
}), g;
|
|
120
|
-
function verb(n) {
|
|
121
|
-
return function(v) {
|
|
122
|
-
return step([
|
|
123
|
-
n,
|
|
124
|
-
v
|
|
125
|
-
]);
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
function step(op) {
|
|
129
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
130
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
131
|
-
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;
|
|
132
|
-
if (y = 0, t) op = [
|
|
133
|
-
op[0] & 2,
|
|
134
|
-
t.value
|
|
135
|
-
];
|
|
136
|
-
switch(op[0]){
|
|
137
|
-
case 0:
|
|
138
|
-
case 1:
|
|
139
|
-
t = op;
|
|
140
|
-
break;
|
|
141
|
-
case 4:
|
|
142
|
-
_.label++;
|
|
143
|
-
return {
|
|
144
|
-
value: op[1],
|
|
145
|
-
done: false
|
|
146
|
-
};
|
|
147
|
-
case 5:
|
|
148
|
-
_.label++;
|
|
149
|
-
y = op[1];
|
|
150
|
-
op = [
|
|
151
|
-
0
|
|
152
|
-
];
|
|
153
|
-
continue;
|
|
154
|
-
case 7:
|
|
155
|
-
op = _.ops.pop();
|
|
156
|
-
_.trys.pop();
|
|
157
|
-
continue;
|
|
158
|
-
default:
|
|
159
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
160
|
-
_ = 0;
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
164
|
-
_.label = op[1];
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
168
|
-
_.label = t[1];
|
|
169
|
-
t = op;
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
if (t && _.label < t[2]) {
|
|
173
|
-
_.label = t[2];
|
|
174
|
-
_.ops.push(op);
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
if (t[2]) _.ops.pop();
|
|
178
|
-
_.trys.pop();
|
|
179
|
-
continue;
|
|
180
|
-
}
|
|
181
|
-
op = body.call(thisArg, _);
|
|
182
|
-
} catch (e) {
|
|
183
|
-
op = [
|
|
184
|
-
6,
|
|
185
|
-
e
|
|
186
|
-
];
|
|
187
|
-
y = 0;
|
|
188
|
-
} finally{
|
|
189
|
-
f = t = 0;
|
|
190
|
-
}
|
|
191
|
-
if (op[0] & 5) throw op[1];
|
|
192
|
-
return {
|
|
193
|
-
value: op[0] ? op[1] : void 0,
|
|
194
|
-
done: true
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
1
|
import { isAProblem } from '@driveflux/problem';
|
|
199
2
|
import { initSingleton } from '@driveflux/singleton';
|
|
200
3
|
import { omit } from '@driveflux/utils';
|
|
@@ -204,215 +7,103 @@ import { RollbarDriver } from './drivers/rollbar.js';
|
|
|
204
7
|
import { SentryNextJSDriver } from './drivers/sentry-nextjs.js';
|
|
205
8
|
import { SlackDriver } from './drivers/slack.js';
|
|
206
9
|
export * from './config.js';
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
var customDrivers = initSingleton('reporter_customDrivers', function() {
|
|
211
|
-
return new Map();
|
|
212
|
-
});
|
|
213
|
-
export var addDriver = function(name, reporter) {
|
|
214
|
-
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
|
|
10
|
+
const problemsAndErrorsToReport = initSingleton('reporter_problemsAndErrors', () => new Set());
|
|
11
|
+
const customDrivers = initSingleton('reporter_customDrivers', () => new Map());
|
|
12
|
+
export const addDriver = (name, reporter, enabled = true) => {
|
|
215
13
|
customDrivers.set(name, {
|
|
216
|
-
enabled
|
|
217
|
-
reporter
|
|
14
|
+
enabled,
|
|
15
|
+
reporter,
|
|
218
16
|
});
|
|
219
17
|
};
|
|
220
|
-
|
|
221
|
-
console:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
},
|
|
226
|
-
rollbar: function() {
|
|
227
|
-
return initSingleton('reporter_rollbarDriver', function() {
|
|
228
|
-
return new RollbarDriver(config.rollbar);
|
|
229
|
-
});
|
|
230
|
-
},
|
|
231
|
-
'sentry-nextjs': function() {
|
|
232
|
-
return initSingleton('reporter_sentryDriver', function() {
|
|
233
|
-
return new SentryNextJSDriver(config.sentry);
|
|
234
|
-
});
|
|
235
|
-
},
|
|
236
|
-
slack: function() {
|
|
237
|
-
return initSingleton('reporter_slackDriver', function() {
|
|
238
|
-
return new SlackDriver(config.slack);
|
|
239
|
-
});
|
|
240
|
-
}
|
|
18
|
+
const DRIVERS_MAP = {
|
|
19
|
+
console: () => initSingleton('reporter_consoleDriver', () => new ConsoleDriver()),
|
|
20
|
+
rollbar: () => initSingleton('reporter_rollbarDriver', () => new RollbarDriver(config.rollbar)),
|
|
21
|
+
'sentry-nextjs': () => initSingleton('reporter_sentryDriver', () => new SentryNextJSDriver(config.sentry)),
|
|
22
|
+
slack: () => initSingleton('reporter_slackDriver', () => new SlackDriver(config.slack)),
|
|
241
23
|
};
|
|
242
|
-
export
|
|
24
|
+
export const getDriver = (driver) => {
|
|
243
25
|
if (driver in DRIVERS_MAP) {
|
|
244
26
|
return DRIVERS_MAP[driver]();
|
|
245
27
|
}
|
|
246
|
-
|
|
28
|
+
const customDriver = customDrivers.get(driver);
|
|
247
29
|
if (!customDriver) {
|
|
248
|
-
throw new Error(
|
|
30
|
+
throw new Error(`Driver ${driver} not found.`);
|
|
249
31
|
}
|
|
250
32
|
return customDriver.reporter;
|
|
251
33
|
};
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
return allDrivers
|
|
255
|
-
|
|
256
|
-
if (config.drivers[driver] ||
|
|
34
|
+
const getDrivers = () => {
|
|
35
|
+
const allDrivers = [...Object.keys(config.drivers), ...customDrivers.keys()];
|
|
36
|
+
return allDrivers
|
|
37
|
+
.map((driver) => {
|
|
38
|
+
if (config.drivers[driver] ||
|
|
39
|
+
customDrivers.get(driver)?.enabled) {
|
|
257
40
|
return getDriver(driver);
|
|
258
41
|
}
|
|
259
42
|
return;
|
|
260
|
-
})
|
|
261
|
-
|
|
262
|
-
});
|
|
43
|
+
})
|
|
44
|
+
.filter((d) => d);
|
|
263
45
|
};
|
|
264
|
-
export
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
3,
|
|
274
|
-
1
|
|
275
|
-
];
|
|
276
|
-
problemsAndErrorsToReport.add(err);
|
|
277
|
-
return [
|
|
278
|
-
3,
|
|
279
|
-
3
|
|
280
|
-
];
|
|
281
|
-
case 1:
|
|
282
|
-
return [
|
|
283
|
-
4,
|
|
284
|
-
commitSingleError(err, metadata)
|
|
285
|
-
];
|
|
286
|
-
case 2:
|
|
287
|
-
_state.sent();
|
|
288
|
-
_state.label = 3;
|
|
289
|
-
case 3:
|
|
290
|
-
return [
|
|
291
|
-
2,
|
|
292
|
-
err
|
|
293
|
-
];
|
|
294
|
-
}
|
|
295
|
-
});
|
|
296
|
-
})();
|
|
46
|
+
export const reportError = async (err, metadata = {}, sync) => {
|
|
47
|
+
const defer = typeof sync === 'boolean' ? !sync : config.deferReporting;
|
|
48
|
+
if (defer) {
|
|
49
|
+
problemsAndErrorsToReport.add(err);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await commitSingleError(err, metadata);
|
|
53
|
+
}
|
|
54
|
+
return err;
|
|
297
55
|
};
|
|
298
56
|
/**
|
|
299
57
|
*
|
|
300
58
|
* @todo make function
|
|
301
59
|
* @param problem
|
|
302
|
-
*/
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
];
|
|
313
|
-
problemsAndErrorsToReport.add(problem);
|
|
314
|
-
return [
|
|
315
|
-
3,
|
|
316
|
-
3
|
|
317
|
-
];
|
|
318
|
-
case 1:
|
|
319
|
-
return [
|
|
320
|
-
4,
|
|
321
|
-
commitSingleProblem(problem)
|
|
322
|
-
];
|
|
323
|
-
case 2:
|
|
324
|
-
_state.sent();
|
|
325
|
-
_state.label = 3;
|
|
326
|
-
case 3:
|
|
327
|
-
return [
|
|
328
|
-
2,
|
|
329
|
-
problem
|
|
330
|
-
];
|
|
331
|
-
}
|
|
332
|
-
});
|
|
333
|
-
})();
|
|
60
|
+
*/
|
|
61
|
+
export const reportProblem = async (problem, sync) => {
|
|
62
|
+
const defer = typeof sync === 'boolean' ? !sync : config.deferReporting;
|
|
63
|
+
if (defer) {
|
|
64
|
+
problemsAndErrorsToReport.add(problem);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
await commitSingleProblem(problem);
|
|
68
|
+
}
|
|
69
|
+
return problem;
|
|
334
70
|
};
|
|
335
|
-
export
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
problemsAndErrorsToReport.clear();
|
|
344
|
-
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
345
|
-
try {
|
|
346
|
-
for(_iterator = problemsToReport[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
347
|
-
_$err = _step.value;
|
|
348
|
-
promises.push(isAProblem(_$err) ? commitSingleProblem(_$err) : commitSingleError(_$err));
|
|
349
|
-
}
|
|
350
|
-
} catch (err) {
|
|
351
|
-
_didIteratorError = true;
|
|
352
|
-
_iteratorError = err;
|
|
353
|
-
} finally{
|
|
354
|
-
try {
|
|
355
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
356
|
-
_iterator.return();
|
|
357
|
-
}
|
|
358
|
-
} finally{
|
|
359
|
-
if (_didIteratorError) {
|
|
360
|
-
throw _iteratorError;
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
return [
|
|
365
|
-
4,
|
|
366
|
-
Promise.allSettled(promises)
|
|
367
|
-
];
|
|
368
|
-
case 1:
|
|
369
|
-
_state.sent();
|
|
370
|
-
return [
|
|
371
|
-
2
|
|
372
|
-
];
|
|
373
|
-
}
|
|
374
|
-
});
|
|
375
|
-
})();
|
|
71
|
+
export const commitReportingErrors = async () => {
|
|
72
|
+
const promises = [];
|
|
73
|
+
const problemsToReport = [...problemsAndErrorsToReport];
|
|
74
|
+
problemsAndErrorsToReport.clear();
|
|
75
|
+
for (const err of problemsToReport) {
|
|
76
|
+
promises.push(isAProblem(err) ? commitSingleProblem(err) : commitSingleError(err));
|
|
77
|
+
}
|
|
78
|
+
await Promise.allSettled(promises);
|
|
376
79
|
};
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
return Promise.allSettled(getDrivers().map(function(driver) {
|
|
80
|
+
const commitSingleError = (err, metadata = {}) => {
|
|
81
|
+
return Promise.allSettled(getDrivers().map((driver) => {
|
|
380
82
|
return driver.reportError(err, {
|
|
381
83
|
request: metadata.request,
|
|
382
|
-
others: omit(metadata, 'request')
|
|
84
|
+
others: omit(metadata, 'request'),
|
|
383
85
|
});
|
|
384
86
|
}));
|
|
385
87
|
};
|
|
386
|
-
|
|
387
|
-
return Promise.allSettled(getDrivers().map(
|
|
388
|
-
|
|
389
|
-
|
|
88
|
+
const commitSingleProblem = (problem) => {
|
|
89
|
+
return Promise.allSettled(getDrivers().map((driver) => {
|
|
90
|
+
return driver.reportProblem({
|
|
91
|
+
...problem,
|
|
390
92
|
privateMetadata: {
|
|
391
|
-
request:
|
|
392
|
-
others:
|
|
393
|
-
|
|
394
|
-
|
|
93
|
+
request: problem.privateMetadata?.request,
|
|
94
|
+
others: {
|
|
95
|
+
...problem.metadata,
|
|
96
|
+
...(problem.privateMetadata
|
|
97
|
+
? omit(problem.privateMetadata, 'request')
|
|
98
|
+
: undefined),
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
});
|
|
395
102
|
}));
|
|
396
103
|
};
|
|
397
|
-
export
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
for(var _iterator = getDrivers()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
401
|
-
var driver = _step.value;
|
|
402
|
-
driver.setReporterPayload(payload);
|
|
403
|
-
}
|
|
404
|
-
} catch (err) {
|
|
405
|
-
_didIteratorError = true;
|
|
406
|
-
_iteratorError = err;
|
|
407
|
-
} finally{
|
|
408
|
-
try {
|
|
409
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
410
|
-
_iterator.return();
|
|
411
|
-
}
|
|
412
|
-
} finally{
|
|
413
|
-
if (_didIteratorError) {
|
|
414
|
-
throw _iteratorError;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
104
|
+
export const setReporterPayload = (payload) => {
|
|
105
|
+
for (const driver of getDrivers()) {
|
|
106
|
+
driver.setReporterPayload(payload);
|
|
417
107
|
}
|
|
418
108
|
};
|
|
109
|
+
//# sourceMappingURL=index.js.map
|
package/dist/types.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@driveflux/reporter",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@driveflux/fetch": "7.0.
|
|
25
|
-
"@driveflux/problem": "5.0.
|
|
26
|
-
"@driveflux/redact": "5.0.
|
|
27
|
-
"@driveflux/singleton": "2.0.
|
|
28
|
-
"@driveflux/utils": "5.0.
|
|
24
|
+
"@driveflux/fetch": "7.0.2",
|
|
25
|
+
"@driveflux/problem": "5.0.2",
|
|
26
|
+
"@driveflux/redact": "5.0.2",
|
|
27
|
+
"@driveflux/singleton": "2.0.2",
|
|
28
|
+
"@driveflux/utils": "5.0.2",
|
|
29
29
|
"@sentry/nextjs": "^9.16.1",
|
|
30
30
|
"@sentry/node": "^9.16.1",
|
|
31
31
|
"flat": "6.0.1",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"zod": "^3.24.4"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@driveflux/fab": "3.0.
|
|
37
|
-
"@driveflux/tsconfig": "2.0.
|
|
36
|
+
"@driveflux/fab": "3.0.2",
|
|
37
|
+
"@driveflux/tsconfig": "2.0.2",
|
|
38
38
|
"@types/flat": "^5.0.5",
|
|
39
39
|
"@types/node": "^22.15.16",
|
|
40
40
|
"del-cli": "^6.0.0",
|