@duckbug/js 0.1.0 → 0.1.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.
Files changed (76) hide show
  1. package/README.md +195 -30
  2. package/dist/cjs/DuckBug/DuckBugConfig.cjs +18 -0
  3. package/dist/cjs/DuckBug/DuckBugProvider.cjs +88 -0
  4. package/dist/cjs/DuckBug/DuckBugService.cjs +59 -0
  5. package/dist/cjs/DuckBug/Log.cjs +18 -0
  6. package/dist/cjs/DuckBug/index.cjs +36 -0
  7. package/dist/cjs/SDK/DuckSDK.cjs +62 -0
  8. package/dist/cjs/SDK/LogLevel.cjs +42 -0
  9. package/dist/cjs/SDK/LogProvider.cjs +89 -0
  10. package/dist/cjs/SDK/LogProviderConfig.cjs +18 -0
  11. package/dist/cjs/SDK/Provider.cjs +18 -0
  12. package/dist/cjs/SDK/index.cjs +44 -0
  13. package/dist/cjs/index.cjs +69 -0
  14. package/dist/esm/DuckBug/DuckBugConfig.js +0 -0
  15. package/dist/esm/DuckBug/DuckBugProvider.js +32 -34
  16. package/dist/esm/DuckBug/DuckBugService.js +25 -0
  17. package/dist/esm/DuckBug/Log.js +0 -0
  18. package/dist/esm/DuckBug/index.js +2 -0
  19. package/dist/esm/SDK/DuckSDK.js +16 -11
  20. package/dist/esm/{Log → SDK}/LogLevel.js +3 -1
  21. package/dist/esm/SDK/LogProvider.js +55 -0
  22. package/dist/esm/SDK/LogProviderConfig.js +0 -0
  23. package/dist/esm/SDK/Provider.js +0 -0
  24. package/dist/esm/SDK/index.js +4 -1
  25. package/dist/esm/index.js +2 -3
  26. package/dist/types/DuckBug/DuckBugConfig.d.ts +3 -0
  27. package/dist/types/DuckBug/DuckBugProvider.d.ts +14 -0
  28. package/dist/types/DuckBug/DuckBugService.d.ts +12 -0
  29. package/dist/{cjs/Log → types/DuckBug}/Log.d.ts +1 -1
  30. package/dist/types/DuckBug/index.d.ts +2 -0
  31. package/dist/{esm → types}/SDK/DuckSDK.d.ts +5 -3
  32. package/dist/types/SDK/LogLevel.d.ts +2 -0
  33. package/dist/types/SDK/LogProvider.d.ts +13 -0
  34. package/dist/{esm/Provider → types/SDK}/Provider.d.ts +2 -1
  35. package/dist/{cjs/Log → types/SDK}/index.d.ts +2 -1
  36. package/dist/types/index.d.ts +2 -0
  37. package/package.json +27 -11
  38. package/dist/cjs/DuckBug/DuckBugProvider.d.ts +0 -11
  39. package/dist/cjs/DuckBug/DuckBugProvider.js +0 -71
  40. package/dist/cjs/Log/Log.js +0 -2
  41. package/dist/cjs/Log/LogLevel.d.ts +0 -2
  42. package/dist/cjs/Log/LogLevel.js +0 -9
  43. package/dist/cjs/Log/LogProvider.d.ts +0 -6
  44. package/dist/cjs/Log/LogProvider.js +0 -73
  45. package/dist/cjs/Log/LogProviderConfig.js +0 -2
  46. package/dist/cjs/Log/index.js +0 -7
  47. package/dist/cjs/Provider/Provider.d.ts +0 -7
  48. package/dist/cjs/Provider/Provider.js +0 -2
  49. package/dist/cjs/Provider/index.d.ts +0 -1
  50. package/dist/cjs/Provider/index.js +0 -2
  51. package/dist/cjs/SDK/DuckConfig.d.ts +0 -3
  52. package/dist/cjs/SDK/DuckConfig.js +0 -2
  53. package/dist/cjs/SDK/DuckSDK.d.ts +0 -10
  54. package/dist/cjs/SDK/DuckSDK.js +0 -40
  55. package/dist/cjs/SDK/index.d.ts +0 -2
  56. package/dist/cjs/SDK/index.js +0 -5
  57. package/dist/cjs/index.d.ts +0 -5
  58. package/dist/cjs/index.js +0 -22
  59. package/dist/esm/DuckBug/DuckBugProvider.d.ts +0 -11
  60. package/dist/esm/Log/Log.d.ts +0 -7
  61. package/dist/esm/Log/Log.js +0 -1
  62. package/dist/esm/Log/LogLevel.d.ts +0 -2
  63. package/dist/esm/Log/LogProvider.d.ts +0 -6
  64. package/dist/esm/Log/LogProvider.js +0 -60
  65. package/dist/esm/Log/LogProviderConfig.d.ts +0 -7
  66. package/dist/esm/Log/LogProviderConfig.js +0 -1
  67. package/dist/esm/Log/index.d.ts +0 -5
  68. package/dist/esm/Log/index.js +0 -2
  69. package/dist/esm/Provider/Provider.js +0 -1
  70. package/dist/esm/Provider/index.d.ts +0 -1
  71. package/dist/esm/Provider/index.js +0 -1
  72. package/dist/esm/SDK/DuckConfig.d.ts +0 -3
  73. package/dist/esm/SDK/DuckConfig.js +0 -1
  74. package/dist/esm/SDK/index.d.ts +0 -2
  75. package/dist/esm/index.d.ts +0 -5
  76. /package/dist/{cjs/Log → types/SDK}/LogProviderConfig.d.ts +0 -0
