@driveflux/reporter 5.7.1 → 5.8.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/config.d.ts CHANGED
@@ -1,21 +1,194 @@
1
1
  import { ProblemSeverity } from '@driveflux/problem';
2
- import type { Configuration } from 'rollbar';
3
- export type Config = {
2
+ import z from 'zod';
3
+ export declare const ConfigValidation: z.ZodEffects<z.ZodObject<{
4
+ isProd: z.ZodBoolean;
5
+ deferReporting: z.ZodBoolean;
6
+ slack: z.ZodOptional<z.ZodObject<{
7
+ errorChannelId: z.ZodString;
8
+ token: z.ZodString;
9
+ minimumSeverity: z.ZodNativeEnum<typeof ProblemSeverity>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ errorChannelId: string;
12
+ token: string;
13
+ minimumSeverity: ProblemSeverity;
14
+ }, {
15
+ errorChannelId: string;
16
+ token: string;
17
+ minimumSeverity: ProblemSeverity;
18
+ }>>;
19
+ drivers: z.ZodObject<{
20
+ slack: z.ZodBoolean;
21
+ rollbar: z.ZodBoolean;
22
+ console: z.ZodBoolean;
23
+ 'sentry-nextjs': z.ZodBoolean;
24
+ }, "strip", z.ZodTypeAny, {
25
+ slack: boolean;
26
+ rollbar: boolean;
27
+ console: boolean;
28
+ 'sentry-nextjs': boolean;
29
+ }, {
30
+ slack: boolean;
31
+ rollbar: boolean;
32
+ console: boolean;
33
+ 'sentry-nextjs': boolean;
34
+ }>;
35
+ rollbar: z.ZodOptional<z.ZodObject<{
36
+ accessToken: z.ZodString;
37
+ enabled: z.ZodBoolean;
38
+ }, "strip", z.ZodTypeAny, {
39
+ accessToken: string;
40
+ enabled: boolean;
41
+ }, {
42
+ accessToken: string;
43
+ enabled: boolean;
44
+ }>>;
45
+ sentry: z.ZodOptional<z.ZodObject<{
46
+ url: z.ZodString;
47
+ org: z.ZodString;
48
+ project: z.ZodString;
49
+ dsn: z.ZodString;
50
+ authToken: z.ZodOptional<z.ZodString>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ url: string;
53
+ org: string;
54
+ project: string;
55
+ dsn: string;
56
+ authToken?: string | undefined;
57
+ }, {
58
+ url: string;
59
+ org: string;
60
+ project: string;
61
+ dsn: string;
62
+ authToken?: string | undefined;
63
+ }>>;
64
+ }, "strip", z.ZodTypeAny, {
4
65
  isProd: boolean;
5
66
  deferReporting: boolean;
67
+ drivers: {
68
+ slack: boolean;
69
+ rollbar: boolean;
70
+ console: boolean;
71
+ 'sentry-nextjs': boolean;
72
+ };
6
73
  slack?: {
7
74
  errorChannelId: string;
8
75
  token: string;
9
76
  minimumSeverity: ProblemSeverity;
77
+ } | undefined;
78
+ rollbar?: {
79
+ accessToken: string;
80
+ enabled: boolean;
81
+ } | undefined;
82
+ sentry?: {
83
+ url: string;
84
+ org: string;
85
+ project: string;
86
+ dsn: string;
87
+ authToken?: string | undefined;
88
+ } | undefined;
89
+ }, {
90
+ isProd: boolean;
91
+ deferReporting: boolean;
92
+ drivers: {
93
+ slack: boolean;
94
+ rollbar: boolean;
95
+ console: boolean;
96
+ 'sentry-nextjs': boolean;
10
97
  };
98
+ slack?: {
99
+ errorChannelId: string;
100
+ token: string;
101
+ minimumSeverity: ProblemSeverity;
102
+ } | undefined;
103
+ rollbar?: {
104
+ accessToken: string;
105
+ enabled: boolean;
106
+ } | undefined;
107
+ sentry?: {
108
+ url: string;
109
+ org: string;
110
+ project: string;
111
+ dsn: string;
112
+ authToken?: string | undefined;
113
+ } | undefined;
114
+ }>, {
115
+ isProd: boolean;
116
+ deferReporting: boolean;
11
117
  drivers: {
12
118
  slack: boolean;
13
119
  rollbar: boolean;
14
120
  console: boolean;
121
+ 'sentry-nextjs': boolean;
15
122
  };
16
- rollbar?: Configuration;
17
- };
123
+ slack?: {
124
+ errorChannelId: string;
125
+ token: string;
126
+ minimumSeverity: ProblemSeverity;
127
+ } | undefined;
128
+ rollbar?: {
129
+ accessToken: string;
130
+ enabled: boolean;
131
+ } | undefined;
132
+ sentry?: {
133
+ url: string;
134
+ org: string;
135
+ project: string;
136
+ dsn: string;
137
+ authToken?: string | undefined;
138
+ } | undefined;
139
+ }, {
140
+ isProd: boolean;
141
+ deferReporting: boolean;
142
+ drivers: {
143
+ slack: boolean;
144
+ rollbar: boolean;
145
+ console: boolean;
146
+ 'sentry-nextjs': boolean;
147
+ };
148
+ slack?: {
149
+ errorChannelId: string;
150
+ token: string;
151
+ minimumSeverity: ProblemSeverity;
152
+ } | undefined;
153
+ rollbar?: {
154
+ accessToken: string;
155
+ enabled: boolean;
156
+ } | undefined;
157
+ sentry?: {
158
+ url: string;
159
+ org: string;
160
+ project: string;
161
+ dsn: string;
162
+ authToken?: string | undefined;
163
+ } | undefined;
164
+ }>;
165
+ export type Config = z.infer<typeof ConfigValidation>;
18
166
  export declare let config: Config;
