@aguacerowx/react-native 0.0.49 → 0.0.51

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 (53) hide show
  1. package/android/src/main/java/com/aguacerowx/reactnative/WeatherFrameProcessorModule.java +36 -0
  2. package/ios/WeatherFrameProcessorModule.swift +33 -2
  3. package/lib/commonjs/WeatherLayerManager.js +54 -6
  4. package/lib/commonjs/WeatherLayerManager.js.map +1 -1
  5. package/lib/commonjs/aguaceroCoreDebugHooks.js +144 -0
  6. package/lib/commonjs/aguaceroCoreDebugHooks.js.map +1 -0
  7. package/lib/commonjs/aguaceroRnDebug.js +351 -0
  8. package/lib/commonjs/aguaceroRnDebug.js.map +1 -0
  9. package/lib/commonjs/index.js +37 -0
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/nexrad/nexradAndroidController.js +13 -0
  12. package/lib/commonjs/nexrad/nexradAndroidController.js.map +1 -1
  13. package/lib/commonjs/nexrad/nexradDiag.js +7 -1
  14. package/lib/commonjs/nexrad/nexradDiag.js.map +1 -1
  15. package/lib/commonjs/nexrad/radarArchiveCore.bundled.js +15 -14
  16. package/lib/commonjs/nexrad/radarArchiveCore.bundled.js.map +1 -1
  17. package/lib/commonjs/satellite/satelliteAndroidController.js +9 -0
  18. package/lib/commonjs/satellite/satelliteAndroidController.js.map +1 -1
  19. package/lib/module/WeatherLayerManager.js +54 -6
  20. package/lib/module/WeatherLayerManager.js.map +1 -1
  21. package/lib/module/aguaceroCoreDebugHooks.js +136 -0
  22. package/lib/module/aguaceroCoreDebugHooks.js.map +1 -0
  23. package/lib/module/aguaceroRnDebug.js +334 -0
  24. package/lib/module/aguaceroRnDebug.js.map +1 -0
  25. package/lib/module/index.js +1 -0
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/nexrad/nexradAndroidController.js +13 -0
  28. package/lib/module/nexrad/nexradAndroidController.js.map +1 -1
  29. package/lib/module/nexrad/nexradDiag.js +7 -1
  30. package/lib/module/nexrad/nexradDiag.js.map +1 -1
  31. package/lib/module/nexrad/radarArchiveCore.bundled.js +15 -14
  32. package/lib/module/nexrad/radarArchiveCore.bundled.js.map +1 -1
  33. package/lib/module/satellite/satelliteAndroidController.js +9 -0
  34. package/lib/module/satellite/satelliteAndroidController.js.map +1 -1
  35. package/lib/typescript/WeatherLayerManager.d.ts.map +1 -1
  36. package/lib/typescript/aguaceroCoreDebugHooks.d.ts +10 -0
  37. package/lib/typescript/aguaceroCoreDebugHooks.d.ts.map +1 -0
  38. package/lib/typescript/aguaceroRnDebug.d.ts +97 -0
  39. package/lib/typescript/aguaceroRnDebug.d.ts.map +1 -0
  40. package/lib/typescript/index.d.ts +1 -0
  41. package/lib/typescript/nexrad/nexradAndroidController.d.ts.map +1 -1
  42. package/lib/typescript/nexrad/nexradDiag.d.ts.map +1 -1
  43. package/lib/typescript/nexrad/radarArchiveCore.bundled.d.ts.map +1 -1
  44. package/lib/typescript/satellite/satelliteAndroidController.d.ts.map +1 -1
  45. package/package.json +2 -2
  46. package/src/WeatherLayerManager.js +78 -21
  47. package/src/aguaceroCoreDebugHooks.js +142 -0
  48. package/src/aguaceroRnDebug.js +328 -0
  49. package/src/index.js +8 -0
  50. package/src/nexrad/nexradAndroidController.js +11 -1
  51. package/src/nexrad/nexradDiag.js +7 -1
  52. package/src/nexrad/radarArchiveCore.bundled.js +7085 -7084
  53. package/src/satellite/satelliteAndroidController.js +9 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Per-core hooks for {@link AguaceroCore} when RN debug is enabled.
