@gamechanger-finance/gc
Version:
Official GameChanger Wallet library and CLI for integrating with Cardano dapps and solve other tasks (https://gamechanger.finance/)
92 lines (91 loc) • 4.74 kB
TypeScript
import { APIEncoding, APIVersion, NetworkType, QRTemplateType } from '../../types';
export type SnippetHandlerArgs = {
apiVersion: APIVersion;
network: NetworkType;
encoding: APIEncoding;
input: string;
debug?: boolean;
refAddress?: string;
disableNetworkRouter?: boolean;
/**
* Optional wallet URL pattern override.
* When provided, snippet outputs can consistently target a custom wallet base
* (e.g. local development wallets) while preserving handler response types.
*/
urlPattern?: string;
/**
* Optional per-token overrides for snippet templates.
*
* Keys can be either:
* - a key of `snippetTokens` (recommended), e.g. `title`, `twitterUrl`
* - the raw placeholder string (advanced), e.g. `$#___TITLE___#$`
*
* Values are injected as-is (no escaping). For JS-literal tokens
* (like apiVersion/network/encoding) pass a valid JS literal, e.g. `"2"`.
*/
snippetArgs?: SnippetArgs;
qrResultType?: 'png' | 'svg';
outputFile?: string;
template?: QRTemplateType | string;
styles?: string;
};
export type SnippetArgs = Partial<Record<keyof typeof snippetTokens, string>> & {
/**
* Raw JS object literal used to override the entire `defaultIntents` map.
* This has higher priority than the default user intent injection.
*
* Useful when you want to add comments or additional intent definitions.
*/
defaultIntents?: string;
};
export declare const snippetTokens: {
readonly title: "$#___TITLE___#$";
readonly description: "$#___DESCRIPTION___#$";
readonly appId: "$#___APP_ID___#$";
readonly appVersion: "$#___APP_VERSION___#$";
readonly appYear: "$#___APP_YEAR___#$";
readonly defaultIntentsBlock: "$#___DEFAULT_INTENTS_BLOCK___#$";
readonly url: "$#___URL___#$";
readonly urlPattern: "$#___URL_PATTERN___#$";
readonly walletBaseUrl: "$#___WALLET_BASE_URL___#$";
readonly apiVersion: "$#___API_VERSION___#$";
readonly network: "$#___NETWORK___#$";
readonly encoding: "$#___ENCODING___#$";
readonly refAddress: "$#___REF_ADDRESS___#$";
readonly disableNetworkRouter: "$#___DISABLE_NETWORK_ROUTER___#$";
readonly gcScript: "$#___GC_SCRIPT___#$";
readonly origin: "$#___ORIGIN___#$";
readonly playgroundUrl: "$#___PLAYGROUND_URL___#$";
readonly twitterUrl: "$#___TWITTER_URL___#$";
readonly discordUrl: "$#___DISCORD_URL___#$";
readonly youtubeUrl: "$#___YOUTUBE_URL___#$";
readonly githubUrl: "$#___GITHUB_URL___#$";
readonly websiteUrl: "$#___WEBSITE_URL___#$";
readonly autoGeneratedLinkUrl: "$#___AUTO_GENERATED_LINK_URL___#$";
readonly autoGeneratedLinkText: "$#___AUTO_GENERATED_LINK_TEXT___#$";
readonly buttonText: "$#___BUTTON_TEXT___#$";
readonly encodingsArray: "$#___ENCODINGS_ARRAY___#$";
readonly selectedEncoding: "$#___SELECTED_ENCODING___#$";
readonly gcLibBrowserImports: "$#___GC_BROWSER_IMPORTS___#$";
readonly gcLibNodeJsImports: "$#___GC_NODEJS_IMPORTS___#$";
};
export declare const replaceSnippetPlaceholders: (template: string, replacements: Record<string, string>) => string;
export declare const toUtf8DataUri: (mimeType: string, text: string) => string;
export declare const toJSLiteral: (value?: string) => string;
export declare const toBooleanLiteral: (value?: boolean) => "false" | "true";
export declare const resolveSnippetOrigin: (apiVersion?: APIVersion, network?: NetworkType) => any;
/**
* Applies snippetArgs overrides to an existing placeholder map.
*
* This enables complete control over every placeholder defined in snippetTokens.
*/
export declare const applySnippetArgs: (replacements: Record<string, string>, snippetArgs?: SnippetArgs) => Record<string, string>;
export declare const normalizeHtmlZeroEncoding: (encoding: APIEncoding) => "gzip" | "base64url";
export declare const resolveHtmlLikeDappTitle: (_script: any) => string;
export declare const resolveHtmlLikeDappDescription: (_script: any) => string;
export declare const resolveHtmlLikeTitle: (script: any) => any;
export declare const resolveHtmlLikeDescription: (script: any) => any;
export declare const buildSnippetAppId: (script: any) => string;
export declare const buildHtmlLikeDefaultIntentsBlock: (script: any, snippetArgs?: SnippetArgs) => string;
export declare const buildHtmlLikeReplacements: (args: Pick<SnippetHandlerArgs, "apiVersion" | "network" | "encoding" | "refAddress" | "disableNetworkRouter" | "urlPattern">, script: any, version?: string, snippetArgs?: SnippetArgs) => Record<string, string>;
export declare const buildHtmlZeroReplacements: (args: SnippetHandlerArgs, script: any, snippetArgs?: SnippetArgs) => Record<string, string>;