sportident.js 1.3.4 → 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.
Files changed (108) hide show
  1. package/SiCard/raceResultTools.js.map +1 -1
  2. package/SiCard/types/ModernSiCard.d.ts.map +1 -1
  3. package/SiCard/types/ModernSiCard.js +14 -4
  4. package/SiCard/types/ModernSiCard.js.map +1 -1
  5. package/SiCard/types/PCard.d.ts +17 -4
  6. package/SiCard/types/PCard.d.ts.map +1 -1
  7. package/SiCard/types/PCard.js +99 -5
  8. package/SiCard/types/PCard.js.map +1 -1
  9. package/SiCard/types/PCard.test.js +141 -3
  10. package/SiCard/types/PCard.test.js.map +1 -1
  11. package/SiCard/types/SiCard5.d.ts.map +1 -1
  12. package/SiCard/types/SiCard5.js +14 -1
  13. package/SiCard/types/SiCard5.js.map +1 -1
  14. package/SiCard/types/SiCard5.test.js +4 -4
  15. package/SiCard/types/SiCard5.test.js.map +1 -1
  16. package/SiCard/types/SiCard6.d.ts.map +1 -1
  17. package/SiCard/types/SiCard6.js +15 -4
  18. package/SiCard/types/SiCard6.js.map +1 -1
  19. package/SiCard/types/SiCard8.d.ts.map +1 -1
  20. package/SiCard/types/SiCard8.js +12 -3
  21. package/SiCard/types/SiCard8.js.map +1 -1
  22. package/SiCard/types/SiCard9.d.ts.map +1 -1
  23. package/SiCard/types/SiCard9.js +12 -3
  24. package/SiCard/types/SiCard9.js.map +1 -1
  25. package/SiCard/types/pCardExamples.d.ts +98 -0
  26. package/SiCard/types/pCardExamples.d.ts.map +1 -0
  27. package/SiCard/types/pCardExamples.js +178 -0
  28. package/SiCard/types/pCardExamples.js.map +1 -0
  29. package/SiDevice/SiDevice.d.ts +1 -0
  30. package/SiDevice/SiDevice.d.ts.map +1 -1
  31. package/SiDevice/SiDevice.js +10 -7
  32. package/SiDevice/SiDevice.js.map +1 -1
  33. package/SiDevice/WebSerialSiDeviceDriver.d.ts +1 -0
  34. package/SiDevice/WebSerialSiDeviceDriver.d.ts.map +1 -1
  35. package/SiDevice/WebSerialSiDeviceDriver.js +26 -25
  36. package/SiDevice/WebSerialSiDeviceDriver.js.map +1 -1
  37. package/SiDevice/WebUsbSiDeviceDriver.d.ts.map +1 -1
  38. package/SiDevice/WebUsbSiDeviceDriver.js +60 -56
  39. package/SiDevice/WebUsbSiDeviceDriver.js.map +1 -1
  40. package/SiStation/BaseSiStation.d.ts.map +1 -1
  41. package/SiStation/BaseSiStation.js +4 -2
  42. package/SiStation/BaseSiStation.js.map +1 -1
  43. package/SiStation/BaseSiStation.test.js +1 -1
  44. package/SiStation/BaseSiStation.test.js.map +1 -1
  45. package/SiStation/CoupledSiStation.d.ts.map +1 -1
  46. package/SiStation/CoupledSiStation.js +13 -11
  47. package/SiStation/CoupledSiStation.js.map +1 -1
  48. package/SiStation/SiMainStation.d.ts.map +1 -1
  49. package/SiStation/SiMainStation.js +5 -3
  50. package/SiStation/SiMainStation.js.map +1 -1
  51. package/SiStation/SiSendTask.d.ts.map +1 -1
  52. package/SiStation/SiSendTask.js +3 -1
  53. package/SiStation/SiSendTask.js.map +1 -1
  54. package/SiStation/SiTargetMultiplexer.d.ts.map +1 -1
  55. package/SiStation/SiTargetMultiplexer.js +11 -6
  56. package/SiStation/SiTargetMultiplexer.js.map +1 -1
  57. package/SiStation/SiTargetMultiplexer.targeting.test.js +37 -43
  58. package/SiStation/SiTargetMultiplexer.targeting.test.js.map +1 -1
  59. package/SiStation/SiTargetMultiplexer.test.js +3 -3
  60. package/SiStation/SiTargetMultiplexer.test.js.map +1 -1
  61. package/fakes/FakeSiCard/types/FakePCard.d.ts +12 -0
  62. package/fakes/FakeSiCard/types/FakePCard.d.ts.map +1 -0
  63. package/fakes/FakeSiCard/types/FakePCard.js +16 -0
  64. package/fakes/FakeSiCard/types/FakePCard.js.map +1 -0
  65. package/fakes/FakeSiDeviceDriver.d.ts.map +1 -1
  66. package/fakes/FakeSiDeviceDriver.js +1 -0
  67. package/fakes/FakeSiDeviceDriver.js.map +1 -1
  68. package/fakes/FakeSiMainStation.d.ts +1 -0
  69. package/fakes/FakeSiMainStation.d.ts.map +1 -1
  70. package/fakes/FakeSiMainStation.js +4 -1
  71. package/fakes/FakeSiMainStation.js.map +1 -1
  72. package/package.json +9 -4
  73. package/siProtocol.d.ts.map +1 -1
  74. package/siProtocol.js +7 -6
  75. package/siProtocol.js.map +1 -1
  76. package/siProtocol.test.d.ts.map +1 -1
  77. package/siProtocol.test.js +48 -5
  78. package/siProtocol.test.js.map +1 -1
  79. package/storage/SiDict.d.ts.map +1 -1
  80. package/storage/SiDict.js +0 -1
  81. package/storage/SiDict.js.map +1 -1
  82. package/storage/siStringEncoding.d.ts.map +1 -1
  83. package/storage/siStringEncoding.js +3 -1
  84. package/storage/siStringEncoding.js.map +1 -1
  85. package/testUtils.d.ts.map +1 -1
  86. package/testUtils.js +0 -1
  87. package/testUtils.js.map +1 -1
  88. package/utils/events.d.ts.map +1 -1
  89. package/utils/events.js +3 -2
  90. package/utils/events.js.map +1 -1
  91. package/utils/events.test.js +1 -0
  92. package/utils/events.test.js.map +1 -1
  93. package/utils/index.d.ts +1 -0
  94. package/utils/index.d.ts.map +1 -1
  95. package/utils/index.js +1 -0
  96. package/utils/index.js.map +1 -1
  97. package/utils/logging.d.ts +48 -0
  98. package/utils/logging.d.ts.map +1 -0
  99. package/utils/logging.js +99 -0
  100. package/utils/logging.js.map +1 -0
  101. package/utils/logging.test.d.ts +2 -0
  102. package/utils/logging.test.d.ts.map +1 -0
  103. package/utils/logging.test.js +197 -0
  104. package/utils/logging.test.js.map +1 -0
  105. package/utils/mixins.js +1 -1
  106. package/utils/mixins.js.map +1 -1
  107. package/utils/mixins.test.js +1 -0
  108. package/utils/mixins.test.js.map +1 -1
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * Simple, focused logging infrastructure for SportIdent.js
4
+ * Optimized for hardware interface debugging and protocol validation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.parseLogLevel = exports.LoggerFactory = exports.Logger = exports.clearLoggers = exports.getDefaultLogLevel = exports.setDefaultLogLevel = exports.getLogger = exports.LogLevel = void 0;
8
+ var LogLevel;
9
+ (function (LogLevel) {
10
+ LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
11
+ LogLevel[LogLevel["WARN"] = 1] = "WARN";
12
+ LogLevel[LogLevel["INFO"] = 2] = "INFO";
13
+ LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
14
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
15
+ /**
16
+ * Lightweight logger optimized for browser-based hardware debugging
17
+ */
18
+ class Logger {
19
+ constructor(context, level = LogLevel.INFO) {
20
+ this.context = context;
21
+ this.level = level;
22
+ }
23
+ setLevel(level) {
24
+ this.level = level;
25
+ }
26
+ getLevel() {
27
+ return this.level;
28
+ }
29
+ error(message, ...args) {
30
+ if (this.level >= LogLevel.ERROR) {
31
+ // eslint-disable-next-line no-console
32
+ console.error(`[${this.context}] ${message}`, ...args);
33
+ }
34
+ }
35
+ warn(message, ...args) {
36
+ if (this.level >= LogLevel.WARN) {
37
+ // eslint-disable-next-line no-console
38
+ console.warn(`[${this.context}] ${message}`, ...args);
39
+ }
40
+ }
41
+ info(message, ...args) {
42
+ if (this.level >= LogLevel.INFO) {
43
+ // eslint-disable-next-line no-console
44
+ console.info(`[${this.context}] ${message}`, ...args);
45
+ }
46
+ }
47
+ debug(message, ...args) {
48
+ if (this.level >= LogLevel.DEBUG) {
49
+ // eslint-disable-next-line no-console
50
+ console.debug(`[${this.context}] ${message}`, ...args);
51
+ }
52
+ }
53
+ }
54
+ exports.Logger = Logger;
55
+ // Global state for logger factory
56
+ let defaultLevel = LogLevel.INFO;
57
+ const loggers = new Map();
58
+ /**
59
+ * Simple factory for managing logger instances
60
+ */
61
+ class LoggerFactory {
62
+ static setDefaultLevel(level) {
63
+ defaultLevel = level;
64
+ // Update existing loggers
65
+ for (const logger of loggers.values()) {
66
+ logger.setLevel(level);
67
+ }
68
+ }
69
+ static getDefaultLevel() {
70
+ return defaultLevel;
71
+ }
72
+ static getLogger(context) {
73
+ if (!loggers.has(context)) {
74
+ loggers.set(context, new Logger(context, defaultLevel));
75
+ }
76
+ return loggers.get(context);
77
+ }
78
+ static clearLoggers() {
79
+ loggers.clear();
80
+ }
81
+ }
82
+ exports.LoggerFactory = LoggerFactory;
83
+ // Export convenience functions
84
+ exports.getLogger = LoggerFactory.getLogger;
85
+ exports.setDefaultLogLevel = LoggerFactory.setDefaultLevel;
86
+ exports.getDefaultLogLevel = LoggerFactory.getDefaultLevel;
87
+ exports.clearLoggers = LoggerFactory.clearLoggers;
88
+ // Utility functions for common patterns
89
+ const parseLogLevel = (value) => {
90
+ switch (value.toUpperCase()) {
91
+ case 'ERROR': return LogLevel.ERROR;
92
+ case 'WARN': return LogLevel.WARN;
93
+ case 'INFO': return LogLevel.INFO;
94
+ case 'DEBUG': return LogLevel.DEBUG;
95
+ default: return undefined;
96
+ }
97
+ };
98
+ exports.parseLogLevel = parseLogLevel;
99
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logging.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.test.d.ts","sourceRoot":"","sources":["../../src/utils/logging.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const logging_1 = require("./logging");
4
+ /**
5
+ * Mock console for testing
6
+ */
7
+ const createMockConsole = () => ({
8
+ error: jest.fn(),
9
+ warn: jest.fn(),
10
+ info: jest.fn(),
11
+ debug: jest.fn(),
12
+ log: jest.fn()
13
+ });
14
+ describe('Simple Logging Infrastructure', () => {
15
+ let mockConsole;
16
+ beforeEach(() => {
17
+ mockConsole = createMockConsole();
18
+ global.console = mockConsole;
19
+ (0, logging_1.clearLoggers)();
20
+ (0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.INFO);
21
+ });
22
+ afterEach(() => {
23
+ jest.clearAllMocks();
24
+ });
25
+ describe('LogLevel enum', () => {
26
+ it('should have correct numeric values', () => {
27
+ expect(logging_1.LogLevel.ERROR).toBe(0);
28
+ expect(logging_1.LogLevel.WARN).toBe(1);
29
+ expect(logging_1.LogLevel.INFO).toBe(2);
30
+ expect(logging_1.LogLevel.DEBUG).toBe(3);
31
+ });
32
+ });
33
+ describe('Logger', () => {
34
+ let logger;
35
+ beforeEach(() => {
36
+ logger = new logging_1.Logger('TestContext');
37
+ });
38
+ describe('log level management', () => {
39
+ it('should set and get log level', () => {
40
+ logger.setLevel(logging_1.LogLevel.DEBUG);
41
+ expect(logger.getLevel()).toBe(logging_1.LogLevel.DEBUG);
42
+ });
43
+ it('should default to INFO level', () => {
44
+ expect(logger.getLevel()).toBe(logging_1.LogLevel.INFO);
45
+ });
46
+ });
47
+ describe('log level filtering', () => {
48
+ it('should only log messages at or above current level', () => {
49
+ logger.setLevel(logging_1.LogLevel.WARN);
50
+ logger.debug('debug message');
51
+ logger.info('info message');
52
+ logger.warn('warn message');
53
+ logger.error('error message');
54
+ expect(mockConsole.debug).not.toHaveBeenCalled();
55
+ expect(mockConsole.info).not.toHaveBeenCalled();
56
+ expect(mockConsole.warn).toHaveBeenCalledTimes(1);
57
+ expect(mockConsole.error).toHaveBeenCalledTimes(1);
58
+ });
59
+ it('should log all messages when level is DEBUG', () => {
60
+ logger.setLevel(logging_1.LogLevel.DEBUG);
61
+ logger.debug('debug message');
62
+ logger.info('info message');
63
+ logger.warn('warn message');
64
+ logger.error('error message');
65
+ expect(mockConsole.debug).toHaveBeenCalledTimes(1);
66
+ expect(mockConsole.info).toHaveBeenCalledTimes(1);
67
+ expect(mockConsole.warn).toHaveBeenCalledTimes(1);
68
+ expect(mockConsole.error).toHaveBeenCalledTimes(1);
69
+ });
70
+ });
71
+ describe('message formatting', () => {
72
+ it('should include context in messages', () => {
73
+ logger.info('test message');
74
+ expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] test message');
75
+ });
76
+ it('should support additional arguments', () => {
77
+ const context = { deviceId: 'test-device', operation: 'connect' };
78
+ logger.info('device operation', context, 'extra');
79
+ expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] device operation', context, 'extra');
80
+ });
81
+ });
82
+ describe('console method usage', () => {
83
+ it('should use correct console methods for each level', () => {
84
+ logger.setLevel(logging_1.LogLevel.DEBUG);
85
+ logger.error('error message');
86
+ logger.warn('warn message');
87
+ logger.info('info message');
88
+ logger.debug('debug message');
89
+ expect(mockConsole.error).toHaveBeenCalledWith('[TestContext] error message');
90
+ expect(mockConsole.warn).toHaveBeenCalledWith('[TestContext] warn message');
91
+ expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] info message');
92
+ expect(mockConsole.debug).toHaveBeenCalledWith('[TestContext] debug message');
93
+ });
94
+ });
95
+ });
96
+ describe('LoggerFactory', () => {
97
+ describe('default level management', () => {
98
+ it('should set and get default level', () => {
99
+ (0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.DEBUG);
100
+ expect((0, logging_1.getDefaultLogLevel)()).toBe(logging_1.LogLevel.DEBUG);
101
+ });
102
+ it('should apply default level to new loggers', () => {
103
+ (0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.ERROR);
104
+ const logger = (0, logging_1.getLogger)('test');
105
+ expect(logger.getLevel()).toBe(logging_1.LogLevel.ERROR);
106
+ });
107
+ it('should update existing loggers when default level changes', () => {
108
+ const logger1 = (0, logging_1.getLogger)('test1');
109
+ const logger2 = (0, logging_1.getLogger)('test2');
110
+ (0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.DEBUG);
111
+ expect(logger1.getLevel()).toBe(logging_1.LogLevel.DEBUG);
112
+ expect(logger2.getLevel()).toBe(logging_1.LogLevel.DEBUG);
113
+ });
114
+ });
115
+ describe('logger instance management', () => {
116
+ it('should return same instance for same context', () => {
117
+ const logger1 = (0, logging_1.getLogger)('test');
118
+ const logger2 = (0, logging_1.getLogger)('test');
119
+ expect(logger1).toBe(logger2);
120
+ });
121
+ it('should return different instances for different contexts', () => {
122
+ const logger1 = (0, logging_1.getLogger)('test1');
123
+ const logger2 = (0, logging_1.getLogger)('test2');
124
+ expect(logger1).not.toBe(logger2);
125
+ });
126
+ });
127
+ describe('clearLoggers', () => {
128
+ it('should remove all loggers', () => {
129
+ (0, logging_1.getLogger)('test1');
130
+ (0, logging_1.getLogger)('test2');
131
+ (0, logging_1.clearLoggers)();
132
+ const newLogger1 = (0, logging_1.getLogger)('test1');
133
+ // Should create a new instance since loggers were cleared
134
+ expect(newLogger1).toBeDefined();
135
+ });
136
+ });
137
+ });
138
+ describe('Utility Functions', () => {
139
+ describe('parseLogLevel', () => {
140
+ it('should parse valid log level strings', () => {
141
+ expect((0, logging_1.parseLogLevel)('ERROR')).toBe(logging_1.LogLevel.ERROR);
142
+ expect((0, logging_1.parseLogLevel)('warn')).toBe(logging_1.LogLevel.WARN);
143
+ expect((0, logging_1.parseLogLevel)('Info')).toBe(logging_1.LogLevel.INFO);
144
+ expect((0, logging_1.parseLogLevel)('DEBUG')).toBe(logging_1.LogLevel.DEBUG);
145
+ });
146
+ it('should return undefined for invalid strings', () => {
147
+ expect((0, logging_1.parseLogLevel)('INVALID')).toBeUndefined();
148
+ expect((0, logging_1.parseLogLevel)('')).toBeUndefined();
149
+ expect((0, logging_1.parseLogLevel)('123')).toBeUndefined();
150
+ });
151
+ });
152
+ });
153
+ describe('Real-world Usage Patterns', () => {
154
+ it('should handle device protocol logging', () => {
155
+ const protocolLogger = (0, logging_1.getLogger)('SiProtocol');
156
+ protocolLogger.warn('Invalid date conversion: year out of range', { year: 100, rawData: [100, 12, 1] });
157
+ expect(mockConsole.warn).toHaveBeenCalledWith('[SiProtocol] Invalid date conversion: year out of range', { year: 100, rawData: [100, 12, 1] });
158
+ });
159
+ it('should handle device driver logging', () => {
160
+ const driverLogger = (0, logging_1.getLogger)('WebUsbDriver');
161
+ driverLogger.setLevel(logging_1.LogLevel.DEBUG);
162
+ driverLogger.debug('Opening USB device');
163
+ driverLogger.error('Failed to open USB device', { error: 'Device not found', deviceId: 'test-123' });
164
+ expect(mockConsole.debug).toHaveBeenCalledWith('[WebUsbDriver] Opening USB device');
165
+ expect(mockConsole.error).toHaveBeenCalledWith('[WebUsbDriver] Failed to open USB device', { error: 'Device not found', deviceId: 'test-123' });
166
+ });
167
+ it('should handle card validation logging', () => {
168
+ const cardLogger = (0, logging_1.getLogger)('SiCard6');
169
+ cardLogger.warn('Card number mismatch', { expected: 500030, actual: 500029 });
170
+ expect(mockConsole.warn).toHaveBeenCalledWith('[SiCard6] Card number mismatch', { expected: 500030, actual: 500029 });
171
+ });
172
+ });
173
+ describe('Performance', () => {
174
+ it('should handle rapid logging efficiently', () => {
175
+ const logger = (0, logging_1.getLogger)('performance-test');
176
+ const start = performance.now();
177
+ for (let i = 0; i < 1000; i++) {
178
+ logger.info(`Message ${i}`, { iteration: i });
179
+ }
180
+ const end = performance.now();
181
+ expect(end - start).toBeLessThan(500); // Should complete in under 500ms
182
+ expect(mockConsole.info).toHaveBeenCalledTimes(1000);
183
+ });
184
+ it('should not log when level is disabled', () => {
185
+ const logger = (0, logging_1.getLogger)('disabled-test');
186
+ logger.setLevel(logging_1.LogLevel.ERROR);
187
+ const start = performance.now();
188
+ for (let i = 0; i < 1000; i++) {
189
+ logger.debug(`Debug message ${i}`); // Should be filtered out
190
+ }
191
+ const end = performance.now();
192
+ expect(end - start).toBeLessThan(50); // Should be very fast when filtered
193
+ expect(mockConsole.debug).not.toHaveBeenCalled();
194
+ });
195
+ });
196
+ });
197
+ //# sourceMappingURL=logging.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.test.js","sourceRoot":"","sources":["../../src/utils/logging.test.ts"],"names":[],"mappings":"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"}
package/utils/mixins.js CHANGED
@@ -6,7 +6,7 @@ const applyMixins = (derivedCtor, baseCtors) => {
6
6
  baseCtors.forEach((baseCtor) => {
7
7
  Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
8
8
  Object.defineProperty(derivedCtor.prototype, name,
9
- // @ts-ignore
9
+ // @ts-expect-error - PropertyDescriptor from getOwnPropertyDescriptor may be undefined but defineProperty accepts it
10
10
  Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
11
11
  });
12
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/utils/mixins.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,WAAgB,EAAE,SAAgB,EAAQ,EAAE;IACvE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,CAAC,cAAc,CACpB,WAAW,CAAC,SAAS,EACrB,IAAI;YACJ,aAAa;YACb,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB"}
1
+ {"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/utils/mixins.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,WAAgB,EAAE,SAAgB,EAAQ,EAAE;IACvE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,CAAC,cAAc,CACpB,WAAW,CAAC,SAAS,EACrB,IAAI;YACJ,qHAAqH;YACrH,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB"}
@@ -53,6 +53,7 @@ const mixinUtils = __importStar(require("./mixins"));
53
53
  this.isActive = true;
54
54
  }
55
55
  }