3
+ */
4
+ import { aguaceroDebug, aguaceroDebugWarn, getAguaceroAuthDiagnosticSnapshot, isAguaceroRnDebugEnabled, redactApiKeyFromUrl } from './aguaceroRnDebug';
5
+ const HOOK_FLAG = '__aguaceroRnDebugHooksInstalled';
6
+
7
+ /**
8
+ * @param {import('@aguacerowx/javascript-sdk').AguaceroCore} core
9
+ * @param {Record<string, unknown>} [extra]
10
+ */
11
+ export function installAguaceroCoreDebugHooks(core, extra = {}) {
12
+ if (!core || !isAguaceroRnDebugEnabled() || core[HOOK_FLAG]) {
13
+ return;
14
+ }
15
+ core[HOOK_FLAG] = true;
16
+ aguaceroDebug('core.created', getAguaceroAuthDiagnosticSnapshot(core, extra));
17
+ if (typeof core.initialize === 'function' && !core.__aguaceroOrigInitialize) {
18
+ core.__aguaceroOrigInitialize = core.initialize.bind(core);
19
+ core.initialize = async function aguaceroDebugInitialize(options) {
20
+ aguaceroDebug('core.initialize.start', {
21
+ stateMode: {
22
+ isMRMS: core.state?.isMRMS,
23
+ isSatellite: core.state?.isSatellite,
24
+ isNexrad: core.state?.isNexrad,
25
+ model: core.state?.model,
26
+ variable: core.state?.variable
27
+ }
28
+ });
29
+ try {
30
+ await core.__aguaceroOrigInitialize(options);
31
+ aguaceroDebug('core.initialize.done', {
32
+ hasModelStatus: Boolean(core.modelStatus),
33
+ hasMrmsStatus: Boolean(core.mrmsStatus),
34
+ hasSatelliteListing: Boolean(core.satelliteListing),
35
+ mrmsVariableCount: core.mrmsStatus ? Object.keys(core.mrmsStatus).length : 0
36
+ });
37
+ } catch (err) {
38
+ aguaceroDebugWarn('core.initialize.error', {
39
+ message: err?.message || String(err)
40
+ });
41
+ throw err;
42
+ }
43
+ };
44
+ }
45
+ if (typeof core._loadGridData === 'function' && !core.__aguaceroOrigLoadGridData) {
46
+ core.__aguaceroOrigLoadGridData = core._loadGridData.bind(core);
47
+ core._loadGridData = async function aguaceroDebugLoadGridData(state) {
48
+ const tag = 'core._loadGridData';
49
+ aguaceroDebug(`${tag}.start`, {
50
+ isMRMS: state?.isMRMS,
51
+ model: state?.model,
52
+ variable: state?.variable,
53
+ mrmsTimestamp: state?.mrmsTimestamp,
54
+ forecastHour: state?.forecastHour,
55
+ auth: getAguaceroAuthDiagnosticSnapshot(core)
56
+ });
57
+ const result = await core.__aguaceroOrigLoadGridData(state);
58
+ if (result == null) {
59
+ aguaceroDebugWarn(`${tag}.null`, {
60
+ hint: 'Grid load returned null — often failed fetch (check fetch.httpError above) or missing apiKey'
61
+ });
62
+ } else {
63
+ aguaceroDebug(`${tag}.ok`, {
64
+ hasData: Boolean(result?.data),
65
+ encodingKeys: result?.encoding ? Object.keys(result.encoding) : []
66
+ });
67
+ }
68
+ return result;
69
+ };
70
+ }
71
+ if (typeof core.refreshNexradTimes === 'function' && !core.__aguaceroOrigRefreshNexradTimes) {
72
+ core.__aguaceroOrigRefreshNexradTimes = core.refreshNexradTimes.bind(core);
73
+ core.refreshNexradTimes = async function aguaceroDebugRefreshNexradTimes() {
74
+ aguaceroDebug('core.refreshNexradTimes.start', {
75
+ site: core.state?.nexradSite,
76
+ product: core.state?.nexradProduct,
77
+ dataSource: core.state?.nexradDataSource
78
+ });
79
+ try {
80
+ const out = await core.__aguaceroOrigRefreshNexradTimes();
81
+ aguaceroDebug('core.refreshNexradTimes.done', {
82
+ timesCount: out?.unixTimes?.length ?? 0
83
+ });
84
+ return out;
85
+ } catch (err) {
86
+ aguaceroDebugWarn('core.refreshNexradTimes.error', {
87
+ message: err?.message || String(err)
88
+ });
89
+ throw err;
90
+ }
91
+ };
92
+ }
93
+ if (typeof core.setState === 'function' && !core.__aguaceroOrigSetState) {
94
+ core.__aguaceroOrigSetState = core.setState.bind(core);
95
+ core.setState = async function aguaceroDebugSetState(patch) {
96
+ const modeChange = patch && ('isMRMS' in patch || 'isSatellite' in patch || 'isNexrad' in patch || 'variable' in patch);
97
+ if (modeChange) {
98
+ aguaceroDebug('core.setState.modePatch', {
99
+ keys: Object.keys(patch || {}),
100
+ patch: {
101
+ ...patch,
102
+ apiKey: undefined
103
+ }
104
+ });
105
+ }
106
+ return core.__aguaceroOrigSetState(patch);
107
+ };
108
+ }
109
+ }
110
+
111
+ /**
112
+ * @param {import('@aguacerowx/javascript-sdk').AguaceroCore} core
113
+ */
114
+ export function logProcessFrameAuthMismatch(core, options, context = {}) {
115
+ if (!isAguaceroRnDebugEnabled() || !core || !options) return;
116
+ const mismatches = [];
117
+ if (options.apiKey && core.apiKey && options.apiKey !== core.apiKey) {
118
+ mismatches.push('processFrame.apiKey !== core.apiKey');
119
+ }
120
+ if (options.bundleId !== undefined && options.bundleId !== core.bundleId) {
121
+ mismatches.push('processFrame.bundleId !== core.bundleId');
122
+ }
123
+ const optOrigin = options.gridRequestSiteOrigin || '';
124
+ const coreOrigin = core.gridRequestSiteOrigin || '';
125
+ if (String(optOrigin) !== String(coreOrigin)) {
126
+ mismatches.push('processFrame.gridRequestSiteOrigin !== core.gridRequestSiteOrigin');
127
+ }
128
+ if (mismatches.length > 0) {
129
+ aguaceroDebugWarn('auth.mismatch', {
130
+ mismatches,
131
+ processFrameUrl: redactApiKeyFromUrl(options.url),
132
+ ...context
133
+ });
134
+ }
135
+ }
136
+ //# sourceMappingURL=aguaceroCoreDebugHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["aguaceroDebug","aguaceroDebugWarn","getAguaceroAuthDiagnosticSnapshot","isAguaceroRnDebugEnabled","redactApiKeyFromUrl","HOOK_FLAG","installAguaceroCoreDebugHooks","core","extra","initialize","__aguaceroOrigInitialize","bind","aguaceroDebugInitialize","options","stateMode","isMRMS","state","isSatellite","isNexrad","model","variable","hasModelStatus","Boolean","modelStatus","hasMrmsStatus","mrmsStatus","hasSatelliteListing","satelliteListing","mrmsVariableCount","Object","keys","length","err","message","String","_loadGridData","__aguaceroOrigLoadGridData","aguaceroDebugLoadGridData","tag","mrmsTimestamp","forecastHour","auth","result","hint","hasData","data","encodingKeys","encoding","refreshNexradTimes","__aguaceroOrigRefreshNexradTimes","aguaceroDebugRefreshNexradTimes","site","nexradSite","product","nexradProduct","dataSource","nexradDataSource","out","timesCount","unixTimes","setState","__aguaceroOrigSetState","aguaceroDebugSetState","patch","modeChange","apiKey","undefined","logProcessFrameAuthMismatch","context","mismatches","push","bundleId","optOrigin","gridRequestSiteOrigin","coreOrigin","processFrameUrl","url"],"sourceRoot":"..\\..\\src","sources":["aguaceroCoreDebugHooks.js"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,334 @@
1
+ /**
2
+ * React Native SDK auth / HTTP diagnostics.
3
+ *
4
+ * Enable in your app (pick one):
5
+ *
6
+ * 1. **Recommended** — pass `debug={true}` on {@link WeatherLayerManager}:
7
+ * ```jsx
8
+ * <WeatherLayerManager apiKey={key} debug gridRequestSiteOrigin="https://your-allowed-origin.com" />
9
+ * ```
10
+ *
11
+ * 2. **Global** — before rendering weather (works in release builds):
12
+ * ```js
13
+ * import { configureAguaceroRnDebug } from '@aguacerowx/react-native';
14
+ * configureAguaceroRnDebug({ enabled: true });
15
+ * ```
16
+ * or: `globalThis.__AGUACERO_DEBUG__ = true` in your entry file.
17
+ *
18
+ * Logs use the prefix `[AguaceroRN][debug]` (Metro, Xcode, Logcat).
19
+ * API keys are never printed in full — only length, fingerprint, and whitespace hints.
20
+ */
21
+
22
+ import { Platform } from 'react-native';
23
+ const LOG_PREFIX = '[AguaceroRN][debug]';
24
+
25
+ /** @type {boolean | null} */
26
+ let _explicitEnabled = null;
27
+ let _fetchLoggerInstalled = false;
28
+ let _fetchSeq = 0;
29
+ const AGUACERO_URL_MARKERS = ['cloudfront.net', 'lambda-url.us-east-2.on.aws', 'amazonaws.com', 'noaa.gov'];
30
+
31
+ /**
32
+ * @param {boolean} enabled
33
+ */
34
+ export function setAguaceroRnDebugEnabled(enabled) {
35
+ configureAguaceroRnDebug({
36
+ enabled: Boolean(enabled)
37
+ });
38
+ }
39
+
40
+ /**
41
+ * @param {{ enabled?: boolean }} opts
42
+ */
43
+ export function configureAguaceroRnDebug(opts = {}) {
44
+ if (opts && typeof opts.enabled === 'boolean') {
45
+ _explicitEnabled = opts.enabled;
46
+ }
47
+ const on = isAguaceroRnDebugEnabled();
48
+ try {
49
+ if (typeof globalThis !== 'undefined') {
50
+ globalThis.__AGUACERO_DEBUG__ = on;
51
+ globalThis.__AGUACERO_WX_GRID_DEBUG__ = on;
52
+ globalThis.__AGUACERO_NEXRAD_DEBUG__ = on;
53
+ }
54
+ } catch {
55
+ /* ignore */
56
+ }
57
+ if (on) {
58
+ installGlobalFetchLogger();
59
+ aguaceroDebug('debug.enabled', {
60
+ platform: Platform.OS,
61
+ explicitFlag: _explicitEnabled,
62
+ globalFlag: safeGlobalDebugFlag()
63
+ });
64
+ }
65
+ }
66
+
67
+ /**
68
+ * True when `debug={true}`, {@link configureAguaceroRnDebug}, or `globalThis.__AGUACERO_DEBUG__ === true`.
69
+ * @returns {boolean}
70
+ */
71
+ export function isAguaceroRnDebugEnabled() {
72
+ if (_explicitEnabled === true) return true;
73
+ if (_explicitEnabled === false) {
74
+ try {
75
+ return typeof globalThis !== 'undefined' && globalThis.__AGUACERO_DEBUG__ === true;
76
+ } catch {
77
+ return false;
78
+ }
79
+ }
80
+ try {
81
+ if (typeof __DEV__ !== 'undefined' && __DEV__) return false;
82
+ } catch {
83
+ /* ignore */
84
+ }
85
+ try {
86
+ return typeof globalThis !== 'undefined' && globalThis.__AGUACERO_DEBUG__ === true;
87
+ } catch {
88
+ return false;
89
+ }
90
+ }
91
+ function safeGlobalDebugFlag() {
92
+ try {
93
+ return typeof globalThis !== 'undefined' ? globalThis.__AGUACERO_DEBUG__ === true : false;
94
+ } catch {
95
+ return false;
96
+ }
97
+ }
98
+
99
+ /**
100
+ * @param {string | null | undefined} secret
101
+ * @returns {Record<string, unknown>}
102
+ */
103
+ export function describeSecret(secret) {
104
+ if (secret == null || secret === '') {
105
+ return {
106
+ present: false,
107
+ length: 0
108
+ };
109
+ }
110
+ const s = String(secret);
111
+ const trimmed = s.trim();
112
+ return {
113
+ present: true,
114
+ length: s.length,
115
+ trimmedLength: trimmed.length,
116
+ hasLeadingWhitespace: s.length > 0 && s !== trimmed && /^\s/.test(s),
117
+ hasTrailingWhitespace: s.length > 0 && s !== trimmed && /\s$/.test(s),
118
+ hasInternalWhitespace: /\s/.test(trimmed) && trimmed.indexOf(' ') >= 0,
119
+ fingerprint: fingerprintSecret(trimmed || s),
120
+ looksLikePlaceholder: /^(your[-_]?)?api[-_]?key|xxx+|test+$/i.test(trimmed)
121
+ };
122
+ }
123
+
124
+ /**
125
+ * @param {string} s
126
+ * @returns {string}
127
+ */
128
+ export function fingerprintSecret(s) {
129
+ if (!s) return '(empty)';
130
+ if (s.length <= 8) return `len${s.length}`;
131
+ return `${s.slice(0, 4)}…${s.slice(-4)} (len=${s.length})`;
132
+ }
133
+
134
+ /**
135
+ * @param {string} u
136
+ * @returns {string}
137
+ */
138
+ export function redactApiKeyFromUrl(u) {
139
+ if (!u || typeof u !== 'string') return String(u);
140
+ return u.replace(/([?&])apiKey=[^&]*/gi, '$1apiKey=(redacted)');
141
+ }
142
+
143
+ /**
144
+ * @param {string} url
145
+ * @returns {boolean}
146
+ */
147
+ export function shouldLogAguaceroUrl(url) {
148
+ if (!url || typeof url !== 'string') return false;
149
+ const lower = url.toLowerCase();
150
+ return AGUACERO_URL_MARKERS.some(m => lower.includes(m));
151
+ }
152
+
153
+ /**
154
+ * @param {string} tag
155
+ * @param {Record<string, unknown> | undefined} detail
156
+ */
157
+ export function aguaceroDebug(tag, detail) {
158
+ if (!isAguaceroRnDebugEnabled()) return;
159
+ if (detail !== undefined) {
160
+ console.warn(`${LOG_PREFIX}[${tag}]`, detail);
161
+ } else {
162
+ console.warn(`${LOG_PREFIX}[${tag}]`);
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Auth / HTTP failures: logged when debug is on (same prefix).
168
+ * @param {string} tag
169
+ * @param {Record<string, unknown> | undefined} detail
170
+ */
171
+ export function aguaceroDebugWarn(tag, detail) {
172
+ if (!isAguaceroRnDebugEnabled()) return;
173
+ if (detail !== undefined) {
174
+ console.warn(`${LOG_PREFIX}[WARN][${tag}]`, detail);
175
+ } else {
176
+ console.warn(`${LOG_PREFIX}[WARN][${tag}]`);
177
+ }
178
+ }
179
+
180
+ /**
181
+ * @param {import('@aguacerowx/javascript-sdk').AguaceroCore | { apiKey?: string; bundleId?: string | null; gridRequestSiteOrigin?: string | null; baseGridUrl?: string; isReactNative?: boolean }} core
182
+ * @param {Record<string, unknown>} [extra]
183
+ */
184
+ export function getAguaceroAuthDiagnosticSnapshot(core, extra = {}) {
185
+ const apiKey = core?.apiKey;
186
+ const bundleId = core?.bundleId;
187
+ const origin = core?.gridRequestSiteOrigin;
188
+ return {
189
+ platform: Platform.OS,
190
+ isReactNative: Boolean(core?.isReactNative),
191
+ baseGridUrl: core?.baseGridUrl ?? null,
192
+ apiKey: describeSecret(apiKey),
193
+ bundleId: bundleId ? {
194
+ present: true,
195
+ value: String(bundleId),
196
+ length: String(bundleId).length
197
+ } : {
198
+ present: false,
199
+ hint: 'Install react-native-device-info for x-app-identifier on CDN requests'
200
+ },
201
+ gridRequestSiteOrigin: origin ? {
202
+ present: true,
203
+ value: String(origin),
204
+ length: String(origin).length
205
+ } : {
206
+ present: false,
207
+ hint: 'Pass gridRequestSiteOrigin on WeatherLayerManager — many CloudFront rules require Origin + Referer'
208
+ },
209
+ willSendAppIdentifier: Boolean(bundleId && core?.isReactNative),
210
+ willSendOriginHeaders: Boolean(origin && String(origin).trim()),
211
+ ...extra
212
+ };
213
+ }
214
+
215
+ /**
216
+ * @param {Record<string, unknown>} options - {@link buildGridFrameProcessOptions} output
217
+ * @param {import('@aguacerowx/javascript-sdk').AguaceroCore} [core]
218
+ * @returns {Record<string, unknown>}
219
+ */
220
+ export function augmentProcessFrameOptionsForDebug(options, core) {
221
+ const out = {
222
+ ...options
223
+ };
224
+ if (!isAguaceroRnDebugEnabled()) {
225
+ return out;
226
+ }
227
+ out.debug = true;
228
+ aguaceroDebug('processFrame.options', {
229
+ url: redactApiKeyFromUrl(out.url),
230
+ hasApiKeyInQuery: typeof out.url === 'string' && /[?&]apiKey=/i.test(out.url),
231
+ apiKey: describeSecret(out.apiKey),
232
+ bundleId: out.bundleId ? {
233
+ present: true,
234
+ value: String(out.bundleId)
235
+ } : {
236
+ present: false
237
+ },
238
+ gridRequestSiteOrigin: out.gridRequestSiteOrigin ?? null,
239
+ coreSnapshot: core ? getAguaceroAuthDiagnosticSnapshot(core) : undefined
240
+ });
241
+ return out;
242
+ }
243
+
244
+ /**
245
+ * @param {string | Request} input
246
+ * @param {RequestInit | undefined} init
247
+ */
248
+ function summarizeFetchRequest(input, init) {
249
+ const url = typeof input === 'string' ? input : input?.url;
250
+ const headers = new Headers(typeof input !== 'string' && input?.headers || init?.headers || undefined);
251
+ const headerRecord = {};
252
+ headers.forEach((v, k) => {
253
+ const lk = k.toLowerCase();
254
+ if (lk === 'x-api-key' || lk === 'authorization') {
255
+ headerRecord[k] = describeSecret(v);
256
+ } else {
257
+ headerRecord[k] = v;
258
+ }
259
+ });
260
+ return {
261
+ url: redactApiKeyFromUrl(url || ''),
262
+ method: init?.method || (typeof input !== 'string' ? input?.method : undefined) || 'GET',
263
+ headers: headerRecord,
264
+ hasApiKeyQuery: typeof url === 'string' && /[?&]apiKey=/i.test(url)
265
+ };
266
+ }
267
+
268
+ /**
269
+ * Patches `global.fetch` once to log Aguacero CDN / API traffic when debug is enabled.
270
+ */
271
+ export function installGlobalFetchLogger() {
272
+ if (_fetchLoggerInstalled || !isAguaceroRnDebugEnabled()) return;
273
+ if (typeof globalThis === 'undefined' || typeof globalThis.fetch !== 'function') return;
274
+ const originalFetch = globalThis.fetch.bind(globalThis);
275
+ _fetchLoggerInstalled = true;
276
+ globalThis.fetch = async function aguaceroInstrumentedFetch(input, init) {
277
+ const url = typeof input === 'string' ? input : input?.url;
278
+ const shouldLog = shouldLogAguaceroUrl(url || '');
279
+ const reqId = shouldLog ? `f${++_fetchSeq}` : null;
280
+ const started = Date.now();
281
+ if (shouldLog) {
282
+ aguaceroDebug('fetch.start', {
283
+ reqId,
284
+ ...summarizeFetchRequest(input, init)
285
+ });
286
+ }
287
+ try {
288
+ const response = await originalFetch(input, init);
289
+ if (shouldLog) {
290
+ const elapsedMs = Date.now() - started;
291
+ const base = {
292
+ reqId,
293
+ status: response.status,
294
+ statusText: response.statusText,
295
+ ok: response.ok,
296
+ elapsedMs,
297
+ url: redactApiKeyFromUrl(url || '')
298
+ };
299
+ if (!response.ok) {
300
+ let bodySnippet = null;
301
+ try {
302
+ const clone = response.clone();
303
+ const text = await clone.text();
304
+ bodySnippet = text.length > 600 ? `${text.slice(0, 600)}…` : text;
305
+ } catch {
306
+ bodySnippet = '(could not read body)';
307
+ }
308
+ aguaceroDebugWarn('fetch.httpError', {
309
+ ...base,
310
+ bodySnippet,
311
+ hint403: response.status === 403 ? '403 usually means: invalid/disabled API key, bundleId not allowlisted (x-app-identifier), or missing/wrong gridRequestSiteOrigin (Origin/Referer). Compare snapshot at core.created / processFrame.options.' : undefined
312
+ });
313
+ } else {
314
+ aguaceroDebug('fetch.ok', base);
315
+ }
316
+ }
317
+ return response;
318
+ } catch (err) {
319
+ if (shouldLog) {
320
+ aguaceroDebugWarn('fetch.throw', {
321
+ reqId,
322
+ message: err?.message || String(err),
323
+ elapsedMs: Date.now() - started,
324
+ url: redactApiKeyFromUrl(url || '')
325
+ });
326
+ }
327
+ throw err;
328
+ }
329
+ };
330
+ aguaceroDebug('fetch.hookInstalled', {
331
+ platform: Platform.OS
332
+ });
333
+ }
334
+ //# sourceMappingURL=aguaceroRnDebug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","LOG_PREFIX","_explicitEnabled","_fetchLoggerInstalled","_fetchSeq","AGUACERO_URL_MARKERS","setAguaceroRnDebugEnabled","enabled","configureAguaceroRnDebug","Boolean","opts","on","isAguaceroRnDebugEnabled","globalThis","__AGUACERO_DEBUG__","__AGUACERO_WX_GRID_DEBUG__","__AGUACERO_NEXRAD_DEBUG__","installGlobalFetchLogger","aguaceroDebug","platform","OS","explicitFlag","globalFlag","safeGlobalDebugFlag","__DEV__","describeSecret","secret","present","length","s","String","trimmed","trim","trimmedLength","hasLeadingWhitespace","test","hasTrailingWhitespace","hasInternalWhitespace","indexOf","fingerprint","fingerprintSecret","looksLikePlaceholder","slice","redactApiKeyFromUrl","u","replace","shouldLogAguaceroUrl","url","lower","toLowerCase","some","m","includes","tag","detail","undefined","console","warn","aguaceroDebugWarn","getAguaceroAuthDiagnosticSnapshot","core","extra","apiKey","bundleId","origin","gridRequestSiteOrigin","isReactNative","baseGridUrl","value","hint","willSendAppIdentifier","willSendOriginHeaders","augmentProcessFrameOptionsForDebug","options","out","debug","hasApiKeyInQuery","coreSnapshot","summarizeFetchRequest","input","init","headers","Headers","headerRecord","forEach","v","k","lk","method","hasApiKeyQuery","fetch","originalFetch","bind","aguaceroInstrumentedFetch","shouldLog","reqId","started","Date","now","response","elapsedMs","base","status","statusText","ok","bodySnippet","clone","text","hint403","err","message"],"sourceRoot":"..\\..\\src","sources":["aguaceroRnDebug.js"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  export { MapManager } from './MapManager';
2
2
  export { WeatherLayerManager } from './WeatherLayerManager';
3
+ export { configureAguaceroRnDebug, setAguaceroRnDebugEnabled, isAguaceroRnDebugEnabled, getAguaceroAuthDiagnosticSnapshot, aguaceroDebug, aguaceroDebugWarn } from './aguaceroRnDebug';
3
4
  export { default as GridRenderLayer } from './GridRenderLayerNativeComponent';
4
5
  export { AGUACERO_NEXRAD_MAP_LAYER_ID, AGUACERO_SATELLITE_MAP_LAYER_ID } from './nws/nwsAndroidConstants';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MapManager","WeatherLayerManager","default","GridRenderLayer","AGUACERO_NEXRAD_MAP_LAYER_ID","AGUACERO_SATELLITE_MAP_LAYER_ID"],"sourceRoot":"..\\..\\src","sources":["index.js"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,OAAO,IAAIC,eAAe,QAAQ,kCAAkC;AAC7E,SACEC,4BAA4B,EAC5BC,+BAA+B,QAC1B,2BAA2B","ignoreList":[]}
1
+ {"version":3,"names":["MapManager","WeatherLayerManager","configureAguaceroRnDebug","setAguaceroRnDebugEnabled","isAguaceroRnDebugEnabled","getAguaceroAuthDiagnosticSnapshot","aguaceroDebug","aguaceroDebugWarn","default","GridRenderLayer","AGUACERO_NEXRAD_MAP_LAYER_ID","AGUACERO_SATELLITE_MAP_LAYER_ID"],"sourceRoot":"..\\..\\src","sources":["index.js"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,iCAAiC,EACjCC,aAAa,EACbC,iBAAiB,QACd,mBAAmB;AAC1B,SAASC,OAAO,IAAIC,eAAe,QAAQ,kCAAkC;AAC7E,SACEC,4BAA4B,EAC5BC,+BAA+B,QAC1B,2BAA2B","ignoreList":[]}
@@ -10,6 +10,7 @@ import { sampleNexradFrameAtLatLon } from './nexradCrossSectionSampleAtLatLon.bu
10
10
  import { buildNexradLutRgba } from './nexradLutBuild.js';
11
11
  import { Platform } from 'react-native';
12
12
  import { nexradDiagBootSnapshot, nexradDiagGateTextureSummary, nexradPerfSpan } from './nexradDiag.js';
13
+ import { aguaceroDebug, getAguaceroAuthDiagnosticSnapshot, isAguaceroRnDebugEnabled } from '../aguaceroRnDebug';
13
14
  nexradDiagBootSnapshot({
14
15
  archiveExports: {
15
16
  setNexradArchiveApiKey: typeof setNexradArchiveApiKey,
@@ -213,6 +214,11 @@ export class NexradAndroidController {
213
214
  setNexradSitesFetchAuth(core.apiKey || '', core.bundleId || '');
214
215
  }
215
216
  setNexradArchiveSiteOrigin(core.gridRequestSiteOrigin || '');
217
+ if (isAguaceroRnDebugEnabled()) {
218
+ aguaceroDebug('nexrad.authConfigured', getAguaceroAuthDiagnosticSnapshot(core, {
219
+ phase: 'NexradAndroidController.constructor'
220
+ }));
221
+ }
216
222
  }
217
223
  _trimNativeGpuReadyKeys(max) {
218
224
  while (this._nativeGpuReadyKeys.size > max) {
@@ -676,6 +682,13 @@ export class NexradAndroidController {
676
682
  setNexradArchiveBundleId(this.core.bundleId || '');
677
683
  setNexradArchiveSiteOrigin(this.core.gridRequestSiteOrigin || '');
678
684
  setNexradSitesFetchAuth(this.core.apiKey || '', this.core.bundleId || '');
685
+ if (isAguaceroRnDebugEnabled()) {
686
+ aguaceroDebug('nexrad.authConfigured', getAguaceroAuthDiagnosticSnapshot(this.core, {
687
+ phase: 'NexradAndroidController.preload',
688
+ site: state.nexradSite,
689
+ product: state.nexradProduct
690
+ }));
691
+ }
679
692
  const snapshot = {
680
693
  ...state
681
694
  };