@apps-in-toss/framework 0.0.0-dev.1765732023607 → 0.0.0-dev.1765876894045
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 +428 -91
- package/dist/index.d.cts +68 -2
- package/dist/index.d.ts +68 -2
- package/dist/index.js +396 -59
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -1391,21 +1391,19 @@ var AppsInToss = {
|
|
|
1391
1391
|
// src/components/WebView.tsx
|
|
1392
1392
|
import {
|
|
1393
1393
|
AppsInTossModule,
|
|
1394
|
-
GoogleAdMob,
|
|
1394
|
+
GoogleAdMob as GoogleAdMob2,
|
|
1395
1395
|
IAP,
|
|
1396
1396
|
Storage,
|
|
1397
1397
|
appsInTossEvent,
|
|
1398
1398
|
iapCreateOneTimePurchaseOrder,
|
|
1399
1399
|
processProductGrant,
|
|
1400
|
-
requestOneTimePurchase
|
|
1401
|
-
INTERNAL__module as INTERNAL__module6,
|
|
1402
|
-
getOperationalEnvironment as getOperationalEnvironment5
|
|
1400
|
+
requestOneTimePurchase
|
|
1403
1401
|
} from "@apps-in-toss/native-modules";
|
|
1404
1402
|
import * as appsInTossAsyncBridges from "@apps-in-toss/native-modules/async-bridges";
|
|
1405
1403
|
import * as appsInTossConstantBridges from "@apps-in-toss/native-modules/constant-bridges";
|
|
1406
1404
|
import * as appsInTossEventBridges from "@apps-in-toss/native-modules/event-bridges";
|
|
1407
1405
|
import { useSafeAreaInsets as useSafeAreaInsets4 } from "@granite-js/native/react-native-safe-area-context";
|
|
1408
|
-
import { getSchemeUri as
|
|
1406
|
+
import { getSchemeUri as getSchemeUri8 } from "@granite-js/react-native";
|
|
1409
1407
|
import { ExternalWebViewScreen, tdsEvent } from "@toss/tds-react-native";
|
|
1410
1408
|
import { useSafeAreaBottom, useSafeAreaTop as useSafeAreaTop3 } from "@toss/tds-react-native/private";
|
|
1411
1409
|
import { useEffect as useEffect13, useMemo as useMemo7, useRef as useRef6, useState as useState6 } from "react";
|
|
@@ -1581,6 +1579,364 @@ function convertIntentURL(url) {
|
|
|
1581
1579
|
return `${scheme}://${url.hostname}${url.pathname}${url.search}`;
|
|
1582
1580
|
}
|
|
1583
1581
|
|
|
1582
|
+
// src/ads/fetchTossAd.ts
|
|
1583
|
+
import {
|
|
1584
|
+
getOperationalEnvironment as getOperationalEnvironment5,
|
|
1585
|
+
INTERNAL__appBridgeHandler as INTERNAL__appBridgeHandler2,
|
|
1586
|
+
isMinVersionSupported as isMinVersionSupported4
|
|
1587
|
+
} from "@apps-in-toss/native-modules";
|
|
1588
|
+
|
|
1589
|
+
// ../../.yarn/cache/es-toolkit-npm-1.34.1-4cd6371dcb-aab6d07be3.zip/node_modules/es-toolkit/dist/function/noop.mjs
|
|
1590
|
+
function noop() {
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
// src/ads/generateSessionId.ts
|
|
1594
|
+
function generateSessionId() {
|
|
1595
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
1596
|
+
const r = Math.random() * 16 | 0;
|
|
1597
|
+
const v = c === "x" ? r : r & 3 | 8;
|
|
1598
|
+
return v.toString(16);
|
|
1599
|
+
});
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
// src/ads/constants.ts
|
|
1603
|
+
var sessionId = generateSessionId();
|
|
1604
|
+
|
|
1605
|
+
// src/ads/fetchTossAd.ts
|
|
1606
|
+
var ANDROID_FETCH_TOSS_AD_SUPPORTED_VERSION = "5.241.0";
|
|
1607
|
+
var IOS_FETCH_TOSS_AD_SUPPORTED_VERSION = "5.241.0";
|
|
1608
|
+
var UNSUPPORTED_ERROR_MESSAGE = "This feature is not supported in the current environment";
|
|
1609
|
+
var ENVIRONMENT = getOperationalEnvironment5();
|
|
1610
|
+
function fetchTossAd(params) {
|
|
1611
|
+
if (!fetchTossAd.isSupported()) {
|
|
1612
|
+
params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
|
|
1613
|
+
return noop;
|
|
1614
|
+
}
|
|
1615
|
+
const { onEvent, onError, options } = params;
|
|
1616
|
+
const { adGroupId } = options;
|
|
1617
|
+
const unregisterCallbacks = INTERNAL__appBridgeHandler2.invokeAppBridgeMethod(
|
|
1618
|
+
"fetchTossAd",
|
|
1619
|
+
{ spaceUnitId: adGroupId, sessionId, sdkId: options.sdkId, availableStyleIds: options.availableStyleIds },
|
|
1620
|
+
{
|
|
1621
|
+
onSuccess: (response) => {
|
|
1622
|
+
onEvent(response);
|
|
1623
|
+
},
|
|
1624
|
+
onError: (error) => {
|
|
1625
|
+
onError(error);
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
);
|
|
1629
|
+
return unregisterCallbacks;
|
|
1630
|
+
}
|
|
1631
|
+
fetchTossAd.isSupported = () => {
|
|
1632
|
+
if (ENVIRONMENT !== "toss") {
|
|
1633
|
+
return false;
|
|
1634
|
+
}
|
|
1635
|
+
return isMinVersionSupported4({
|
|
1636
|
+
android: ANDROID_FETCH_TOSS_AD_SUPPORTED_VERSION,
|
|
1637
|
+
ios: IOS_FETCH_TOSS_AD_SUPPORTED_VERSION
|
|
1638
|
+
});
|
|
1639
|
+
};
|
|
1640
|
+
|
|
1641
|
+
// src/ads/integratedAd.ts
|
|
1642
|
+
import { GoogleAdMob, INTERNAL__appBridgeHandler as INTERNAL__appBridgeHandler3, isMinVersionSupported as isMinVersionSupported5 } from "@apps-in-toss/native-modules";
|
|
1643
|
+
|
|
1644
|
+
// src/ads/generateRequestId.ts
|
|
1645
|
+
function generateRequestId() {
|
|
1646
|
+
const timestamp = Date.now().toString(36).toUpperCase();
|
|
1647
|
+
const random = Math.random().toString(36).substring(2, 7).toUpperCase();
|
|
1648
|
+
return `ait-${timestamp}${random}`;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
// src/ads/getReferrer.ts
|
|
1652
|
+
import { getSchemeUri as getSchemeUri5 } from "@granite-js/react-native";
|
|
1653
|
+
function getReferrer() {
|
|
1654
|
+
try {
|
|
1655
|
+
return new URL(getSchemeUri5()).searchParams.get("referrer");
|
|
1656
|
+
} catch {
|
|
1657
|
+
return null;
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
// src/ads/remotes.ts
|
|
1662
|
+
import { getOperationalEnvironment as getOperationalEnvironment6, getPlatformOS, getTossAppVersion } from "@apps-in-toss/native-modules";
|
|
1663
|
+
|
|
1664
|
+
// src/ads/getIsDev.ts
|
|
1665
|
+
import { getSchemeUri as getSchemeUri6 } from "@granite-js/react-native";
|
|
1666
|
+
function getIsDev() {
|
|
1667
|
+
try {
|
|
1668
|
+
return new URL(getSchemeUri6()).searchParams.get("isDev") === "true";
|
|
1669
|
+
} catch {
|
|
1670
|
+
return false;
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
// src/ads/remotes.ts
|
|
1675
|
+
var OPERATIONAL_ENVIRONMENT = getOperationalEnvironment6();
|
|
1676
|
+
var OS = getPlatformOS();
|
|
1677
|
+
var APP_VER = getTossAppVersion();
|
|
1678
|
+
var ALPHA_EVENT_TRACKER_HTTP_ENDPOINT = "https://alpha-trillion.toss.im/trk/sdk-mediation/event";
|
|
1679
|
+
var LIVE_EVENT_TRACKER_HTTP_ENDPOINT = "https://trillion.toss.im/trk/sdk-mediation/event";
|
|
1680
|
+
function getPostEventTrackingUrl() {
|
|
1681
|
+
const isDev = getIsDev();
|
|
1682
|
+
if (OPERATIONAL_ENVIRONMENT === "sandbox" || isDev) {
|
|
1683
|
+
return ALPHA_EVENT_TRACKER_HTTP_ENDPOINT;
|
|
1684
|
+
}
|
|
1685
|
+
return LIVE_EVENT_TRACKER_HTTP_ENDPOINT;
|
|
1686
|
+
}
|
|
1687
|
+
function postEventTracking(params) {
|
|
1688
|
+
const endpoint = getPostEventTrackingUrl();
|
|
1689
|
+
const bodyJSON = JSON.stringify({
|
|
1690
|
+
...params,
|
|
1691
|
+
os: OS,
|
|
1692
|
+
appVer: APP_VER,
|
|
1693
|
+
deviceIdType: "NONE",
|
|
1694
|
+
platform: "RN"
|
|
1695
|
+
});
|
|
1696
|
+
return fetch(
|
|
1697
|
+
endpoint,
|
|
1698
|
+
{
|
|
1699
|
+
method: "POST",
|
|
1700
|
+
headers: {
|
|
1701
|
+
"Content-Type": "application/json"
|
|
1702
|
+
},
|
|
1703
|
+
body: bodyJSON
|
|
1704
|
+
}
|
|
1705
|
+
).catch(noop);
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
// src/ads/integratedAd.ts
|
|
1709
|
+
var INTEGRATED_AD_SDK_VERSION = "0.0.0";
|
|
1710
|
+
var ANDROID_INTEGRATED_AD_SUPPORTED_VERSION = "5.241.0";
|
|
1711
|
+
var IOS_INTEGRATED_AD_SUPPORTED_VERSION = "5.241.0";
|
|
1712
|
+
var UNSUPPORTED_ERROR_MESSAGE2 = "This feature is not supported in the current environment";
|
|
1713
|
+
var INTG_AD_ADM_FALLBACK_RID_MAP = {};
|
|
1714
|
+
function integratedAdIsSupported() {
|
|
1715
|
+
return isMinVersionSupported5({
|
|
1716
|
+
android: ANDROID_INTEGRATED_AD_SUPPORTED_VERSION,
|
|
1717
|
+
ios: IOS_INTEGRATED_AD_SUPPORTED_VERSION
|
|
1718
|
+
});
|
|
1719
|
+
}
|
|
1720
|
+
function generateLoadFullScreenAd(sdkId) {
|
|
1721
|
+
const fn = (params) => {
|
|
1722
|
+
if (!GoogleAdMob.loadAppsInTossAdMob.isSupported()) {
|
|
1723
|
+
params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE2));
|
|
1724
|
+
return noop;
|
|
1725
|
+
}
|
|
1726
|
+
if (!integratedAdIsSupported()) {
|
|
1727
|
+
return GoogleAdMob.loadAppsInTossAdMob({
|
|
1728
|
+
...params,
|
|
1729
|
+
onEvent: (event) => {
|
|
1730
|
+
if (event.type === "loaded") {
|
|
1731
|
+
const requestId = generateRequestId();
|
|
1732
|
+
INTG_AD_ADM_FALLBACK_RID_MAP[params.options.adGroupId] = requestId;
|
|
1733
|
+
postEventTracking({
|
|
1734
|
+
eventName: "LOAD",
|
|
1735
|
+
spaceUnitId: params.options.adGroupId,
|
|
1736
|
+
requestId,
|
|
1737
|
+
responseId: event.data.responseInfo.responseId,
|
|
1738
|
+
mediationType: "ADMOB",
|
|
1739
|
+
format: "",
|
|
1740
|
+
adSourceName: event.data.responseInfo.loadedAdNetworkInfo?.adSourceName ?? "",
|
|
1741
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1742
|
+
});
|
|
1743
|
+
}
|
|
1744
|
+
return params.onEvent(event);
|
|
1745
|
+
},
|
|
1746
|
+
onError: (error) => {
|
|
1747
|
+
const requestId = INTG_AD_ADM_FALLBACK_RID_MAP[params.options.adGroupId] ?? "";
|
|
1748
|
+
postEventTracking({
|
|
1749
|
+
eventName: "FAILED_TO_LOAD",
|
|
1750
|
+
spaceUnitId: params.options.adGroupId,
|
|
1751
|
+
requestId,
|
|
1752
|
+
responseId: "",
|
|
1753
|
+
mediationType: "ADMOB",
|
|
1754
|
+
format: "",
|
|
1755
|
+
adSourceName: "",
|
|
1756
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1757
|
+
});
|
|
1758
|
+
return params.onError(error);
|
|
1759
|
+
}
|
|
1760
|
+
});
|
|
1761
|
+
}
|
|
1762
|
+
const { onEvent, onError, options } = params;
|
|
1763
|
+
const { adGroupId } = options;
|
|
1764
|
+
const referrer = getReferrer();
|
|
1765
|
+
const unregisterCallbacks = INTERNAL__appBridgeHandler3.invokeAppBridgeMethod(
|
|
1766
|
+
"loadTossAdOrAdmob",
|
|
1767
|
+
{ spaceUnitId: adGroupId, referrer, sessionId, sdkId },
|
|
1768
|
+
{
|
|
1769
|
+
onSuccess: () => {
|
|
1770
|
+
onEvent({ type: "loaded" });
|
|
1771
|
+
},
|
|
1772
|
+
onError: (error) => {
|
|
1773
|
+
onError(error);
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
);
|
|
1777
|
+
return unregisterCallbacks;
|
|
1778
|
+
};
|
|
1779
|
+
fn.isSupported = GoogleAdMob.loadAppsInTossAdMob.isSupported;
|
|
1780
|
+
return fn;
|
|
1781
|
+
}
|
|
1782
|
+
var loadFullScreenAd = generateLoadFullScreenAd("107");
|
|
1783
|
+
var loadFullScreenAdForWeb = generateLoadFullScreenAd("107");
|
|
1784
|
+
function showFullScreenAd(params) {
|
|
1785
|
+
if (!GoogleAdMob.showAppsInTossAdMob.isSupported()) {
|
|
1786
|
+
params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE2));
|
|
1787
|
+
return noop;
|
|
1788
|
+
}
|
|
1789
|
+
if (!integratedAdIsSupported()) {
|
|
1790
|
+
return GoogleAdMob.showAppsInTossAdMob({
|
|
1791
|
+
...params,
|
|
1792
|
+
onEvent: (event) => {
|
|
1793
|
+
const requestId = INTG_AD_ADM_FALLBACK_RID_MAP[params.options.adGroupId] ?? "";
|
|
1794
|
+
switch (event.type) {
|
|
1795
|
+
case "show":
|
|
1796
|
+
postEventTracking({
|
|
1797
|
+
eventName: "SHOW",
|
|
1798
|
+
spaceUnitId: params.options.adGroupId,
|
|
1799
|
+
requestId,
|
|
1800
|
+
responseId: "",
|
|
1801
|
+
mediationType: "ADMOB",
|
|
1802
|
+
format: "",
|
|
1803
|
+
adSourceName: "",
|
|
1804
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1805
|
+
});
|
|
1806
|
+
break;
|
|
1807
|
+
case "failedToShow":
|
|
1808
|
+
postEventTracking({
|
|
1809
|
+
eventName: "FAILED_TO_SHOW",
|
|
1810
|
+
spaceUnitId: params.options.adGroupId,
|
|
1811
|
+
requestId,
|
|
1812
|
+
responseId: "",
|
|
1813
|
+
mediationType: "ADMOB",
|
|
1814
|
+
format: "",
|
|
1815
|
+
adSourceName: "",
|
|
1816
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1817
|
+
});
|
|
1818
|
+
break;
|
|
1819
|
+
case "impression":
|
|
1820
|
+
postEventTracking({
|
|
1821
|
+
eventName: "IMP",
|
|
1822
|
+
spaceUnitId: params.options.adGroupId,
|
|
1823
|
+
requestId,
|
|
1824
|
+
responseId: "",
|
|
1825
|
+
mediationType: "ADMOB",
|
|
1826
|
+
format: "",
|
|
1827
|
+
adSourceName: "",
|
|
1828
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1829
|
+
});
|
|
1830
|
+
break;
|
|
1831
|
+
case "clicked":
|
|
1832
|
+
postEventTracking({
|
|
1833
|
+
eventName: "CLICK",
|
|
1834
|
+
spaceUnitId: params.options.adGroupId,
|
|
1835
|
+
requestId,
|
|
1836
|
+
responseId: "",
|
|
1837
|
+
mediationType: "ADMOB",
|
|
1838
|
+
format: "",
|
|
1839
|
+
adSourceName: "",
|
|
1840
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1841
|
+
});
|
|
1842
|
+
break;
|
|
1843
|
+
case "dismissed":
|
|
1844
|
+
postEventTracking({
|
|
1845
|
+
eventName: "DISMISS",
|
|
1846
|
+
spaceUnitId: params.options.adGroupId,
|
|
1847
|
+
requestId,
|
|
1848
|
+
responseId: "",
|
|
1849
|
+
mediationType: "ADMOB",
|
|
1850
|
+
format: "",
|
|
1851
|
+
adSourceName: "",
|
|
1852
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1853
|
+
});
|
|
1854
|
+
break;
|
|
1855
|
+
case "userEarnedReward":
|
|
1856
|
+
postEventTracking({
|
|
1857
|
+
eventName: "USER_EARNED_REWARD",
|
|
1858
|
+
spaceUnitId: params.options.adGroupId,
|
|
1859
|
+
requestId,
|
|
1860
|
+
responseId: "",
|
|
1861
|
+
mediationType: "ADMOB",
|
|
1862
|
+
format: "",
|
|
1863
|
+
adSourceName: "",
|
|
1864
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1865
|
+
});
|
|
1866
|
+
break;
|
|
1867
|
+
}
|
|
1868
|
+
return params.onEvent(event);
|
|
1869
|
+
},
|
|
1870
|
+
onError: (error) => {
|
|
1871
|
+
const requestId = INTG_AD_ADM_FALLBACK_RID_MAP[params.options.adGroupId] ?? "";
|
|
1872
|
+
postEventTracking({
|
|
1873
|
+
eventName: "FAILED_TO_SHOW",
|
|
1874
|
+
spaceUnitId: params.options.adGroupId,
|
|
1875
|
+
requestId,
|
|
1876
|
+
responseId: "",
|
|
1877
|
+
mediationType: "ADMOB",
|
|
1878
|
+
format: "",
|
|
1879
|
+
adSourceName: "",
|
|
1880
|
+
sdkVer: INTEGRATED_AD_SDK_VERSION
|
|
1881
|
+
});
|
|
1882
|
+
return params.onError(error);
|
|
1883
|
+
}
|
|
1884
|
+
});
|
|
1885
|
+
}
|
|
1886
|
+
const { onEvent, onError, options } = params;
|
|
1887
|
+
const { adGroupId } = options;
|
|
1888
|
+
const referrer = getReferrer();
|
|
1889
|
+
const unregisterCallbacks = INTERNAL__appBridgeHandler3.invokeAppBridgeMethod(
|
|
1890
|
+
"showTossAdOrAdmob",
|
|
1891
|
+
{ spaceUnitId: adGroupId, referrer, sessionId },
|
|
1892
|
+
{
|
|
1893
|
+
onAdClicked: () => {
|
|
1894
|
+
onEvent({ type: "clicked" });
|
|
1895
|
+
},
|
|
1896
|
+
onAdDismissed: () => {
|
|
1897
|
+
onEvent({ type: "dismissed" });
|
|
1898
|
+
},
|
|
1899
|
+
onAdFailedToShow: () => {
|
|
1900
|
+
onEvent({ type: "failedToShow" });
|
|
1901
|
+
},
|
|
1902
|
+
onAdImpression: () => {
|
|
1903
|
+
onEvent({ type: "impression" });
|
|
1904
|
+
},
|
|
1905
|
+
onAdShow: () => {
|
|
1906
|
+
onEvent({ type: "show" });
|
|
1907
|
+
},
|
|
1908
|
+
onUserEarnedReward: (data) => {
|
|
1909
|
+
onEvent({ type: "userEarnedReward", data });
|
|
1910
|
+
},
|
|
1911
|
+
onSuccess: () => {
|
|
1912
|
+
onEvent({ type: "requested" });
|
|
1913
|
+
},
|
|
1914
|
+
onError: (error) => {
|
|
1915
|
+
onError(error);
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
);
|
|
1919
|
+
return unregisterCallbacks;
|
|
1920
|
+
}
|
|
1921
|
+
showFullScreenAd.isSupported = GoogleAdMob.showAppsInTossAdMob.isSupported;
|
|
1922
|
+
|
|
1923
|
+
// src/ads/tossAdEventLog.ts
|
|
1924
|
+
import { INTERNAL__module as INTERNAL__module6 } from "@apps-in-toss/native-modules";
|
|
1925
|
+
import { Granite as Granite8 } from "@granite-js/react-native";
|
|
1926
|
+
async function tossAdEventLog(params) {
|
|
1927
|
+
const referrer = getReferrer();
|
|
1928
|
+
const appName = Granite8.appName;
|
|
1929
|
+
const eventLogParams = {
|
|
1930
|
+
...params,
|
|
1931
|
+
params: {
|
|
1932
|
+
...params.params,
|
|
1933
|
+
referrer,
|
|
1934
|
+
app_name: appName
|
|
1935
|
+
}
|
|
1936
|
+
};
|
|
1937
|
+
return INTERNAL__module6.tossCoreEventLog(eventLogParams);
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1584
1940
|
// src/bridge-handler/useBridgeHandler.tsx
|
|
1585
1941
|
import { useCallback as useCallback10, useEffect as useEffect10, useMemo as useMemo3, useRef as useRef4 } from "react";
|
|
1586
1942
|
function serializeError(error) {
|
|
@@ -1905,7 +2261,7 @@ function mergeRefs(...refs) {
|
|
|
1905
2261
|
}
|
|
1906
2262
|
|
|
1907
2263
|
// src/hooks/useCreateUserAgent.ts
|
|
1908
|
-
import { getPlatformOS, getTossAppVersion } from "@apps-in-toss/native-modules";
|
|
2264
|
+
import { getPlatformOS as getPlatformOS2, getTossAppVersion as getTossAppVersion2 } from "@apps-in-toss/native-modules";
|
|
1909
2265
|
import { useWindowDimensions } from "react-native";
|
|
1910
2266
|
var FontA11yCategory = {
|
|
1911
2267
|
Large: "Large",
|
|
@@ -2039,8 +2395,8 @@ function useCreateUserAgent({
|
|
|
2039
2395
|
safeArea,
|
|
2040
2396
|
safeAreaBottomTransparency
|
|
2041
2397
|
}) {
|
|
2042
|
-
const platform =
|
|
2043
|
-
const appVersion =
|
|
2398
|
+
const platform = getPlatformOS2();
|
|
2399
|
+
const appVersion = getTossAppVersion2();
|
|
2044
2400
|
const { fontScale } = useWindowDimensions();
|
|
2045
2401
|
const platformString = platform === "ios" ? "iPhone" : "Android phone";
|
|
2046
2402
|
const fontA11y = mapFontScaleToCategory(fontScale, platform);
|
|
@@ -2126,7 +2482,7 @@ function useTopNavigation() {
|
|
|
2126
2482
|
|
|
2127
2483
|
// src/utils/log.ts
|
|
2128
2484
|
import { eventLog as eventLogNative } from "@apps-in-toss/native-modules";
|
|
2129
|
-
import { getSchemeUri as
|
|
2485
|
+
import { getSchemeUri as getSchemeUri7 } from "@granite-js/react-native";
|
|
2130
2486
|
|
|
2131
2487
|
// src/utils/extractDateFromUUIDv7.ts
|
|
2132
2488
|
var extractDateFromUUIDv7 = (uuid) => {
|
|
@@ -2150,9 +2506,9 @@ var getGroupId = (url) => {
|
|
|
2150
2506
|
};
|
|
2151
2507
|
}
|
|
2152
2508
|
};
|
|
2153
|
-
var
|
|
2509
|
+
var getReferrer2 = () => {
|
|
2154
2510
|
try {
|
|
2155
|
-
const referrer = new URL(
|
|
2511
|
+
const referrer = new URL(getSchemeUri7());
|
|
2156
2512
|
return referrer.searchParams.get("referrer");
|
|
2157
2513
|
} catch {
|
|
2158
2514
|
return "";
|
|
@@ -2165,7 +2521,7 @@ var trackScreen = (url) => {
|
|
|
2165
2521
|
log_name: `${groupId}::screen`,
|
|
2166
2522
|
params: {
|
|
2167
2523
|
search,
|
|
2168
|
-
referrer:
|
|
2524
|
+
referrer: getReferrer2(),
|
|
2169
2525
|
deployment_id: env.getDeploymentId(),
|
|
2170
2526
|
deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
|
|
2171
2527
|
}
|
|
@@ -2184,7 +2540,7 @@ var WEBVIEW_TYPES = {
|
|
|
2184
2540
|
};
|
|
2185
2541
|
function mergeSchemeQueryParamsInto(url) {
|
|
2186
2542
|
const baseUrl = new URL(url);
|
|
2187
|
-
const schemeUrl = new URL(
|
|
2543
|
+
const schemeUrl = new URL(getSchemeUri8());
|
|
2188
2544
|
baseUrl.pathname = schemeUrl.pathname;
|
|
2189
2545
|
for (const [key, value] of schemeUrl.searchParams.entries()) {
|
|
2190
2546
|
baseUrl.searchParams.set(key, value);
|
|
@@ -2241,13 +2597,18 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2241
2597
|
/** @internal */
|
|
2242
2598
|
appBridgeCallbackEvent: ({ onEvent, onError, options }) => appsInTossEvent.addEventListener("appBridgeCallbackEvent", { onEvent, onError, options }),
|
|
2243
2599
|
/** AdMob */
|
|
2244
|
-
loadAdMobInterstitialAd:
|
|
2245
|
-
showAdMobInterstitialAd:
|
|
2246
|
-
loadAdMobRewardedAd:
|
|
2247
|
-
showAdMobRewardedAd:
|
|
2600
|
+
loadAdMobInterstitialAd: GoogleAdMob2.loadAdMobInterstitialAd,
|
|
2601
|
+
showAdMobInterstitialAd: GoogleAdMob2.showAdMobInterstitialAd,
|
|
2602
|
+
loadAdMobRewardedAd: GoogleAdMob2.loadAdMobRewardedAd,
|
|
2603
|
+
showAdMobRewardedAd: GoogleAdMob2.showAdMobRewardedAd,
|
|
2248
2604
|
/** AdMobV2 */
|
|
2249
|
-
loadAppsInTossAdMob:
|
|
2250
|
-
showAppsInTossAdMob:
|
|
2605
|
+
loadAppsInTossAdMob: GoogleAdMob2.loadAppsInTossAdMob,
|
|
2606
|
+
showAppsInTossAdMob: GoogleAdMob2.showAppsInTossAdMob,
|
|
2607
|
+
/** IntegratedAd */
|
|
2608
|
+
loadFullScreenAd: loadFullScreenAdForWeb,
|
|
2609
|
+
showFullScreenAd,
|
|
2610
|
+
/** TossAd */
|
|
2611
|
+
fetchTossAd,
|
|
2251
2612
|
/** IAP */
|
|
2252
2613
|
iapCreateOneTimePurchaseOrder: IAP.createOneTimePurchaseOrder,
|
|
2253
2614
|
requestOneTimePurchase
|
|
@@ -2260,13 +2621,18 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2260
2621
|
getSafeAreaRight: () => insets.right,
|
|
2261
2622
|
...Object.fromEntries(Object.entries(global2).map(([key, value]) => [key, () => value])),
|
|
2262
2623
|
/** AdMob */
|
|
2263
|
-
loadAdMobInterstitialAd_isSupported:
|
|
2264
|
-
showAdMobInterstitialAd_isSupported:
|
|
2265
|
-
loadAdMobRewardedAd_isSupported:
|
|
2266
|
-
showAdMobRewardedAd_isSupported:
|
|
2624
|
+
loadAdMobInterstitialAd_isSupported: GoogleAdMob2.loadAdMobInterstitialAd.isSupported,
|
|
2625
|
+
showAdMobInterstitialAd_isSupported: GoogleAdMob2.showAdMobInterstitialAd.isSupported,
|
|
2626
|
+
loadAdMobRewardedAd_isSupported: GoogleAdMob2.loadAdMobRewardedAd.isSupported,
|
|
2627
|
+
showAdMobRewardedAd_isSupported: GoogleAdMob2.showAdMobRewardedAd.isSupported,
|
|
2267
2628
|
/** AdMobV2 */
|
|
2268
|
-
loadAppsInTossAdMob_isSupported:
|
|
2269
|
-
showAppsInTossAdMob_isSupported:
|
|
2629
|
+
loadAppsInTossAdMob_isSupported: GoogleAdMob2.loadAppsInTossAdMob.isSupported,
|
|
2630
|
+
showAppsInTossAdMob_isSupported: GoogleAdMob2.showAppsInTossAdMob.isSupported,
|
|
2631
|
+
/** IntegratedAd */
|
|
2632
|
+
loadFullScreenAd_isSupported: loadFullScreenAdForWeb.isSupported,
|
|
2633
|
+
showFullScreenAd_isSupported: showFullScreenAd.isSupported,
|
|
2634
|
+
/** TossAd */
|
|
2635
|
+
fetchTossAd_isSupported: fetchTossAd.isSupported,
|
|
2270
2636
|
/** env */
|
|
2271
2637
|
getDeploymentId: env.getDeploymentId
|
|
2272
2638
|
},
|
|
@@ -2300,8 +2666,8 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2300
2666
|
getPendingOrders: IAP.getPendingOrders,
|
|
2301
2667
|
getCompletedOrRefundedOrders: IAP.getCompletedOrRefundedOrders,
|
|
2302
2668
|
completeProductGrant: IAP.completeProductGrant,
|
|
2303
|
-
|
|
2304
|
-
|
|
2669
|
+
/** Toss Ads */
|
|
2670
|
+
tossAdEventLog
|
|
2305
2671
|
}
|
|
2306
2672
|
});
|
|
2307
2673
|
const headerPropForExternalWebView = useMemo7(() => {
|
|
@@ -2387,41 +2753,10 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
2387
2753
|
"servicetoss://*",
|
|
2388
2754
|
"supertoss://*",
|
|
2389
2755
|
"intent://*"
|
|
2390
|
-
]
|
|
2391
|
-
onContentProcessDidTerminate: (event) => {
|
|
2392
|
-
webViewProcessDidTerminateEventLog(event.nativeEvent.url);
|
|
2393
|
-
webViewRef.current?.reload();
|
|
2394
|
-
},
|
|
2395
|
-
onRenderProcessGone: () => {
|
|
2396
|
-
webViewProcessDidTerminateEventLog();
|
|
2397
|
-
webViewRef.current?.reload();
|
|
2398
|
-
}
|
|
2756
|
+
]
|
|
2399
2757
|
}
|
|
2400
2758
|
);
|
|
2401
2759
|
}
|
|
2402
|
-
async function webViewMemoryDebugLog(params) {
|
|
2403
|
-
webViewDebugLog("AppsInTossWebViewMemoryDebug", params);
|
|
2404
|
-
}
|
|
2405
|
-
function webViewProcessDidTerminateEventLog(url) {
|
|
2406
|
-
webViewDebugLog("AppsInTossWebViewProcessDidTerminate", { url });
|
|
2407
|
-
}
|
|
2408
|
-
function webViewDebugLog(logName, params) {
|
|
2409
|
-
const global2 = getAppsInTossGlobals();
|
|
2410
|
-
const event = {
|
|
2411
|
-
log_name: logName,
|
|
2412
|
-
log_type: "debug",
|
|
2413
|
-
params: {
|
|
2414
|
-
...params,
|
|
2415
|
-
app_name: Granite8.appName,
|
|
2416
|
-
deployment_id: global2.deploymentId
|
|
2417
|
-
}
|
|
2418
|
-
};
|
|
2419
|
-
if (getOperationalEnvironment5() === "toss") {
|
|
2420
|
-
INTERNAL__module6.tossCoreEventLog(event);
|
|
2421
|
-
} else {
|
|
2422
|
-
console.log("[webViewDebugLog]", event);
|
|
2423
|
-
}
|
|
2424
|
-
}
|
|
2425
2760
|
function useGlobalScripts() {
|
|
2426
2761
|
const global2 = getAppsInTossGlobals();
|
|
2427
2762
|
const disableTextSelectionCSS = `
|
|
@@ -2502,6 +2837,8 @@ export {
|
|
|
2502
2837
|
OverlayProvider,
|
|
2503
2838
|
WebView,
|
|
2504
2839
|
env,
|
|
2840
|
+
loadFullScreenAd,
|
|
2841
|
+
showFullScreenAd,
|
|
2505
2842
|
useCreateUserAgent,
|
|
2506
2843
|
useGeolocation,
|
|
2507
2844
|
useOverlay3 as useOverlay,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/framework",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-dev.
|
|
4
|
+
"version": "0.0.0-dev.1765876894045",
|
|
5
5
|
"description": "The framework for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"prepack": "yarn build",
|
|
@@ -56,11 +56,11 @@
|
|
|
56
56
|
"ait": "./bin/ait.js"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@apps-in-toss/analytics": "0.0.0-dev.
|
|
60
|
-
"@apps-in-toss/cli": "0.0.0-dev.
|
|
61
|
-
"@apps-in-toss/native-modules": "0.0.0-dev.
|
|
62
|
-
"@apps-in-toss/plugins": "0.0.0-dev.
|
|
63
|
-
"@apps-in-toss/types": "0.0.0-dev.
|
|
59
|
+
"@apps-in-toss/analytics": "0.0.0-dev.1765876894045",
|
|
60
|
+
"@apps-in-toss/cli": "0.0.0-dev.1765876894045",
|
|
61
|
+
"@apps-in-toss/native-modules": "0.0.0-dev.1765876894045",
|
|
62
|
+
"@apps-in-toss/plugins": "0.0.0-dev.1765876894045",
|
|
63
|
+
"@apps-in-toss/types": "0.0.0-dev.1765876894045",
|
|
64
64
|
"es-hangul": "^2.3.2"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"publishConfig": {
|
|
97
97
|
"access": "public"
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "90c26c9a29c75e0f88fe7cc78f42b91455a4aa83"
|
|
100
100
|
}
|