19
- export declare const resetConfig: () => Config;
167
+ export declare const resetConfig: () => {
168
+ isProd: boolean;
169
+ deferReporting: boolean;
170
+ drivers: {
171
+ slack: boolean;
172
+ rollbar: boolean;
173
+ console: boolean;
174
+ 'sentry-nextjs': boolean;
175
+ };
176
+ slack?: {
177
+ errorChannelId: string;
178
+ token: string;
179
+ minimumSeverity: ProblemSeverity;
180
+ } | undefined;
181
+ rollbar?: {
182
+ accessToken: string;
183
+ enabled: boolean;
184
+ } | undefined;
185
+ sentry?: {
186
+ url: string;
187
+ org: string;
188
+ project: string;
189
+ dsn: string;
190
+ authToken?: string | undefined;
191
+ } | undefined;
192
+ };
20
193
  export declare const setConfig: <Key extends keyof Config>(key: Key, value: Config[Key]) => void;
21
194
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE;QACP,cAAc,EAAE,MAAM,CAAA;QACtB,KAAK,EAAE,MAAM,CAAA;QACb,eAAe,EAAE,eAAe,CAAA;KAChC,CAAA;IACD,OAAO,EAAE;QACR,KAAK,EAAE,OAAO,CAAA;QACd,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,OAAO,CAAC,EAAE,aAAa,CAAA;CACvB,CAAA;AA6BD,eAAO,IAAI,MAAM,EAAE,MAAiD,CAAA;AAEpE,eAAO,MAAM,WAAW,cAIvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,OAC5C,GAAG,SACD,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoD1B,CAAA;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AA8CrD,eAAO,IAAI,MAAM,EAAE,MAA2D,CAAA;AAE9E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAIvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,OAC5C,GAAG,SACD,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
package/dist/config.js CHANGED
@@ -1,31 +1,89 @@
1
1
  import { ProblemSeverity } from '@driveflux/problem';
2
- import { singleton } from '@driveflux/singleton';
2
+ import { initSingleton } from '@driveflux/singleton';
3
+ import z from 'zod';
4
+ export var ConfigValidation = z.object({
5
+ isProd: z.boolean(),
6
+ deferReporting: z.boolean(),
7
+ slack: z.object({
8
+ errorChannelId: z.string(),
9
+ token: z.string(),
10
+ minimumSeverity: z.nativeEnum(ProblemSeverity)
11
+ }).optional(),
12
+ drivers: z.object({
13
+ slack: z.boolean(),
14
+ rollbar: z.boolean(),
15
+ console: z.boolean(),
16
+ 'sentry-nextjs': z.boolean()
17
+ }),
18
+ rollbar: z.object({
19
+ accessToken: z.string(),
20
+ enabled: z.boolean()
21
+ }).optional(),
22
+ sentry: z.object({
23
+ url: z.string(),
24
+ org: z.string(),
25
+ project: z.string(),
26
+ dsn: z.string(),
27
+ authToken: z.string().optional()
28
+ }).optional()
29
+ }).superRefine(function(data, ctx) {
30
+ if (data.drivers.rollbar && !data.rollbar) {
31
+ ctx.addIssue({
32
+ code: z.ZodIssueCode.custom,
33
+ message: 'Rollbar is required when using the Rollbar driver'
34
+ });
35
+ }
36
+ if (data.drivers['sentry-nextjs'] && !data.sentry) {
37
+ ctx.addIssue({
38
+ code: z.ZodIssueCode.custom,
39
+ message: 'Sentry is required when using the Sentry driver'
40
+ });
41
+ }
42
+ if (data.drivers.rollbar && !data.rollbar) {
43
+ ctx.addIssue({
44
+ code: z.ZodIssueCode.custom,
45
+ message: 'Rollbar is required when using the Rollbar driver'
46
+ });
47
+ }
48
+ });
3
49
  var getConfig = function() {
4
- return {
50
+ return ConfigValidation.parse({
5
51
  isProd: process.env.APP_ENV === 'production',
6
52
  deferReporting: typeof process.env.REPORTER_DEFER === 'string' && process.env.REPORTER_DEFER !== '' ? process.env.REPORTER_DEFER === 'true' : true,
7
- slack: {
53
+ slack: process.env.REPORTER_USE_SLACK === 'true' ? {
8
54
  errorChannelId: process.env.SLACK_ERROR_CHANNEL,
9
55
  token: process.env.SLACK_TOKEN,
10
56
  minimumSeverity: ProblemSeverity.CRITICAL
11
- },
57
+ } : undefined,
12
58
  drivers: {
13
59
  slack: process.env.REPORTER_USE_SLACK === 'true',
14
60
  rollbar: process.env.REPORTER_USE_ROLLBAR === 'true',
15
- console: process.env.REPORTER_USE_CONSOLE !== 'false'
61
+ console: process.env.REPORTER_USE_CONSOLE !== 'false',
62
+ 'sentry-nextjs': process.env.REPORTER_USE_SENTRY_NEXTJS === 'true'
16
63
  },
17
- rollbar: {
64
+ sentry: process.env.REPORTER_USE_SENTRY_NEXTJS === 'true' ? {
65
+ url: process.env.SENTRY_URL,
66
+ org: process.env.SENTRY_ORG,
67
+ project: process.env.SENTRY_PROJECT,
68
+ dsn: process.env.SENTRY_DSN,
69
+ authToken: process.env.SENTRY_AUTH_TOKEN
70
+ } : undefined,
71
+ rollbar: process.env.REPORTER_USE_ROLLBAR === 'true' ? {
18
72
  accessToken: process.env.ROLLBAR_ACCESS_TOKEN,
19
73
  enabled: true,
20
74
  captureUncaught: true,
21
75
  captureUnhandledRejections: true,
22
76
  environment: process.env.APP_ENV || process.env.NODE_ENV
23
- }
24
- };
77
+ } : undefined
78
+ });
25
79
  };
26
- export var config = singleton('reporterConfig', getConfig());
80
+ export var config = initSingleton('reporterConfig', function() {
81
+ return getConfig();
82
+ });
27
83
  export var resetConfig = function() {
28
- config = singleton('reporterConfig', getConfig(), true);
84
+ config = initSingleton('reporterConfig', function() {
85
+ return getConfig();
86
+ }, true);
29
87
  return config;
30
88
  };
