@multiplatform.one/core 7.83.0 → 7.83.2
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/cjs/app/CreateApp.cjs +233 -0
- package/dist/cjs/app/CreateApp.native.js +253 -0
- package/dist/cjs/app/CreateApp.native.js.map +1 -0
- package/dist/cjs/app/CreateRootLayout.cjs +181 -0
- package/dist/cjs/app/CreateRootLayout.native.js +115 -0
- package/dist/cjs/app/CreateRootLayout.native.js.map +1 -0
- package/dist/cjs/app/RuntimePublicConfigScript.cjs +40 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js +48 -0
- package/dist/cjs/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/cjs/app/TanstackDevtools.cjs +145 -0
- package/dist/cjs/app/TanstackDevtools.native.js +163 -0
- package/dist/cjs/app/TanstackDevtools.native.js.map +1 -0
- package/dist/cjs/app/TanstackProvider.cjs +81 -0
- package/dist/cjs/app/TanstackProvider.native.js +56 -0
- package/dist/cjs/app/TanstackProvider.native.js.map +1 -0
- package/dist/cjs/app/deepLinkPath.cjs +41 -0
- package/dist/cjs/app/deepLinkPath.native.js +46 -0
- package/dist/cjs/app/deepLinkPath.native.js.map +1 -0
- package/dist/cjs/app/devtoolsTrigger.cjs +281 -0
- package/dist/cjs/app/devtoolsTrigger.native.js +338 -0
- package/dist/cjs/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/cjs/app/frappeSocketPort.cjs +40 -0
- package/dist/cjs/app/frappeSocketPort.native.js +45 -0
- package/dist/cjs/app/frappeSocketPort.native.js.map +1 -0
- package/dist/cjs/app/frappeSyncOptions.cjs +43 -0
- package/dist/cjs/app/frappeSyncOptions.native.js +46 -0
- package/dist/cjs/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/cjs/app/index.cjs +22 -0
- package/dist/cjs/app/index.native.js +25 -0
- package/dist/cjs/app/index.native.js.map +1 -0
- package/dist/cjs/app/loadWalletProvider.cjs +32 -0
- package/dist/cjs/app/loadWalletProvider.native.js +44 -0
- package/dist/cjs/app/loadWalletProvider.native.js.map +1 -0
- package/dist/cjs/app/oneFrappeNavigation.cjs +45 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js +52 -0
- package/dist/cjs/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/cjs/app/rootLayoutShared.cjs +18 -0
- package/dist/cjs/app/rootLayoutShared.native.js +21 -0
- package/dist/cjs/app/rootLayoutShared.native.js.map +1 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.cjs +50 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js +55 -0
- package/dist/cjs/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/cjs/app/useNativeDeepLinks.cjs +28 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js +56 -0
- package/dist/cjs/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/cjs/healthz.cjs +32 -0
- package/dist/cjs/healthz.native.js +35 -0
- package/dist/cjs/healthz.native.js.map +1 -0
- package/dist/cjs/index.cjs +21 -0
- package/dist/cjs/index.native.js +24 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/layouts/CreateDefaultLayout.cjs +99 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js +105 -0
- package/dist/cjs/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/cjs/layouts/index.cjs +28 -0
- package/dist/cjs/layouts/index.native.js +31 -0
- package/dist/cjs/layouts/index.native.js.map +1 -0
- package/dist/esm/app/CreateApp.mjs +196 -0
- package/dist/esm/app/CreateApp.mjs.map +1 -0
- package/dist/esm/app/CreateApp.native.js +213 -0
- package/dist/esm/app/CreateApp.native.js.map +1 -0
- package/dist/esm/app/CreateRootLayout.mjs +145 -0
- package/dist/esm/app/CreateRootLayout.mjs.map +1 -0
- package/dist/esm/app/CreateRootLayout.native.js +76 -0
- package/dist/esm/app/CreateRootLayout.native.js.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs +15 -0
- package/dist/esm/app/RuntimePublicConfigScript.mjs.map +1 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js +20 -0
- package/dist/esm/app/RuntimePublicConfigScript.native.js.map +1 -0
- package/dist/esm/app/TanstackDevtools.mjs +109 -0
- package/dist/esm/app/TanstackDevtools.mjs.map +1 -0
- package/dist/esm/app/TanstackDevtools.native.js +124 -0
- package/dist/esm/app/TanstackDevtools.native.js.map +1 -0
- package/dist/esm/app/TanstackProvider.mjs +45 -0
- package/dist/esm/app/TanstackProvider.mjs.map +1 -0
- package/dist/esm/app/TanstackProvider.native.js +28 -0
- package/dist/esm/app/TanstackProvider.native.js.map +1 -0
- package/dist/esm/app/deepLinkPath.mjs +16 -0
- package/dist/esm/app/deepLinkPath.mjs.map +1 -0
- package/dist/esm/app/deepLinkPath.native.js +18 -0
- package/dist/esm/app/deepLinkPath.native.js.map +1 -0
- package/dist/esm/app/devtoolsTrigger.mjs +238 -0
- package/dist/esm/app/devtoolsTrigger.mjs.map +1 -0
- package/dist/esm/app/devtoolsTrigger.native.js +292 -0
- package/dist/esm/app/devtoolsTrigger.native.js.map +1 -0
- package/dist/esm/app/frappeSocketPort.mjs +15 -0
- package/dist/esm/app/frappeSocketPort.mjs.map +1 -0
- package/dist/esm/app/frappeSocketPort.native.js +17 -0
- package/dist/esm/app/frappeSocketPort.native.js.map +1 -0
- package/dist/esm/app/frappeSyncOptions.mjs +18 -0
- package/dist/esm/app/frappeSyncOptions.mjs.map +1 -0
- package/dist/esm/app/frappeSyncOptions.native.js +18 -0
- package/dist/esm/app/frappeSyncOptions.native.js.map +1 -0
- package/dist/esm/app/index.mjs +4 -0
- package/dist/esm/app/index.mjs.map +1 -0
- package/dist/esm/app/index.native.js +4 -0
- package/dist/esm/app/index.native.js.map +1 -0
- package/dist/esm/app/loadWalletProvider.mjs +7 -0
- package/dist/esm/app/loadWalletProvider.mjs.map +1 -0
- package/dist/esm/app/loadWalletProvider.native.js +16 -0
- package/dist/esm/app/loadWalletProvider.native.js.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.mjs +20 -0
- package/dist/esm/app/oneFrappeNavigation.mjs.map +1 -0
- package/dist/esm/app/oneFrappeNavigation.native.js +24 -0
- package/dist/esm/app/oneFrappeNavigation.native.js.map +1 -0
- package/dist/esm/app/rootLayoutShared.mjs +2 -0
- package/dist/esm/app/rootLayoutShared.mjs.map +1 -0
- package/dist/esm/app/rootLayoutShared.native.js +2 -0
- package/dist/esm/app/rootLayoutShared.native.js.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs +25 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.mjs.map +1 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js +27 -0
- package/dist/esm/app/runtimePublicConfigMiddleware.native.js.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.mjs +3 -0
- package/dist/esm/app/useNativeDeepLinks.mjs.map +1 -0
- package/dist/esm/app/useNativeDeepLinks.native.js +28 -0
- package/dist/esm/app/useNativeDeepLinks.native.js.map +1 -0
- package/dist/esm/healthz.mjs +7 -0
- package/dist/esm/healthz.mjs.map +1 -0
- package/dist/esm/healthz.native.js +7 -0
- package/dist/esm/healthz.native.js.map +1 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs +74 -0
- package/dist/esm/layouts/CreateDefaultLayout.mjs.map +1 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js +77 -0
- package/dist/esm/layouts/CreateDefaultLayout.native.js.map +1 -0
- package/dist/esm/layouts/index.mjs +3 -0
- package/dist/esm/layouts/index.mjs.map +1 -0
- package/dist/esm/layouts/index.native.js +3 -0
- package/dist/esm/layouts/index.native.js.map +1 -0
- package/package.json +32 -16
- package/src/app/CreateApp.frappeAuth.spec.tsx +73 -0
- package/src/app/CreateApp.tsx +23 -23
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
34
|
+
var CreateApp_exports = {};
|
|
35
|
+
__export(CreateApp_exports, {
|
|
36
|
+
createApp: () => createApp,
|
|
37
|
+
followPageOriginForLoopback: () => followPageOriginForLoopback
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(CreateApp_exports);
|
|
40
|
+
var import_react = require("react");
|
|
41
|
+
var import_platform = require("@multiplatform.one/platform");
|
|
42
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
43
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
44
|
+
var import_frappeSocketPort = require("./frappeSocketPort.cjs");
|
|
45
|
+
var import_frappeSyncOptions = require("./frappeSyncOptions.cjs");
|
|
46
|
+
var import_oneFrappeNavigation = require("./oneFrappeNavigation.cjs");
|
|
47
|
+
var import_TanstackProvider = require("./TanstackProvider.cjs");
|
|
48
|
+
var import_loadWalletProvider = __toESM(require("./loadWalletProvider.cjs"));
|
|
49
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
50
|
+
const LOOPBACK_HOSTS = /* @__PURE__ */new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
51
|
+
function currentPageLocation() {
|
|
52
|
+
if (typeof window === "undefined" || !window.location?.hostname) return void 0;
|
|
53
|
+
return window.location;
|
|
54
|
+
}
|
|
55
|
+
function followPageOriginForLoopback(configured, page = currentPageLocation(), dev = import_platform.isDev) {
|
|
56
|
+
if (!page?.hostname) return configured;
|
|
57
|
+
try {
|
|
58
|
+
const url = new URL(configured);
|
|
59
|
+
if (!LOOPBACK_HOSTS.has(url.hostname) || LOOPBACK_HOSTS.has(page.hostname)) return configured;
|
|
60
|
+
url.hostname = page.hostname;
|
|
61
|
+
if (!dev && (page.protocol === "https:" || page.protocol === "http:")) {
|
|
62
|
+
url.protocol = page.protocol;
|
|
63
|
+
url.port = page.port;
|
|
64
|
+
}
|
|
65
|
+
return url.toString().replace(/\/$/, "");
|
|
66
|
+
} catch {
|
|
67
|
+
return configured;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const AppConfigContext = (0, import_react.createContext)({});
|
|
71
|
+
function createApp(appConfig) {
|
|
72
|
+
const builtinProviders = [];
|
|
73
|
+
if (appConfig.tanstack) {
|
|
74
|
+
const cfg = appConfig.tanstack === true ? {} : {
|
|
75
|
+
...appConfig.tanstack
|
|
76
|
+
};
|
|
77
|
+
if (appConfig.theme?.tamagui && !cfg.tamaguiConfig) {
|
|
78
|
+
cfg.tamaguiConfig = appConfig.theme.tamagui;
|
|
79
|
+
}
|
|
80
|
+
builtinProviders.push((0, import_TanstackProvider.createTanstackProvider)(cfg));
|
|
81
|
+
}
|
|
82
|
+
if (appConfig.web3) {
|
|
83
|
+
let Web3Provider = function ({
|
|
84
|
+
children
|
|
85
|
+
}) {
|
|
86
|
+
const enabled = cfg.enabled ?? import_platform.config.get("WEB3_ENABLED") === "1";
|
|
87
|
+
if (!enabled) return children;
|
|
88
|
+
if (import_platform.isWeb) return children;
|
|
89
|
+
const testnetsEnabled = cfg.enableTestnets ?? import_platform.config.get("WEB3_TESTNETS_ENABLED") === "1";
|
|
90
|
+
const WalletWithChildren = import_loadWalletProvider.default;
|
|
91
|
+
return (
|
|
92
|
+
// fallback must NOT be `children`: rendering web3-consuming screens before
|
|
93
|
+
// the lazy WagmiProvider loads throws "useConfig must be used within WagmiProvider".
|
|
94
|
+
/* @__PURE__ */
|
|
95
|
+
(0, import_jsx_runtime.jsx)(import_react.Suspense, {
|
|
96
|
+
fallback: null,
|
|
97
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(WalletWithChildren, {
|
|
98
|
+
config: {
|
|
99
|
+
appName: cfg.appName || "Multiplatform.one",
|
|
100
|
+
appDescription: cfg.appDescription || "Connect your wallet",
|
|
101
|
+
appUrl: cfg.appUrl || (import_platform.isWeb && typeof window !== "undefined" ? window.location.origin : ""),
|
|
102
|
+
appIcon: cfg.appIcon,
|
|
103
|
+
enableTestnets: testnetsEnabled,
|
|
104
|
+
localnet: cfg.localnet ?? import_platform.config.get("WEB3_LOCALNET_ENABLED") === "1",
|
|
105
|
+
localnetRpcUrl: cfg.localnetRpcUrl || import_platform.config.get("WEB3_EVM_RPC") || void 0,
|
|
106
|
+
solanaRpcUrl: cfg.solanaRpcUrl || import_platform.config.get("WEB3_SOLANA_RPC") || void 0,
|
|
107
|
+
suiRpcUrl: cfg.suiRpcUrl || import_platform.config.get("WEB3_SUI_RPC") || void 0,
|
|
108
|
+
webViewUrl: cfg.webViewUrl || import_platform.config.get("WEB3_WEBVIEW_URL") || void 0,
|
|
109
|
+
mockWallet: cfg.mockWallet ?? import_platform.config.get("WEB3_MOCK_WALLET") === "1"
|
|
110
|
+
},
|
|
111
|
+
children
|
|
112
|
+
})
|
|
113
|
+
})
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
const cfg = appConfig.web3 === true ? {} : appConfig.web3;
|
|
117
|
+
Web3Provider.displayName = "Web3Provider";
|
|
118
|
+
builtinProviders.push(Web3Provider);
|
|
119
|
+
}
|
|
120
|
+
if (appConfig.keycloak) {
|
|
121
|
+
let KeycloakProviderWrapper = function ({
|
|
122
|
+
children
|
|
123
|
+
}) {
|
|
124
|
+
const enabled = cfg.enabled ?? import_platform.config.get("KEYCLOAK_ENABLED") === "1";
|
|
125
|
+
if (!enabled) return children;
|
|
126
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.Suspense, {
|
|
127
|
+
fallback: children,
|
|
128
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(LazyKeycloakProvider, {
|
|
129
|
+
disabled: false,
|
|
130
|
+
debug: cfg.debug ?? import_platform.config.get("DEBUG") === "1",
|
|
131
|
+
baseUrl: cfg.baseUrl || import_platform.config.get("KEYCLOAK_BASE_URL") || `${import_platform.config.get("BASE_URL") || ""}/auth`,
|
|
132
|
+
clientId: cfg.clientId || import_platform.config.get("KEYCLOAK_CLIENT_ID"),
|
|
133
|
+
publicClientId: cfg.publicClientId || import_platform.config.get("KEYCLOAK_PUBLIC_CLIENT_ID"),
|
|
134
|
+
realm: cfg.realm || import_platform.config.get("KEYCLOAK_REALM") || "",
|
|
135
|
+
iframeSso: cfg.iframeSso,
|
|
136
|
+
loginRedirectUri: cfg.loginRedirectUri,
|
|
137
|
+
messageHandlerKeys: cfg.messageHandlerKeys || [],
|
|
138
|
+
betterAuthBaseUrl: cfg.betterAuthBaseUrl || import_platform.config.get("BETTER_AUTH_BASE_URL") || import_platform.config.get("BASE_URL") || void 0,
|
|
139
|
+
expoScheme: cfg.expoScheme,
|
|
140
|
+
loadingComponent: cfg.loadingComponent,
|
|
141
|
+
children
|
|
142
|
+
})
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
const cfg = appConfig.keycloak === true ? {} : appConfig.keycloak;
|
|
146
|
+
const LazyKeycloakProvider = (0, import_react.lazy)(async () => {
|
|
147
|
+
const mod = await import("@multiplatform.one/keycloak");
|
|
148
|
+
return {
|
|
149
|
+
default: mod.KeycloakProvider
|
|
150
|
+
};
|
|
151
|
+
});
|
|
152
|
+
KeycloakProviderWrapper.displayName = "KeycloakProvider";
|
|
153
|
+
builtinProviders.push(KeycloakProviderWrapper);
|
|
154
|
+
}
|
|
155
|
+
if (appConfig.frappe) {
|
|
156
|
+
let FrappeProviderWrapper = function ({
|
|
157
|
+
children
|
|
158
|
+
}) {
|
|
159
|
+
const configuredCatchUp = import_platform.config.get("FRAPPE_CATCH_UP_STRATEGY");
|
|
160
|
+
const configuredWrite = import_platform.config.get("FRAPPE_WRITE_STRATEGY");
|
|
161
|
+
const syncOptions = (0, import_react.useMemo)(() => (0, import_frappeSyncOptions.frappeSyncOptions)(cfg.syncOptions, configuredCatchUp, configuredWrite), [configuredCatchUp, configuredWrite]);
|
|
162
|
+
const enabled = cfg.enabled ?? (!!cfg.fixtures || import_platform.config.get("FRAPPE_ENABLED") === "1");
|
|
163
|
+
if (!enabled) return children;
|
|
164
|
+
const configured = cfg.fixtures ? cfg.baseURL : cfg.baseURL || import_platform.config.get("BASE_URL") || "http://localhost:8000";
|
|
165
|
+
const baseURL = configured ? followPageOriginForLoopback(configured) : void 0;
|
|
166
|
+
const socketPort = cfg.socketPort ?? (0, import_frappeSocketPort.frappeSocketPort)(import_platform.config.get("FRAPPE_SOCKETIO_PORT"), baseURL);
|
|
167
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_frappe_ui.FrappeProvider, {
|
|
168
|
+
baseURL,
|
|
169
|
+
realtime: cfg.realtime,
|
|
170
|
+
socketPort,
|
|
171
|
+
auth,
|
|
172
|
+
syncOptions,
|
|
173
|
+
fixtures: cfg.fixtures,
|
|
174
|
+
navigation: import_oneFrappeNavigation.oneFrappeNavigation,
|
|
175
|
+
children
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
const cfg = appConfig.frappe === true ? {} : appConfig.frappe;
|
|
179
|
+
const auth = cfg.auth ?? (appConfig.keycloak ? {
|
|
180
|
+
useToken: true,
|
|
181
|
+
type: "Bearer",
|
|
182
|
+
token: async () => {
|
|
183
|
+
const mod = await import("@multiplatform.one/keycloak");
|
|
184
|
+
return (await mod.getKeycloakBearerToken()) || "";
|
|
185
|
+
}
|
|
186
|
+
} : void 0);
|
|
187
|
+
FrappeProviderWrapper.displayName = "FrappeProvider";
|
|
188
|
+
builtinProviders.push(FrappeProviderWrapper);
|
|
189
|
+
}
|
|
190
|
+
const allProviders = [...builtinProviders, ...(appConfig.providers || [])];
|
|
191
|
+
function AppProvider({
|
|
192
|
+
children,
|
|
193
|
+
systemTheme,
|
|
194
|
+
themeConfig
|
|
195
|
+
}) {
|
|
196
|
+
const theme = themeConfig || appConfig.theme;
|
|
197
|
+
let content = theme ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.ThemeProvider, {
|
|
198
|
+
config: theme,
|
|
199
|
+
systemTheme,
|
|
200
|
+
children
|
|
201
|
+
}) : children;
|
|
202
|
+
for (let i = allProviders.length - 1; i >= 0; i--) {
|
|
203
|
+
const Provider = allProviders[i];
|
|
204
|
+
content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(Provider, {
|
|
205
|
+
children: content
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AppConfigContext.Provider, {
|
|
209
|
+
value: appConfig,
|
|
210
|
+
children: content
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
AppProvider.displayName = "AppProvider";
|
|
214
|
+
function withApp(Screen) {
|
|
215
|
+
function WrappedScreen(props) {
|
|
216
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AppProvider, {
|
|
217
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Screen, {
|
|
218
|
+
...props
|
|
219
|
+
})
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
WrappedScreen.displayName = `withApp(${Screen.displayName || Screen.name || "Component"})`;
|
|
223
|
+
return WrappedScreen;
|
|
224
|
+
}
|
|
225
|
+
function useAppConfig() {
|
|
226
|
+
return (0, import_react.useContext)(AppConfigContext);
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
AppProvider,
|
|
230
|
+
withApp,
|
|
231
|
+
useAppConfig
|
|
232
|
+
};
|
|
233
|
+
}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
18
|
+
get: () => from[key],
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
36
|
+
var CreateApp_exports = {};
|
|
37
|
+
__export(CreateApp_exports, {
|
|
38
|
+
createApp: () => createApp,
|
|
39
|
+
followPageOriginForLoopback: () => followPageOriginForLoopback
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(CreateApp_exports);
|
|
42
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
43
|
+
var import_react = __toESM(require("react"));
|
|
44
|
+
var import_platform = require("@multiplatform.one/platform");
|
|
45
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
46
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
47
|
+
var import_frappeSocketPort = require("./frappeSocketPort.native.js");
|
|
48
|
+
var import_frappeSyncOptions = require("./frappeSyncOptions.native.js");
|
|
49
|
+
var import_oneFrappeNavigation = require("./oneFrappeNavigation.native.js");
|
|
50
|
+
var import_TanstackProvider = require("./TanstackProvider.native.js");
|
|
51
|
+
var import_loadWalletProvider = __toESM(require("./loadWalletProvider.native.js"));
|
|
52
|
+
var LOOPBACK_HOSTS = /* @__PURE__ */new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
53
|
+
function currentPageLocation() {
|
|
54
|
+
var _window_location;
|
|
55
|
+
if (typeof window === "undefined" || !((_window_location = window.location) === null || _window_location === void 0 ? void 0 : _window_location.hostname)) return void 0;
|
|
56
|
+
return window.location;
|
|
57
|
+
}
|
|
58
|
+
function followPageOriginForLoopback(configured) {
|
|
59
|
+
var page = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : currentPageLocation(),
|
|
60
|
+
dev = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : import_platform.isDev;
|
|
61
|
+
if (!(page === null || page === void 0 ? void 0 : page.hostname)) return configured;
|
|
62
|
+
try {
|
|
63
|
+
var url = new URL(configured);
|
|
64
|
+
if (!LOOPBACK_HOSTS.has(url.hostname) || LOOPBACK_HOSTS.has(page.hostname)) return configured;
|
|
65
|
+
url.hostname = page.hostname;
|
|
66
|
+
if (!dev && (page.protocol === "https:" || page.protocol === "http:")) {
|
|
67
|
+
url.protocol = page.protocol;
|
|
68
|
+
url.port = page.port;
|
|
69
|
+
}
|
|
70
|
+
return url.toString().replace(/\/$/, "");
|
|
71
|
+
} catch (unused) {
|
|
72
|
+
return configured;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
var AppConfigContext = /* @__PURE__ */(0, import_react.createContext)({});
|
|
76
|
+
function createApp(appConfig) {
|
|
77
|
+
var builtinProviders = [];
|
|
78
|
+
if (appConfig.tanstack) {
|
|
79
|
+
var _appConfig_theme;
|
|
80
|
+
var cfg = appConfig.tanstack === true ? {} : {
|
|
81
|
+
...appConfig.tanstack
|
|
82
|
+
};
|
|
83
|
+
if (((_appConfig_theme = appConfig.theme) === null || _appConfig_theme === void 0 ? void 0 : _appConfig_theme.tamagui) && !cfg.tamaguiConfig) {
|
|
84
|
+
cfg.tamaguiConfig = appConfig.theme.tamagui;
|
|
85
|
+
}
|
|
86
|
+
builtinProviders.push((0, import_TanstackProvider.createTanstackProvider)(cfg));
|
|
87
|
+
}
|
|
88
|
+
if (appConfig.web3) {
|
|
89
|
+
let Web3Provider2 = function (param) {
|
|
90
|
+
var {
|
|
91
|
+
children
|
|
92
|
+
} = param;
|
|
93
|
+
var _cfg_enabled, _cfg_enableTestnets, _cfg_localnet, _cfg_mockWallet;
|
|
94
|
+
var enabled = (_cfg_enabled = cfg1.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : import_platform.config.get("WEB3_ENABLED") === "1";
|
|
95
|
+
if (!enabled) return children;
|
|
96
|
+
if (import_platform.isWeb) return children;
|
|
97
|
+
var testnetsEnabled = (_cfg_enableTestnets = cfg1.enableTestnets) !== null && _cfg_enableTestnets !== void 0 ? _cfg_enableTestnets : import_platform.config.get("WEB3_TESTNETS_ENABLED") === "1";
|
|
98
|
+
var WalletWithChildren = import_loadWalletProvider.default;
|
|
99
|
+
return (
|
|
100
|
+
// fallback must NOT be `children`: rendering web3-consuming screens before
|
|
101
|
+
// the lazy WagmiProvider loads throws "useConfig must be used within WagmiProvider".
|
|
102
|
+
/* @__PURE__ */
|
|
103
|
+
(0, import_jsx_runtime.jsx)(import_react.Suspense, {
|
|
104
|
+
fallback: null,
|
|
105
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(WalletWithChildren, {
|
|
106
|
+
config: {
|
|
107
|
+
appName: cfg1.appName || "Multiplatform.one",
|
|
108
|
+
appDescription: cfg1.appDescription || "Connect your wallet",
|
|
109
|
+
appUrl: cfg1.appUrl || (import_platform.isWeb && typeof window !== "undefined" ? window.location.origin : ""),
|
|
110
|
+
appIcon: cfg1.appIcon,
|
|
111
|
+
enableTestnets: testnetsEnabled,
|
|
112
|
+
localnet: (_cfg_localnet = cfg1.localnet) !== null && _cfg_localnet !== void 0 ? _cfg_localnet : import_platform.config.get("WEB3_LOCALNET_ENABLED") === "1",
|
|
113
|
+
localnetRpcUrl: cfg1.localnetRpcUrl || import_platform.config.get("WEB3_EVM_RPC") || void 0,
|
|
114
|
+
solanaRpcUrl: cfg1.solanaRpcUrl || import_platform.config.get("WEB3_SOLANA_RPC") || void 0,
|
|
115
|
+
suiRpcUrl: cfg1.suiRpcUrl || import_platform.config.get("WEB3_SUI_RPC") || void 0,
|
|
116
|
+
webViewUrl: cfg1.webViewUrl || import_platform.config.get("WEB3_WEBVIEW_URL") || void 0,
|
|
117
|
+
mockWallet: (_cfg_mockWallet = cfg1.mockWallet) !== null && _cfg_mockWallet !== void 0 ? _cfg_mockWallet : import_platform.config.get("WEB3_MOCK_WALLET") === "1"
|
|
118
|
+
},
|
|
119
|
+
children
|
|
120
|
+
})
|
|
121
|
+
})
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
var Web3Provider = Web3Provider2;
|
|
125
|
+
var cfg1 = appConfig.web3 === true ? {} : appConfig.web3;
|
|
126
|
+
Web3Provider2.displayName = "Web3Provider";
|
|
127
|
+
builtinProviders.push(Web3Provider2);
|
|
128
|
+
}
|
|
129
|
+
if (appConfig.keycloak) {
|
|
130
|
+
let KeycloakProviderWrapper2 = function (param) {
|
|
131
|
+
var {
|
|
132
|
+
children
|
|
133
|
+
} = param;
|
|
134
|
+
var _cfg_enabled, _cfg_debug;
|
|
135
|
+
var enabled = (_cfg_enabled = cfg2.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : import_platform.config.get("KEYCLOAK_ENABLED") === "1";
|
|
136
|
+
if (!enabled) return children;
|
|
137
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.Suspense, {
|
|
138
|
+
fallback: children,
|
|
139
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(LazyKeycloakProvider, {
|
|
140
|
+
disabled: false,
|
|
141
|
+
debug: (_cfg_debug = cfg2.debug) !== null && _cfg_debug !== void 0 ? _cfg_debug : import_platform.config.get("DEBUG") === "1",
|
|
142
|
+
baseUrl: cfg2.baseUrl || import_platform.config.get("KEYCLOAK_BASE_URL") || `${import_platform.config.get("BASE_URL") || ""}/auth`,
|
|
143
|
+
clientId: cfg2.clientId || import_platform.config.get("KEYCLOAK_CLIENT_ID"),
|
|
144
|
+
publicClientId: cfg2.publicClientId || import_platform.config.get("KEYCLOAK_PUBLIC_CLIENT_ID"),
|
|
145
|
+
realm: cfg2.realm || import_platform.config.get("KEYCLOAK_REALM") || "",
|
|
146
|
+
iframeSso: cfg2.iframeSso,
|
|
147
|
+
loginRedirectUri: cfg2.loginRedirectUri,
|
|
148
|
+
messageHandlerKeys: cfg2.messageHandlerKeys || [],
|
|
149
|
+
betterAuthBaseUrl: cfg2.betterAuthBaseUrl || import_platform.config.get("BETTER_AUTH_BASE_URL") || import_platform.config.get("BASE_URL") || void 0,
|
|
150
|
+
expoScheme: cfg2.expoScheme,
|
|
151
|
+
loadingComponent: cfg2.loadingComponent,
|
|
152
|
+
children
|
|
153
|
+
})
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
var KeycloakProviderWrapper = KeycloakProviderWrapper2;
|
|
157
|
+
var cfg2 = appConfig.keycloak === true ? {} : appConfig.keycloak;
|
|
158
|
+
var LazyKeycloakProvider = /* @__PURE__ */(0, import_react.lazy)(async function () {
|
|
159
|
+
var mod = await import("@multiplatform.one/keycloak");
|
|
160
|
+
return {
|
|
161
|
+
default: mod.KeycloakProvider
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
KeycloakProviderWrapper2.displayName = "KeycloakProvider";
|
|
165
|
+
builtinProviders.push(KeycloakProviderWrapper2);
|
|
166
|
+
}
|
|
167
|
+
if (appConfig.frappe) {
|
|
168
|
+
let FrappeProviderWrapper2 = function (param) {
|
|
169
|
+
var {
|
|
170
|
+
children
|
|
171
|
+
} = param;
|
|
172
|
+
var _cfg_enabled, _cfg_socketPort;
|
|
173
|
+
var configuredCatchUp = import_platform.config.get("FRAPPE_CATCH_UP_STRATEGY");
|
|
174
|
+
var configuredWrite = import_platform.config.get("FRAPPE_WRITE_STRATEGY");
|
|
175
|
+
var syncOptions = (0, import_react.useMemo)(function () {
|
|
176
|
+
return (0, import_frappeSyncOptions.frappeSyncOptions)(cfg3.syncOptions, configuredCatchUp, configuredWrite);
|
|
177
|
+
}, [configuredCatchUp, configuredWrite]);
|
|
178
|
+
var enabled = (_cfg_enabled = cfg3.enabled) !== null && _cfg_enabled !== void 0 ? _cfg_enabled : !!cfg3.fixtures || import_platform.config.get("FRAPPE_ENABLED") === "1";
|
|
179
|
+
if (!enabled) return children;
|
|
180
|
+
var configured = cfg3.fixtures ? cfg3.baseURL : cfg3.baseURL || import_platform.config.get("BASE_URL") || "http://localhost:8000";
|
|
181
|
+
var baseURL = configured ? followPageOriginForLoopback(configured) : void 0;
|
|
182
|
+
var socketPort = (_cfg_socketPort = cfg3.socketPort) !== null && _cfg_socketPort !== void 0 ? _cfg_socketPort : (0, import_frappeSocketPort.frappeSocketPort)(import_platform.config.get("FRAPPE_SOCKETIO_PORT"), baseURL);
|
|
183
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_frappe_ui.FrappeProvider, {
|
|
184
|
+
baseURL,
|
|
185
|
+
realtime: cfg3.realtime,
|
|
186
|
+
socketPort,
|
|
187
|
+
auth,
|
|
188
|
+
syncOptions,
|
|
189
|
+
fixtures: cfg3.fixtures,
|
|
190
|
+
navigation: import_oneFrappeNavigation.oneFrappeNavigation,
|
|
191
|
+
children
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
var FrappeProviderWrapper = FrappeProviderWrapper2;
|
|
195
|
+
var _cfg_auth;
|
|
196
|
+
var cfg3 = appConfig.frappe === true ? {} : appConfig.frappe;
|
|
197
|
+
var auth = (_cfg_auth = cfg3.auth) !== null && _cfg_auth !== void 0 ? _cfg_auth : appConfig.keycloak ? {
|
|
198
|
+
useToken: true,
|
|
199
|
+
type: "Bearer",
|
|
200
|
+
token: async function token() {
|
|
201
|
+
var mod = await import("@multiplatform.one/keycloak");
|
|
202
|
+
return (await mod.getKeycloakBearerToken()) || "";
|
|
203
|
+
}
|
|
204
|
+
} : void 0;
|
|
205
|
+
FrappeProviderWrapper2.displayName = "FrappeProvider";
|
|
206
|
+
builtinProviders.push(FrappeProviderWrapper2);
|
|
207
|
+
}
|
|
208
|
+
var allProviders = [...builtinProviders, ...(appConfig.providers || [])];
|
|
209
|
+
function AppProvider(param) {
|
|
210
|
+
var {
|
|
211
|
+
children,
|
|
212
|
+
systemTheme,
|
|
213
|
+
themeConfig
|
|
214
|
+
} = param;
|
|
215
|
+
var theme = themeConfig || appConfig.theme;
|
|
216
|
+
var content = theme ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.ThemeProvider, {
|
|
217
|
+
config: theme,
|
|
218
|
+
systemTheme,
|
|
219
|
+
children
|
|
220
|
+
}) : children;
|
|
221
|
+
for (var i = allProviders.length - 1; i >= 0; i--) {
|
|
222
|
+
var Provider = allProviders[i];
|
|
223
|
+
content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(Provider, {
|
|
224
|
+
children: content
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AppConfigContext.Provider, {
|
|
228
|
+
value: appConfig,
|
|
229
|
+
children: content
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
AppProvider.displayName = "AppProvider";
|
|
233
|
+
function withApp(Screen) {
|
|
234
|
+
function WrappedScreen(props) {
|
|
235
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AppProvider, {
|
|
236
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Screen, {
|
|
237
|
+
...props
|
|
238
|
+
})
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
WrappedScreen.displayName = `withApp(${Screen.displayName || Screen.name || "Component"})`;
|
|
242
|
+
return WrappedScreen;
|
|
243
|
+
}
|
|
244
|
+
function useAppConfig() {
|
|
245
|
+
return (0, import_react.useContext)(AppConfigContext);
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
AppProvider,
|
|
249
|
+
withApp,
|
|
250
|
+
useAppConfig
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=CreateApp.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","CreateApp_exports","__export","createApp","followPageOriginForLoopback","module","exports","import_jsx_runtime","require","import_react","__toESM","import_platform","import_theme","import_frappe_ui","import_frappeSocketPort","import_frappeSyncOptions","import_oneFrappeNavigation","import_TanstackProvider","import_loadWalletProvider","LOOPBACK_HOSTS","Set","currentPageLocation","_window_location","window","location","hostname","configured","page","arguments","length","dev","isDev","url","URL","has","protocol","port","toString","replace","unused","AppConfigContext","createContext","appConfig","builtinProviders","tanstack","_appConfig_theme","cfg","theme","tamagui","tamaguiConfig","push","createTanstackProvider","web3","Web3Provider2","param","children","_cfg_enabled","_cfg_enableTestnets","_cfg_localnet","_cfg_mockWallet","enabled","cfg1","config","get","isWeb","testnetsEnabled","enableTestnets","WalletWithChildren","default","jsx","Suspense","fallback","appName","appDescription","appUrl","origin","appIcon","localnet","localnetRpcUrl","solanaRpcUrl","suiRpcUrl","webViewUrl","mockWallet","Web3Provider","displayName","keycloak","KeycloakProviderWrapper2","_cfg_debug","cfg2","LazyKeycloakProvider","disabled","debug","baseUrl","clientId","publicClientId","realm","iframeSso","loginRedirectUri","messageHandlerKeys","betterAuthBaseUrl","expoScheme","loadingComponent","KeycloakProviderWrapper","lazy","KeycloakProvider","frappe","FrappeProviderWrapper2","_cfg_socketPort","configuredCatchUp","configuredWrite","syncOptions","useMemo","frappeSyncOptions","cfg3","fixtures","baseURL","socketPort","frappeSocketPort","FrappeProvider","realtime","auth","navigation","oneFrappeNavigation","FrappeProviderWrapper","_cfg_auth","useToken","type","token","getKeycloakBearerToken","allProviders","providers"],"sources":["../../../src/app/CreateApp.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|