56
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
56
57
  class MyObject {
57
58
  constructor() {
58
59
  this.isMine = true;
@@ -1 +1 @@
1
- {"version":3,"file":"mixins.test.js","sourceRoot":"","sources":["../../src/utils/mixins.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAuC;AAEvC,IAAA,kBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAA,cAAI,EAAC,UAAU,EAAE,GAAG,EAAE;QACrB,MAAM,UAAU;YAAhB;gBACQ,eAAU,GAAG,KAAK,CAAC;YAK3B,CAAC;YAHA,OAAO;gBACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,CAAC;SACD;QAED,MAAM,WAAW;YAAjB;gBACQ,aAAQ,GAAG,KAAK,CAAC;YAKzB,CAAC;YAHA,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,CAAC;SACD;QAED,MAAM,QAAQ;YAAd;gBACC,WAAM,GAAG,IAAI,CAAC;YACf,CAAC;SAAA;QAGD,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mixins.test.js","sourceRoot":"","sources":["../../src/utils/mixins.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAuC;AAEvC,IAAA,kBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAA,cAAI,EAAC,UAAU,EAAE,GAAG,EAAE;QACrB,MAAM,UAAU;YAAhB;gBACQ,eAAU,GAAG,KAAK,CAAC;YAK3B,CAAC;YAHA,OAAO;gBACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,CAAC;SACD;QAED,MAAM,WAAW;YAAjB;gBACQ,aAAQ,GAAG,KAAK,CAAC;YAKzB,CAAC;YAHA,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,CAAC;SACD;QAED,4EAA4E;QAC5E,MAAM,QAAQ;YAAd;gBACC,WAAM,GAAG,IAAI,CAAC;YACf,CAAC;SAAA;QAID,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}