31
89
  export var setConfig = function(key, value) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/drivers/console.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACjB,OAAO,CAAK;IAEpB,KAAK,CAAC,WAAW,CAAC,GAAU,EAAE,CAAW;QACxC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC3B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QACnC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACnC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,kBAAkB,CAAC,OAA4B;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollbar.js","sourceRoot":"","sources":["../../src/drivers/rollbar.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,MAAM,OAAO,aAAa;IACjB,OAAO,CAAA;IAEf,YAAY,aAA+C;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAU,EAAE,QAAkB;QAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QACnC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CACjB,OAAO,CAAC,eAAe,EAAE,KAAK;gBAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAC3C,OAAO,CAAC,eAAe,EAAE,OAAO,EAChC,OAAO,CAAC,eAAe,IAAI,EAAE,EAC7B,CAAC,KAAK,EAAE,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CACD,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED,kBAAkB,CAAC,OAA4B;QAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACpC,CAAC;CACD"}
@@ -0,0 +1,13 @@
1
+ import type { Problem } from '@driveflux/problem';
2
+ import * as Sentry from '@sentry/nextjs';
3
+ import type { Config } from '../config.js';
4
+ import type { Metadata, Reporter } from '../types.js';
5
+ export declare class SentryNextJSDriver implements Reporter {
6
+ private config;
7
+ constructor(config: NonNullable<Config['sentry']>);
8
+ getSentry(): typeof Sentry;
9
+ reportError(err: Error, metadata: Metadata): Promise<void>;
10
+ reportProblem(problem: Problem): Promise<void>;
11
+ setReporterPayload(payload: Record<string, any>): void;
12
+ }
13
+ //# sourceMappingURL=sentry-nextjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-nextjs.d.ts","sourceRoot":"","sources":["../../src/drivers/sentry-nextjs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAErD,qBAAa,kBAAmB,YAAW,QAAQ;IACtC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAMzD,SAAS;IAIH,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;IAQ1C,aAAa,CAAC,OAAO,EAAE,OAAO;IAapC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG/C"}
@@ -0,0 +1,219 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _class_call_check(instance, Constructor) {
31
+ if (!(instance instanceof Constructor)) {
32
+ throw new TypeError("Cannot call a class as a function");
33
+ }
34
+ }
35
+ function _defineProperties(target, props) {
36
+ for(var i = 0; i < props.length; i++){
37
+ var descriptor = props[i];
38
+ descriptor.enumerable = descriptor.enumerable || false;
39
+ descriptor.configurable = true;
40
+ if ("value" in descriptor) descriptor.writable = true;
41
+ Object.defineProperty(target, descriptor.key, descriptor);
42
+ }
43
+ }
44
+ function _create_class(Constructor, protoProps, staticProps) {
45
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
46
+ if (staticProps) _defineProperties(Constructor, staticProps);
47
+ return Constructor;
48
+ }
49
+ function _define_property(obj, key, value) {
50
+ if (key in obj) {
51
+ Object.defineProperty(obj, key, {
52
+ value: value,
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true
56
+ });
57
+ } else {
58
+ obj[key] = value;
59
+ }
60
+ return obj;
61
+ }
62
+ function _ts_generator(thisArg, body) {
63
+ var f, y, t, g, _ = {
64
+ label: 0,
65
+ sent: function() {
66
+ if (t[0] & 1) throw t[1];
67
+ return t[1];
68
+ },
69
+ trys: [],
70
+ ops: []
71
+ };
72
+ return g = {
73
+ next: verb(0),
74
+ "throw": verb(1),
75
+ "return": verb(2)
76
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
77
+ return this;
78
+ }), g;
79
+ function verb(n) {
80
+ return function(v) {
81
+ return step([
82
+ n,
83
+ v
84
+ ]);
85
+ };
86
+ }
87
+ function step(op) {
88
+ if (f) throw new TypeError("Generator is already executing.");
89
+ while(_)try {
90
+ 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;
91
+ if (y = 0, t) op = [
92
+ op[0] & 2,
93
+ t.value
94
+ ];
95
+ switch(op[0]){
96
+ case 0:
97
+ case 1:
98
+ t = op;
99
+ break;
100
+ case 4:
101
+ _.label++;
102
+ return {
103
+ value: op[1],
104
+ done: false
105
+ };
106
+ case 5:
107
+ _.label++;
108
+ y = op[1];
109
+ op = [
110
+ 0
111
+ ];
112
+ continue;
113
+ case 7:
114
+ op = _.ops.pop();
115
+ _.trys.pop();
116
+ continue;
117
+ default:
118
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
119
+ _ = 0;
120
+ continue;
121
+ }
122
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
123
+ _.label = op[1];
124
+ break;
125
+ }
126
+ if (op[0] === 6 && _.label < t[1]) {
127
+ _.label = t[1];
128
+ t = op;
129
+ break;
130
+ }
131
+ if (t && _.label < t[2]) {
132
+ _.label = t[2];
133
+ _.ops.push(op);
134
+ break;
135
+ }
136
+ if (t[2]) _.ops.pop();
137
+ _.trys.pop();
138
+ continue;
139
+ }
140
+ op = body.call(thisArg, _);
141
+ } catch (e) {
142
+ op = [
143
+ 6,
144
+ e
145
+ ];
146
+ y = 0;
147
+ } finally{
148
+ f = t = 0;
149
+ }
150
+ if (op[0] & 5) throw op[1];
151
+ return {
152
+ value: op[0] ? op[1] : void 0,
153
+ done: true
154
+ };
155
+ }
156
+ }
157
+ import * as Sentry from '@sentry/nextjs';
158
+ export var SentryNextJSDriver = /*#__PURE__*/ function() {
159
+ "use strict";
160
+ function SentryNextJSDriver(config) {
161
+ _class_call_check(this, SentryNextJSDriver);
162
+ _define_property(this, "config", void 0);
163
+ this.config = config;
164
+ if (!this.config) {
165
+ throw new Error('Sentry is not configured');
166
+ }
167
+ }
168
+ _create_class(SentryNextJSDriver, [
169
+ {
170
+ key: "getSentry",
171
+ value: function getSentry() {
172
+ return Sentry;
173
+ }
174
+ },
175
+ {
176
+ key: "reportError",
177
+ value: function reportError(err, metadata) {
178
+ return _async_to_generator(function() {
179
+ return _ts_generator(this, function(_state) {
180
+ Sentry.captureException(err, {
181
+ contexts: {
182
+ metadata: metadata
183
+ }
184
+ });
185
+ return [
186
+ 2
187
+ ];
188
+ });
189
+ })();
190
+ }
191
+ },
192
+ {
193
+ key: "reportProblem",
194
+ value: function reportProblem(problem) {
195
+ return _async_to_generator(function() {
196
+ var _problem_privateMetadata;
197
+ return _ts_generator(this, function(_state) {
198
+ Sentry.captureException(((_problem_privateMetadata = problem.privateMetadata) === null || _problem_privateMetadata === void 0 ? void 0 : _problem_privateMetadata.error) || new Error(problem.message || problem.code), {
199
+ contexts: {
200
+ metadata: problem.metadata,
201
+ privateMetadata: problem.privateMetadata
202
+ }
203
+ });
204
+ return [
205
+ 2
206
+ ];
207
+ });
208
+ })();
209
+ }
210
+ },
211
+ {
212
+ key: "setReporterPayload",
213
+ value: function setReporterPayload(payload) {
214
+ Sentry.setContext('reporterPayload', payload);
215
+ }
216
+ }
217
+ ]);
218
+ return SentryNextJSDriver;
219
+ }();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentry-nextjs.js","sourceRoot":"","sources":["../../src/drivers/sentry-nextjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAIxC,MAAM,OAAO,kBAAkB;IACV;IAApB,YAAoB,MAAqC;QAArC,WAAM,GAAN,MAAM,CAA+B;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5C,CAAC;IACF,CAAC;IAED,SAAS;QACR,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAU,EAAE,QAAkB;QAC/C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;YAC5B,QAAQ,EAAE;gBACT,QAAQ;aACR;SACD,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QACnC,MAAM,CAAC,gBAAgB,CACtB,OAAO,CAAC,eAAe,EAAE,KAAK;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAC3C;YACC,QAAQ,EAAE;gBACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;aACxC;SACD,CACD,CAAA;IACF,CAAC;IAED,kBAAkB,CAAC,OAA4B;QAC9C,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/drivers/slack.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,20 @@
1
1
  import { type Problem } from '@driveflux/problem';
