@apps-in-toss/native-modules 0.0.0-dev.1758103372343 → 0.0.0-dev.1758198081085

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/index.cjs CHANGED
@@ -68,11 +68,22 @@ __export(index_exports, {
68
68
  module.exports = __toCommonJS(index_exports);
69
69
 
70
70
  // src/AppsInTossModule/native-event-emitter/appsInTossEvent.ts
71
- var import_react_native7 = require("@granite-js/react-native");
71
+ var import_react_native9 = require("@granite-js/react-native");
72
72
 
73
- // src/AppsInTossModule/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
73
+ // src/AppsInTossModule/native-event-emitter/event-plugins/BackButtonClickHandleEvent.ts
74
74
  var import_react_native = require("@granite-js/react-native");
75
- var EntryMessageExitedEvent = class extends import_react_native.GraniteEventDefinition {
75
+ var BackButtonClickHandleEvent = class extends import_react_native.GraniteEventDefinition {
76
+ name = "backButtonClickEvent";
77
+ remove() {
78
+ }
79
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
80
+ listener(_) {
81
+ }
82
+ };
83
+
84
+ // src/AppsInTossModule/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
85
+ var import_react_native2 = require("@granite-js/react-native");
86
+ var EntryMessageExitedEvent = class extends import_react_native2.GraniteEventDefinition {
76
87
  name = "entryMessageExited";
77
88
  remove() {
78
89
  }
@@ -81,13 +92,24 @@ var EntryMessageExitedEvent = class extends import_react_native.GraniteEventDefi
81
92
  }
82
93
  };
83
94
 
95
+ // src/AppsInTossModule/native-event-emitter/event-plugins/HomeIconButtonClickHandleEvent.ts
96
+ var import_react_native3 = require("@granite-js/react-native");
97
+ var HomeIconButtonClickHandleEvent = class extends import_react_native3.GraniteEventDefinition {
98
+ name = "homeIconButtonClickEvent";
99
+ remove() {
100
+ }
101
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
102
+ listener(_) {
103
+ }
104
+ };
105
+
84
106
  // src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
85
107
  var import_types = require("@apps-in-toss/types");
86
- var import_react_native4 = require("@granite-js/react-native");
108
+ var import_react_native6 = require("@granite-js/react-native");
87
109
 
88
110
  // src/AppsInTossModule/native-modules/AppsInTossModule.ts
89
- var import_react_native2 = require("react-native");
90
- var Module = import_react_native2.TurboModuleRegistry.getEnforcing("AppsInTossModule");
111
+ var import_react_native4 = require("react-native");
112
+ var Module = import_react_native4.TurboModuleRegistry.getEnforcing("AppsInTossModule");
91
113
  var AppsInTossModuleInstance = Module;
92
114
  var AppsInTossModule = Module;
93
115
 
@@ -114,11 +136,11 @@ async function requestPermission(permission) {
114
136
  }
115
137
 
116
138
  // src/AppsInTossModule/native-event-emitter/nativeEventEmitter.ts
117
- var import_react_native3 = require("react-native");
118
- var nativeEventEmitter = new import_react_native3.NativeEventEmitter(AppsInTossModuleInstance);
139
+ var import_react_native5 = require("react-native");
140
+ var nativeEventEmitter = new import_react_native5.NativeEventEmitter(AppsInTossModuleInstance);
119
141
 
120
142
  // src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
121
- var UpdateLocationEvent = class extends import_react_native4.GraniteEventDefinition {
143
+ var UpdateLocationEvent = class extends import_react_native6.GraniteEventDefinition {
122
144
  name = "updateLocationEvent";
123
145
  subscriptionCount = 0;
124
146
  ref = {
@@ -148,7 +170,7 @@ var UpdateLocationEvent = class extends import_react_native4.GraniteEventDefinit
148
170
  };
149
171
 
150
172
  // src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
151
- var import_react_native5 = require("@granite-js/react-native");
173
+ var import_react_native7 = require("@granite-js/react-native");
152
174
 
153
175
  // src/utils/generateUUID.ts
154
176
  function generateUUID(placeholder) {
@@ -210,7 +232,7 @@ var INTERNAL__appBridgeHandler = {
210
232
 
211
233
  // src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
212
234
  var UNSAFE__nativeEventEmitter = nativeEventEmitter;
213
- var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_native5.GraniteEventDefinition {
235
+ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_native7.GraniteEventDefinition {
214
236
  static INTERNAL__appBridgeSubscription;
215
237
  name = "appBridgeCallbackEvent";
216
238
  constructor() {
@@ -240,8 +262,8 @@ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_
240
262
  };
241
263
 
242
264
  // src/AppsInTossModule/native-event-emitter/internal/VisibilityChangedByTransparentServiceWebEvent.ts
243
- var import_react_native6 = require("@granite-js/react-native");
244
- var VisibilityChangedByTransparentServiceWebEvent = class extends import_react_native6.GraniteEventDefinition {
265
+ var import_react_native8 = require("@granite-js/react-native");
266
+ var VisibilityChangedByTransparentServiceWebEvent = class extends import_react_native8.GraniteEventDefinition {
245
267
  name = "onVisibilityChangedByTransparentServiceWeb";
246
268
  subscription = null;
247
269
  remove() {
@@ -266,9 +288,12 @@ var VisibilityChangedByTransparentServiceWebEvent = class extends import_react_n
266
288
  };
267
289
 
268
290
  // src/AppsInTossModule/native-event-emitter/appsInTossEvent.ts
269
- var appsInTossEvent = new import_react_native7.GraniteEvent([
291
+ var appsInTossEvent = new import_react_native9.GraniteEvent([
270
292
  new UpdateLocationEvent(),
271
293
  new EntryMessageExitedEvent(),
294
+ // Navigation Bar events
295
+ new HomeIconButtonClickHandleEvent(),
296
+ new BackButtonClickHandleEvent(),
272
297
  // Internal events
273
298
  new AppBridgeCallbackEvent(),
274
299
  new VisibilityChangedByTransparentServiceWebEvent()
@@ -283,7 +308,7 @@ function getOperationalEnvironment() {
283
308
  }
284
309
 
285
310
  // src/AppsInTossModule/native-modules/isMinVersionSupported.ts
286
- var import_react_native8 = require("react-native");
311
+ var import_react_native10 = require("react-native");
287
312
 
288
313
  // src/utils/compareVersion.ts
289
314
  var SEMVER_REGEX = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
@@ -359,7 +384,7 @@ function isMinVersionSupported(minVersions) {
359
384
  return true;
360
385
  }
361
386
  const currentVersion = AppsInTossModule.tossAppVersion;
362
- const isIOS = import_react_native8.Platform.OS === "ios";
387
+ const isIOS = import_react_native10.Platform.OS === "ios";
363
388
  const minVersion = isIOS ? minVersions.ios : minVersions.android;
364
389
  if (minVersion === void 0) {
365
390
  return false;
@@ -783,7 +808,7 @@ var Storage = {
783
808
  };
784
809
 
785
810
  // src/AppsInTossModule/native-modules/openGameCenterLeaderboard.ts
786
- var import_react_native9 = require("@granite-js/react-native");
811
+ var import_react_native11 = require("@granite-js/react-native");
787
812
 
788
813
  // src/AppsInTossModule/constants.ts
789
814
  var GAME_CENTER_MIN_VERSION = {
@@ -803,7 +828,7 @@ async function openGameCenterLeaderboard() {
803
828
  const url = new URL("servicetoss://game-center/leaderboard?_navbar=hide");
804
829
  url.searchParams.set("appName", appName);
805
830
  url.searchParams.set("referrer", `appsintoss.${appName}`);
806
- return (0, import_react_native9.openURL)(url.toString());
831
+ return (0, import_react_native11.openURL)(url.toString());
807
832
  }
808
833
 
809
834
  // src/AppsInTossModule/native-modules/getGameCenterGameProfile.ts
@@ -876,8 +901,8 @@ function onVisibilityChangedByTransparentServiceWeb(eventParams) {
876
901
  }
877
902
 
878
903
  // src/BedrockModule/native-modules/natives/BedrockModule.ts
879
- var import_react_native10 = require("react-native");
880
- var BedrockModule = import_react_native10.NativeModules.BedrockModule;
904
+ var import_react_native12 = require("react-native");
905
+ var BedrockModule = import_react_native12.NativeModules.BedrockModule;
881
906
 
882
907
  // src/BedrockModule/native-modules/natives/closeView.ts
883
908
  async function closeView() {
@@ -885,10 +910,10 @@ async function closeView() {
885
910
  }
886
911
 
887
912
  // src/BedrockModule/native-modules/natives/getLocale.ts
888
- var import_react_native11 = require("react-native");
913
+ var import_react_native13 = require("react-native");
889
914
  function getLocale() {
890
915
  const locale = BedrockModule?.DeviceInfo?.locale ?? "ko-KR";
891
- if (import_react_native11.Platform.OS === "android") {
916
+ if (import_react_native13.Platform.OS === "android") {
892
917
  return replaceUnderbarToHypen(locale);
893
918
  }
894
919
  return locale;
@@ -936,24 +961,24 @@ async function setIosSwipeGestureEnabled(options) {
936
961
  }
937
962
 
938
963
  // src/BedrockModule/native-modules/natives/openURL.ts
939
- var import_react_native12 = require("react-native");
964
+ var import_react_native14 = require("react-native");
940
965
  function openURL2(url) {
941
- return import_react_native12.Linking.openURL(url);
966
+ return import_react_native14.Linking.openURL(url);
942
967
  }
943
968
 
944
969
  // src/BedrockModule/native-modules/natives/getPlatformOS.ts
945
- var import_react_native13 = require("react-native");
970
+ var import_react_native15 = require("react-native");
946
971
  function getPlatformOS() {
947
- return import_react_native13.Platform.OS;
972
+ return import_react_native15.Platform.OS;
948
973
  }
949
974
 
950
975
  // src/BedrockModule/native-modules/core/BedrockCoreModule.ts
951
- var import_react_native14 = require("react-native");
952
- var BedrockCoreModule = import_react_native14.NativeModules.BedrockCoreModule;
976
+ var import_react_native16 = require("react-native");
977
+ var BedrockCoreModule = import_react_native16.NativeModules.BedrockCoreModule;
953
978
 
954
979
  // src/AppsInTossModule/native-modules/tossCore.ts
955
- var import_react_native15 = require("react-native");
956
- var TossCoreModule = import_react_native15.NativeModules.TossCoreModule;
980
+ var import_react_native17 = require("react-native");
981
+ var TossCoreModule = import_react_native17.NativeModules.TossCoreModule;
957
982
  function tossCoreEventLog(params) {
958
983
  const supported = isMinVersionSupported({ ios: "5.210.0", android: "5.210.0" });
959
984
  const isSandbox = getOperationalEnvironment() === "sandbox";
package/dist/index.d.cts CHANGED
@@ -231,12 +231,24 @@ interface ContactsViralParams {
231
231
  */
232
232
  declare function contactsViral(params: ContactsViralParams): () => void;
233
233
 
234
+ declare class BackButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
235
+ name: "backButtonClickEvent";
236
+ remove(): void;
237
+ listener(_: undefined): void;
238
+ }
239
+
234
240
  declare class EntryMessageExitedEvent extends GraniteEventDefinition<undefined, undefined> {
235
241
  name: "entryMessageExited";
236
242
  remove(): void;
237
243
  listener(_: undefined): void;
238
244
  }
239
245
 
246
+ declare class HomeIconButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
247
+ name: "homeIconButtonClickEvent";
248
+ remove(): void;
249
+ listener(_: undefined): void;
250
+ }
251
+
240
252
  interface StartUpdateLocationOptions {
241
253
  /**
242
254
  * 위치 정확도를 설정해요.
@@ -286,7 +298,7 @@ declare class VisibilityChangedByTransparentServiceWebEvent extends GraniteEvent
286
298
  private isVisibilityChangedByTransparentServiceWebResult;
287
299
  }
288
300
 
289
- declare const appsInTossEvent: GraniteEvent<EntryMessageExitedEvent | UpdateLocationEvent | AppBridgeCallbackEvent | VisibilityChangedByTransparentServiceWebEvent>;
301
+ declare const appsInTossEvent: GraniteEvent<BackButtonClickHandleEvent | EntryMessageExitedEvent | HomeIconButtonClickHandleEvent | UpdateLocationEvent | AppBridgeCallbackEvent | VisibilityChangedByTransparentServiceWebEvent>;
290
302
 
291
303
  declare function onVisibilityChangedByTransparentServiceWeb(eventParams: {
292
304
  options: {
package/dist/index.d.ts CHANGED
@@ -231,12 +231,24 @@ interface ContactsViralParams {
231
231
  */
232
232
  declare function contactsViral(params: ContactsViralParams): () => void;
233
233
 
234
+ declare class BackButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
235
+ name: "backButtonClickEvent";
236
+ remove(): void;
237
+ listener(_: undefined): void;
238
+ }
239
+
234
240
  declare class EntryMessageExitedEvent extends GraniteEventDefinition<undefined, undefined> {
235
241
  name: "entryMessageExited";
236
242
  remove(): void;
237
243
  listener(_: undefined): void;
238
244
  }
239
245
 
246
+ declare class HomeIconButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
247
+ name: "homeIconButtonClickEvent";
248
+ remove(): void;
249
+ listener(_: undefined): void;
250
+ }
251
+
240
252
  interface StartUpdateLocationOptions {
241
253
  /**
242
254
  * 위치 정확도를 설정해요.
@@ -286,7 +298,7 @@ declare class VisibilityChangedByTransparentServiceWebEvent extends GraniteEvent
286
298
  private isVisibilityChangedByTransparentServiceWebResult;
287
299
  }
288
300
 
289
- declare const appsInTossEvent: GraniteEvent<EntryMessageExitedEvent | UpdateLocationEvent | AppBridgeCallbackEvent | VisibilityChangedByTransparentServiceWebEvent>;
301
+ declare const appsInTossEvent: GraniteEvent<BackButtonClickHandleEvent | EntryMessageExitedEvent | HomeIconButtonClickHandleEvent | UpdateLocationEvent | AppBridgeCallbackEvent | VisibilityChangedByTransparentServiceWebEvent>;
290
302
 
291
303
  declare function onVisibilityChangedByTransparentServiceWeb(eventParams: {
292
304
  options: {
package/dist/index.js CHANGED
@@ -1,9 +1,20 @@
1
1
  // src/AppsInTossModule/native-event-emitter/appsInTossEvent.ts
2
2
  import { GraniteEvent } from "@granite-js/react-native";
3
3
 
4
- // src/AppsInTossModule/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
4
+ // src/AppsInTossModule/native-event-emitter/event-plugins/BackButtonClickHandleEvent.ts
5
5
  import { GraniteEventDefinition } from "@granite-js/react-native";
6
- var EntryMessageExitedEvent = class extends GraniteEventDefinition {
6
+ var BackButtonClickHandleEvent = class extends GraniteEventDefinition {
7
+ name = "backButtonClickEvent";
8
+ remove() {
9
+ }
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+ listener(_) {
12
+ }
13
+ };
14
+
15
+ // src/AppsInTossModule/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
16
+ import { GraniteEventDefinition as GraniteEventDefinition2 } from "@granite-js/react-native";
17
+ var EntryMessageExitedEvent = class extends GraniteEventDefinition2 {
7
18
  name = "entryMessageExited";
8
19
  remove() {
9
20
  }
@@ -12,9 +23,20 @@ var EntryMessageExitedEvent = class extends GraniteEventDefinition {
12
23
  }
13
24
  };
14
25
 
26
+ // src/AppsInTossModule/native-event-emitter/event-plugins/HomeIconButtonClickHandleEvent.ts
27
+ import { GraniteEventDefinition as GraniteEventDefinition3 } from "@granite-js/react-native";
28
+ var HomeIconButtonClickHandleEvent = class extends GraniteEventDefinition3 {
29
+ name = "homeIconButtonClickEvent";
30
+ remove() {
31
+ }
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ listener(_) {
34
+ }
35
+ };
36
+
15
37
  // src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
16
38
  import { GetCurrentLocationPermissionError } from "@apps-in-toss/types";
17
- import { GraniteEventDefinition as GraniteEventDefinition2 } from "@granite-js/react-native";
39
+ import { GraniteEventDefinition as GraniteEventDefinition4 } from "@granite-js/react-native";
18
40
 
19
41
  // src/AppsInTossModule/native-modules/AppsInTossModule.ts
20
42
  import { TurboModuleRegistry } from "react-native";
@@ -49,7 +71,7 @@ import { NativeEventEmitter } from "react-native";
49
71
  var nativeEventEmitter = new NativeEventEmitter(AppsInTossModuleInstance);
50
72
 
51
73
  // src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
52
- var UpdateLocationEvent = class extends GraniteEventDefinition2 {
74
+ var UpdateLocationEvent = class extends GraniteEventDefinition4 {
53
75
  name = "updateLocationEvent";
54
76
  subscriptionCount = 0;
55
77
  ref = {
@@ -79,7 +101,7 @@ var UpdateLocationEvent = class extends GraniteEventDefinition2 {
79
101
  };
80
102
 
81
103
  // src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
82
- import { GraniteEventDefinition as GraniteEventDefinition3 } from "@granite-js/react-native";
104
+ import { GraniteEventDefinition as GraniteEventDefinition5 } from "@granite-js/react-native";
83
105
 
84
106
  // src/utils/generateUUID.ts
85
107
  function generateUUID(placeholder) {
@@ -141,7 +163,7 @@ var INTERNAL__appBridgeHandler = {
141
163
 
142
164
  // src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
143
165
  var UNSAFE__nativeEventEmitter = nativeEventEmitter;
144
- var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends GraniteEventDefinition3 {
166
+ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends GraniteEventDefinition5 {
145
167
  static INTERNAL__appBridgeSubscription;
146
168
  name = "appBridgeCallbackEvent";
147
169
  constructor() {
@@ -171,8 +193,8 @@ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends GraniteEventD
171
193
  };
172
194
 
173
195
  // src/AppsInTossModule/native-event-emitter/internal/VisibilityChangedByTransparentServiceWebEvent.ts
174
- import { GraniteEventDefinition as GraniteEventDefinition4 } from "@granite-js/react-native";
175
- var VisibilityChangedByTransparentServiceWebEvent = class extends GraniteEventDefinition4 {
196
+ import { GraniteEventDefinition as GraniteEventDefinition6 } from "@granite-js/react-native";
197
+ var VisibilityChangedByTransparentServiceWebEvent = class extends GraniteEventDefinition6 {
176
198
  name = "onVisibilityChangedByTransparentServiceWeb";
177
199
  subscription = null;
178
200
  remove() {
@@ -200,6 +222,9 @@ var VisibilityChangedByTransparentServiceWebEvent = class extends GraniteEventDe
200
222
  var appsInTossEvent = new GraniteEvent([
201
223
  new UpdateLocationEvent(),
202
224
  new EntryMessageExitedEvent(),
225
+ // Navigation Bar events
226
+ new HomeIconButtonClickHandleEvent(),
227
+ new BackButtonClickHandleEvent(),
203
228
  // Internal events
204
229
  new AppBridgeCallbackEvent(),
205
230
  new VisibilityChangedByTransparentServiceWebEvent()
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apps-in-toss/native-modules",
3
3
  "type": "module",
4
- "version": "0.0.0-dev.1758103372343",
4
+ "version": "0.0.0-dev.1758198081085",
5
5
  "description": "Native Modules for Apps In Toss",
6
6
  "scripts": {
7
7
  "prepack": "yarn build",
@@ -43,7 +43,7 @@
43
43
  "vitest": "^3.2.4"
44
44
  },
45
45
  "dependencies": {
46
- "@apps-in-toss/types": "^0.0.0-dev.1758103372343",
46
+ "@apps-in-toss/types": "^0.0.0-dev.1758198081085",
47
47
  "es-toolkit": "^1.39.3"
48
48
  },
49
49
  "peerDependencies": {
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "dd32f2c8028913b7f866a3a099728410d783dcd6"
57
+ "gitHead": "bfc8653621ef7fc455cc5cf8fd9ff885da0f69d0"
58
58
  }
@@ -1,5 +1,7 @@
1
1
  import { GraniteEvent } from '@granite-js/react-native';
2
+ import { BackButtonClickHandleEvent } from './event-plugins/BackButtonClickHandleEvent';
2
3
  import { EntryMessageExitedEvent } from './event-plugins/EntryMessageExitedEvent';
4
+ import { HomeIconButtonClickHandleEvent } from './event-plugins/HomeIconButtonClickHandleEvent';
3
5
  import { UpdateLocationEvent } from './event-plugins/UpdateLocationEvent';
4
6
  import { AppBridgeCallbackEvent } from './internal/AppBridgeCallbackEvent';
5
7
  import { VisibilityChangedByTransparentServiceWebEvent } from './internal/VisibilityChangedByTransparentServiceWebEvent';
@@ -8,6 +10,10 @@ export const appsInTossEvent = new GraniteEvent([
8
10
  new UpdateLocationEvent(),
9
11
  new EntryMessageExitedEvent(),
10
12
 
13
+ // Navigation Bar events
14
+ new HomeIconButtonClickHandleEvent(),
15
+ new BackButtonClickHandleEvent(),
16
+
11
17
  // Internal events
12
18
  new AppBridgeCallbackEvent(),
13
19
  new VisibilityChangedByTransparentServiceWebEvent(),
@@ -0,0 +1,10 @@
1
+ import { GraniteEventDefinition } from '@granite-js/react-native';
2
+
3
+ export class BackButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
4
+ name = 'backButtonClickEvent' as const;
5
+
6
+ remove() {}
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ listener(_: undefined) {}
10
+ }
@@ -0,0 +1,10 @@
1
+ import { GraniteEventDefinition } from '@granite-js/react-native';
2
+
3
+ export class HomeIconButtonClickHandleEvent extends GraniteEventDefinition<undefined, undefined> {
4
+ name = 'homeIconButtonClickEvent' as const;
5
+
6
+ remove() {}
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ listener(_: undefined) {}
10
+ }