@thewhateverapp/tile-sdk 0.16.12 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/TileBridge.d.ts.map +1 -1
- package/dist/bridge/TileBridge.js +39 -20
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/useViewport.d.ts +14 -0
- package/dist/react/useViewport.d.ts.map +1 -0
- package/dist/react/useViewport.js +69 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileBridge.d.ts","sourceRoot":"","sources":["../../src/bridge/TileBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,iGAAiG;IACjG,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAA2B;IAGzC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAAqB;IAG3C,OAAO,CAAC,aAAa,CAAgD;IAMrE,OAAO,CAAC,eAAe,CAAmD;IAG1E,OAAO,CAAC,yBAAyB,CAAkB;IAGnD,OAAO,CAAC,uBAAuB,CAAqD;IAEpF,OAAO,CAAC,oBAAoB,CAAgC;IAC5D,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,yBAAyB,CAAuE;IACxG,OAAO,CAAC,qBAAqB,CAA8C;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IAGnC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,cAAc,CAAwB;gBAElC,cAAc,GAAE,MAAkC,EAAE,MAAM,CAAC,EAAE,UAAU;IAsCnF,OAAO,CAAC,UAAU;IA4ClB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAwDnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0C7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"TileBridge.d.ts","sourceRoot":"","sources":["../../src/bridge/TileBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -279,18 +279,26 @@ export class TileBridge {
|
|
|
279
279
|
return false;
|
|
280
280
|
}
|
|
281
281
|
handleMessage(event) {
|
|
282
|
+
const msgType = event.data?.type;
|
|
283
|
+
const isValidOriginResult = this.isValidOrigin(event.origin);
|
|
284
|
+
// === INSTRUMENTATION: Log ALL incoming messages ===
|
|
285
|
+
console.log('[TileBridge] 📨 INCOMING message', {
|
|
286
|
+
type: msgType || '(no type)',
|
|
287
|
+
origin: event.origin,
|
|
288
|
+
expectedOrigin: this.parentOrigin,
|
|
289
|
+
isValidOrigin: isValidOriginResult,
|
|
290
|
+
hasData: !!event.data,
|
|
291
|
+
dataKeys: event.data ? Object.keys(event.data) : [],
|
|
292
|
+
payload: event.data?.payload ? JSON.stringify(event.data.payload).slice(0, 200) : undefined,
|
|
293
|
+
id: event.data?.id,
|
|
294
|
+
sourceIsParent: event.source === window.parent,
|
|
295
|
+
timestamp: new Date().toISOString(),
|
|
296
|
+
});
|
|
282
297
|
// Validate origin (skip validation in dev and preview)
|
|
283
|
-
if (!
|
|
284
|
-
console.warn('[TileBridge]
|
|
298
|
+
if (!isValidOriginResult && !this.isDevelopment() && !this.isPreview()) {
|
|
299
|
+
console.warn('[TileBridge] ⛔ REJECTED - untrusted origin:', event.origin, 'expected:', this.parentOrigin);
|
|
285
300
|
return;
|
|
286
301
|
}
|
|
287
|
-
if (this.isDevelopment() || this.isPreview()) {
|
|
288
|
-
console.log('[TileBridge] Received message:', {
|
|
289
|
-
type: event.data?.type,
|
|
290
|
-
origin: event.origin,
|
|
291
|
-
expectedOrigin: this.parentOrigin,
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
302
|
const message = event.data;
|
|
295
303
|
// Handle system messages
|
|
296
304
|
switch (message.type) {
|
|
@@ -787,8 +795,10 @@ export class TileBridge {
|
|
|
787
795
|
console.log(`[TileBridge] 🔊 UNMUTED: ${unmutedCount} media element(s), ${resumedCount} AudioContext(s)`);
|
|
788
796
|
}
|
|
789
797
|
sendToParent(message) {
|
|
790
|
-
if (typeof window === 'undefined' || !window.parent)
|
|
798
|
+
if (typeof window === 'undefined' || !window.parent) {
|
|
799
|
+
console.log('[TileBridge] ⚠️ Cannot send message - no window.parent');
|
|
791
800
|
return;
|
|
801
|
+
}
|
|
792
802
|
// Add metadata
|
|
793
803
|
const fullMessage = {
|
|
794
804
|
...message,
|
|
@@ -800,20 +810,29 @@ export class TileBridge {
|
|
|
800
810
|
const isPreviewOrDev = this.isPreview() || this.isDevelopment();
|
|
801
811
|
// Queue if not ready (except in preview/dev where we send immediately)
|
|
802
812
|
if (!this.ready && !isPreviewOrDev && message.type !== 'tile:ready' && message.type !== 'tile:request-config') {
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
}
|
|
813
|
+
console.log('[TileBridge] 📥 Queueing message (not ready yet):', message.type, {
|
|
814
|
+
queueLength: this.messageQueue.length + 1,
|
|
815
|
+
});
|
|
806
816
|
this.messageQueue.push(fullMessage);
|
|
807
817
|
return;
|
|
808
818
|
}
|
|
809
|
-
//
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
819
|
+
// === INSTRUMENTATION: Always log outgoing messages ===
|
|
820
|
+
console.log('[TileBridge] 📤 SENDING to parent', {
|
|
821
|
+
type: fullMessage.type,
|
|
822
|
+
payload: fullMessage.payload ? JSON.stringify(fullMessage.payload).slice(0, 200) : undefined,
|
|
823
|
+
id: fullMessage.id,
|
|
824
|
+
parentOrigin: this.parentOrigin,
|
|
825
|
+
isInIframe: this.isInIframe(),
|
|
826
|
+
windowParentSameAsWindow: window.parent === window,
|
|
827
|
+
timestamp: new Date().toISOString(),
|
|
828
|
+
});
|
|
829
|
+
try {
|
|
830
|
+
window.parent.postMessage(fullMessage, this.parentOrigin);
|
|
831
|
+
console.log('[TileBridge] ✅ Message sent successfully');
|
|
832
|
+
}
|
|
833
|
+
catch (err) {
|
|
834
|
+
console.error('[TileBridge] ❌ Failed to send message:', err);
|
|
815
835
|
}
|
|
816
|
-
window.parent.postMessage(fullMessage, this.parentOrigin);
|
|
817
836
|
}
|
|
818
837
|
// Public API
|
|
819
838
|
/**
|
package/dist/react/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { TileProvider, TileContext } from './TileProvider.js';
|
|
|
2
2
|
export type { TileContextValue } from './TileProvider.js';
|
|
3
3
|
export { useTile } from './useTile.js';
|
|
4
4
|
export { useKeyboard } from './useKeyboard.js';
|
|
5
|
+
export { useViewport } from './useViewport.js';
|
|
5
6
|
export { TileContainer } from './TileContainer.js';
|
|
6
7
|
export { withTile } from './withTile.js';
|
|
7
8
|
export * from './overlay/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,cAAc,oBAAoB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export { TileProvider, TileContext } from './TileProvider.js';
|
|
3
3
|
export { useTile } from './useTile.js';
|
|
4
4
|
export { useKeyboard } from './useKeyboard.js';
|
|
5
|
+
export { useViewport } from './useViewport.js';
|
|
5
6
|
export { TileContainer } from './TileContainer.js';
|
|
6
7
|
export { withTile } from './withTile.js';
|
|
7
8
|
// TileInitializer removed - router should be injected directly into TileProvider
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SafeAreaInsets {
|
|
2
|
+
top: number;
|
|
3
|
+
right: number;
|
|
4
|
+
bottom: number;
|
|
5
|
+
left: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ViewportInfo {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
safeAreaInsets: SafeAreaInsets;
|
|
11
|
+
isVisualViewport: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function useViewport(): ViewportInfo;
|
|
14
|
+
//# sourceMappingURL=useViewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useViewport.d.ts","sourceRoot":"","sources":["../../src/react/useViewport.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAyDD,wBAAgB,WAAW,IAAI,YAAY,CAwB1C"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
const defaultInsets = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
3
|
+
function readSafeAreaInsets() {
|
|
4
|
+
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
5
|
+
return defaultInsets;
|
|
6
|
+
}
|
|
7
|
+
if (!document.body) {
|
|
8
|
+
return defaultInsets;
|
|
9
|
+
}
|
|
10
|
+
const probe = document.createElement('div');
|
|
11
|
+
probe.style.cssText = [
|
|
12
|
+
'position:fixed',
|
|
13
|
+
'top:0',
|
|
14
|
+
'left:0',
|
|
15
|
+
'right:0',
|
|
16
|
+
'bottom:0',
|
|
17
|
+
'padding-top:env(safe-area-inset-top)',
|
|
18
|
+
'padding-right:env(safe-area-inset-right)',
|
|
19
|
+
'padding-bottom:env(safe-area-inset-bottom)',
|
|
20
|
+
'padding-left:env(safe-area-inset-left)',
|
|
21
|
+
'pointer-events:none',
|
|
22
|
+
'visibility:hidden'
|
|
23
|
+
].join(';');
|
|
24
|
+
document.body.appendChild(probe);
|
|
25
|
+
const style = window.getComputedStyle(probe);
|
|
26
|
+
const insets = {
|
|
27
|
+
top: Number.parseFloat(style.paddingTop) || 0,
|
|
28
|
+
right: Number.parseFloat(style.paddingRight) || 0,
|
|
29
|
+
bottom: Number.parseFloat(style.paddingBottom) || 0,
|
|
30
|
+
left: Number.parseFloat(style.paddingLeft) || 0,
|
|
31
|
+
};
|
|
32
|
+
document.body.removeChild(probe);
|
|
33
|
+
return insets;
|
|
34
|
+
}
|
|
35
|
+
function getViewportInfo() {
|
|
36
|
+
if (typeof window === 'undefined') {
|
|
37
|
+
return { width: 0, height: 0, safeAreaInsets: defaultInsets, isVisualViewport: false };
|
|
38
|
+
}
|
|
39
|
+
const visual = window.visualViewport;
|
|
40
|
+
const width = visual?.width ?? window.innerWidth;
|
|
41
|
+
const height = visual?.height ?? window.innerHeight;
|
|
42
|
+
return {
|
|
43
|
+
width,
|
|
44
|
+
height,
|
|
45
|
+
safeAreaInsets: readSafeAreaInsets(),
|
|
46
|
+
isVisualViewport: Boolean(visual),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function useViewport() {
|
|
50
|
+
const [info, setInfo] = useState(() => getViewportInfo());
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (typeof window === 'undefined')
|
|
53
|
+
return;
|
|
54
|
+
const update = () => setInfo(getViewportInfo());
|
|
55
|
+
const visual = window.visualViewport;
|
|
56
|
+
update();
|
|
57
|
+
window.addEventListener('resize', update);
|
|
58
|
+
window.addEventListener('orientationchange', update);
|
|
59
|
+
visual?.addEventListener('resize', update);
|
|
60
|
+
visual?.addEventListener('scroll', update);
|
|
61
|
+
return () => {
|
|
62
|
+
window.removeEventListener('resize', update);
|
|
63
|
+
window.removeEventListener('orientationchange', update);
|
|
64
|
+
visual?.removeEventListener('resize', update);
|
|
65
|
+
visual?.removeEventListener('scroll', update);
|
|
66
|
+
};
|
|
67
|
+
}, []);
|
|
68
|
+
return info;
|
|
69
|
+
}
|