react-native-audio-api 0.11.0-nightly-db51488-20251207 → 0.11.0-nightly-6ba0571-20251209

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 (134) hide show
  1. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +164 -16
  2. package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioPlayer.kt +10 -8
  3. package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioRecorder.kt +10 -8
  4. package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +8 -23
  5. package/android/src/main/java/com/swmansion/audioapi/system/CentralizedForegroundService.kt +127 -0
  6. package/android/src/main/java/com/swmansion/audioapi/system/ForegroundServiceManager.kt +116 -0
  7. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +115 -107
  8. package/android/src/main/java/com/swmansion/audioapi/system/PermissionRequestListener.kt +2 -1
  9. package/android/src/main/java/com/swmansion/audioapi/system/notification/BaseNotification.kt +47 -0
  10. package/android/src/main/java/com/swmansion/audioapi/system/notification/NotificationRegistry.kt +191 -0
  11. package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotification.kt +668 -0
  12. package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotificationReceiver.kt +33 -0
  13. package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotification.kt +303 -0
  14. package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotificationReceiver.kt +43 -0
  15. package/android/src/main/java/com/swmansion/audioapi/system/notification/SimpleNotification.kt +119 -0
  16. package/ios/audioapi/ios/AudioAPIModule.h +2 -2
  17. package/ios/audioapi/ios/AudioAPIModule.mm +108 -18
  18. package/ios/audioapi/ios/system/AudioEngine.mm +2 -2
  19. package/ios/audioapi/ios/system/AudioSessionManager.mm +1 -1
  20. package/ios/audioapi/ios/system/NotificationManager.mm +1 -1
  21. package/ios/audioapi/ios/system/notification/BaseNotification.h +58 -0
  22. package/ios/audioapi/ios/system/notification/NotificationRegistry.h +70 -0
  23. package/ios/audioapi/ios/system/notification/NotificationRegistry.mm +172 -0
  24. package/ios/audioapi/ios/system/notification/PlaybackNotification.h +27 -0
  25. package/ios/audioapi/ios/system/notification/PlaybackNotification.mm +427 -0
  26. package/lib/commonjs/api.js +59 -10
  27. package/lib/commonjs/api.js.map +1 -1
  28. package/lib/commonjs/api.web.js +27 -14
  29. package/lib/commonjs/api.web.js.map +1 -1
  30. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  31. package/lib/commonjs/system/AudioManager.js +6 -9
  32. package/lib/commonjs/system/AudioManager.js.map +1 -1
  33. package/lib/commonjs/system/index.js +13 -0
  34. package/lib/commonjs/system/index.js.map +1 -1
  35. package/lib/commonjs/system/notification/PlaybackNotificationManager.js +135 -0
  36. package/lib/commonjs/system/notification/PlaybackNotificationManager.js.map +1 -0
  37. package/lib/commonjs/system/notification/RecordingNotificationManager.js +182 -0
  38. package/lib/commonjs/system/notification/RecordingNotificationManager.js.map +1 -0
  39. package/lib/commonjs/system/notification/SimpleNotificationManager.js +122 -0
  40. package/lib/commonjs/system/notification/SimpleNotificationManager.js.map +1 -0
  41. package/lib/commonjs/system/notification/index.js +45 -0
  42. package/lib/commonjs/system/notification/index.js.map +1 -0
  43. package/lib/commonjs/system/notification/types.js +6 -0
  44. package/lib/commonjs/system/notification/types.js.map +1 -0
  45. package/lib/commonjs/web-system/index.js +17 -0
  46. package/lib/commonjs/web-system/index.js.map +1 -0
  47. package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js +34 -0
  48. package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js.map +1 -0
  49. package/lib/commonjs/web-system/notification/RecordingNotificationManager.js +34 -0
  50. package/lib/commonjs/web-system/notification/RecordingNotificationManager.js.map +1 -0
  51. package/lib/commonjs/web-system/notification/index.js +21 -0
  52. package/lib/commonjs/web-system/notification/index.js.map +1 -0
  53. package/lib/module/api.js +5 -1
  54. package/lib/module/api.js.map +1 -1
  55. package/lib/module/api.web.js +3 -1
  56. package/lib/module/api.web.js.map +1 -1
  57. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  58. package/lib/module/system/AudioManager.js +6 -9
  59. package/lib/module/system/AudioManager.js.map +1 -1
  60. package/lib/module/system/index.js +1 -0
  61. package/lib/module/system/index.js.map +1 -1
  62. package/lib/module/system/notification/PlaybackNotificationManager.js +131 -0
  63. package/lib/module/system/notification/PlaybackNotificationManager.js.map +1 -0
  64. package/lib/module/system/notification/RecordingNotificationManager.js +178 -0
  65. package/lib/module/system/notification/RecordingNotificationManager.js.map +1 -0
  66. package/lib/module/system/notification/SimpleNotificationManager.js +118 -0
  67. package/lib/module/system/notification/SimpleNotificationManager.js.map +1 -0
  68. package/lib/module/system/notification/index.js +7 -0
  69. package/lib/module/system/notification/index.js.map +1 -0
  70. package/lib/module/system/notification/types.js +4 -0
  71. package/lib/module/system/notification/types.js.map +1 -0
  72. package/lib/module/web-system/index.js +4 -0
  73. package/lib/module/web-system/index.js.map +1 -0
  74. package/lib/module/web-system/notification/PlaybackNotificationManager.js +30 -0
  75. package/lib/module/web-system/notification/PlaybackNotificationManager.js.map +1 -0
  76. package/lib/module/web-system/notification/RecordingNotificationManager.js +30 -0
  77. package/lib/module/web-system/notification/RecordingNotificationManager.js.map +1 -0
  78. package/lib/module/web-system/notification/index.js +5 -0
  79. package/lib/module/web-system/notification/index.js.map +1 -0
  80. package/lib/typescript/api.d.ts +3 -1
  81. package/lib/typescript/api.d.ts.map +1 -1
  82. package/lib/typescript/api.web.d.ts +3 -1
  83. package/lib/typescript/api.web.d.ts.map +1 -1
  84. package/lib/typescript/events/types.d.ts +4 -18
  85. package/lib/typescript/events/types.d.ts.map +1 -1
  86. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +16 -5
  87. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  88. package/lib/typescript/system/AudioManager.d.ts +4 -5
  89. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  90. package/lib/typescript/system/index.d.ts +1 -0
  91. package/lib/typescript/system/index.d.ts.map +1 -1
  92. package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts +22 -0
  93. package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts.map +1 -0
  94. package/lib/typescript/system/notification/RecordingNotificationManager.d.ts +23 -0
  95. package/lib/typescript/system/notification/RecordingNotificationManager.d.ts.map +1 -0
  96. package/lib/typescript/system/notification/SimpleNotificationManager.d.ts +20 -0
  97. package/lib/typescript/system/notification/SimpleNotificationManager.d.ts.map +1 -0
  98. package/lib/typescript/system/notification/index.d.ts +5 -0
  99. package/lib/typescript/system/notification/index.d.ts.map +1 -0
  100. package/lib/typescript/system/notification/types.d.ts +65 -0
  101. package/lib/typescript/system/notification/types.d.ts.map +1 -0
  102. package/lib/typescript/system/types.d.ts +0 -16
  103. package/lib/typescript/system/types.d.ts.map +1 -1
  104. package/lib/typescript/web-system/index.d.ts +2 -0
  105. package/lib/typescript/web-system/index.d.ts.map +1 -0
  106. package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts +19 -0
  107. package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts.map +1 -0
  108. package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts +19 -0
  109. package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts.map +1 -0
  110. package/lib/typescript/web-system/notification/index.d.ts +3 -0
  111. package/lib/typescript/web-system/notification/index.d.ts.map +1 -0
  112. package/package.json +1 -1
  113. package/src/api.ts +17 -2
  114. package/src/api.web.ts +7 -2
  115. package/src/events/types.ts +4 -20
  116. package/src/specs/NativeAudioAPIModule.ts +23 -7
  117. package/src/system/AudioManager.ts +10 -23
  118. package/src/system/index.ts +1 -0
  119. package/src/system/notification/PlaybackNotificationManager.ts +193 -0
  120. package/src/system/notification/RecordingNotificationManager.ts +242 -0
  121. package/src/system/notification/SimpleNotificationManager.ts +170 -0
  122. package/src/system/notification/index.ts +4 -0
  123. package/src/system/notification/types.ts +110 -0
  124. package/src/system/types.ts +0 -18
  125. package/src/web-system/index.ts +1 -0
  126. package/src/web-system/notification/PlaybackNotificationManager.ts +60 -0
  127. package/src/web-system/notification/RecordingNotificationManager.ts +60 -0
  128. package/src/web-system/notification/index.ts +2 -0
  129. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +0 -347
  130. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +0 -273
  131. package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +0 -57
  132. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +0 -61
  133. package/ios/audioapi/ios/system/LockScreenManager.h +0 -23
  134. package/ios/audioapi/ios/system/LockScreenManager.mm +0 -314
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_specs","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","setLockScreenInfo","info","resetLockScreenInfo","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","enableRemoteCommand","name","addSystemEventListener","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AAQA,MAAME,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAAED,4BAA4B,CAAC,CAAC;EAC7D;EAEAE,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOF,2BAAoB,CAAEC,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CJ,2BAAoB,CAAEG,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,wBAAwBA,CAAA,EAAG;IACzBT,2BAAoB,CAAES,wBAAwB,CAAC,CAAC;EAClD;EAEAC,iBAAiBA,CAACC,IAAoB,EAAE;IACtCX,2BAAoB,CAAEU,iBAAiB,CAACC,IAAI,CAAC;EAC/C;EAEAC,mBAAmBA,CAAA,EAAG;IACpBZ,2BAAoB,CAAEY,mBAAmB,CAAC,CAAC;EAC7C;EAEAC,yBAAyBA,CAACX,OAAgB,EAAE;IAC1CF,2BAAoB,CAAEa,yBAAyB,CAACX,OAAO,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEY,sBAAsBA,CAACZ,OAAgB,EAAE;IACvCF,2BAAoB,CAAEc,sBAAsB,CAACZ,OAAO,CAAC;EACvD;EAEAa,oBAAoBA,CAACb,OAAgB,EAAE;IACrCF,2BAAoB,CAAEe,oBAAoB,CAACb,OAAO,CAAC;EACrD;EAEAc,mBAAmBA,CAACC,IAA4B,EAAEf,OAAgB,EAAE;IAClEF,2BAAoB,CAAEgB,mBAAmB,CAACC,IAAI,EAAEf,OAAO,CAAC;EAC1D;EAEAgB,sBAAsBA,CACpBD,IAAU,EACVE,QAAmC,EACX;IACxB,OAAO,IAAI,CAACvB,iBAAiB,CAACwB,qBAAqB,CAACH,IAAI,EAAEE,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOrB,2BAAoB,CAAEqB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOtB,2BAAoB,CAAEsB,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOvB,2BAAoB,CAAEuB,cAAc,CAAC,CAAC;EAC/C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAIhC,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_events","require","_specs","AudioManager","constructor","audioEventEmitter","AudioEventEmitter","global","getDevicePreferredSampleRate","NativeAudioAPIModule","setAudioSessionActivity","enabled","setAudioSessionOptions","options","iosCategory","iosMode","iosOptions","iosAllowHaptics","disableSessionManagement","observeAudioInterruptions","activelyReclaimSession","observeVolumeChanges","addSystemEventListener","name","callback","addAudioEventListener","requestRecordingPermissions","checkRecordingPermissions","requestNotificationPermissions","checkNotificationPermissions","getDevicesInfo","_default","exports","default"],"sourceRoot":"../../../src","sources":["system/AudioManager.ts"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,YAAY,CAAC;EAEjBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,iBAAiB,GAAG,IAAIC,yBAAiB,CAACC,MAAM,CAACD,iBAAiB,CAAC;EAC1E;EAEAE,4BAA4BA,CAAA,EAAW;IACrC,OAAOC,2BAAoB,CAAED,4BAA4B,CAAC,CAAC;EAC7D;EAEAE,uBAAuBA,CAACC,OAAgB,EAAoB;IAC1D,OAAOF,2BAAoB,CAAEC,uBAAuB,CAACC,OAAO,CAAC;EAC/D;EAEAC,sBAAsBA,CAACC,OAAuB,EAAE;IAC9CJ,2BAAoB,CAAEG,sBAAsB,CAC1CC,OAAO,CAACC,WAAW,IAAI,EAAE,EACzBD,OAAO,CAACE,OAAO,IAAI,EAAE,EACrBF,OAAO,CAACG,UAAU,IAAI,EAAE,EACxBH,OAAO,CAACI,eAAe,IAAI,KAC7B,CAAC;EACH;EAEAC,wBAAwBA,CAAA,EAAG;IACzBT,2BAAoB,CAAES,wBAAwB,CAAC,CAAC;EAClD;EAEAC,yBAAyBA,CAACR,OAAgB,EAAE;IAC1CF,2BAAoB,CAAEU,yBAAyB,CAACR,OAAO,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACES,sBAAsBA,CAACT,OAAgB,EAAE;IACvCF,2BAAoB,CAAEW,sBAAsB,CAACT,OAAO,CAAC;EACvD;EAEAU,oBAAoBA,CAACV,OAAgB,EAAE;IACrCF,2BAAoB,CAAEY,oBAAoB,CAACV,OAAO,CAAC;EACrD;EAEAW,sBAAsBA,CACpBC,IAAU,EACVC,QAAmC,EACX;IACxB,OAAO,IAAI,CAACnB,iBAAiB,CAACoB,qBAAqB,CAACF,IAAI,EAAEC,QAAQ,CAAC;EACrE;EAEA,MAAME,2BAA2BA,CAAA,EAA8B;IAC7D,OAAOjB,2BAAoB,CAAEiB,2BAA2B,CAAC,CAAC;EAC5D;EAEA,MAAMC,yBAAyBA,CAAA,EAA8B;IAC3D,OAAOlB,2BAAoB,CAAEkB,yBAAyB,CAAC,CAAC;EAC1D;EAEA,MAAMC,8BAA8BA,CAAA,EAA8B;IAChE,OAAOnB,2BAAoB,CAAEmB,8BAA8B,CAAC,CAAC;EAC/D;EAEA,MAAMC,4BAA4BA,CAAA,EAA8B;IAC9D,OAAOpB,2BAAoB,CAAEoB,4BAA4B,CAAC,CAAC;EAC7D;EAEA,MAAMC,cAAcA,CAAA,EAA8B;IAChD,OAAOrB,2BAAoB,CAAEqB,cAAc,CAAC,CAAC;EAC/C;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAI9B,YAAY,CAAC,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {};
6
7
  Object.defineProperty(exports, "default", {
7
8
  enumerable: true,
8
9
  get: function () {
@@ -10,5 +11,17 @@ Object.defineProperty(exports, "default", {
10
11
  }
11
12
  });
12
13
  var _AudioManager = _interopRequireDefault(require("./AudioManager"));
14
+ var _notification = require("./notification");
15
+ Object.keys(_notification).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
18
+ if (key in exports && exports[key] === _notification[key]) return;
19
+ Object.defineProperty(exports, key, {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _notification[key];
23
+ }
24
+ });
25
+ });
13
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_AudioManager","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../../src","sources":["system/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["_AudioManager","_interopRequireDefault","require","_notification","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default"],"sourceRoot":"../../../src","sources":["system/index.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,aAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,aAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,aAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAA+B,SAAAN,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _specs = require("../../specs");
8
+ var _events = require("../../events");
9
+ /// Manager for media playback notifications with controls and MediaSession integration.
10
+ class PlaybackNotificationManager {
11
+ notificationKey = 'playback';
12
+ isRegistered = false;
13
+ isShown = false;
14
+ constructor() {
15
+ this.audioEventEmitter = new _events.AudioEventEmitter(global.AudioEventEmitter);
16
+ }
17
+
18
+ /// Register the playback notification (must be called before showing).
19
+ async register() {
20
+ if (this.isRegistered) {
21
+ console.warn('PlaybackNotification is already registered');
22
+ return;
23
+ }
24
+ if (!_specs.NativeAudioAPIModule) {
25
+ throw new Error('NativeAudioAPIModule is not available');
26
+ }
27
+ const result = await _specs.NativeAudioAPIModule.registerNotification('playback', this.notificationKey);
28
+ if (result.error) {
29
+ throw new Error(result.error);
30
+ }
31
+ this.isRegistered = true;
32
+ }
33
+
34
+ /// Show the notification with initial metadata.
35
+ async show(info) {
36
+ if (!this.isRegistered) {
37
+ throw new Error('PlaybackNotification must be registered before showing. Call register() first.');
38
+ }
39
+ if (!_specs.NativeAudioAPIModule) {
40
+ throw new Error('NativeAudioAPIModule is not available');
41
+ }
42
+ const result = await _specs.NativeAudioAPIModule.showNotification(this.notificationKey, info);
43
+ if (result.error) {
44
+ throw new Error(result.error);
45
+ }
46
+ this.isShown = true;
47
+ }
48
+
49
+ /// Update the notification with new metadata or state.
50
+ async update(info) {
51
+ if (!this.isShown) {
52
+ console.warn('PlaybackNotification is not shown. Call show() first.');
53
+ return;
54
+ }
55
+ if (!_specs.NativeAudioAPIModule) {
56
+ throw new Error('NativeAudioAPIModule is not available');
57
+ }
58
+ const result = await _specs.NativeAudioAPIModule.updateNotification(this.notificationKey, info);
59
+ if (result.error) {
60
+ throw new Error(result.error);
61
+ }
62
+ }
63
+
64
+ /// Hide the notification (can be shown again later).
65
+ async hide() {
66
+ if (!this.isShown) {
67
+ return;
68
+ }
69
+ if (!_specs.NativeAudioAPIModule) {
70
+ throw new Error('NativeAudioAPIModule is not available');
71
+ }
72
+ const result = await _specs.NativeAudioAPIModule.hideNotification(this.notificationKey);
73
+ if (result.error) {
74
+ throw new Error(result.error);
75
+ }
76
+ this.isShown = false;
77
+ }
78
+
79
+ /// Unregister the notification (must register again to use).
80
+ async unregister() {
81
+ if (!this.isRegistered) {
82
+ return;
83
+ }
84
+ if (this.isShown) {
85
+ await this.hide();
86
+ }
87
+ if (!_specs.NativeAudioAPIModule) {
88
+ throw new Error('NativeAudioAPIModule is not available');
89
+ }
90
+ const result = await _specs.NativeAudioAPIModule.unregisterNotification(this.notificationKey);
91
+ if (result.error) {
92
+ throw new Error(result.error);
93
+ }
94
+ this.isRegistered = false;
95
+ }
96
+
97
+ /// Enable or disable a specific playback control.
98
+ async enableControl(control, enabled) {
99
+ if (!this.isRegistered) {
100
+ console.warn('PlaybackNotification is not registered');
101
+ return;
102
+ }
103
+ if (!_specs.NativeAudioAPIModule) {
104
+ throw new Error('NativeAudioAPIModule is not available');
105
+ }
106
+ const params = {
107
+ control,
108
+ enabled
109
+ };
110
+ const result = await _specs.NativeAudioAPIModule.updateNotification(this.notificationKey, params);
111
+ if (result.error) {
112
+ throw new Error(result.error);
113
+ }
114
+ }
115
+
116
+ /// Check if the notification is currently active.
117
+ async isActive() {
118
+ if (!_specs.NativeAudioAPIModule) {
119
+ return false;
120
+ }
121
+ return await _specs.NativeAudioAPIModule.isNotificationActive(this.notificationKey);
122
+ }
123
+
124
+ /// Add an event listener for notification actions.
125
+ addEventListener(eventName, callback) {
126
+ return this.audioEventEmitter.addAudioEventListener(eventName, callback);
127
+ }
128
+
129
+ /** Remove an event listener. */
130
+ removeEventListener(subscription) {
131
+ subscription.remove();
132
+ }
133
+ }
134
+ var _default = exports.default = new PlaybackNotificationManager();
135
+ //# sourceMappingURL=PlaybackNotificationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_specs","require","_events","PlaybackNotificationManager","notificationKey","isRegistered","isShown","constructor","audioEventEmitter","AudioEventEmitter","global","register","console","warn","NativeAudioAPIModule","Error","result","registerNotification","error","show","info","showNotification","update","updateNotification","hide","hideNotification","unregister","unregisterNotification","enableControl","control","enabled","params","isActive","isNotificationActive","addEventListener","eventName","callback","addAudioEventListener","removeEventListener","subscription","remove","_default","exports","default"],"sourceRoot":"../../../../src","sources":["system/notification/PlaybackNotificationManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _specs = require("../../specs");
9
+ var _events = require("../../events");
10
+ /// Manager for recording notifications with controls.
11
+ class RecordingNotificationManager {
12
+ notificationKey = 'recording';
13
+ isRegistered = false;
14
+ isShown = false;
15
+ isIOS = _reactNative.Platform.OS === 'ios';
16
+ constructor() {
17
+ this.audioEventEmitter = new _events.AudioEventEmitter(global.AudioEventEmitter);
18
+ }
19
+
20
+ /// Register the recording notification (must be called before showing).
21
+ async register() {
22
+ if (this.isRegistered) {
23
+ console.warn('RecordingNotification is already registered');
24
+ return;
25
+ }
26
+
27
+ // Recording notifications are only supported on Android
28
+ if (this.isIOS) {
29
+ this.isRegistered = true;
30
+ return;
31
+ }
32
+ if (!_specs.NativeAudioAPIModule) {
33
+ throw new Error('NativeAudioAPIModule is not available');
34
+ }
35
+ const result = await _specs.NativeAudioAPIModule.registerNotification('recording', this.notificationKey);
36
+ if (result.error) {
37
+ throw new Error(result.error);
38
+ }
39
+ this.isRegistered = true;
40
+ }
41
+
42
+ /// Show the notification with initial metadata.
43
+ async show(info) {
44
+ if (!this.isRegistered) {
45
+ throw new Error('RecordingNotification must be registered before showing. Call register() first.');
46
+ }
47
+
48
+ // Recording notifications are only supported on Android
49
+ if (this.isIOS) {
50
+ this.isShown = true;
51
+ return;
52
+ }
53
+ if (!_specs.NativeAudioAPIModule) {
54
+ throw new Error('NativeAudioAPIModule is not available');
55
+ }
56
+ const result = await _specs.NativeAudioAPIModule.showNotification(this.notificationKey, info);
57
+ if (result.error) {
58
+ throw new Error(result.error);
59
+ }
60
+ this.isShown = true;
61
+ }
62
+
63
+ /// Update the notification with new metadata or state.
64
+ async update(info) {
65
+ if (!this.isShown) {
66
+ console.warn('RecordingNotification is not shown. Call show() first.');
67
+ return;
68
+ }
69
+
70
+ // Recording notifications are only supported on Android
71
+ if (this.isIOS) {
72
+ return;
73
+ }
74
+ if (!_specs.NativeAudioAPIModule) {
75
+ throw new Error('NativeAudioAPIModule is not available');
76
+ }
77
+ const result = await _specs.NativeAudioAPIModule.updateNotification(this.notificationKey, info);
78
+ if (result.error) {
79
+ throw new Error(result.error);
80
+ }
81
+ }
82
+
83
+ /// Hide the notification (can be shown again later).
84
+ async hide() {
85
+ if (!this.isShown) {
86
+ return;
87
+ }
88
+
89
+ // Recording notifications are only supported on Android
90
+ if (this.isIOS) {
91
+ this.isShown = false;
92
+ return;
93
+ }
94
+ if (!_specs.NativeAudioAPIModule) {
95
+ throw new Error('NativeAudioAPIModule is not available');
96
+ }
97
+ const result = await _specs.NativeAudioAPIModule.hideNotification(this.notificationKey);
98
+ if (result.error) {
99
+ throw new Error(result.error);
100
+ }
101
+ this.isShown = false;
102
+ }
103
+
104
+ /// Unregister the notification (must register again to use).
105
+ async unregister() {
106
+ if (!this.isRegistered) {
107
+ return;
108
+ }
109
+ if (this.isShown) {
110
+ await this.hide();
111
+ }
112
+
113
+ // Recording notifications are only supported on Android
114
+ if (this.isIOS) {
115
+ this.isRegistered = false;
116
+ return;
117
+ }
118
+ if (!_specs.NativeAudioAPIModule) {
119
+ throw new Error('NativeAudioAPIModule is not available');
120
+ }
121
+ const result = await _specs.NativeAudioAPIModule.unregisterNotification(this.notificationKey);
122
+ if (result.error) {
123
+ throw new Error(result.error);
124
+ }
125
+ this.isRegistered = false;
126
+ }
127
+
128
+ /// Enable or disable a specific recording control.
129
+ async enableControl(control, enabled) {
130
+ if (!this.isRegistered) {
131
+ console.warn('RecordingNotification is not registered');
132
+ return;
133
+ }
134
+
135
+ // Recording notifications are only supported on Android
136
+ if (this.isIOS) {
137
+ return;
138
+ }
139
+ if (!_specs.NativeAudioAPIModule) {
140
+ throw new Error('NativeAudioAPIModule is not available');
141
+ }
142
+ const params = {
143
+ control,
144
+ enabled
145
+ };
146
+ const result = await _specs.NativeAudioAPIModule.updateNotification(this.notificationKey, params);
147
+ if (result.error) {
148
+ throw new Error(result.error);
149
+ }
150
+ }
151
+
152
+ /// Check if the notification is currently active.
153
+ async isActive() {
154
+ // Recording notifications are only supported on Android
155
+ if (this.isIOS) {
156
+ return this.isShown;
157
+ }
158
+ if (!_specs.NativeAudioAPIModule) {
159
+ return false;
160
+ }
161
+ return await _specs.NativeAudioAPIModule.isNotificationActive(this.notificationKey);
162
+ }
163
+
164
+ /// Add an event listener for notification actions.
165
+ addEventListener(eventName, callback) {
166
+ // Recording notifications are only supported on Android
167
+ if (this.isIOS) {
168
+ // Return a dummy subscription for iOS
169
+ return {
170
+ remove: () => {}
171
+ };
172
+ }
173
+ return this.audioEventEmitter.addAudioEventListener(eventName, callback);
174
+ }
175
+
176
+ /** Remove an event listener. */
177
+ removeEventListener(subscription) {
178
+ subscription.remove();
179
+ }
180
+ }
181
+ var _default = exports.default = new RecordingNotificationManager();
182
+ //# sourceMappingURL=RecordingNotificationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_specs","_events","RecordingNotificationManager","notificationKey","isRegistered","isShown","isIOS","Platform","OS","constructor","audioEventEmitter","AudioEventEmitter","global","register","console","warn","NativeAudioAPIModule","Error","result","registerNotification","error","show","info","showNotification","update","updateNotification","hide","hideNotification","unregister","unregisterNotification","enableControl","control","enabled","params","isActive","isNotificationActive","addEventListener","eventName","callback","remove","addAudioEventListener","removeEventListener","subscription","_default","exports","default"],"sourceRoot":"../../../../src","sources":["system/notification/RecordingNotificationManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _specs = require("../../specs");
8
+ var _events = require("../../events");
9
+ /// Simple notification manager for basic notifications with title and text.
10
+ /// Implements the generic NotificationManager interface.
11
+ // It is only a showcase
12
+ class SimpleNotificationManager {
13
+ notificationKey = 'simple';
14
+ isRegistered = false;
15
+ isShown = false;
16
+ constructor() {
17
+ this.audioEventEmitter = new _events.AudioEventEmitter(global.AudioEventEmitter);
18
+ }
19
+
20
+ /// Register the simple notification (must be called before showing).
21
+ async register() {
22
+ if (this.isRegistered) {
23
+ console.warn('SimpleNotification is already registered');
24
+ return;
25
+ }
26
+ if (!_specs.NativeAudioAPIModule) {
27
+ throw new Error('NativeAudioAPIModule is not available');
28
+ }
29
+ const result = await _specs.NativeAudioAPIModule.registerNotification('simple', this.notificationKey);
30
+ if (result.error) {
31
+ throw new Error(result.error);
32
+ }
33
+ this.isRegistered = true;
34
+ }
35
+
36
+ /// Show the notification with initial options.
37
+ async show(options) {
38
+ if (!this.isRegistered) {
39
+ throw new Error('SimpleNotification must be registered before showing. Call register() first.');
40
+ }
41
+ if (!_specs.NativeAudioAPIModule) {
42
+ throw new Error('NativeAudioAPIModule is not available');
43
+ }
44
+ const result = await _specs.NativeAudioAPIModule.showNotification(this.notificationKey, options);
45
+ if (result.error) {
46
+ throw new Error(result.error);
47
+ }
48
+ this.isShown = true;
49
+ }
50
+
51
+ /// Update the notification with new options.
52
+ async update(options) {
53
+ if (!this.isShown) {
54
+ console.warn('SimpleNotification is not shown. Call show() first.');
55
+ return;
56
+ }
57
+ if (!_specs.NativeAudioAPIModule) {
58
+ throw new Error('NativeAudioAPIModule is not available');
59
+ }
60
+ const result = await _specs.NativeAudioAPIModule.updateNotification(this.notificationKey, options);
61
+ if (result.error) {
62
+ throw new Error(result.error);
63
+ }
64
+ }
65
+
66
+ /// Hide the notification (can be shown again later).
67
+ async hide() {
68
+ if (!this.isShown) {
69
+ return;
70
+ }
71
+ if (!_specs.NativeAudioAPIModule) {
72
+ throw new Error('NativeAudioAPIModule is not available');
73
+ }
74
+ const result = await _specs.NativeAudioAPIModule.hideNotification(this.notificationKey);
75
+ if (result.error) {
76
+ throw new Error(result.error);
77
+ }
78
+ this.isShown = false;
79
+ }
80
+
81
+ /// Unregister the notification (must register again to use).
82
+ async unregister() {
83
+ if (!this.isRegistered) {
84
+ return;
85
+ }
86
+ if (this.isShown) {
87
+ await this.hide();
88
+ }
89
+ if (!_specs.NativeAudioAPIModule) {
90
+ throw new Error('NativeAudioAPIModule is not available');
91
+ }
92
+ const result = await _specs.NativeAudioAPIModule.unregisterNotification(this.notificationKey);
93
+ if (result.error) {
94
+ throw new Error(result.error);
95
+ }
96
+ this.isRegistered = false;
97
+ }
98
+
99
+ /// Check if the notification is currently active.
100
+ async isActive() {
101
+ if (!_specs.NativeAudioAPIModule) {
102
+ return false;
103
+ }
104
+ return await _specs.NativeAudioAPIModule.isNotificationActive(this.notificationKey);
105
+ }
106
+
107
+ /// Add an event listener (SimpleNotification doesn't emit events).
108
+ addEventListener(_eventName, _callback) {
109
+ // SimpleNotification doesn't emit events, return a no-op subscription
110
+ console.warn('SimpleNotification does not support event listeners');
111
+ return this.audioEventEmitter.addAudioEventListener(
112
+ // Using a valid event name for the no-op subscription
113
+ 'playbackNotificationPlay', () => {});
114
+ }
115
+
116
+ /// Remove an event listener.
117
+ removeEventListener(subscription) {
118
+ subscription.remove();
119
+ }
120
+ }
121
+ var _default = exports.default = new SimpleNotificationManager();
122
+ //# sourceMappingURL=SimpleNotificationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_specs","require","_events","SimpleNotificationManager","notificationKey","isRegistered","isShown","constructor","audioEventEmitter","AudioEventEmitter","global","register","console","warn","NativeAudioAPIModule","Error","result","registerNotification","error","show","options","showNotification","update","updateNotification","hide","hideNotification","unregister","unregisterNotification","isActive","isNotificationActive","addEventListener","_eventName","_callback","addAudioEventListener","removeEventListener","subscription","remove","_default","exports","default"],"sourceRoot":"../../../../src","sources":["system/notification/SimpleNotificationManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ PlaybackNotificationManager: true,
8
+ RecordingNotificationManager: true,
9
+ SimpleNotificationManager: true
10
+ };
11
+ Object.defineProperty(exports, "PlaybackNotificationManager", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _PlaybackNotificationManager.default;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "RecordingNotificationManager", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _RecordingNotificationManager.default;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "SimpleNotificationManager", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _SimpleNotificationManager.default;
27
+ }
28
+ });
29
+ var _PlaybackNotificationManager = _interopRequireDefault(require("./PlaybackNotificationManager"));
30
+ var _RecordingNotificationManager = _interopRequireDefault(require("./RecordingNotificationManager"));
31
+ var _SimpleNotificationManager = _interopRequireDefault(require("./SimpleNotificationManager"));
32
+ var _types = require("./types");
33
+ Object.keys(_types).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _types[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _types[key];
41
+ }
42
+ });
43
+ });
44
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_PlaybackNotificationManager","_interopRequireDefault","require","_RecordingNotificationManager","_SimpleNotificationManager","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default"],"sourceRoot":"../../../../src","sources":["system/notification/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,4BAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,6BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAwB,SAAAR,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["system/notification/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _notification = require("./notification");
7
+ Object.keys(_notification).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _notification[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _notification[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_notification","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../src","sources":["web-system/index.ts"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /* eslint-disable @typescript-eslint/no-unused-vars */
8
+ /* eslint-disable no-useless-constructor */
9
+ /* eslint-disable @typescript-eslint/require-await */
10
+
11
+ /// Mock Manager for playback notifications. Does nothing.
12
+ class PlaybackNotificationManager {
13
+ isRegistered = false;
14
+ isShown = false;
15
+ constructor() {}
16
+ async register() {}
17
+ async show(info) {}
18
+ async update(info) {}
19
+ async hide() {}
20
+ async unregister() {}
21
+ async enableControl(control, enabled) {}
22
+ async isActive() {
23
+ return this.isShown;
24
+ }
25
+ addEventListener(eventName, callback) {
26
+ // dummy subscription object with a no-op remove method
27
+ return {
28
+ remove: () => {}
29
+ };
30
+ }
31
+ removeEventListener(subscription) {}
32
+ }
33
+ var _default = exports.default = new PlaybackNotificationManager();
34
+ //# sourceMappingURL=PlaybackNotificationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PlaybackNotificationManager","isRegistered","isShown","constructor","register","show","info","update","hide","unregister","enableControl","control","enabled","isActive","addEventListener","eventName","callback","remove","removeEventListener","subscription","_default","exports","default"],"sourceRoot":"../../../../src","sources":["web-system/notification/PlaybackNotificationManager.ts"],"mappings":";;;;;;AAAA;AACA;AACA;;AAWA;AACA,MAAMA,2BAA2B,CAOjC;EACUC,YAAY,GAAG,KAAK;EACpBC,OAAO,GAAG,KAAK;EAEvBC,WAAWA,CAAA,EAAG,CAAC;EAEf,MAAMC,QAAQA,CAAA,EAAkB,CAAC;EAEjC,MAAMC,IAAIA,CAACC,IAA8B,EAAiB,CAAC;EAE3D,MAAMC,MAAMA,CAACD,IAA8B,EAAiB,CAAC;EAE7D,MAAME,IAAIA,CAAA,EAAkB,CAAC;EAE7B,MAAMC,UAAUA,CAAA,EAAkB,CAAC;EAEnC,MAAMC,aAAaA,CACjBC,OAA4B,EAC5BC,OAAgB,EACD,CAAC;EAElB,MAAMC,QAAQA,CAAA,EAAqB;IACjC,OAAO,IAAI,CAACX,OAAO;EACrB;EAEAY,gBAAgBA,CACdC,SAAY,EACZC,QAAgD,EACxB;IACxB;IACA,OAAO;MACLC,MAAM,EAAEA,CAAA,KAAM,CAAC;IACjB,CAAC;EACH;EAEAC,mBAAmBA,CAACC,YAAoC,EAAQ,CAAC;AACnE;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAItB,2BAA2B,CAAC,CAAC","ignoreList":[]}