UNPKG

@treasure-dev/launcher

Version:

Treasure Launcher utilities for the Treasure ecosystem

149 lines (145 loc) 4.4 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { getTreasureLauncherAuthToken: () => getTreasureLauncherAuthToken, getTreasureLauncherPort: () => getTreasureLauncherPort, getTreasureLauncherWalletComponents: () => getTreasureLauncherWalletComponents, isUsingTreasureLauncher: () => isUsingTreasureLauncher, startUserSessionViaLauncher: () => startUserSessionViaLauncher }); module.exports = __toCommonJS(src_exports); // src/utils.ts function getTreasureLauncherAuthToken() { let args; if (typeof process !== "undefined" && Array.isArray(process.argv)) { args = process.argv; } else if (typeof window !== "undefined" && window.process && Array.isArray(window.process.argv)) { args = window.process.argv; } else { return void 0; } const arg = args.find((arg2) => arg2.startsWith("--tdk-auth-token=")); return arg ? arg.split("=")[1] : void 0; } function isUsingTreasureLauncher() { return !!getTreasureLauncherAuthToken(); } function getTreasureLauncherWalletComponents() { let args; if (typeof process !== "undefined" && Array.isArray(process.argv)) { args = process.argv; } else if (typeof window !== "undefined" && window.process && Array.isArray(window.process.argv)) { args = window.process.argv; } else { return void 0; } let walletId = args.find( (arg) => arg.startsWith("--tdk-wallet-id=") ); if (walletId) { walletId = walletId.split("=")[1]; } let authProvider = args.find( (arg) => arg.startsWith("--tdk-auth-provider=") ); if (authProvider) { authProvider = authProvider.split("=")[1]; } let authCookie = args.find( (arg) => arg.startsWith("--tdk-auth-cookie=") ); if (authCookie) { authCookie = authCookie.split("=")[1]; } if (!walletId || !authProvider || !authCookie) { return void 0; } return { walletId, authProvider, authCookie }; } function getTreasureLauncherPort() { let args; if (typeof process !== "undefined" && Array.isArray(process.argv)) { args = process.argv; } else if (typeof window !== "undefined" && window.process && Array.isArray(window.process.argv)) { args = window.process.argv; } else { return 16001; } let serverPort = args.find( (arg) => arg.startsWith("--server-port=") ); if (serverPort) { serverPort = serverPort.split("=")[1]; } if (!serverPort) { return 16001; } return Number.parseInt(serverPort, 10); } // src/session.ts async function startUserSessionViaLauncher({ sessionOptions, getPort }) { if (!isUsingTreasureLauncher()) { return Promise.reject( new Error( "startUserSessionViaLauncher can only be used with Treasure Launcher" ) ); } const { backendWallet, approvedTargets, nativeTokenLimitPerTransaction, sessionDurationSec, sessionMinDurationLeftSec } = sessionOptions; const port = getPort?.() ?? getTreasureLauncherPort(); const response = await fetch(`http://localhost:${port}/tdk-start-session`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ backendWallet, approvedTargets, nativeTokenLimitPerTransaction, sessionDurationSec, sessionMinDurationLeftSec }) }); if (!response.ok) { throw new Error("Failed to start session"); } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getTreasureLauncherAuthToken, getTreasureLauncherPort, getTreasureLauncherWalletComponents, isUsingTreasureLauncher, startUserSessionViaLauncher });