infinite-games-sdk 0.0.6 → 0.0.8

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.
Files changed (66) hide show
  1. package/README.md +126 -113
  2. package/dist/index.d.ts +208 -12
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +597 -29
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/dist/errors.d.ts +0 -4
  8. package/dist/errors.d.ts.map +0 -1
  9. package/dist/errors.js +0 -11
  10. package/dist/errors.js.map +0 -1
  11. package/dist/history/HistoryClient.d.ts +0 -20
  12. package/dist/history/HistoryClient.d.ts.map +0 -1
  13. package/dist/history/HistoryClient.js +0 -96
  14. package/dist/history/HistoryClient.js.map +0 -1
  15. package/dist/history/index.d.ts +0 -4
  16. package/dist/history/index.d.ts.map +0 -1
  17. package/dist/history/index.js +0 -8
  18. package/dist/history/index.js.map +0 -1
  19. package/dist/history/types.d.ts +0 -7
  20. package/dist/history/types.d.ts.map +0 -1
  21. package/dist/history/types.js +0 -3
  22. package/dist/history/types.js.map +0 -1
  23. package/dist/history/useHistoryClient.d.ts +0 -21
  24. package/dist/history/useHistoryClient.d.ts.map +0 -1
  25. package/dist/history/useHistoryClient.js +0 -77
  26. package/dist/history/useHistoryClient.js.map +0 -1
  27. package/dist/launcher/index.d.ts +0 -4
  28. package/dist/launcher/index.d.ts.map +0 -1
  29. package/dist/launcher/index.js +0 -9
  30. package/dist/launcher/index.js.map +0 -1
  31. package/dist/launcher/types.d.ts +0 -59
  32. package/dist/launcher/types.d.ts.map +0 -1
  33. package/dist/launcher/types.js +0 -20
  34. package/dist/launcher/types.js.map +0 -1
  35. package/dist/launcher/useGameLauncher.d.ts +0 -3
  36. package/dist/launcher/useGameLauncher.d.ts.map +0 -1
  37. package/dist/launcher/useGameLauncher.js +0 -144
  38. package/dist/launcher/useGameLauncher.js.map +0 -1
  39. package/dist/session/SessionClient.d.ts +0 -22
  40. package/dist/session/SessionClient.d.ts.map +0 -1
  41. package/dist/session/SessionClient.js +0 -87
  42. package/dist/session/SessionClient.js.map +0 -1
  43. package/dist/session/index.d.ts +0 -7
  44. package/dist/session/index.d.ts.map +0 -1
  45. package/dist/session/index.js +0 -13
  46. package/dist/session/index.js.map +0 -1
  47. package/dist/session/initializeGame.d.ts +0 -48
  48. package/dist/session/initializeGame.d.ts.map +0 -1
  49. package/dist/session/initializeGame.js +0 -59
  50. package/dist/session/initializeGame.js.map +0 -1
  51. package/dist/session/tokens.d.ts +0 -21
  52. package/dist/session/tokens.d.ts.map +0 -1
  53. package/dist/session/tokens.js +0 -71
  54. package/dist/session/tokens.js.map +0 -1
  55. package/dist/session/types.d.ts +0 -15
  56. package/dist/session/types.d.ts.map +0 -1
  57. package/dist/session/types.js +0 -3
  58. package/dist/session/types.js.map +0 -1
  59. package/dist/utils/index.d.ts +0 -2
  60. package/dist/utils/index.d.ts.map +0 -1
  61. package/dist/utils/index.js +0 -8
  62. package/dist/utils/index.js.map +0 -1
  63. package/dist/utils/scale.d.ts +0 -4
  64. package/dist/utils/scale.d.ts.map +0 -1
  65. package/dist/utils/scale.js +0 -13
  66. package/dist/utils/scale.js.map +0 -1
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionClient = void 0;
4
- const errors_1 = require("../errors");
5
- const DEFAULT_BASE_URL = 'https://sessiondev.infiniteedgers.com';
6
- class SessionClient {
7
- constructor(config = {}) {
8
- this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
9
- }
10
- /**
11
- * Get a launch URL with one-time token for a game.
12
- * Used by the parent site (e.g., doubleup-io) to launch games.
13
- *
14
- * @param params - Wallet address, signature, chain, and game type
15
- * @returns Launch URL containing the one-time token
16
- */
17
- async getLaunchUrl(params) {
18
- const response = await fetch(`${this.baseUrl}/api/get_launch_url`, {
19
- method: 'POST',
20
- headers: {
21
- 'Content-Type': 'application/json',
22
- },
23
- body: JSON.stringify({
24
- address: params.address,
25
- signature: params.signature,
26
- chain: params.chain,
27
- gameType: params.gameType,
28
- }),
29
- });
30
- if (!response.ok) {
31
- const errorText = await response.text();
32
- throw new Error(errorText || 'Failed to get launch URL');
33
- }
34
- const data = await response.json();
35
- let launchUrl = (data.launchUrl ?? data.launch_url);
36
- if (!launchUrl) {
37
- throw new Error('Missing launch URL in response');
38
- }
39
- // Normalize URL if missing protocol
40
- if (launchUrl.startsWith('//')) {
41
- launchUrl = `https:${launchUrl}`;
42
- }
43
- else if (!launchUrl.startsWith('http://') && !launchUrl.startsWith('https://')) {
44
- launchUrl = `https://${launchUrl}`;
45
- }
46
- // Parse the launch URL to extract origin and token
47
- const parsed = new URL(launchUrl);
48
- const token = parsed.searchParams.get('token');
49
- if (!token) {
50
- throw new Error('Missing token in launch URL');
51
- }
52
- return {
53
- launchUrl,
54
- origin: parsed.origin,
55
- token,
56
- };
57
- }
58
- /**
59
- * Exchange a one-time token (OTT) for a session JWT.
60
- *
61
- * @param oneTimeToken - The one-time token from the launch URL
62
- * @returns The session JWT token
63
- * @throws AuthError if the token is invalid or expired
64
- */
65
- async getSessionToken(oneTimeToken) {
66
- const response = await fetch(`${this.baseUrl}/api/get_session_token`, {
67
- method: 'POST',
68
- headers: {
69
- Authorization: `Bearer ${oneTimeToken}`,
70
- },
71
- });
72
- if (response.status === 401) {
73
- throw new errors_1.AuthError('Invalid or expired one-time token');
74
- }
75
- if (!response.ok) {
76
- const errorText = await response.text();
77
- throw new Error(errorText || 'Failed to get session token');
78
- }
79
- const data = await response.json();
80
- if (data.error) {
81
- throw new Error(data.error);
82
- }
83
- return data.token;
84
- }
85
- }
86
- exports.SessionClient = SessionClient;
87
- //# sourceMappingURL=SessionClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionClient.js","sourceRoot":"","sources":["../../src/session/SessionClient.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export { SessionClient } from './SessionClient';
2
- export { initializeGame } from './initializeGame';
3
- export { looksLikeJwt, isOneTimeToken, isTableId, getTokenType } from './tokens';
4
- export type { TokenType } from './tokens';
5
- export type { SessionConfig, LaunchParams, LaunchResult } from './types';
6
- export type { InitializeGameOptions, InitializeGameResult, TableInfo } from './initializeGame';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACjF,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTokenType = exports.isTableId = exports.isOneTimeToken = exports.looksLikeJwt = exports.initializeGame = exports.SessionClient = void 0;
4
- var SessionClient_1 = require("./SessionClient");
5
- Object.defineProperty(exports, "SessionClient", { enumerable: true, get: function () { return SessionClient_1.SessionClient; } });
6
- var initializeGame_1 = require("./initializeGame");
7
- Object.defineProperty(exports, "initializeGame", { enumerable: true, get: function () { return initializeGame_1.initializeGame; } });
8
- var tokens_1 = require("./tokens");
9
- Object.defineProperty(exports, "looksLikeJwt", { enumerable: true, get: function () { return tokens_1.looksLikeJwt; } });
10
- Object.defineProperty(exports, "isOneTimeToken", { enumerable: true, get: function () { return tokens_1.isOneTimeToken; } });
11
- Object.defineProperty(exports, "isTableId", { enumerable: true, get: function () { return tokens_1.isTableId; } });
12
- Object.defineProperty(exports, "getTokenType", { enumerable: true, get: function () { return tokens_1.getTokenType; } });
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mCAAiF;AAAxE,sGAAA,YAAY,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,sGAAA,YAAY,OAAA"}
@@ -1,48 +0,0 @@
1
- import { SessionConfig } from './types';
2
- export interface TableInfo {
3
- tableId: string;
4
- coinType: string;
5
- }
6
- export interface InitializeGameOptions {
7
- /** Token from URL - can be OTT or table_id */
8
- token: string;
9
- /** Coin type from URL (required for OTT, ignored for table_id) */
10
- coinType: string | null;
11
- /** Existing session token from storage (optional) */
12
- sessionToken?: string | null;
13
- /** Game-specific function to create a new table */
14
- createTable: (sessionToken: string, coinType: string) => Promise<TableInfo>;
15
- /** Game-specific function to get table info (e.g., via getBalance) */
16
- getTableInfo: (tableId: string, sessionToken: string | null) => Promise<{
17
- coinType: string;
18
- }>;
19
- /** Session client config (optional) */
20
- sessionConfig?: SessionConfig;
21
- }
22
- export interface InitializeGameResult {
23
- tableId: string;
24
- coinType: string;
25
- sessionToken: string | null;
26
- }
27
- /**
28
- * Initialize a game session from a URL token.
29
- *
30
- * Handles the complete flow:
31
- * - OTT: exchange for session token → create table → return result
32
- * - table_id: fetch table info → return result
33
- * - expired JWT: throw AuthError
34
- *
35
- * @example
36
- * ```ts
37
- * const result = await initializeGame({
38
- * token: urlParams.get('token'),
39
- * coinType: urlParams.get('coinType'),
40
- * sessionToken: sessionStorage.getItem('session_token'),
41
- * createTable: (session, coin) => baccaratApi.createTable(session, coin),
42
- * getTableInfo: (tableId, session) => baccaratApi.getBalance(session, tableId),
43
- * });
44
- * // result = { tableId, coinType, sessionToken }
45
- * ```
46
- */
47
- export declare function initializeGame(options: InitializeGameOptions): Promise<InitializeGameResult>;
48
- //# sourceMappingURL=initializeGame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initializeGame.d.ts","sourceRoot":"","sources":["../../src/session/initializeGame.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,sEAAsE;IACtE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,uCAAuC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqClG"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeGame = initializeGame;
4
- const SessionClient_1 = require("./SessionClient");
5
- const errors_1 = require("../errors");
6
- const tokens_1 = require("./tokens");
7
- /**
8
- * Initialize a game session from a URL token.
9
- *
10
- * Handles the complete flow:
11
- * - OTT: exchange for session token → create table → return result
12
- * - table_id: fetch table info → return result
13
- * - expired JWT: throw AuthError
14
- *
15
- * @example
16
- * ```ts
17
- * const result = await initializeGame({
18
- * token: urlParams.get('token'),
19
- * coinType: urlParams.get('coinType'),
20
- * sessionToken: sessionStorage.getItem('session_token'),
21
- * createTable: (session, coin) => baccaratApi.createTable(session, coin),
22
- * getTableInfo: (tableId, session) => baccaratApi.getBalance(session, tableId),
23
- * });
24
- * // result = { tableId, coinType, sessionToken }
25
- * ```
26
- */
27
- async function initializeGame(options) {
28
- const { token, coinType, sessionToken, createTable, getTableInfo, sessionConfig } = options;
29
- // Case 1: Token is a table_id - fetch table info
30
- if ((0, tokens_1.isTableId)(token)) {
31
- const info = await getTableInfo(token, sessionToken ?? null);
32
- return {
33
- tableId: token,
34
- coinType: info.coinType,
35
- sessionToken: sessionToken ?? null,
36
- };
37
- }
38
- // Case 2: Token is a one-time token - exchange and create table
39
- if ((0, tokens_1.isOneTimeToken)(token)) {
40
- if (!coinType) {
41
- throw new Error('Missing coinType for new game');
42
- }
43
- const sessionClient = new SessionClient_1.SessionClient(sessionConfig);
44
- const newSessionToken = await sessionClient.getSessionToken(token);
45
- const table = await createTable(newSessionToken, coinType);
46
- return {
47
- tableId: table.tableId,
48
- coinType: table.coinType,
49
- sessionToken: newSessionToken,
50
- };
51
- }
52
- // Case 3: Token looks like a JWT but not OTT - likely expired/used
53
- if ((0, tokens_1.looksLikeJwt)(token)) {
54
- throw new errors_1.AuthError('This launch link has expired or was already used. Please launch the game again.');
55
- }
56
- // Case 4: Unknown token format
57
- throw new Error('Invalid token format');
58
- }
59
- //# sourceMappingURL=initializeGame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initializeGame.js","sourceRoot":"","sources":["../../src/session/initializeGame.ts"],"names":[],"mappings":";;AAmDA,wCAqCC;AAxFD,mDAAgD;AAChD,sCAAsC;AACtC,qCAAmE;AA6BnE;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,cAAc,CAAC,OAA8B;IACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE5F,iDAAiD;IACjD,IAAI,IAAA,kBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,YAAY,IAAI,IAAI;SACnC,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,IAAI,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,eAAe;SAC9B,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,IAAI,IAAA,qBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,kBAAS,CAAC,iFAAiF,CAAC,CAAC;IACzG,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Check if a token looks like a JWT (has 3 non-empty parts separated by dots).
3
- */
4
- export declare function looksLikeJwt(token: string | null | undefined): boolean;
5
- /**
6
- * Check if a token is a one-time token (OTT) based on JWT audience claim.
7
- * OTTs have aud: "login" in their payload.
8
- */
9
- export declare function isOneTimeToken(token: string): boolean;
10
- /**
11
- * Check if a token looks like a UUID (table_id format).
12
- * UUIDs are 36 characters: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
13
- */
14
- export declare function isTableId(token: string): boolean;
15
- export type TokenType = 'ott' | 'table_id' | 'expired_jwt' | 'unknown';
16
- /**
17
- * Classify a URL token into its type.
18
- * Useful for quick UI decisions before making network calls.
19
- */
20
- export declare function getTokenType(token: string | null | undefined): TokenType;
21
- //# sourceMappingURL=tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/session/tokens.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAItE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAMxE"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.looksLikeJwt = looksLikeJwt;
4
- exports.isOneTimeToken = isOneTimeToken;
5
- exports.isTableId = isTableId;
6
- exports.getTokenType = getTokenType;
7
- /**
8
- * Decode a base64url encoded string (used for JWT payloads).
9
- */
10
- function base64UrlDecode(input) {
11
- // Convert base64url to standard base64
12
- const base64 = input.replace(/-/g, '+').replace(/_/g, '/');
13
- // Add padding if needed
14
- const padded = base64 + '='.repeat((4 - (base64.length % 4)) % 4);
15
- return atob(padded);
16
- }
17
- /**
18
- * Extract the audience claim from a JWT token.
19
- */
20
- function getTokenAudience(token) {
21
- try {
22
- const parts = token.split('.');
23
- if (parts.length < 2)
24
- return null;
25
- const payload = JSON.parse(base64UrlDecode(parts[1]));
26
- return payload.aud;
27
- }
28
- catch {
29
- return null;
30
- }
31
- }
32
- /**
33
- * Check if a token looks like a JWT (has 3 non-empty parts separated by dots).
34
- */
35
- function looksLikeJwt(token) {
36
- if (!token || typeof token !== 'string')
37
- return false;
38
- const parts = token.split('.');
39
- return parts.length === 3 && parts.every((p) => p.length > 0);
40
- }
41
- /**
42
- * Check if a token is a one-time token (OTT) based on JWT audience claim.
43
- * OTTs have aud: "login" in their payload.
44
- */
45
- function isOneTimeToken(token) {
46
- return getTokenAudience(token) === 'login';
47
- }
48
- /**
49
- * Check if a token looks like a UUID (table_id format).
50
- * UUIDs are 36 characters: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
51
- */
52
- function isTableId(token) {
53
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
54
- return uuidRegex.test(token);
55
- }
56
- /**
57
- * Classify a URL token into its type.
58
- * Useful for quick UI decisions before making network calls.
59
- */
60
- function getTokenType(token) {
61
- if (!token)
62
- return 'unknown';
63
- if (isTableId(token))
64
- return 'table_id';
65
- if (isOneTimeToken(token))
66
- return 'ott';
67
- if (looksLikeJwt(token))
68
- return 'expired_jwt';
69
- return 'unknown';
70
- }
71
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/session/tokens.ts"],"names":[],"mappings":";;AA4BA,oCAIC;AAMD,wCAEC;AAMD,8BAIC;AAQD,oCAMC;AAhED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,uCAAuC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3D,wBAAwB;IACxB,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAgC;IAC3D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,MAAM,SAAS,GACb,iEAAiE,CAAC;IACpE,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAID;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAgC;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACxC,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC9C,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,15 +0,0 @@
1
- export interface SessionConfig {
2
- baseUrl?: string;
3
- }
4
- export interface LaunchParams {
5
- address: string;
6
- signature: string;
7
- chain: string;
8
- gameType: string;
9
- }
10
- export interface LaunchResult {
11
- launchUrl: string;
12
- origin: string;
13
- token: string;
14
- }
15
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export { SCALE_FACTOR, toBackendScale, fromBackendScale } from './scale';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromBackendScale = exports.toBackendScale = exports.SCALE_FACTOR = void 0;
4
- var scale_1 = require("./scale");
5
- Object.defineProperty(exports, "SCALE_FACTOR", { enumerable: true, get: function () { return scale_1.SCALE_FACTOR; } });
6
- Object.defineProperty(exports, "toBackendScale", { enumerable: true, get: function () { return scale_1.toBackendScale; } });
7
- Object.defineProperty(exports, "fromBackendScale", { enumerable: true, get: function () { return scale_1.fromBackendScale; } });
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,iCAAyE;AAAhE,qGAAA,YAAY,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,yGAAA,gBAAgB,OAAA"}
@@ -1,4 +0,0 @@
1
- export declare const SCALE_FACTOR = 1000000000;
2
- export declare function toBackendScale(amount: number): number;
3
- export declare function fromBackendScale(amount: number): number;
4
- //# sourceMappingURL=scale.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scale.d.ts","sourceRoot":"","sources":["../../src/utils/scale.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,aAAgB,CAAC;AAE1C,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SCALE_FACTOR = void 0;
4
- exports.toBackendScale = toBackendScale;
5
- exports.fromBackendScale = fromBackendScale;
6
- exports.SCALE_FACTOR = 1000000000;
7
- function toBackendScale(amount) {
8
- return Math.round(amount * exports.SCALE_FACTOR);
9
- }
10
- function fromBackendScale(amount) {
11
- return amount / exports.SCALE_FACTOR;
12
- }
13
- //# sourceMappingURL=scale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scale.js","sourceRoot":"","sources":["../../src/utils/scale.ts"],"names":[],"mappings":";;;AAEA,wCAEC;AAED,4CAEC;AARY,QAAA,YAAY,GAAG,UAAa,CAAC;AAE1C,SAAgB,cAAc,CAAC,MAAc;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAY,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,OAAO,MAAM,GAAG,oBAAY,CAAC;AAC/B,CAAC"}