@adminide-stack/yantra-mobile 12.0.53-alpha.7 → 12.0.53-alpha.8

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.
@@ -1,4 +1,11 @@
1
- import AsyncStorage from'@react-native-async-storage/async-storage';import {getCachedCanvasBoards,setCachedCanvasBoards}from'./surfaceIndex.js';const SNAPSHOT_KEY = "yantra.canvas-boards.snapshot.v1";
1
+ import {getCachedCanvasBoards,setCachedCanvasBoards}from'./surfaceIndex.js';var _a;
2
+ let AsyncStorage = null;
3
+ try {
4
+ AsyncStorage = (_a = require("@react-native-async-storage/async-storage").default) != null ? _a : null;
5
+ } catch (e) {
6
+ AsyncStorage = null;
7
+ }
8
+ const SNAPSHOT_KEY = "yantra.canvas-boards.snapshot.v1";
2
9
  let lastWritten = "";
3
10
  function isBoardSummary(value) {
4
11
  if (!value || typeof value !== "object") return false;
@@ -24,6 +31,7 @@ async function hydrateCanvasBoardsSnapshot(indexUrl) {
24
31
  if (!trimmed) return null;
25
32
  const memory = getCachedCanvasBoards(trimmed);
26
33
  if (memory) return memory;
34
+ if (!AsyncStorage) return null;
27
35
  try {
28
36
  const raw = await AsyncStorage.getItem(SNAPSHOT_KEY);
29
37
  const parsed = parseCanvasBoardsSnapshot(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"canvasBoardsSnapshot.js","sources":["../../../src/features/canvas/canvasBoardsSnapshot.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport { getCachedCanvasBoards, setCachedCanvasBoards, type CanvasBoardSummary } from './surfaceIndex';\n\nconst SNAPSHOT_KEY = 'yantra.canvas-boards.snapshot.v1';\n\ntype StoredSnapshot = {\n url: string;\n boards: CanvasBoardSummary[];\n};\n\nlet lastWritten = '';\n\nfunction isBoardSummary(value: unknown): value is CanvasBoardSummary {\n if (!value || typeof value !== 'object') return false;\n const row = value as CanvasBoardSummary;\n return typeof row.channelId === 'string' && row.channelId.length > 0 && Boolean(row.board);\n}\n\nexport function parseCanvasBoardsSnapshot(raw: string | null | undefined): StoredSnapshot | null {\n if (!raw) return null;\n try {\n const parsed = JSON.parse(raw) as StoredSnapshot;\n if (!parsed?.url || !Array.isArray(parsed.boards)) return null;\n const boards = parsed.boards.filter(isBoardSummary);\n return { url: parsed.url, boards };\n } catch {\n return null;\n }\n}\n\nexport async function hydrateCanvasBoardsSnapshot(indexUrl: string): Promise<CanvasBoardSummary[] | null> {\n const trimmed = (indexUrl || '').trim();\n if (!trimmed) return null;\n const memory = getCachedCanvasBoards(trimmed);\n if (memory) return memory;\n try {\n const raw = await AsyncStorage.getItem(SNAPSHOT_KEY);\n const parsed = parseCanvasBoardsSnapshot(raw);\n if (!parsed || parsed.url !== trimmed) return null;\n setCachedCanvasBoards(trimmed, parsed.boards);\n lastWritten = raw ?? lastWritten;\n return parsed.boards;\n } catch {\n return null;\n }\n}\n\nexport function persistCanvasBoardsSnapshot(indexUrl: string, boards: CanvasBoardSummary[]): void {\n const trimmed = (indexUrl || '').trim();\n if (!trimmed) return;\n setCachedCanvasBoards(trimmed, boards);\n const raw = JSON.stringify({ url: trimmed, boards } satisfies StoredSnapshot);\n if (raw === lastWritten) return;\n lastWritten = raw;\n void AsyncStorage.setItem(SNAPSHOT_KEY, raw).catch(() => {\n /* disk write is best-effort */\n });\n}\n"],"names":[],"mappings":"gJAEA,MAAM,YAAe,GAAA,kCAAA;AAKrB,IAAI,WAAc,GAAA,EAAA;AAClB,SAAS,eAAe,KAA6C,EAAA;AACnE,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,UAAiB,OAAA,KAAA;AAChD,EAAA,MAAM,GAAM,GAAA,KAAA;AACZ,EAAO,OAAA,OAAO,GAAI,CAAA,SAAA,KAAc,QAAY,IAAA,GAAA,CAAI,UAAU,MAAS,GAAA,CAAA,IAAK,OAAQ,CAAA,GAAA,CAAI,KAAK,CAAA;AAC3F;AACO,SAAS,0BAA0B,GAAuD,EAAA;AAC/F,EAAI,IAAA,CAAC,KAAY,OAAA,IAAA;AACjB,EAAI,IAAA;AACF,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAI,IAAA,EAAC,iCAAQ,GAAO,CAAA,IAAA,CAAC,MAAM,OAAQ,CAAA,MAAA,CAAO,MAAM,CAAA,EAAU,OAAA,IAAA;AAC1D,IAAA,MAAM,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,cAAc,CAAA;AAClD,IAAO,OAAA;AAAA,MACL,KAAK,MAAO,CAAA,GAAA;AAAA,MACZ;AAAA,KACF;AAAA,GACM,CAAA,OAAA,CAAA,EAAA;AACN,IAAO,OAAA,IAAA;AAAA;AAEX;AACA,eAAsB,4BAA4B,QAAwD,EAAA;AACxG,EAAM,MAAA,OAAA,GAAA,CAAW,QAAY,IAAA,EAAA,EAAI,IAAK,EAAA;AACtC,EAAI,IAAA,CAAC,SAAgB,OAAA,IAAA;AACrB,EAAM,MAAA,MAAA,GAAS,sBAAsB,OAAO,CAAA;AAC5C,EAAA,IAAI,QAAe,OAAA,MAAA;AACnB,EAAI,IAAA;AACF,IAAA,MAAM,GAAM,GAAA,MAAM,YAAa,CAAA,OAAA,CAAQ,YAAY,CAAA;AACnD,IAAM,MAAA,MAAA,GAAS,0BAA0B,GAAG,CAAA;AAC5C,IAAA,IAAI,CAAC,MAAA,IAAU,MAAO,CAAA,GAAA,KAAQ,SAAgB,OAAA,IAAA;AAC9C,IAAsB,qBAAA,CAAA,OAAA,EAAS,OAAO,MAAM,CAAA;AAC5C,IAAA,WAAA,GAAc,GAAO,IAAA,IAAA,GAAA,GAAA,GAAA,WAAA;AACrB,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA,GACR,CAAA,OAAA,CAAA,EAAA;AACN,IAAO,OAAA,IAAA;AAAA;AAEX"}
1
+ {"version":3,"file":"canvasBoardsSnapshot.js","sources":["../../../src/features/canvas/canvasBoardsSnapshot.ts"],"sourcesContent":["import { getCachedCanvasBoards, setCachedCanvasBoards, type CanvasBoardSummary } from './surfaceIndex';\n\n// Guarded require, not a top-level import: this module ships OTA inside the\n// federated canvas remote onto host binaries we do not control, and\n// @react-native-async-storage/async-storage THROWS AT MODULE EVAL when its\n// native module is absent (\"NativeModule: AsyncStorage is null\") - which took\n// the whole remote down on binaries built before the dependency existed. Same\n// lesson as the expo-video renderer (ViewerExpose try/require): storage is a\n// best-effort cache, so degrade to memory-only instead of crashing.\ntype StorageLike = { getItem(key: string): Promise<string | null>; setItem(key: string, value: string): Promise<void> };\nlet AsyncStorage: StorageLike | null = null;\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, global-require\n AsyncStorage = require('@react-native-async-storage/async-storage').default ?? null;\n} catch {\n AsyncStorage = null;\n}\n\nconst SNAPSHOT_KEY = 'yantra.canvas-boards.snapshot.v1';\n\ntype StoredSnapshot = {\n url: string;\n boards: CanvasBoardSummary[];\n};\n\nlet lastWritten = '';\n\nfunction isBoardSummary(value: unknown): value is CanvasBoardSummary {\n if (!value || typeof value !== 'object') return false;\n const row = value as CanvasBoardSummary;\n return typeof row.channelId === 'string' && row.channelId.length > 0 && Boolean(row.board);\n}\n\nexport function parseCanvasBoardsSnapshot(raw: string | null | undefined): StoredSnapshot | null {\n if (!raw) return null;\n try {\n const parsed = JSON.parse(raw) as StoredSnapshot;\n if (!parsed?.url || !Array.isArray(parsed.boards)) return null;\n const boards = parsed.boards.filter(isBoardSummary);\n return { url: parsed.url, boards };\n } catch {\n return null;\n }\n}\n\nexport async function hydrateCanvasBoardsSnapshot(indexUrl: string): Promise<CanvasBoardSummary[] | null> {\n const trimmed = (indexUrl || '').trim();\n if (!trimmed) return null;\n const memory = getCachedCanvasBoards(trimmed);\n if (memory) return memory;\n if (!AsyncStorage) return null;\n try {\n const raw = await AsyncStorage.getItem(SNAPSHOT_KEY);\n const parsed = parseCanvasBoardsSnapshot(raw);\n if (!parsed || parsed.url !== trimmed) return null;\n setCachedCanvasBoards(trimmed, parsed.boards);\n lastWritten = raw ?? lastWritten;\n return parsed.boards;\n } catch {\n return null;\n }\n}\n\nexport function persistCanvasBoardsSnapshot(indexUrl: string, boards: CanvasBoardSummary[]): void {\n const trimmed = (indexUrl || '').trim();\n if (!trimmed) return;\n setCachedCanvasBoards(trimmed, boards);\n const raw = JSON.stringify({ url: trimmed, boards } satisfies StoredSnapshot);\n if (raw === lastWritten) return;\n lastWritten = raw;\n void AsyncStorage?.setItem(SNAPSHOT_KEY, raw).catch(() => {\n /* disk write is best-effort */\n });\n}\n"],"names":[],"mappings":"4EAAA,IAAA,EAAA;AAaA,IAAI,YAAmC,GAAA,IAAA;AACvC,IAAI;AAEF,EAAA,YAAA,GAAA,CAAe,EAAQ,GAAA,OAAA,CAAA,2CAA2C,CAAE,CAAA,OAAA,KAArD,IAAgE,GAAA,EAAA,GAAA,IAAA;AACjF,CAAQ,CAAA,OAAA,CAAA,EAAA;AACN,EAAe,YAAA,GAAA,IAAA;AACjB;AACA,MAAM,YAAe,GAAA,kCAAA;AAKrB,IAAI,WAAc,GAAA,EAAA;AAClB,SAAS,eAAe,KAA6C,EAAA;AACnE,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,UAAiB,OAAA,KAAA;AAChD,EAAA,MAAM,GAAM,GAAA,KAAA;AACZ,EAAO,OAAA,OAAO,GAAI,CAAA,SAAA,KAAc,QAAY,IAAA,GAAA,CAAI,UAAU,MAAS,GAAA,CAAA,IAAK,OAAQ,CAAA,GAAA,CAAI,KAAK,CAAA;AAC3F;AACO,SAAS,0BAA0B,GAAuD,EAAA;AAC/F,EAAI,IAAA,CAAC,KAAY,OAAA,IAAA;AACjB,EAAI,IAAA;AACF,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAI,IAAA,EAAC,iCAAQ,GAAO,CAAA,IAAA,CAAC,MAAM,OAAQ,CAAA,MAAA,CAAO,MAAM,CAAA,EAAU,OAAA,IAAA;AAC1D,IAAA,MAAM,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,cAAc,CAAA;AAClD,IAAO,OAAA;AAAA,MACL,KAAK,MAAO,CAAA,GAAA;AAAA,MACZ;AAAA,KACF;AAAA,GACM,CAAA,OAAA,CAAA,EAAA;AACN,IAAO,OAAA,IAAA;AAAA;AAEX;AACA,eAAsB,4BAA4B,QAAwD,EAAA;AACxG,EAAM,MAAA,OAAA,GAAA,CAAW,QAAY,IAAA,EAAA,EAAI,IAAK,EAAA;AACtC,EAAI,IAAA,CAAC,SAAgB,OAAA,IAAA;AACrB,EAAM,MAAA,MAAA,GAAS,sBAAsB,OAAO,CAAA;AAC5C,EAAA,IAAI,QAAe,OAAA,MAAA;AACnB,EAAI,IAAA,CAAC,cAAqB,OAAA,IAAA;AAC1B,EAAI,IAAA;AACF,IAAA,MAAM,GAAM,GAAA,MAAM,YAAa,CAAA,OAAA,CAAQ,YAAY,CAAA;AACnD,IAAM,MAAA,MAAA,GAAS,0BAA0B,GAAG,CAAA;AAC5C,IAAA,IAAI,CAAC,MAAA,IAAU,MAAO,CAAA,GAAA,KAAQ,SAAgB,OAAA,IAAA;AAC9C,IAAsB,qBAAA,CAAA,OAAA,EAAS,OAAO,MAAM,CAAA;AAC5C,IAAA,WAAA,GAAc,GAAO,IAAA,IAAA,GAAA,GAAA,GAAA,WAAA;AACrB,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA,GACR,CAAA,OAAA,CAAA,EAAA;AACN,IAAO,OAAA,IAAA;AAAA;AAEX"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/yantra-mobile",
3
- "version": "12.0.53-alpha.7",
3
+ "version": "12.0.53-alpha.8",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -41,7 +41,7 @@
41
41
  "@messenger-box/platform-mobile": "*",
42
42
  "@react-native-async-storage/async-storage": "*",
43
43
  "@react-navigation/native": "*",
44
- "common": "12.0.53-alpha.1",
44
+ "common": "12.0.53-alpha.7",
45
45
  "expo-constants": "*",
46
46
  "expo-secure-store": "*",
47
47
  "lodash": "*",
@@ -57,5 +57,5 @@
57
57
  "typescript": {
58
58
  "definition": "lib/index.d.ts"
59
59
  },
60
- "gitHead": "7eeae5463e03b11059511bd58f2e8759255a8409"
60
+ "gitHead": "87ae8f02d2ba0b04c7a882636041bea9d22b2888"
61
61
  }