package/README.md CHANGED
@@ -1,30 +1,47 @@
1
- # Rsbuild project
1
+ # @duckbug/js
2
2
 
3
- ## Setup
3
+ [![npm version](https://badge.fury.io/js/@duckbug%2Fjs.svg)](https://www.npmjs.com/package/@duckbug/js)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
5
 
5
- Install the dependencies:
6
+ The official JavaScript SDK for [DuckBug.io](https://duckbug.io) - a flexible logging and error tracking platform.
6
7
 
7
- ```bash
8
- yarn install
9
- ```
8
+ ## Features
10
9
 
11
- Build lib:
10
+ - 🦆 **Simple Integration**: Easy setup with DuckBug.io
11
+ - 🔌 **Provider Architecture**: Extensible plugin system for custom logging providers
12
+ - 📊 **Multiple Log Levels**: Support for debug, info, warn, and error levels
13
+ - 🎯 **TypeScript Support**: Full TypeScript support with type definitions
14
+ - 📦 **Dual Module Format**: Both CommonJS and ES Module support
15
+ - ⚡ **Lightweight**: Minimal dependencies and small bundle size
16
+
17
+ ## Installation
12
18
 
13
19
  ```bash
14
- yarn compile
20
+ # npm
21
+ npm install @duckbug/js
22
+
23
+ # yarn
24
+ yarn add @duckbug/js
25
+
26
+ # pnpm
27
+ pnpm add @duckbug/js
15
28
  ```
16
29
 
30
+ ## Quick Start
31
+
32
+ ### Basic Usage
17
33
 
18
- ## Example
34
+ ```typescript
35
+ import { DuckSDK, DuckBugProvider } from '@duckbug/js';
19
36
 
20
- ### Basic usage
21
- ```ts
37
+ // Initialize with DuckBug.io provider
22
38
  const providers = [
23
- new DuckBugPlugin({
24
- dsn: "123456",
39
+ new DuckBugProvider({
40
+ dsn: 'your-duckbug-dsn-here'
25
41
  })
26
- ]
42
+ ];
27
43
 
44
+ // Create SDK instance with optional configuration
28
45
  const duck = new DuckSDK(providers, {
29
46
  logReports: {
30
47
  log: false,
@@ -33,33 +50,181 @@ const duck = new DuckSDK(providers, {
33
50
  }
34
51
  });
35
52
 
36
- duck.log('Info message', { message: 'All good' })
37
- duck.debug('Debug message', { message: 'All fine' })
38
- duck.warn('Warn message', { message: 'So so' })
39
- duck.error('Error message', { message: 'Ay, Caramba!' })
53
+ // Start logging
54
+ duck.log('Info message', { userId: 123, action: 'user_login' });
55
+ duck.debug('Debug message', { debugInfo: 'Connection established' });
56
+ duck.warn('Warning message', { warning: 'Rate limit approaching' });
57
+ duck.error('Error message', { error: 'Database connection failed' });
58
+ duck.fatal('Fatal message', { error: 'Ay, caramba' });
59
+
60
+ //Send error
61
+ const testError = new Error("Integration test error");
62
+ testError.stack =
63
+ "Error: Integration test error\n at integration.test.ts:1:1";
64
+
65
+ // Use quack method directly on provider
66
+ duckBugProvider.quack("INTEGRATION_ERROR", testError);
40
67
  ```
41
68
 
42
- ### Create own plugin
43
- ```ts
44
- class TelegramProvider extends Providers {
69
+ ## API Reference
70
+
71
+ ### DuckSDK
72
+
73
+ The main SDK class that manages logging across multiple providers.
74
+
75
+ #### Constructor
76
+
77
+ ```typescript
78
+ new DuckSDK(providers: Provider[], config?: LogProviderConfig)
79
+ ```
80
+
81
+ - `providers`: Array of provider instances
82
+ - `config`: Optional configuration for log reporting levels
83
+
84
+ #### Methods
85
+
86
+ - `log(tag: string, payload?: object)`: Log an info-level message
87
+ - `debug(tag: string, payload?: object)`: Log a debug-level message
88
+ - `warn(tag: string, payload?: object)`: Log a warning-level message
89
+ - `error(tag: string, payload?: object)`: Log an error-level message
90
+ - `fatal(tag: string, payload?: object)`: Log an fatal-level message
91
+ - `quack(tag: string, error: Error)`: Report error
92
+
93
+ ### DuckBugProvider
94
+
95
+ The official DuckBug.io provider for sending logs to the DuckBug.io platform.
96
+
97
+ #### Constructor
98
+
99
+ ```typescript
100
+ new DuckBugProvider(config: DuckConfig)
101
+ ```
102
+
103
+ - `config.dsn`: Your DuckBug.io DSN (Data Source Name)
104
+
105
+ ### Log Provider Configuration
106
+
107
+ ```typescript
108
+ type LogProviderConfig = {
109
+ logReports: {
110
+ log?: boolean; // Enable/disable info logs (default: false)
111
+ warn?: boolean; // Enable/disable warning logs (default: true)
112
+ error?: boolean; // Enable/disable error logs (default: true)
113
+ }
114
+ }
115
+ ```
116
+
117
+ ## Custom Providers
118
+
119
+ You can create custom providers by implementing the `Provider` interface:
120
+
121
+ ```typescript
122
+ import { Provider, LogLevel } from '@duckbug/js';
123
+
124
+ class TelegramProvider implements Provider {
125
+ constructor(private botToken: string, private chatId: string) {}
126
+
45
127
  log(...args: unknown[]): void {
46
- //send to telegram log
128
+ this.sendToTelegram('📝', args);
47
129
  }
130
+
48
131
  warn(...args: unknown[]): void {
49
- //send to telegram warn
132
+ this.sendToTelegram('⚠️', args);
50
133
  }
134
+
51
135
  error(...args: unknown[]): void {
52
- //send to telegram error
136
+ this.sendToTelegram('🚨', args);
137
+ }
138
+
139
+ report(tag: string, level: LogLevel, payload?: object): void {
140
+ const emojiMap: Record<LogLevel, string> = {
141
+ INFO: '📝',
142
+ DEBUG: '🦆',
143
+ WARN: '⚠️',
144
+ ERROR: '🚨',
145
+ FATAL: '💀',
146
+ };
147
+ this.sendToTelegram(emojiMap[level], [tag, payload]);
148
+ }
149
+
150
+ quack(tag: string, error: Error): void {
151
+ this.sendToTelegram('💀', [tag, error.message]);
152
+ }
153
+
154
+ private sendToTelegram(emoji: string, args: unknown[]) {
155
+ const message = `${emoji} ${args.join(' ')}`;
156
+ // Implementation to send message to Telegram
157
+ fetch(`https://api.telegram.org/bot${this.botToken}/sendMessage`, {
158
+ method: 'POST',
159
+ headers: { 'Content-Type': 'application/json' },
160
+ body: JSON.stringify({
161
+ chat_id: this.chatId,
162
+ text: message
163
+ })
164
+ });
53
165
  }
54
166
  }
55
167
 
168
+ // Usage
56
169
  const providers = [
57
- new DuckBugProvider({
58
- dsn: "123456",
59
- }),
170
+ new DuckBugProvider({ dsn: 'your-dsn' }),
171
+ new TelegramProvider('your-bot-token', 'your-chat-id')
172
+ ];
173
+
174
+ const duck = new DuckSDK(providers);
175
+ ```
176
+
177
+ ## Development
178
+
179
+ ### Setup
180
+
181
+ Install dependencies:
182
+
183
+ ```bash
184
+ yarn install
185
+ ```
186
+
187
+ ### Build
188
+
189
+ Build the library:
60
190
 
61
- new TelegramProvider()
62
- ]
191
+ ```bash
192
+ yarn build
193
+ ```
194
+
195
+ ### Linting
196
+
197
+ Run linting:
198
+
199
+ ```bash
200
+ yarn lint
201
+ ```
202
+
203
+ ## TypeScript Support
204
+
205
+ This package includes TypeScript definitions. All exports are fully typed:
63
206
 
64
- new DuckSDK(providers);
207
+ ```typescript
208
+ import type { Provider, DuckConfig, LogLevel } from '@duckbug/js';
65
209
  ```
210
+
211
+ ## Browser Compatibility
212
+
213
+ This SDK works in all modern browsers that support:
214
+ - ES2015+ (ES6)
215
+ - Fetch API
216
+ - JSON API
217
+
218
+ For older browsers, you may need to include polyfills.
219
+
220
+ ## License
221
+
222
+ MIT © [DuckBug.io](https://duckbug.io)
223
+
224
+ ## Support
225
+
226
+ - 🐛 Issues: [GitHub Issues](https://github.com/duckbugio/duckbug-js/issues)
227
+
228
+ ---
229
+
230
+ **Made with 🦆 by the DuckBug.io team**
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DuckBugProvider: ()=>DuckBugProvider
28
+ });
29
+ const index_cjs_namespaceObject = require("../SDK/index.cjs");
30
+ const external_DuckBugService_cjs_namespaceObject = require("./DuckBugService.cjs");
31
+ class DuckBugProvider {
32
+ service;
33
+ constructor(config){
34
+ this.service = new external_DuckBugService_cjs_namespaceObject.DuckBugService(config);
35
+ }
36
+ warn(...args) {
37
+ this.service.sendLog({
38
+ time: this.getTimeStamp(),
39
+ level: index_cjs_namespaceObject.logLevel.WARN,
40
+ message: this.convertArgsToString(args[0]),
41
+ context: this.convertArgsToString(args.slice(1))
42
+ });
43
+ }
44
+ error(...args) {
45
+ this.service.sendLog({
46
+ time: this.getTimeStamp(),
47
+ level: index_cjs_namespaceObject.logLevel.ERROR,
48
+ message: this.convertArgsToString(args[0]),
49
+ context: this.convertArgsToString(args.slice(1))
50
+ });
51
+ }
52
+ log(...args) {
53
+ this.service.sendLog({
54
+ time: this.getTimeStamp(),
55
+ level: index_cjs_namespaceObject.logLevel.INFO,
56
+ message: this.convertArgsToString(args[0]),
57
+ context: this.convertArgsToString(args.slice(1))
58
+ });
59
+ }
60
+ report(tag, level, payload) {
61
+ this.service.sendLog({
62
+ time: this.getTimeStamp(),
63
+ level,
64
+ message: tag,
65
+ context: JSON.stringify(payload)
66
+ });
67
+ }
68
+ quack(tag, error) {
69
+ this.service.sendError({
70
+ stack: error.stack,
71
+ message: tag,
72
+ context: error.message
73
+ });
74
+ }
75
+ convertArgsToString(...args) {
76
+ return args.map((arg)=>"object" == typeof arg ? JSON.stringify(arg) : String(arg)).join(" ");
77
+ }
78
+ getTimeStamp() {
79
+ return Date.now();
80
+ }
81
+ }
82
+ exports.DuckBugProvider = __webpack_exports__.DuckBugProvider;
83
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
84
+ "DuckBugProvider"
85
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
86
+ Object.defineProperty(exports, '__esModule', {
87
+ value: true
88
+ });
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DuckBugService: ()=>DuckBugService
28
+ });
29
+ class DuckBugService {
30
+ config;
31
+ constructor(config){
32
+ this.config = config;
33
+ }
34
+ sendLog(logInfo) {
35
+ fetch(`${this.config.dsn}/logs`, {
36
+ method: "POST",
37
+ headers: {
38
+ "Content-Type": "application/json"
39
+ },
40
+ body: JSON.stringify(logInfo)
41
+ });
42
+ }
43
+ sendError(errorInfo) {
44
+ fetch(`${this.config.dsn}/errors`, {
45
+ method: "POST",
46
+ headers: {
47
+ "Content-Type": "application/json"
48
+ },
49
+ body: JSON.stringify(errorInfo)
50
+ });
51
+ }
52
+ }
53
+ exports.DuckBugService = __webpack_exports__.DuckBugService;
54
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
55
+ "DuckBugService"
56
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
57
+ Object.defineProperty(exports, '__esModule', {
58
+ value: true
59
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DuckBugProvider: ()=>external_DuckBugProvider_cjs_namespaceObject.DuckBugProvider
28
+ });
29
+ const external_DuckBugProvider_cjs_namespaceObject = require("./DuckBugProvider.cjs");
30
+ exports.DuckBugProvider = __webpack_exports__.DuckBugProvider;
31
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
32
+ "DuckBugProvider"
33
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
34
+ Object.defineProperty(exports, '__esModule', {
35
+ value: true
36
+ });
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DuckSDK: ()=>DuckSDK
28
+ });
29
+ const external_index_cjs_namespaceObject = require("./index.cjs");
30
+ class DuckSDK {
31
+ providers;
32
+ constructor(providers, logProviderConfig){
33
+ this.providers = providers;
34
+ new external_index_cjs_namespaceObject.LogProvider(providers, logProviderConfig);
35
+ }
36
+ log(tag, payload) {
37
+ this.sendReportToPlugins(tag, external_index_cjs_namespaceObject.logLevel.DEBUG, payload);
38
+ }
39
+ error(tag, payload) {
40
+ this.sendReportToPlugins(tag, external_index_cjs_namespaceObject.logLevel.DEBUG, payload);
41
+ }
42
+ debug(tag, payload) {
43
+ this.sendReportToPlugins(tag, external_index_cjs_namespaceObject.logLevel.DEBUG, payload);
44
+ }
45
+ warn(tag, payload) {
46
+ this.sendReportToPlugins(tag, external_index_cjs_namespaceObject.logLevel.WARN, payload);
47
+ }
48
+ fatal(tag, payload) {
49
+ this.sendReportToPlugins(tag, external_index_cjs_namespaceObject.logLevel.FATAL, payload);
50
+ }
51
+ quack() {}
52
+ sendReportToPlugins(tag, level, payload) {
53
+ this.providers.forEach((plugin)=>plugin.report(tag, level, payload));
54
+ }
55
+ }
56
+ exports.DuckSDK = __webpack_exports__.DuckSDK;
57
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
58
+ "DuckSDK"
59
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
60
+ Object.defineProperty(exports, '__esModule', {
61
+ value: true
62
+ });
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ logLevel: ()=>logLevel
28
+ });
29
+ const logLevel = {
30
+ DEBUG: "DEBUG",
31
+ INFO: "INFO",
32
+ WARN: "WARN",
33
+ ERROR: "ERROR",
34
+ FATAL: "FATAL"
35
+ };
36
+ exports.logLevel = __webpack_exports__.logLevel;
37
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
38
+ "logLevel"
39
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
40
+ Object.defineProperty(exports, '__esModule', {
41
+ value: true
42
+ });
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ LogProvider: ()=>LogProvider
28
+ });
29
+ class LogProvider {
30
+ originalConsole = {
31
+ log: console.log,
32
+ error: console.error,
33
+ warn: console.warn
34
+ };
35
+ providers;
36
+ logProviderConfig = {
37
+ logReports: {
38
+ log: false,
39
+ warn: true,
40
+ error: true
41
+ }
42
+ };
43
+ constructor(providers, logProviderConfig){
44
+ if (logProviderConfig) this.logProviderConfig = logProviderConfig;
45
+ this.providers = providers;
46
+ this.initialize();
47
+ }
48
+ initialize() {
49
+ if (this.logProviderConfig.logReports.log) this.overrideLog();
50
+ if (this.logProviderConfig.logReports.warn) this.overrideWarn();
51
+ if (this.logProviderConfig.logReports.error) this.overrideError();
52
+ }
53
+ overrideError() {
54
+ console.error = (...args)=>{
55
+ this.originalConsole.error.apply(console, args);
56
+ this.callPlugins((plugin)=>{
57
+ plugin.error(args);
58
+ });
59
+ };
60
+ }
61
+ overrideLog() {
62
+ console.log = (...args)=>{
63
+ this.originalConsole.log.apply(console, args);
64
+ this.callPlugins((plugin)=>{
65
+ plugin.log(args);
66
+ });
67
+ };
68
+ }
69
+ overrideWarn() {
70
+ console.warn = (...args)=>{
71
+ this.originalConsole.warn.apply(console, args);
72
+ this.callPlugins((plugin)=>{
73
+ plugin.warn(args);
74
+ });
75
+ };
76
+ }
77
+ callPlugins(callback) {
78
+ this.providers.forEach((plugin)=>{
79
+ callback(plugin);
80
+ });
81
+ }
82
+ }
83
+ exports.LogProvider = __webpack_exports__.LogProvider;
84
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
85
+ "LogProvider"
86
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
87
+ Object.defineProperty(exports, '__esModule', {
88
+ value: true
89
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });