@monterosa/sdk-launcher-kit 0.18.8 → 0.18.10
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/index.cjs.js +171 -32
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm2017.js +120 -24
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +169 -33
- package/dist/index.esm5.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/share.d.ts +49 -0
- package/dist/src/utils/bridge/api.d.ts +0 -6
- package/dist/src/utils/bridge/public_types.d.ts +5 -1
- package/package.json +5 -5
package/dist/index.cjs.js
CHANGED
|
@@ -165,6 +165,10 @@ exports.Action = void 0;
|
|
|
165
165
|
* Notifies child Experience about the request to load more data
|
|
166
166
|
*/
|
|
167
167
|
Action["OnMoreDataRequested"] = "onMoreDataRequested";
|
|
168
|
+
/**
|
|
169
|
+
* Notifies about a share request
|
|
170
|
+
*/
|
|
171
|
+
Action["OnShare"] = "onShare";
|
|
168
172
|
})(exports.Action || (exports.Action = {}));
|
|
169
173
|
/**
|
|
170
174
|
* @internal
|
|
@@ -234,7 +238,7 @@ exports.QueryParam = void 0;
|
|
|
234
238
|
*
|
|
235
239
|
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
236
240
|
*/
|
|
237
|
-
var _a$
|
|
241
|
+
var _a$3;
|
|
238
242
|
/**
|
|
239
243
|
* Defines a set of error codes that may be encountered when using the
|
|
240
244
|
* Launcher Kit bridge
|
|
@@ -273,14 +277,14 @@ exports.BridgeError = void 0;
|
|
|
273
277
|
*/
|
|
274
278
|
BridgeError["RequestTimeoutError"] = "request_timeout_error";
|
|
275
279
|
})(exports.BridgeError || (exports.BridgeError = {}));
|
|
276
|
-
var BridgeErrorMessages = (_a$
|
|
277
|
-
_a$
|
|
280
|
+
var BridgeErrorMessages = (_a$3 = {},
|
|
281
|
+
_a$3[exports.BridgeError.InvalidRequestTimeoutError] = function () {
|
|
278
282
|
return 'Request timeout must be greater than 0';
|
|
279
283
|
},
|
|
280
|
-
_a$
|
|
284
|
+
_a$3[exports.BridgeError.RequestTimeoutError] = function (action, timeout) {
|
|
281
285
|
return "Request timeout: action \"" + action + "\" did not receive a response within " + timeout + "ms";
|
|
282
286
|
},
|
|
283
|
-
_a$
|
|
287
|
+
_a$3);
|
|
284
288
|
|
|
285
289
|
/**
|
|
286
290
|
* @license
|
|
@@ -350,7 +354,7 @@ function isMessage(message) {
|
|
|
350
354
|
*
|
|
351
355
|
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
352
356
|
*/
|
|
353
|
-
var _a$
|
|
357
|
+
var _a$2, _b$1, _c$1, _d$1;
|
|
354
358
|
var _e, _f, _g;
|
|
355
359
|
var globals$2 = sdkUtil.getGlobal();
|
|
356
360
|
var receiveMessage = function (message) {
|
|
@@ -382,7 +386,7 @@ function handleWindowMessage(_a) {
|
|
|
382
386
|
*/
|
|
383
387
|
// The Monterosa SDK namespace may already exist, either because it was created
|
|
384
388
|
// by a native SDK or by another web app using the JS SDK from the same scope.
|
|
385
|
-
(_a$
|
|
389
|
+
(_a$2 = globals$2.monterosaSdk) !== null && _a$2 !== void 0 ? _a$2 : (globals$2.monterosaSdk = {
|
|
386
390
|
initialised: false,
|
|
387
391
|
emitter: new sdkUtil.Emitter(),
|
|
388
392
|
receiveMessage: receiveMessage,
|
|
@@ -411,13 +415,13 @@ if (!globals$2.monterosaSdk.initialised) {
|
|
|
411
415
|
*
|
|
412
416
|
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
413
417
|
*/
|
|
414
|
-
var _a, _b, _c, _d;
|
|
418
|
+
var _a$1, _b, _c, _d;
|
|
415
419
|
var globals$1 = sdkUtil.getGlobal();
|
|
416
420
|
/**
|
|
417
421
|
* @internal
|
|
418
422
|
*/
|
|
419
423
|
var IFRAME_ID_PREFIX = 'micBridge';
|
|
420
|
-
var IS_IOS = !!((_c = (_b = (_a = globals$1.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.monterosaSdk) === null || _c === void 0 ? void 0 : _c.postMessage);
|
|
424
|
+
var IS_IOS = !!((_c = (_b = (_a$1 = globals$1.webkit) === null || _a$1 === void 0 ? void 0 : _a$1.messageHandlers) === null || _b === void 0 ? void 0 : _b.monterosaSdk) === null || _c === void 0 ? void 0 : _c.postMessage);
|
|
421
425
|
var IS_ANDROID = !!((_d = globals$1.monterosaSdk) === null || _d === void 0 ? void 0 : _d.postMessage);
|
|
422
426
|
var IS_WEB = globals$1.self !== globals$1.parent;
|
|
423
427
|
/**
|
|
@@ -586,24 +590,6 @@ function getBridge(id) {
|
|
|
586
590
|
bridges.set(id, bridge);
|
|
587
591
|
return bridge;
|
|
588
592
|
}
|
|
589
|
-
/**
|
|
590
|
-
* Returns true if the page is inside an iframe.
|
|
591
|
-
*
|
|
592
|
-
* @internal
|
|
593
|
-
*/
|
|
594
|
-
function isInsideIframe() {
|
|
595
|
-
if (typeof window === 'undefined') {
|
|
596
|
-
return false;
|
|
597
|
-
}
|
|
598
|
-
try {
|
|
599
|
-
return window.self !== window.top;
|
|
600
|
-
}
|
|
601
|
-
catch (_a) {
|
|
602
|
-
// SecurityError is thrown when accessing window.top in a cross-origin iframe.
|
|
603
|
-
// If we can't access it, we're definitely in an iframe.
|
|
604
|
-
return true;
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
593
|
/**
|
|
608
594
|
* @internal
|
|
609
595
|
*/
|
|
@@ -614,9 +600,6 @@ function getParentBridge() {
|
|
|
614
600
|
if (parentBridge !== undefined) {
|
|
615
601
|
return parentBridge;
|
|
616
602
|
}
|
|
617
|
-
if (!isInsideIframe()) {
|
|
618
|
-
return null;
|
|
619
|
-
}
|
|
620
603
|
var url = new URL(window.location.href);
|
|
621
604
|
var bridgeId = url.searchParams.get(exports.QueryParam.BridgeId);
|
|
622
605
|
if (bridgeId === null) {
|
|
@@ -1080,7 +1063,7 @@ function unstashStyles(element) {
|
|
|
1080
1063
|
element.removeAttribute('data-stash');
|
|
1081
1064
|
}
|
|
1082
1065
|
|
|
1083
|
-
var version = "0.18.
|
|
1066
|
+
var version = "0.18.10";
|
|
1084
1067
|
|
|
1085
1068
|
/**
|
|
1086
1069
|
* @license
|
|
@@ -1588,23 +1571,178 @@ function reportExperienceSizeChanges(element) {
|
|
|
1588
1571
|
return function () { return observer.unobserve(element); };
|
|
1589
1572
|
}
|
|
1590
1573
|
|
|
1574
|
+
/**
|
|
1575
|
+
* @license
|
|
1576
|
+
* share.ts
|
|
1577
|
+
* launcher-kit
|
|
1578
|
+
*
|
|
1579
|
+
* Copyright © 2026 Monterosa Productions Limited. All rights reserved.
|
|
1580
|
+
*
|
|
1581
|
+
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
1582
|
+
*/
|
|
1583
|
+
var _a;
|
|
1584
|
+
/**
|
|
1585
|
+
* Share requests block on the native share tray which waits for user
|
|
1586
|
+
* interaction (composing a message, picking a target app, etc.). The default
|
|
1587
|
+
* bridge timeout of 20 seconds is too short for this. 5 minutes gives users
|
|
1588
|
+
* ample time while still acting as a safety net against lost messages.
|
|
1589
|
+
*/
|
|
1590
|
+
var SHARE_REQUEST_TIMEOUT = 300000;
|
|
1591
|
+
exports.ShareError = void 0;
|
|
1592
|
+
(function (ShareError) {
|
|
1593
|
+
ShareError["ParentAppError"] = "parent_app_error";
|
|
1594
|
+
ShareError["ShareFailed"] = "share_failed";
|
|
1595
|
+
})(exports.ShareError || (exports.ShareError = {}));
|
|
1596
|
+
var ShareErrorMessages = (_a = {},
|
|
1597
|
+
_a[exports.ShareError.ParentAppError] = function (error) {
|
|
1598
|
+
return "Parent application error: " + error;
|
|
1599
|
+
},
|
|
1600
|
+
_a[exports.ShareError.ShareFailed] = function (error) { return "Share failed: " + error; },
|
|
1601
|
+
_a);
|
|
1602
|
+
/**
|
|
1603
|
+
* Executes share using the Web Share API.
|
|
1604
|
+
*
|
|
1605
|
+
* @internal
|
|
1606
|
+
*/
|
|
1607
|
+
function executeShare(data) {
|
|
1608
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1609
|
+
var err_1;
|
|
1610
|
+
return __generator(this, function (_a) {
|
|
1611
|
+
switch (_a.label) {
|
|
1612
|
+
case 0:
|
|
1613
|
+
_a.trys.push([0, 2, , 3]);
|
|
1614
|
+
return [4 /*yield*/, navigator.share({
|
|
1615
|
+
url: data.url,
|
|
1616
|
+
title: data.title,
|
|
1617
|
+
text: data.description,
|
|
1618
|
+
})];
|
|
1619
|
+
case 1:
|
|
1620
|
+
_a.sent();
|
|
1621
|
+
return [2 /*return*/, 'success'];
|
|
1622
|
+
case 2:
|
|
1623
|
+
err_1 = _a.sent();
|
|
1624
|
+
if (err_1 instanceof DOMException && err_1.name === 'AbortError') {
|
|
1625
|
+
return [2 /*return*/, 'cancelled'];
|
|
1626
|
+
}
|
|
1627
|
+
throw sdkUtil.createError(exports.ShareError.ShareFailed, ShareErrorMessages, sdkUtil.getErrorMessage(err_1));
|
|
1628
|
+
case 3: return [2 /*return*/];
|
|
1629
|
+
}
|
|
1630
|
+
});
|
|
1631
|
+
});
|
|
1632
|
+
}
|
|
1633
|
+
/**
|
|
1634
|
+
* Initiates a share action. When running inside a parent application,
|
|
1635
|
+
* the share request is sent to the parent via the communication bridge.
|
|
1636
|
+
* When running standalone, `navigator.share()` is called directly.
|
|
1637
|
+
*
|
|
1638
|
+
* @param data - The data to share
|
|
1639
|
+
*/
|
|
1640
|
+
function share(data) {
|
|
1641
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1642
|
+
var parentApp, response;
|
|
1643
|
+
return __generator(this, function (_a) {
|
|
1644
|
+
switch (_a.label) {
|
|
1645
|
+
case 0:
|
|
1646
|
+
parentApp = getParentApplication();
|
|
1647
|
+
if (!(parentApp !== null)) return [3 /*break*/, 2];
|
|
1648
|
+
return [4 /*yield*/, sendSdkRequest(parentApp, exports.Action.OnShare, data, SHARE_REQUEST_TIMEOUT)];
|
|
1649
|
+
case 1:
|
|
1650
|
+
response = _a.sent();
|
|
1651
|
+
if (response.payload.result === 'failure') {
|
|
1652
|
+
throw sdkUtil.createError(exports.ShareError.ParentAppError, ShareErrorMessages, response.payload.message);
|
|
1653
|
+
}
|
|
1654
|
+
// 'success' and 'cancelled' both resolve silently
|
|
1655
|
+
return [2 /*return*/];
|
|
1656
|
+
case 2: return [4 /*yield*/, executeShare(data)];
|
|
1657
|
+
case 3:
|
|
1658
|
+
_a.sent();
|
|
1659
|
+
return [2 /*return*/];
|
|
1660
|
+
}
|
|
1661
|
+
});
|
|
1662
|
+
});
|
|
1663
|
+
}
|
|
1664
|
+
/**
|
|
1665
|
+
* Registers a callback to be called when a share request is received
|
|
1666
|
+
* from a child Experience.
|
|
1667
|
+
*
|
|
1668
|
+
* @param experience - The Experience instance to listen on
|
|
1669
|
+
* @param callback - Called with ShareData when a share request is received
|
|
1670
|
+
* @returns Unsubscribe function
|
|
1671
|
+
*/
|
|
1672
|
+
function onShare(experience, callback) {
|
|
1673
|
+
return onSdkMessage(experience, function (message) {
|
|
1674
|
+
if (message.action === exports.Action.OnShare) {
|
|
1675
|
+
callback(message.payload);
|
|
1676
|
+
}
|
|
1677
|
+
});
|
|
1678
|
+
}
|
|
1679
|
+
function onExperienceEmbed(experience) {
|
|
1680
|
+
var _this = this;
|
|
1681
|
+
return onSdkMessage(experience, function (message) { return __awaiter(_this, void 0, void 0, function () {
|
|
1682
|
+
var parentApp, payload, response, result, err_2;
|
|
1683
|
+
return __generator(this, function (_a) {
|
|
1684
|
+
switch (_a.label) {
|
|
1685
|
+
case 0:
|
|
1686
|
+
if (message.action !== exports.Action.OnShare) {
|
|
1687
|
+
return [2 /*return*/];
|
|
1688
|
+
}
|
|
1689
|
+
_a.label = 1;
|
|
1690
|
+
case 1:
|
|
1691
|
+
_a.trys.push([1, 6, , 7]);
|
|
1692
|
+
parentApp = getParentApplication();
|
|
1693
|
+
payload = void 0;
|
|
1694
|
+
if (!(parentApp !== null)) return [3 /*break*/, 3];
|
|
1695
|
+
return [4 /*yield*/, sendSdkRequest(parentApp, exports.Action.OnShare, message.payload, SHARE_REQUEST_TIMEOUT)];
|
|
1696
|
+
case 2:
|
|
1697
|
+
response = _a.sent();
|
|
1698
|
+
payload = response.payload;
|
|
1699
|
+
return [3 /*break*/, 5];
|
|
1700
|
+
case 3: return [4 /*yield*/, executeShare(message.payload)];
|
|
1701
|
+
case 4:
|
|
1702
|
+
result = _a.sent();
|
|
1703
|
+
payload = {
|
|
1704
|
+
result: result,
|
|
1705
|
+
message: result === 'success' ? 'Share successful' : 'Share cancelled',
|
|
1706
|
+
data: {},
|
|
1707
|
+
};
|
|
1708
|
+
_a.label = 5;
|
|
1709
|
+
case 5:
|
|
1710
|
+
respondToSdkMessage(experience, message, payload);
|
|
1711
|
+
return [3 /*break*/, 7];
|
|
1712
|
+
case 6:
|
|
1713
|
+
err_2 = _a.sent();
|
|
1714
|
+
respondToSdkMessage(experience, message, {
|
|
1715
|
+
result: 'failure',
|
|
1716
|
+
message: sdkUtil.getErrorMessage(err_2),
|
|
1717
|
+
data: {},
|
|
1718
|
+
});
|
|
1719
|
+
return [3 /*break*/, 7];
|
|
1720
|
+
case 7: return [2 /*return*/];
|
|
1721
|
+
}
|
|
1722
|
+
});
|
|
1723
|
+
}); });
|
|
1724
|
+
}
|
|
1725
|
+
registerEmbedHook(onExperienceEmbed);
|
|
1726
|
+
|
|
1591
1727
|
exports.BRIDGE_VERSION = VERSION$1;
|
|
1592
1728
|
exports.BridgeImpl = BridgeImpl;
|
|
1593
1729
|
exports.ExperienceImpl = ExperienceImpl;
|
|
1594
1730
|
exports.ParentApplicationImpl = ParentApplicationImpl;
|
|
1731
|
+
exports.ShareErrorMessages = ShareErrorMessages;
|
|
1595
1732
|
exports.VERSION = VERSION;
|
|
1596
1733
|
exports.embed = embed;
|
|
1597
1734
|
exports.enableLogging = enableLogging;
|
|
1735
|
+
exports.executeShare = executeShare;
|
|
1598
1736
|
exports.getBridge = getBridge;
|
|
1599
1737
|
exports.getExperience = getExperience;
|
|
1600
1738
|
exports.getParentApplication = getParentApplication;
|
|
1601
1739
|
exports.getParentBridge = getParentBridge;
|
|
1602
1740
|
exports.isAutoresizesHeight = isAutoresizesHeight;
|
|
1603
|
-
exports.isInsideIframe = isInsideIframe;
|
|
1604
1741
|
exports.onMessage = onMessage;
|
|
1605
1742
|
exports.onMoreDataRequested = onMoreDataRequested;
|
|
1606
1743
|
exports.onReady = onReady;
|
|
1607
1744
|
exports.onSdkMessage = onSdkMessage;
|
|
1745
|
+
exports.onShare = onShare;
|
|
1608
1746
|
exports.registerEmbedHook = registerEmbedHook;
|
|
1609
1747
|
exports.reportExperienceSizeChanges = reportExperienceSizeChanges;
|
|
1610
1748
|
exports.requestMoreData = requestMoreData;
|
|
@@ -1619,6 +1757,7 @@ exports.sendRequest = sendRequest;
|
|
|
1619
1757
|
exports.sendSdkMessage = sendSdkMessage;
|
|
1620
1758
|
exports.sendSdkRequest = sendSdkRequest;
|
|
1621
1759
|
exports.setRequestTimeout = setRequestTimeout;
|
|
1760
|
+
exports.share = share;
|
|
1622
1761
|
exports.shouldHideHeaderAndFooter = shouldHideHeaderAndFooter;
|
|
1623
1762
|
exports.unmount = unmount;
|
|
1624
1763
|
//# sourceMappingURL=index.cjs.js.map
|