@maplibre/maplibre-react-native 11.0.0-alpha.17 → 11.0.0-alpha.18

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 (49) hide show
  1. package/android/src/main/java/org/maplibre/reactnative/MLRNPackage.kt +6 -6
  2. package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLogModule.kt +99 -0
  3. package/ios/modules/logging/MLRNLogModule.h +10 -0
  4. package/ios/modules/logging/MLRNLogModule.mm +39 -0
  5. package/ios/modules/logging/MLRNLogging.h +15 -2
  6. package/ios/modules/logging/MLRNLogging.m +22 -55
  7. package/lib/commonjs/components/map-view/MapView.js +3 -3
  8. package/lib/commonjs/components/map-view/MapView.js.map +1 -1
  9. package/lib/commonjs/index.js +4 -4
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/modules/log/LogManager.js +99 -0
  12. package/lib/commonjs/modules/log/LogManager.js.map +1 -0
  13. package/lib/commonjs/modules/log/NativeLogModule.js +9 -0
  14. package/lib/commonjs/modules/log/NativeLogModule.js.map +1 -0
  15. package/lib/module/components/map-view/MapView.js +3 -3
  16. package/lib/module/components/map-view/MapView.js.map +1 -1
  17. package/lib/module/index.js +1 -1
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/modules/log/LogManager.js +96 -0
  20. package/lib/module/modules/log/LogManager.js.map +1 -0
  21. package/lib/module/modules/log/NativeLogModule.js +5 -0
  22. package/lib/module/modules/log/NativeLogModule.js.map +1 -0
  23. package/lib/typescript/commonjs/src/index.d.ts +1 -1
  24. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/src/modules/log/LogManager.d.ts +45 -0
  26. package/lib/typescript/commonjs/src/modules/log/LogManager.d.ts.map +1 -0
  27. package/lib/typescript/commonjs/src/modules/log/NativeLogModule.d.ts +13 -0
  28. package/lib/typescript/commonjs/src/modules/log/NativeLogModule.d.ts.map +1 -0
  29. package/lib/typescript/module/src/index.d.ts +1 -1
  30. package/lib/typescript/module/src/index.d.ts.map +1 -1
  31. package/lib/typescript/module/src/modules/log/LogManager.d.ts +45 -0
  32. package/lib/typescript/module/src/modules/log/LogManager.d.ts.map +1 -0
  33. package/lib/typescript/module/src/modules/log/NativeLogModule.d.ts +13 -0
  34. package/lib/typescript/module/src/modules/log/NativeLogModule.d.ts.map +1 -0
  35. package/package.json +2 -1
  36. package/src/components/map-view/MapView.tsx +3 -3
  37. package/src/index.ts +1 -1
  38. package/src/modules/log/LogManager.ts +114 -0
  39. package/src/modules/log/NativeLogModule.ts +16 -0
  40. package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLogging.java +0 -140
  41. package/lib/commonjs/modules/Logger.js +0 -112
  42. package/lib/commonjs/modules/Logger.js.map +0 -1
  43. package/lib/module/modules/Logger.js +0 -107
  44. package/lib/module/modules/Logger.js.map +0 -1
  45. package/lib/typescript/commonjs/src/modules/Logger.d.ts +0 -49
  46. package/lib/typescript/commonjs/src/modules/Logger.d.ts.map +0 -1
  47. package/lib/typescript/module/src/modules/Logger.d.ts +0 -49
  48. package/lib/typescript/module/src/modules/Logger.d.ts.map +0 -1
  49. package/src/modules/Logger.ts +0 -127
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import NativeLogModule from "./NativeLogModule.js";
4
+
5
+ /**
6
+ * Log levels in decreasing order of severity
7
+ */
8
+
9
+ /**
10
+ * Handler for `onLog` events
11
+ *
12
+ * Called before logging a message, return false to proceed with default logging.
13
+ *
14
+ * @param event
15
+ */
16
+
17
+ class LogManager {
18
+ logLevel = "warn";
19
+ startedCount = 0;
20
+ logHandler = undefined;
21
+ subscription = undefined;
22
+ constructor() {
23
+ this.handleLog = this.handleLog.bind(this);
24
+ }
25
+
26
+ /**
27
+ * Override logging behavior
28
+ *
29
+ * @param logHandler
30
+ */
31
+ onLog(logHandler) {
32
+ this.logHandler = logHandler;
33
+ }
34
+
35
+ /**
36
+ * Set the minimum log level for a message to be logged
37
+ *
38
+ * @param level Minimum log level
39
+ */
40
+ setLogLevel(level) {
41
+ this.logLevel = level;
42
+ NativeLogModule.setLogLevel(level);
43
+ }
44
+ start() {
45
+ if (this.startedCount === 0) {
46
+ this.subscribe();
47
+ }
48
+ this.startedCount += 1;
49
+ }
50
+ stop() {
51
+ this.startedCount -= 1;
52
+ if (this.startedCount === 0) {
53
+ this.unsubscribe();
54
+ }
55
+ }
56
+ subscribe() {
57
+ this.subscription = NativeLogModule.onLog(this.handleLog);
58
+ }
59
+ unsubscribe() {
60
+ if (this.subscription) {
61
+ this.subscription.remove();
62
+ this.subscription = undefined;
63
+ }
64
+ }
65
+ effectiveLevel({
66
+ level,
67
+ message,
68
+ tag
69
+ }) {
70
+ // Reduce level of cancelled HTTP requests from warn to info
71
+ if (level === "warn" && tag === "Mbgl-HttpRequest" && message.startsWith("Request failed due to a permanent error: Canceled")) {
72
+ return "info";
73
+ }
74
+ return level;
75
+ }
76
+ handleLog(log) {
77
+ if (!this.logHandler || !this.logHandler(log)) {
78
+ const {
79
+ message,
80
+ tag
81
+ } = log;
82
+ const level = this.effectiveLevel(log);
83
+ const consoleMessage = `MapLibre Native [${level.toUpperCase()}] [${tag}] ${message}`;
84
+ if (level === "error") {
85
+ console.error(consoleMessage);
86
+ } else if (level === "warn" && this.logLevel !== "error") {
87
+ console.warn(consoleMessage);
88
+ } else if (this.logLevel !== "error" && this.logLevel !== "warn") {
89
+ console.info(consoleMessage);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ const logManager = new LogManager();
95
+ export { logManager as LogManager };
96
+ //# sourceMappingURL=LogManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeLogModule","LogManager","logLevel","startedCount","logHandler","undefined","subscription","constructor","handleLog","bind","onLog","setLogLevel","level","start","subscribe","stop","unsubscribe","remove","effectiveLevel","message","tag","startsWith","log","consoleMessage","toUpperCase","console","error","warn","info","logManager"],"sourceRoot":"../../../../src","sources":["modules/log/LogManager.ts"],"mappings":";;AAEA,OAAOA,eAAe,MAAM,sBAAmB;;AAE/C;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,MAAMC,UAAU,CAAC;EACPC,QAAQ,GAAa,MAAM;EAC3BC,YAAY,GAAW,CAAC;EACxBC,UAAU,GAA2BC,SAAS;EAC9CC,YAAY,GAAkCD,SAAS;EAE/DE,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC;EAC5C;;EAEA;AACF;AACA;AACA;AACA;EACEC,KAAKA,CAACN,UAAsB,EAAQ;IAClC,IAAI,CAACA,UAAU,GAAGA,UAAU;EAC9B;;EAEA;AACF;AACA;AACA;AACA;EACEO,WAAWA,CAACC,KAAe,EAAQ;IACjC,IAAI,CAACV,QAAQ,GAAGU,KAAK;IACrBZ,eAAe,CAACW,WAAW,CAACC,KAAK,CAAC;EACpC;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACV,YAAY,KAAK,CAAC,EAAE;MAC3B,IAAI,CAACW,SAAS,CAAC,CAAC;IAClB;IAEA,IAAI,CAACX,YAAY,IAAI,CAAC;EACxB;EAEAY,IAAIA,CAAA,EAAS;IACX,IAAI,CAACZ,YAAY,IAAI,CAAC;IAEtB,IAAI,IAAI,CAACA,YAAY,KAAK,CAAC,EAAE;MAC3B,IAAI,CAACa,WAAW,CAAC,CAAC;IACpB;EACF;EAEQF,SAASA,CAAA,EAAS;IACxB,IAAI,CAACR,YAAY,GAAGN,eAAe,CAACU,KAAK,CAAC,IAAI,CAACF,SAAS,CAAC;EAC3D;EAEQQ,WAAWA,CAAA,EAAS;IAC1B,IAAI,IAAI,CAACV,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACW,MAAM,CAAC,CAAC;MAC1B,IAAI,CAACX,YAAY,GAAGD,SAAS;IAC/B;EACF;EAEQa,cAAcA,CAAC;IAAEN,KAAK;IAAEO,OAAO;IAAEC;EAAc,CAAC,EAAY;IAClE;IACA,IACER,KAAK,KAAK,MAAM,IAChBQ,GAAG,KAAK,kBAAkB,IAC1BD,OAAO,CAACE,UAAU,CAAC,mDAAmD,CAAC,EACvE;MACA,OAAO,MAAM;IACf;IAEA,OAAOT,KAAK;EACd;EAEQJ,SAASA,CAACc,GAAa,EAAQ;IACrC,IAAI,CAAC,IAAI,CAAClB,UAAU,IAAI,CAAC,IAAI,CAACA,UAAU,CAACkB,GAAG,CAAC,EAAE;MAC7C,MAAM;QAAEH,OAAO;QAAEC;MAAI,CAAC,GAAGE,GAAG;MAC5B,MAAMV,KAAK,GAAG,IAAI,CAACM,cAAc,CAACI,GAAG,CAAC;MAEtC,MAAMC,cAAc,GAAG,oBAAoBX,KAAK,CAACY,WAAW,CAAC,CAAC,MAAMJ,GAAG,KAAKD,OAAO,EAAE;MAErF,IAAIP,KAAK,KAAK,OAAO,EAAE;QACrBa,OAAO,CAACC,KAAK,CAACH,cAAc,CAAC;MAC/B,CAAC,MAAM,IAAIX,KAAK,KAAK,MAAM,IAAI,IAAI,CAACV,QAAQ,KAAK,OAAO,EAAE;QACxDuB,OAAO,CAACE,IAAI,CAACJ,cAAc,CAAC;MAC9B,CAAC,MAAM,IAAI,IAAI,CAACrB,QAAQ,KAAK,OAAO,IAAI,IAAI,CAACA,QAAQ,KAAK,MAAM,EAAE;QAChEuB,OAAO,CAACG,IAAI,CAACL,cAAc,CAAC;MAC9B;IACF;EACF;AACF;AAEA,MAAMM,UAAU,GAAG,IAAI5B,UAAU,CAAC,CAAC;AAEnC,SAAS4B,UAAU,IAAI5B,UAAU","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from "react-native";
4
+ export default TurboModuleRegistry.getEnforcing("MLRNLogModule");
5
+ //# sourceMappingURL=NativeLogModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../../src","sources":["modules/log/NativeLogModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAclD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
@@ -36,6 +36,6 @@ export type { FillLayerStyle, LineLayerStyle, SymbolLayerStyle, CircleLayerStyle
36
36
  export type { PressEvent, PressEventWithFeatures } from "./types/PressEvent";
37
37
  export type { ViewPadding } from "./types/ViewPadding";
38
38
  export { Animated } from "./utils/animated/Animated";
39
- export { Logger, type LogLevel } from "./modules/Logger";
39
+ export { LogManager, type LogLevel } from "./modules/log/LogManager";
40
40
  export type { MapLibrePluginProps } from "./plugin/MapLibrePluginProps";
41
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,WAAW,EAChB,MAAM,GACP,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,OAAO,EACP,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Log levels in decreasing order of severity
3
+ */
4
+ export type LogLevel = "error" | "warn" | "info" | "debug" | "verbose";
5
+ interface LogEvent {
6
+ level: LogLevel;
7
+ tag: string;
8
+ message: string;
9
+ }
10
+ /**
11
+ * Handler for `onLog` events
12
+ *
13
+ * Called before logging a message, return false to proceed with default logging.
14
+ *
15
+ * @param event
16
+ */
17
+ type LogHandler = (event: LogEvent) => boolean;
18
+ declare class LogManager {
19
+ private logLevel;
20
+ private startedCount;
21
+ private logHandler;
22
+ private subscription;
23
+ constructor();
24
+ /**
25
+ * Override logging behavior
26
+ *
27
+ * @param logHandler
28
+ */
29
+ onLog(logHandler: LogHandler): void;
30
+ /**
31
+ * Set the minimum log level for a message to be logged
32
+ *
33
+ * @param level Minimum log level
34
+ */
35
+ setLogLevel(level: LogLevel): void;
36
+ start(): void;
37
+ stop(): void;
38
+ private subscribe;
39
+ private unsubscribe;
40
+ private effectiveLevel;
41
+ private handleLog;
42
+ }
43
+ declare const logManager: LogManager;
44
+ export { logManager as LogManager };
45
+ //# sourceMappingURL=LogManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogManager.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/log/LogManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,UAAU,QAAQ;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE/C,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,YAAY,CAA4C;;IAMhE;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,SAAS;CAgBlB;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AAEpC,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TurboModule, CodegenTypes } from "react-native";
2
+ type NativeLogLevel = "error" | "warn" | "info" | "debug" | "verbose";
3
+ export interface Spec extends TurboModule {
4
+ setLogLevel(logLevel: NativeLogLevel): void;
5
+ readonly onLog: CodegenTypes.EventEmitter<{
6
+ level: NativeLogLevel;
7
+ tag: string;
8
+ message: string;
9
+ }>;
10
+ }
11
+ declare const _default: Spec;
12
+ export default _default;
13
+ //# sourceMappingURL=NativeLogModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeLogModule.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/log/NativeLogModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG9D,KAAK,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAE5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,cAAc,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;;AAED,wBAAuE"}
@@ -36,6 +36,6 @@ export type { FillLayerStyle, LineLayerStyle, SymbolLayerStyle, CircleLayerStyle
36
36
  export type { PressEvent, PressEventWithFeatures } from "./types/PressEvent";
37
37
  export type { ViewPadding } from "./types/ViewPadding";
38
38
  export { Animated } from "./utils/animated/Animated";
39
- export { Logger, type LogLevel } from "./modules/Logger";
39
+ export { LogManager, type LogLevel } from "./modules/log/LogManager";
40
40
  export type { MapLibrePluginProps } from "./plugin/MapLibrePluginProps";
41
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Log levels in decreasing order of severity
3
+ */
4
+ export type LogLevel = "error" | "warn" | "info" | "debug" | "verbose";
5
+ interface LogEvent {
6
+ level: LogLevel;
7
+ tag: string;
8
+ message: string;
9
+ }
10
+ /**
11
+ * Handler for `onLog` events
12
+ *
13
+ * Called before logging a message, return false to proceed with default logging.
14
+ *
15
+ * @param event
16
+ */
17
+ type LogHandler = (event: LogEvent) => boolean;
18
+ declare class LogManager {
19
+ private logLevel;
20
+ private startedCount;
21
+ private logHandler;
22
+ private subscription;
23
+ constructor();
24
+ /**
25
+ * Override logging behavior
26
+ *
27
+ * @param logHandler
28
+ */
29
+ onLog(logHandler: LogHandler): void;
30
+ /**
31
+ * Set the minimum log level for a message to be logged
32
+ *
33
+ * @param level Minimum log level
34
+ */
35
+ setLogLevel(level: LogLevel): void;
36
+ start(): void;
37
+ stop(): void;
38
+ private subscribe;
39
+ private unsubscribe;
40
+ private effectiveLevel;
41
+ private handleLog;
42
+ }
43
+ declare const logManager: LogManager;
44
+ export { logManager as LogManager };
45
+ //# sourceMappingURL=LogManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogManager.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/log/LogManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,UAAU,QAAQ;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE/C,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,YAAY,CAA4C;;IAMhE;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAInC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,SAAS;CAgBlB;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AAEpC,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TurboModule, CodegenTypes } from "react-native";
2
+ type NativeLogLevel = "error" | "warn" | "info" | "debug" | "verbose";
3
+ export interface Spec extends TurboModule {
4
+ setLogLevel(logLevel: NativeLogLevel): void;
5
+ readonly onLog: CodegenTypes.EventEmitter<{
6
+ level: NativeLogLevel;
7
+ tag: string;
8
+ message: string;
9
+ }>;
10
+ }
11
+ declare const _default: Spec;
12
+ export default _default;
13
+ //# sourceMappingURL=NativeLogModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeLogModule.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/log/NativeLogModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG9D,KAAK,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAE5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,cAAc,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;;AAED,wBAAuE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maplibre/maplibre-react-native",
3
3
  "description": "React Native library for creating maps with MapLibre Native for Android & iOS",
4
- "version": "11.0.0-alpha.17",
4
+ "version": "11.0.0-alpha.18",
5
5
  "publishConfig": {
6
6
  "access": "public",
7
7
  "provenance": true
@@ -134,6 +134,7 @@
134
134
  "modulesProvider": {
135
135
  "MLRNCameraModule": "MLRNCameraModule",
136
136
  "MLRNLocationModule": "MLRNLocationModule",
137
+ "MLRNLogModule": "MLRNLogModule",
137
138
  "MLRNMapViewModule": "MLRNMapViewModule"
138
139
  }
139
140
  }
@@ -27,7 +27,7 @@ import MapViewNativeComponent, {
27
27
  type NativeProps,
28
28
  } from "./MapViewNativeComponent";
29
29
  import NativeMapViewModule from "./NativeMapViewModule";
30
- import { Logger } from "../../modules/Logger";
30
+ import { LogManager } from "../../modules/log/LogManager";
31
31
  import { type BaseProps } from "../../types/BaseProps";
32
32
  import type { Bounds } from "../../types/Bounds";
33
33
  import {
@@ -547,10 +547,10 @@ export const MapView = memo(
547
547
 
548
548
  // Start before rendering
549
549
  useLayoutEffect(() => {
550
- Logger.sharedInstance().start();
550
+ LogManager.start();
551
551
 
552
552
  return () => {
553
- Logger.sharedInstance().stop();
553
+ LogManager.stop();
554
554
  };
555
555
  }, []);
556
556
 
package/src/index.ts CHANGED
@@ -80,6 +80,6 @@ export type { PressEvent, PressEventWithFeatures } from "./types/PressEvent";
80
80
  export type { ViewPadding } from "./types/ViewPadding";
81
81
 
82
82
  export { Animated } from "./utils/animated/Animated";
83
- export { Logger, type LogLevel } from "./modules/Logger";
83
+ export { LogManager, type LogLevel } from "./modules/log/LogManager";
84
84
 
85
85
  export type { MapLibrePluginProps } from "./plugin/MapLibrePluginProps";
@@ -0,0 +1,114 @@
1
+ import { type EventSubscription } from "react-native";
2
+
3
+ import NativeLogModule from "./NativeLogModule";
4
+
5
+ /**
6
+ * Log levels in decreasing order of severity
7
+ */
8
+ export type LogLevel = "error" | "warn" | "info" | "debug" | "verbose";
9
+
10
+ interface LogEvent {
11
+ level: LogLevel;
12
+ tag: string;
13
+ message: string;
14
+ }
15
+
16
+ /**
17
+ * Handler for `onLog` events
18
+ *
19
+ * Called before logging a message, return false to proceed with default logging.
20
+ *
21
+ * @param event
22
+ */
23
+ type LogHandler = (event: LogEvent) => boolean;
24
+
25
+ class LogManager {
26
+ private logLevel: LogLevel = "warn";
27
+ private startedCount: number = 0;
28
+ private logHandler: LogHandler | undefined = undefined;
29
+ private subscription: EventSubscription | undefined = undefined;
30
+
31
+ constructor() {
32
+ this.handleLog = this.handleLog.bind(this);
33
+ }
34
+
35
+ /**
36
+ * Override logging behavior
37
+ *
38
+ * @param logHandler
39
+ */
40
+ onLog(logHandler: LogHandler): void {
41
+ this.logHandler = logHandler;
42
+ }
43
+
44
+ /**
45
+ * Set the minimum log level for a message to be logged
46
+ *
47
+ * @param level Minimum log level
48
+ */
49
+ setLogLevel(level: LogLevel): void {
50
+ this.logLevel = level;
51
+ NativeLogModule.setLogLevel(level);
52
+ }
53
+
54
+ start(): void {
55
+ if (this.startedCount === 0) {
56
+ this.subscribe();
57
+ }
58
+
59
+ this.startedCount += 1;
60
+ }
61
+
62
+ stop(): void {
63
+ this.startedCount -= 1;
64
+
65
+ if (this.startedCount === 0) {
66
+ this.unsubscribe();
67
+ }
68
+ }
69
+
70
+ private subscribe(): void {
71
+ this.subscription = NativeLogModule.onLog(this.handleLog);
72
+ }
73
+
74
+ private unsubscribe(): void {
75
+ if (this.subscription) {
76
+ this.subscription.remove();
77
+ this.subscription = undefined;
78
+ }
79
+ }
80
+
81
+ private effectiveLevel({ level, message, tag }: LogEvent): LogLevel {
82
+ // Reduce level of cancelled HTTP requests from warn to info
83
+ if (
84
+ level === "warn" &&
85
+ tag === "Mbgl-HttpRequest" &&
86
+ message.startsWith("Request failed due to a permanent error: Canceled")
87
+ ) {
88
+ return "info";
89
+ }
90
+
91
+ return level;
92
+ }
93
+
94
+ private handleLog(log: LogEvent): void {
95
+ if (!this.logHandler || !this.logHandler(log)) {
96
+ const { message, tag } = log;
97
+ const level = this.effectiveLevel(log);
98
+
99
+ const consoleMessage = `MapLibre Native [${level.toUpperCase()}] [${tag}] ${message}`;
100
+
101
+ if (level === "error") {
102
+ console.error(consoleMessage);
103
+ } else if (level === "warn" && this.logLevel !== "error") {
104
+ console.warn(consoleMessage);
105
+ } else if (this.logLevel !== "error" && this.logLevel !== "warn") {
106
+ console.info(consoleMessage);
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ const logManager = new LogManager();
113
+
114
+ export { logManager as LogManager };
@@ -0,0 +1,16 @@
1
+ import type { TurboModule, CodegenTypes } from "react-native";
2
+ import { TurboModuleRegistry } from "react-native";
3
+
4
+ type NativeLogLevel = "error" | "warn" | "info" | "debug" | "verbose";
5
+
6
+ export interface Spec extends TurboModule {
7
+ setLogLevel(logLevel: NativeLogLevel): void;
8
+
9
+ readonly onLog: CodegenTypes.EventEmitter<{
10
+ level: NativeLogLevel;
11
+ tag: string;
12
+ message: string;
13
+ }>;
14
+ }
15
+
16
+ export default TurboModuleRegistry.getEnforcing<Spec>("MLRNLogModule");
@@ -1,140 +0,0 @@
1
- package org.maplibre.reactnative.modules;
2
-
3
- import com.facebook.react.bridge.Arguments;
4
- import com.facebook.react.bridge.ReactApplicationContext;
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
6
- import com.facebook.react.bridge.ReactMethod;
7
- import com.facebook.react.bridge.WritableMap;
8
- import com.facebook.react.module.annotations.ReactModule;
9
- import com.facebook.react.modules.core.DeviceEventManagerModule;
10
- import org.maplibre.android.log.Logger;
11
- import org.maplibre.android.log.LoggerDefinition;
12
- import android.util.Log;
13
-
14
- @ReactModule(name = MLRNLogging.REACT_CLASS)
15
- public class MLRNLogging extends ReactContextBaseJavaModule {
16
- public static final String REACT_CLASS = "MLRNLogging";
17
- private ReactApplicationContext mReactContext;
18
-
19
- public MLRNLogging(ReactApplicationContext reactApplicationContext) {
20
- super(reactApplicationContext);
21
- mReactContext = reactApplicationContext;
22
-
23
- Logger.setVerbosity(Logger.WARN);
24
- Logger.setLoggerDefinition(new LoggerDefinition() {
25
- @Override
26
- public void v(String tag, String msg) {
27
- Log.v(tag, msg);
28
- onLog("verbose", tag, msg, null);
29
- }
30
-
31
- @Override
32
- public void v(String tag, String msg, Throwable tr) {
33
- Log.v(tag, msg, tr);
34
- onLog("verbose", tag, msg, tr);
35
- }
36
-
37
- @Override
38
- public void d(String tag, String msg) {
39
- Log.d(tag, msg);
40
- onLog("debug", tag, msg, null);
41
- }
42
-
43
- @Override
44
- public void d(String tag, String msg, Throwable tr) {
45
- Log.d(tag, msg, tr);
46
- onLog("debug",tag,msg,tr);
47
- }
48
-
49
- @Override
50
- public void i(String tag, String msg) {
51
- Log.i(tag, msg);
52
- onLog("info", tag, msg, null);
53
- }
54
-
55
- @Override
56
- public void i(String tag, String msg, Throwable tr) {
57
- Log.i(tag, msg, tr);
58
- onLog("info", tag, msg, tr);
59
- }
60
-
61
- @Override
62
- public void w(String tag, String msg) {
63
- Log.w(tag, msg);
64
- onLog("warning", tag, msg, null);
65
- }
66
-
67
- @Override
68
- public void w(String tag, String msg, Throwable tr) {
69
- Log.w(tag, msg, tr);
70
- onLog("warning", tag, msg, tr);
71
- }
72
-
73
- @Override
74
- public void e(String tag, String msg) {
75
- Log.e(tag, msg);
76
- onLog("error", tag, msg, null);
77
- }
78
-
79
- @Override
80
- public void e(String tag, String msg, Throwable tr) {
81
- Log.e(tag, msg, tr);
82
- onLog("error", tag, msg, tr);
83
- }
84
- });
85
- }
86
-
87
- @Override
88
- public String getName() {
89
- return REACT_CLASS;
90
- }
91
-
92
- @ReactMethod
93
- public void setLogLevel(String level) {
94
- @Logger.LogLevel int logLevel = Logger.NONE;
95
- switch(level)
96
- {
97
- case "error":
98
- logLevel = Logger.ERROR;
99
- break;
100
- case "warning":
101
- logLevel = Logger.WARN;
102
- break;
103
- case "info":
104
- logLevel = Logger.INFO;
105
- break;
106
- case "debug":
107
- logLevel = Logger.DEBUG;
108
- break;
109
- case "verbose":
110
- logLevel = Logger.VERBOSE;
111
- break;
112
- default:
113
- logLevel = Logger.NONE;
114
- break;
115
- }
116
- Logger.setVerbosity(logLevel);
117
- }
118
-
119
- @ReactMethod
120
- public void addListener(String eventName) {
121
- // Set up any upstream listeners or background tasks as necessary
122
- }
123
-
124
- @ReactMethod
125
- public void removeListeners(Integer count) {
126
- // Remove upstream listeners, stop unnecessary background tasks
127
- }
128
-
129
- public void onLog(String level, String tag, String msg, Throwable tr) {
130
- WritableMap event = Arguments.createMap();
131
- event.putString("message", msg);
132
- event.putString("tag", tag);
133
- event.putString("level", level);
134
-
135
- mReactContext
136
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
137
- .emit("LogEvent", event);
138
- }
139
-
140
- }