2
+ import { type Config } from './config.js';
3
+ import { ConsoleDriver } from './drivers/console.js';
4
+ import { RollbarDriver } from './drivers/rollbar.js';
5
+ import { SentryNextJSDriver } from './drivers/sentry-nextjs.js';
6
+ import { SlackDriver } from './drivers/slack.js';
2
7
  import type { Metadata, Reporter } from './types.js';
8
+ type Driver = keyof Config['drivers'];
3
9
  export * from './config.js';
4
10
  export declare const addDriver: (name: string, reporter: Reporter, enabled?: boolean) => void;
5
- export declare const getDriver: (driver: string) => Reporter;
11
+ declare const DRIVERS_MAP: {
12
+ readonly console: () => ConsoleDriver;
13
+ readonly rollbar: () => RollbarDriver;
14
+ readonly 'sentry-nextjs': () => SentryNextJSDriver;
15
+ readonly slack: () => SlackDriver;
16
+ };
17
+ export declare const getDriver: <D extends string>(driver: D) => D extends Driver ? ReturnType<(typeof DRIVERS_MAP)[D]> : Reporter;
6
18
  export declare const reportError: (err: Error, metadata?: Metadata, sync?: boolean) => Promise<Error>;
7
19
  /**
8
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,oBAAoB,CAAA;AAO7D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIpD,cAAc,aAAa,CAAA;AAY3B,eAAO,MAAM,SAAS,SAAU,MAAM,YAAY,QAAQ,4BAKzD,CAAA;AAED,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,QAqB1C,CAAA;AAkBD,eAAO,MAAM,WAAW,QAClB,KAAK,aACA,QAAQ,SACX,OAAO,mBAUd,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAmB,OAAO,SAAS,OAAO,qBASnE,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAYjC,CAAA;AAgCD,eAAO,MAAM,kBAAkB,YAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAI9D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,oBAAoB,CAAA;AAG7D,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;AAErC,cAAc,aAAa,CAAA;AAY3B,eAAO,MAAM,SAAS,SAAU,MAAM,YAAY,QAAQ,4BAKzD,CAAA;AAED,QAAA,MAAM,WAAW;;;;;CAekC,CAAA;AAEnD,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,UACjC,CAAC,KACP,CAAC,SAAS,MAAM,GAAG,UAAU,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,QAW3D,CAAA;AAkBD,eAAO,MAAM,WAAW,QAClB,KAAK,aACA,QAAQ,SACX,OAAO,mBAUd,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAmB,OAAO,SAAS,OAAO,qBASnE,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAYjC,CAAA;AAgCD,eAAO,MAAM,kBAAkB,YAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAI9D,CAAA"}
package/dist/index.js CHANGED
@@ -205,12 +205,13 @@ import { omit } from '@driveflux/utils';
205
205
  import { config } from './config.js';
206
206
  import { ConsoleDriver } from './drivers/console.js';
207
207
  import { RollbarDriver } from './drivers/rollbar.js';
208
+ import { SentryNextJSDriver } from './drivers/sentry-nextjs.js';
208
209
  import { SlackDriver } from './drivers/slack.js';
209
210
  export * from './config.js';
210
- var problemsAndErrorsToReport = initSingleton('reporterProblemsAndErrors', function() {
211
+ var problemsAndErrorsToReport = initSingleton('reporter_problemsAndErrors', function() {
211
212
  return new Set();
212
213
  });
213
- var customDrivers = initSingleton('reporterCustomDrivers', function() {
214
+ var customDrivers = initSingleton('reporter_customDrivers', function() {
214
215
  return new Map();
215
216
  });
216
217
  export var addDriver = function(name, reporter) {
@@ -220,28 +221,37 @@ export var addDriver = function(name, reporter) {
220
221
  reporter: reporter
221
222
  });
222
223
  };
223
- export var getDriver = function(driver) {
224
- switch(driver){
225
- case 'console':
224
+ var DRIVERS_MAP = {
225
+ console: function() {
226
+ return initSingleton('reporter_consoleDriver', function() {
226
227
  return new ConsoleDriver();
227
- case 'rollbar':
228
+ });
229
+ },
230
+ rollbar: function() {
231
+ return initSingleton('reporter_rollbarDriver', function() {
228
232
  return new RollbarDriver(config.rollbar);
229
- case 'slack':
230
- {
231
- if (!config.slack) {
232
- throw new Error('Slack config missing');
233
- }
234
- return new SlackDriver(config.slack);
235
- }
236
- default:
237
- {
238
- var customDriver = customDrivers.get(driver);
239
- if (!customDriver) {
240
- throw new Error("Driver ".concat(driver, " not found."));
241
- }
242
- return customDriver.reporter;
243
- }
233
+ });
234
+ },
235
+ 'sentry-nextjs': function() {
236
+ return initSingleton('reporter_sentryDriver', function() {
237
+ return new SentryNextJSDriver(config.sentry);
238
+ });
239
+ },
240
+ slack: function() {
241
+ return initSingleton('reporter_slackDriver', function() {
242
+ return new SlackDriver(config.slack);
243
+ });
244
+ }
245
+ };
246
+ export var getDriver = function(driver) {
247
+ if (driver in DRIVERS_MAP) {
248
+ return DRIVERS_MAP[driver]();
249
+ }
250
+ var customDriver = customDrivers.get(driver);
251
+ if (!customDriver) {
252
+ throw new Error("Driver ".concat(driver, " not found."));
244
253
  }
254
+ return customDriver.reporter;
245
255
  };
246
256
  var getDrivers = function() {
247
257
  var allDrivers = _to_consumable_array(Object.keys(config.drivers)).concat(_to_consumable_array(customDrivers.keys()));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/reporter",
3
- "version": "5.7.1",
3
+ "version": "5.8.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -15,10 +15,6 @@
15
15
  "./types": {
16
16
  "types": "./dist/types.d.ts",
17
17
  "import": "./dist/types.js"
18
- },
19
- "./sentry/nextjs": {
20
- "types": "./dist/sentry-nextjs.d.ts",
21
- "import": "./dist/sentry-nextjs.js"
22
18
  }
23
19
  },
24
20
  "files": [
@@ -28,12 +24,13 @@
28
24
  "@driveflux/fetch": "6.3.0",
29
25
  "@driveflux/problem": "4.3.0",
30
26
  "@driveflux/redact": "4.3.0",
31
- "@driveflux/singleton": "1.5.0",
32
- "@driveflux/utils": "3.3.2",
27
+ "@driveflux/singleton": "1.5.1",
28
+ "@driveflux/utils": "4.0.0",
33
29
  "@sentry/nextjs": "^8.41.0",
34
30
  "@sentry/node": "^8.35.0",
35
31
  "flat": "6.0.1",
36
- "rollbar": "^2.26.4"
32
+ "rollbar": "^2.26.4",
33
+ "zod": "^3.23.8"
37
34
  },
38
35
  "devDependencies": {
39
36
  "@driveflux/fab": "2.3.3",
@@ -1,2 +0,0 @@
1
- export * from '@sentry/nextjs';
2
- //# sourceMappingURL=sentry-nextjs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentry-nextjs.d.ts","sourceRoot":"","sources":["../src/sentry-nextjs.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- export * from '@sentry/nextjs';