@thewhateverapp/tile-sdk 0.3.8 → 0.4.0
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.
|
@@ -104,6 +104,9 @@ export declare class TileBridge {
|
|
|
104
104
|
isReady(): boolean;
|
|
105
105
|
/**
|
|
106
106
|
* Wait for ready state
|
|
107
|
+
*
|
|
108
|
+
* Note: Config handshake has been removed. Tiles are ready immediately.
|
|
109
|
+
* We keep this method for backwards compatibility but it resolves instantly.
|
|
107
110
|
*/
|
|
108
111
|
waitForReady(): Promise<TileConfig>;
|
|
109
112
|
private emitEvent;
|
|
@@ -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,KAAK,EAAE,MAAM,CAAC;IACd,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,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;gBAEjB,cAAc,GAAE,MAAkC;IA4B9D,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"TileBridge.d.ts","sourceRoot":"","sources":["../../src/bridge/TileBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,8 +48,6 @@ export class TileBridge {
|
|
|
48
48
|
window.addEventListener('message', this.handleMessage.bind(this));
|
|
49
49
|
// Send ready signal to parent
|
|
50
50
|
this.sendToParent({ type: 'tile:ready' });
|
|
51
|
-
// Request configuration from parent
|
|
52
|
-
this.sendToParent({ type: 'tile:request-config' });
|
|
53
51
|
}
|
|
54
52
|
handleMessage(event) {
|
|
55
53
|
// Validate origin (skip validation in dev and preview)
|
|
@@ -448,49 +446,27 @@ export class TileBridge {
|
|
|
448
446
|
}
|
|
449
447
|
/**
|
|
450
448
|
* Wait for ready state
|
|
449
|
+
*
|
|
450
|
+
* Note: Config handshake has been removed. Tiles are ready immediately.
|
|
451
|
+
* We keep this method for backwards compatibility but it resolves instantly.
|
|
451
452
|
*/
|
|
452
453
|
async waitForReady() {
|
|
453
454
|
if (this.ready && this.config) {
|
|
454
455
|
return this.config;
|
|
455
456
|
}
|
|
456
|
-
//
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
return defaultConfig;
|
|
470
|
-
}
|
|
471
|
-
return new Promise((resolve) => {
|
|
472
|
-
const unsubscribe = this.on('config:ready', (config) => {
|
|
473
|
-
unsubscribe();
|
|
474
|
-
resolve(config);
|
|
475
|
-
});
|
|
476
|
-
// Timeout fallback: if no config received after 2 seconds, assume standalone
|
|
477
|
-
setTimeout(() => {
|
|
478
|
-
if (!this.ready) {
|
|
479
|
-
console.warn('[TileBridge] No config received after 2s - assuming standalone mode');
|
|
480
|
-
const fallbackConfig = {
|
|
481
|
-
appId: 'standalone-timeout',
|
|
482
|
-
position: { row: 0, col: 0 },
|
|
483
|
-
tileUrl: typeof window !== 'undefined' ? window.location.href : '',
|
|
484
|
-
theme: 'light',
|
|
485
|
-
debug: true,
|
|
486
|
-
};
|
|
487
|
-
this.config = fallbackConfig;
|
|
488
|
-
this.ready = true;
|
|
489
|
-
unsubscribe();
|
|
490
|
-
resolve(fallbackConfig);
|
|
491
|
-
}
|
|
492
|
-
}, 2000);
|
|
493
|
-
});
|
|
457
|
+
// Create default config immediately - no handshake needed
|
|
458
|
+
const defaultConfig = {
|
|
459
|
+
appId: this.isInIframe() ? 'iframe-mode' : 'standalone',
|
|
460
|
+
position: { row: 0, col: 0 },
|
|
461
|
+
tileUrl: typeof window !== 'undefined' ? window.location.href : '',
|
|
462
|
+
theme: 'light',
|
|
463
|
+
debug: this.isDevelopment() || this.isPreview(),
|
|
464
|
+
};
|
|
465
|
+
console.log('[TileBridge] Ready - no config handshake required');
|
|
466
|
+
this.config = defaultConfig;
|
|
467
|
+
this.ready = true;
|
|
468
|
+
this.emitEvent('config:ready', defaultConfig);
|
|
469
|
+
return defaultConfig;
|
|
494
470
|
}
|
|
495
471
|
// Private helpers
|
|
496
472
|
emitEvent(event, data) {
|
|
@@ -530,11 +506,12 @@ export class TileBridge {
|
|
|
530
506
|
// Invalid URL, reject
|
|
531
507
|
}
|
|
532
508
|
// Accept messages from deployed apps on Cloudflare Pages (*.pages.dev)
|
|
509
|
+
// and Cloudflare Workers (*.workers.dev)
|
|
533
510
|
// This allows apps to communicate with the parent when embedded in iframes
|
|
534
511
|
// TODO: Once all apps are on *.wtvr.app, restrict this to that domain only
|
|
535
512
|
try {
|
|
536
513
|
const url = new URL(origin);
|
|
537
|
-
if (url.hostname.endsWith('.pages.dev')) {
|
|
514
|
+
if (url.hostname.endsWith('.pages.dev') || url.hostname.endsWith('.workers.dev')) {
|
|
538
515
|
return true;
|
|
539
516
|
}
|
|
540
517
|
}
|