@tinycloudlabs/web-core 0.1.0

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/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # TinyCloud Web Core
2
+
3
+ <img src="https://github.com/TinyCloudLabs/web-sdk/blob/main/documentation/static/img/tinycloudheader.png?raw=true" alt="TinyCloud" width="100%" />
4
+
5
+ TinyCloud Web Core provides foundational utilities and types used by TinyCloud SDKs.
6
+
7
+ [![npm version](https://img.shields.io/npm/v/@tinycloudlabs/web-core.svg)](https://www.npmjs.com/package/@tinycloudlabs/web-core)
8
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/TinyCloudLabs/web-sdk/blob/main/LICENSE-MIT)
9
+
10
+ ## Overview
11
+
12
+ This package is a library made to aggregate types and utilities for other TinyCloud web packages. It serves as the foundation for the TinyCloud SDK ecosystem.
13
+
14
+ ## Features
15
+
16
+ - **Type Definitions** - Comprehensive TypeScript type definitions
17
+ - **Utility Functions** - Common utilities for TinyCloud services
18
+ - **Error Types** - Standardized error handling across packages
19
+ - **Configuration Interfaces** - Shared configuration types
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ # Using npm
25
+ npm install @tinycloudlabs/web-core
26
+
27
+ # Using Yarn
28
+ yarn add @tinycloudlabs/web-core
29
+
30
+ # Using Bun (recommended)
31
+ bun add @tinycloudlabs/web-core
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ```typescript
37
+ import { IStorageGetOptions, IStoragePutOptions } from '@tinycloudlabs/web-core';
38
+ ```
39
+
40
+ ## Documentation
41
+
42
+ For complete documentation, please visit:
43
+
44
+ - [**TinyCloud SDK Documentation**](https://docs.tinycloud.xyz/)
45
+ - [**API Reference**](https://docs.tinycloud.xyz/docs/web-sdk/api/core/)
46
+
47
+ ## Contributing
48
+
49
+ Contributions are welcome! Please feel free to submit a Pull Request.
50
+
51
+ ## License
52
+
53
+ This project is licensed under the MIT License - see the [LICENSE-MIT](https://github.com/TinyCloudLabs/web-sdk/blob/main/LICENSE-MIT) file for details.
54
+
55
+ ## Related Packages
56
+
57
+ - [**@tinycloudlabs/web-sdk**](https://www.npmjs.com/package/@tinycloudlabs/web-sdk) - The main TinyCloud Web SDK package
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,110 @@
1
+ import { tcwSession } from '@tinycloudlabs/web-sdk-wasm';
2
+ import { AxiosInstance } from 'axios';
3
+ import { ethers } from 'ethers';
4
+ import { TCWEnsData, TCWRPCProvider, TCWServerRoutes } from '../types';
5
+ /** Core config for TCW. */
6
+ export interface TCWClientConfig {
7
+ /** Connection to a cryptographic keypair and/or network. */
8
+ providers?: TCWClientProviders;
9
+ /** Optional session configuration for the SIWE message. */
10
+ siweConfig?: SiweConfig;
11
+ /** Whether or not ENS resolution is enabled. True means resolve all on client. */
12
+ resolveEns?: boolean;
13
+ }
14
+ /** Representation of an active TCWSession. */
15
+ export type TCWClientSession = {
16
+ /** User address */
17
+ address: string;
18
+ /** User address without delegation */
19
+ walletAddress: string;
20
+ chainId: number;
21
+ /** Key to identify the session */
22
+ sessionKey: string;
23
+ /** The message that can be obtained by SiweMessage.prepareMessage() */
24
+ siwe: string;
25
+ /** The signature of the siwe message */
26
+ signature: string;
27
+ /** ENS data supported by TCW */
28
+ ens?: TCWEnsData;
29
+ };
30
+ /** The URL of the server running tcw-server. Providing this field enables SIWE server communication */
31
+ export type TCWServerHost = string;
32
+ /** The tcw-powered server configuration settings */
33
+ export type TCWProviderServer = {
34
+ host: TCWServerHost;
35
+ /** Optional configuration for the server's routes. */
36
+ routes?: TCWServerRoutes;
37
+ };
38
+ /** Web3 provider configuration settings */
39
+ export interface TCWProviderWeb3 {
40
+ /**
41
+ * window.ethereum for Metamask;
42
+ * web3modal.connect() for Web3Modal;
43
+ * const signer = useSigner(); const provider = signer.provider; from Wagmi for Rainbowkit
44
+ * */
45
+ driver: any;
46
+ }
47
+ /** TCW web3 configuration settings */
48
+ export interface TCWClientProviders {
49
+ /** Web3 wallet provider */
50
+ web3?: TCWProviderWeb3;
51
+ /** JSON RPC provider configurations */
52
+ rpc?: TCWRPCProvider;
53
+ /** Optional reference to server running tcw-server.
54
+ * Providing this field enables communication with tcw-server */
55
+ server?: TCWProviderServer;
56
+ }
57
+ /** Optional session configuration for the SIWE message. */
58
+ export interface SiweConfig extends Partial<tcwSession.SiweConfig> {
59
+ }
60
+ /** Extra SIWE fields. */
61
+ export type ExtraFields = tcwSession.ExtraFields;
62
+ /** Overrides for the session configuration. */
63
+ export type ConfigOverrides = {
64
+ siwe?: SiweConfig;
65
+ };
66
+ /** Interface to an intermediate TCW state: connected, but not signed-in. */
67
+ export interface ITCWConnected {
68
+ /** Instance of TCWSessionManager. */
69
+ builder: tcwSession.TCWSessionManager;
70
+ /** TCWConfig object. */
71
+ config: TCWClientConfig;
72
+ /** List of enabled extensions. */
73
+ extensions: TCWExtension[];
74
+ /** Web3 provider. */
75
+ provider: ethers.providers.Web3Provider;
76
+ /** Promise that is initialized on construction to run the "afterConnect" methods of extensions. */
77
+ afterConnectHooksPromise: Promise<void>;
78
+ /** Method to verify if extension is enabled. */
79
+ isExtensionEnabled: (namespace: string) => boolean;
80
+ /** Axios instance. */
81
+ api?: AxiosInstance;
82
+ /** Method to apply the "afterConnect" methods and the delegated capabilities of the extensions. */
83
+ applyExtensions: () => Promise<void>;
84
+ /** Method to apply the "afterSignIn" methods of the extensions. */
85
+ afterSignIn: (session: TCWClientSession) => Promise<void>;
86
+ /** Method to request the user to sign in. */
87
+ signIn: () => Promise<TCWClientSession>;
88
+ /** Method to request the user to sign out. */
89
+ signOut: (session: TCWClientSession) => Promise<void>;
90
+ }
91
+ /** Interface for an extension to TCW. */
92
+ export interface TCWExtension {
93
+ /** [recap] Capability namespace. */
94
+ namespace?: string;
95
+ /** [recap] Default delegated actions in capability namespace. */
96
+ defaultActions?(): Promise<string[]>;
97
+ /** [recap] Delegated actions by target in capability namespace. */
98
+ targetedActions?(): Promise<{
99
+ [target: string]: string[];
100
+ }>;
101
+ /** [recap] Extra metadata to help validate the capability. */
102
+ extraFields?(): Promise<ExtraFields>;
103
+ /** Hook to run after TCW has connected to the user's wallet.
104
+ * This can return an object literal to override the session configuration before the user
105
+ * signs in. */
106
+ afterConnect?(tcw: ITCWConnected): Promise<ConfigOverrides>;
107
+ /** Hook to run after TCW has signed in. */
108
+ afterSignIn?(session: TCWClientSession): Promise<void>;
109
+ }
110
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export * from './utils';
3
+ export { SiweMessage } from 'siwe';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.SiweMessage = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./utils"), exports);
20
+ var siwe_1 = require("siwe");
21
+ Object.defineProperty(exports, "SiweMessage", { enumerable: true, get: function () { return siwe_1.SiweMessage; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6BAAmC;AAA1B,mGAAA,WAAW,OAAA"}
@@ -0,0 +1,177 @@
1
+ import { providers } from 'ethers';
2
+ import { ConnectionInfo } from 'ethers/lib/utils';
3
+ import { TCWClientSession } from './client';
4
+ import type { AxiosRequestConfig } from 'axios';
5
+ /** TCW Route Configuration
6
+ * This configuration is used to override the default endpoint paths.
7
+ * The config options here are a subset of the
8
+ * [AxiosRequestConfig](https://axios-http.com/docs/req_config).
9
+ * This type does not explicitly extend AxiosRequestConfig,
10
+ * but those options are supported by the client.
11
+ */
12
+ export interface TCWRouteConfig {
13
+ /** Endpoint path. */
14
+ url?: string;
15
+ /** Endpoint request method. */
16
+ method?: 'get' | 'post' | 'put' | 'delete';
17
+ /** Custom Operation.
18
+ * Replace the tcw function called with a function of your own
19
+ **/
20
+ customAPIOperation?(params: TCWClientSession | Record<string, any> | any): Promise<any>;
21
+ }
22
+ export interface TCWServerMiddlewareConfig {
23
+ path: string;
24
+ callback?: (req: any, body?: Record<string, any>) => Promise<void> | void;
25
+ }
26
+ /** Type-Guard for TCWServerMiddlewareConfig. */
27
+ export declare const isTCWServerMiddlewareConfig: (config: TCWServerRouteEndpointType) => config is TCWServerMiddlewareConfig;
28
+ export type TCWServerRouteEndpointType = Partial<TCWRouteConfig> | AxiosRequestConfig | string | TCWServerMiddlewareConfig;
29
+ /** Server endpoints configuration. */
30
+ export interface TCWServerRoutes {
31
+ /** Get nonce endpoint path. /tcw-nonce as default. */
32
+ nonce?: TCWServerRouteEndpointType;
33
+ /** Post login endpoint path. /tcw-login as default. */
34
+ login?: TCWServerRouteEndpointType;
35
+ /** Post logout endpoint path. /tcw-logout as default. */
36
+ logout?: TCWServerRouteEndpointType;
37
+ }
38
+ /** Server endpoints name configuration. */
39
+ export interface TCWServerRouteNames {
40
+ /** Get nonce endpoint path. /tcw-nonce as default. */
41
+ nonce?: string;
42
+ /** Post login endpoint path. /tcw-login as default. */
43
+ login?: string;
44
+ /** Post logout endpoint path. /tcw-logout as default. */
45
+ logout?: string;
46
+ }
47
+ /** Supported provider types. */
48
+ export type TCWRPCProvider = TCWGenericProvider | TCWEtherscanProvider | TCWInfuraProvider | TCWAlchemyProvider | TCWCloudflareProvider | TCWPocketProvider | TCWAnkrProvider | TCWCustomProvider;
49
+ /** Enum of supported EthersJS providers. */
50
+ export declare enum TCWRPCProviders {
51
+ TCWAlchemyProvider = "alchemy",
52
+ TCWAnkrProvider = "ankr",
53
+ TCWCloudflareProvider = "cloudflare",
54
+ TCWCustomProvider = "custom",
55
+ TCWEtherscanProvider = "etherscan",
56
+ TCWInfuraProvider = "infura",
57
+ TCWPocketProvider = "pocket"
58
+ }
59
+ /** Enum of supported networks for Etherscan. */
60
+ export declare enum TCWEtherscanProviderNetworks {
61
+ MAINNET = "homestead",
62
+ ROPSTEN = "ropsten",
63
+ RINKEBY = "rinkeby",
64
+ GOERLI = "goerli",
65
+ KOVAN = "kovan"
66
+ }
67
+ /** Etherscan provider settings. */
68
+ export type TCWEtherscanProvider = {
69
+ service: TCWRPCProviders.TCWEtherscanProvider;
70
+ apiKey?: string;
71
+ network?: TCWEtherscanProviderNetworks;
72
+ };
73
+ export declare const isTCWEtherscanProvider: (provider: TCWRPCProvider) => provider is TCWEtherscanProvider;
74
+ /** Enum of supported networks for Infura. */
75
+ export declare enum TCWInfuraProviderNetworks {
76
+ MAINNET = "homestead",
77
+ ROPSTEN = "ropsten",
78
+ RINKEBY = "rinkeby",
79
+ GOERLI = "goerli",
80
+ KOVAN = "kovan",
81
+ POLYGON = "matic",
82
+ POLYGON_MUMBAI = "maticmum",
83
+ OPTIMISM = "optimism",
84
+ OPTIMISM_KOVAN = "optimism-kovan",
85
+ ARBITRUM = "arbitrum",
86
+ ARBITRUM_RINKEBY = "arbitrum-rinkeby"
87
+ }
88
+ /** Infura provider project settings. */
89
+ export type TCWInfuraProviderProjectSettings = {
90
+ projectId: string;
91
+ projectSecret: string;
92
+ };
93
+ /** Infura provider settings. */
94
+ export type TCWInfuraProvider = {
95
+ service: TCWRPCProviders.TCWInfuraProvider;
96
+ apiKey: string | TCWInfuraProviderProjectSettings;
97
+ network?: TCWInfuraProviderNetworks;
98
+ };
99
+ export declare const isTCWInfuraProvider: (provider: TCWRPCProvider) => provider is TCWInfuraProvider;
100
+ /** Enum of supported networks for Alchemy. */
101
+ export declare enum TCWAlchemyProviderNetworks {
102
+ MAINNET = "homestead",
103
+ ROPSTEN = "ropsten",
104
+ RINKEBY = "rinkeby",
105
+ GOERLI = "goerli",
106
+ KOVAN = "kovan",
107
+ POLYGON = "matic",
108
+ POLYGON_MUMBAI = "maticmum",
109
+ OPTIMISM = "optimism",
110
+ OPTIMISM_KOVAN = "optimism-kovan",
111
+ ARBITRUM = "arbitrum",
112
+ ARBITRUM_RINKEBY = "arbitrum-rinkeby"
113
+ }
114
+ /** Alchemy provider settings. */
115
+ export type TCWAlchemyProvider = {
116
+ service: TCWRPCProviders.TCWAlchemyProvider;
117
+ apiKey?: string;
118
+ network?: TCWAlchemyProviderNetworks;
119
+ };
120
+ export declare const isTCWAlchemyProvider: (provider: TCWRPCProvider) => provider is TCWAlchemyProvider;
121
+ /** Cloudflare provider settings. */
122
+ export type TCWCloudflareProvider = {
123
+ service: TCWRPCProviders.TCWCloudflareProvider;
124
+ };
125
+ export declare const isTCWCloudflareProvider: (provider: TCWRPCProvider) => provider is TCWCloudflareProvider;
126
+ /** Enum of supported networks for Pocket. */
127
+ export declare enum TCWPocketProviderNetworks {
128
+ MAINNET = "homestead",
129
+ ROPSTEN = "ropsten",
130
+ RINKEBY = "rinkeby",
131
+ GOERLI = "goerli"
132
+ }
133
+ /** Pocket provider settings. */
134
+ export type TCWPocketProvider = {
135
+ service: TCWRPCProviders.TCWPocketProvider;
136
+ apiKey?: string;
137
+ network?: TCWPocketProviderNetworks;
138
+ };
139
+ /** Type-Guard for TCWPocketProvider. */
140
+ export declare const isTCWPocketProvider: (provider: TCWRPCProvider) => provider is TCWPocketProvider;
141
+ /** Enum of supported networks for Ankr. */
142
+ export declare enum TCWAnkrProviderNetworks {
143
+ MAINNET = "homestead",
144
+ POLYGON = "matic",
145
+ ARBITRUM = "arbitrum"
146
+ }
147
+ /** Ankr provider settings. */
148
+ export type TCWAnkrProvider = {
149
+ service: TCWRPCProviders.TCWAnkrProvider;
150
+ apiKey?: string;
151
+ network?: TCWAnkrProviderNetworks;
152
+ };
153
+ /** Type-Guard for TCWAnkrProvider. */
154
+ export declare const isTCWAnkrProvider: (provider: TCWRPCProvider) => provider is TCWAnkrProvider;
155
+ /** Custom provider settings. */
156
+ export type TCWCustomProvider = {
157
+ service: TCWRPCProviders.TCWCustomProvider;
158
+ url?: string | ConnectionInfo;
159
+ network?: providers.Networkish;
160
+ };
161
+ /** Type-Guard for TCWCustomProvider. */
162
+ export declare const isTCWCustomProvider: (provider: TCWRPCProvider) => provider is TCWCustomProvider;
163
+ /** Generic provider settings. */
164
+ export type TCWGenericProvider = {
165
+ service: TCWRPCProviders;
166
+ url?: string | ConnectionInfo;
167
+ network?: providers.Networkish;
168
+ apiKey?: string | TCWInfuraProviderProjectSettings;
169
+ };
170
+ /** ENS data supported by TCW. */
171
+ export interface TCWEnsData {
172
+ /** ENS name/domain. */
173
+ domain?: string | null;
174
+ /** ENS avatar. */
175
+ avatarUrl?: string | null;
176
+ }
177
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C;;QAEI;IACJ,kBAAkB,CAAC,CACjB,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GACnD,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,WAC9B,0BAA0B,KACjC,MAAM,IAAI,yBAC8C,CAAC;AAE5D,MAAM,MAAM,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,GACvB,kBAAkB,GAClB,MAAM,GACN,yBAAyB,CAAC;AAE9B,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,uDAAuD;IACvD,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,yDAAyD;IACzD,MAAM,CAAC,EAAE,0BAA0B,CAAC;CACrC;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gCAAgC;AAChC,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAC;AAEtB,4CAA4C;AAC5C,oBAAY,eAAe;IACzB,kBAAkB,YAAY;IAC9B,eAAe,SAAS;IACxB,qBAAqB,eAAe;IACpC,iBAAiB,WAAW;IAC5B,oBAAoB,cAAc;IAClC,iBAAiB,WAAW;IAC5B,iBAAiB,WAAW;CAC7B;AAED,gDAAgD;AAChD,oBAAY,4BAA4B;IACtC,OAAO,cAAc;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,eAAe,CAAC,oBAAoB,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC,CAAC;AAGF,eAAO,MAAM,sBAAsB,aACvB,cAAc,KACvB,QAAQ,IAAI,oBAC4C,CAAC;AAE5D,6CAA6C;AAC7C,oBAAY,yBAAyB;IACnC,OAAO,cAAc;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,UAAU;IACjB,cAAc,aAAa;IAC3B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;CACtC;AAED,wCAAwC;AACxC,MAAM,MAAM,gCAAgC,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAC3C,MAAM,EAAE,MAAM,GAAG,gCAAgC,CAAC;IAClD,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAGF,eAAO,MAAM,mBAAmB,aACpB,cAAc,KACvB,QAAQ,IAAI,iBACyC,CAAC;AAEzD,8CAA8C;AAC9C,oBAAY,0BAA0B;IACpC,OAAO,cAAc;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,UAAU;IACjB,cAAc,aAAa;IAC3B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;CACtC;AAED,iCAAiC;AACjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,eAAe,CAAC,kBAAkB,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,oBAAoB,aACrB,cAAc,KACvB,QAAQ,IAAI,kBAC0C,CAAC;AAE1D,oCAAoC;AACpC,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,eAAe,CAAC,qBAAqB,CAAC;CAChD,CAAC;AAGF,eAAO,MAAM,uBAAuB,aACxB,cAAc,KACvB,QAAQ,IAAI,qBAC6C,CAAC;AAE7D,6CAA6C;AAC7C,oBAAY,yBAAyB;IACnC,OAAO,cAAc;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,aACpB,cAAc,KACvB,QAAQ,IAAI,iBACyC,CAAC;AAEzD,2CAA2C;AAC3C,oBAAY,uBAAuB;IACjC,OAAO,cAAc;IACrB,OAAO,UAAU;IACjB,QAAQ,aAAa;CACtB;AAED,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC,eAAe,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,aAClB,cAAc,KACvB,QAAQ,IAAI,eACuC,CAAC;AAEvD,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,aACpB,cAAc,KACvB,QAAQ,IAAI,iBACyC,CAAC;AAEzD,iCAAiC;AACjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,gCAAgC,CAAC;CACpD,CAAC;AAEF,iCAAiC;AACjC,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
package/dist/types.js ADDED
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTCWCustomProvider = exports.isTCWAnkrProvider = exports.TCWAnkrProviderNetworks = exports.isTCWPocketProvider = exports.TCWPocketProviderNetworks = exports.isTCWCloudflareProvider = exports.isTCWAlchemyProvider = exports.TCWAlchemyProviderNetworks = exports.isTCWInfuraProvider = exports.TCWInfuraProviderNetworks = exports.isTCWEtherscanProvider = exports.TCWEtherscanProviderNetworks = exports.TCWRPCProviders = exports.isTCWServerMiddlewareConfig = void 0;
4
+ /** Type-Guard for TCWServerMiddlewareConfig. */
5
+ const isTCWServerMiddlewareConfig = (config) => (config === null || config === void 0 ? void 0 : config.path) !== undefined;
6
+ exports.isTCWServerMiddlewareConfig = isTCWServerMiddlewareConfig;
7
+ /** Enum of supported EthersJS providers. */
8
+ var TCWRPCProviders;
9
+ (function (TCWRPCProviders) {
10
+ TCWRPCProviders["TCWAlchemyProvider"] = "alchemy";
11
+ TCWRPCProviders["TCWAnkrProvider"] = "ankr";
12
+ TCWRPCProviders["TCWCloudflareProvider"] = "cloudflare";
13
+ TCWRPCProviders["TCWCustomProvider"] = "custom";
14
+ TCWRPCProviders["TCWEtherscanProvider"] = "etherscan";
15
+ TCWRPCProviders["TCWInfuraProvider"] = "infura";
16
+ TCWRPCProviders["TCWPocketProvider"] = "pocket";
17
+ })(TCWRPCProviders || (exports.TCWRPCProviders = TCWRPCProviders = {}));
18
+ /** Enum of supported networks for Etherscan. */
19
+ var TCWEtherscanProviderNetworks;
20
+ (function (TCWEtherscanProviderNetworks) {
21
+ TCWEtherscanProviderNetworks["MAINNET"] = "homestead";
22
+ TCWEtherscanProviderNetworks["ROPSTEN"] = "ropsten";
23
+ TCWEtherscanProviderNetworks["RINKEBY"] = "rinkeby";
24
+ TCWEtherscanProviderNetworks["GOERLI"] = "goerli";
25
+ TCWEtherscanProviderNetworks["KOVAN"] = "kovan";
26
+ })(TCWEtherscanProviderNetworks || (exports.TCWEtherscanProviderNetworks = TCWEtherscanProviderNetworks = {}));
27
+ /* Type-Guard for TCWEtherScanProvider. */
28
+ const isTCWEtherscanProvider = (provider) => provider.service === TCWRPCProviders.TCWEtherscanProvider;
29
+ exports.isTCWEtherscanProvider = isTCWEtherscanProvider;
30
+ /** Enum of supported networks for Infura. */
31
+ var TCWInfuraProviderNetworks;
32
+ (function (TCWInfuraProviderNetworks) {
33
+ TCWInfuraProviderNetworks["MAINNET"] = "homestead";
34
+ TCWInfuraProviderNetworks["ROPSTEN"] = "ropsten";
35
+ TCWInfuraProviderNetworks["RINKEBY"] = "rinkeby";
36
+ TCWInfuraProviderNetworks["GOERLI"] = "goerli";
37
+ TCWInfuraProviderNetworks["KOVAN"] = "kovan";
38
+ TCWInfuraProviderNetworks["POLYGON"] = "matic";
39
+ TCWInfuraProviderNetworks["POLYGON_MUMBAI"] = "maticmum";
40
+ TCWInfuraProviderNetworks["OPTIMISM"] = "optimism";
41
+ TCWInfuraProviderNetworks["OPTIMISM_KOVAN"] = "optimism-kovan";
42
+ TCWInfuraProviderNetworks["ARBITRUM"] = "arbitrum";
43
+ TCWInfuraProviderNetworks["ARBITRUM_RINKEBY"] = "arbitrum-rinkeby";
44
+ })(TCWInfuraProviderNetworks || (exports.TCWInfuraProviderNetworks = TCWInfuraProviderNetworks = {}));
45
+ /* Type-Guard for TCWInfuraProvider. */
46
+ const isTCWInfuraProvider = (provider) => provider.service === TCWRPCProviders.TCWInfuraProvider;
47
+ exports.isTCWInfuraProvider = isTCWInfuraProvider;
48
+ /** Enum of supported networks for Alchemy. */
49
+ var TCWAlchemyProviderNetworks;
50
+ (function (TCWAlchemyProviderNetworks) {
51
+ TCWAlchemyProviderNetworks["MAINNET"] = "homestead";
52
+ TCWAlchemyProviderNetworks["ROPSTEN"] = "ropsten";
53
+ TCWAlchemyProviderNetworks["RINKEBY"] = "rinkeby";
54
+ TCWAlchemyProviderNetworks["GOERLI"] = "goerli";
55
+ TCWAlchemyProviderNetworks["KOVAN"] = "kovan";
56
+ TCWAlchemyProviderNetworks["POLYGON"] = "matic";
57
+ TCWAlchemyProviderNetworks["POLYGON_MUMBAI"] = "maticmum";
58
+ TCWAlchemyProviderNetworks["OPTIMISM"] = "optimism";
59
+ TCWAlchemyProviderNetworks["OPTIMISM_KOVAN"] = "optimism-kovan";
60
+ TCWAlchemyProviderNetworks["ARBITRUM"] = "arbitrum";
61
+ TCWAlchemyProviderNetworks["ARBITRUM_RINKEBY"] = "arbitrum-rinkeby";
62
+ })(TCWAlchemyProviderNetworks || (exports.TCWAlchemyProviderNetworks = TCWAlchemyProviderNetworks = {}));
63
+ /* Type-Guard for TCWAlchemyProvider. */
64
+ const isTCWAlchemyProvider = (provider) => provider.service === TCWRPCProviders.TCWAlchemyProvider;
65
+ exports.isTCWAlchemyProvider = isTCWAlchemyProvider;
66
+ /* Type-Guard for TCWCloudflareProvider. */
67
+ const isTCWCloudflareProvider = (provider) => provider.service === TCWRPCProviders.TCWCloudflareProvider;
68
+ exports.isTCWCloudflareProvider = isTCWCloudflareProvider;
69
+ /** Enum of supported networks for Pocket. */
70
+ var TCWPocketProviderNetworks;
71
+ (function (TCWPocketProviderNetworks) {
72
+ TCWPocketProviderNetworks["MAINNET"] = "homestead";
73
+ TCWPocketProviderNetworks["ROPSTEN"] = "ropsten";
74
+ TCWPocketProviderNetworks["RINKEBY"] = "rinkeby";
75
+ TCWPocketProviderNetworks["GOERLI"] = "goerli";
76
+ })(TCWPocketProviderNetworks || (exports.TCWPocketProviderNetworks = TCWPocketProviderNetworks = {}));
77
+ /** Type-Guard for TCWPocketProvider. */
78
+ const isTCWPocketProvider = (provider) => provider.service === TCWRPCProviders.TCWPocketProvider;
79
+ exports.isTCWPocketProvider = isTCWPocketProvider;
80
+ /** Enum of supported networks for Ankr. */
81
+ var TCWAnkrProviderNetworks;
82
+ (function (TCWAnkrProviderNetworks) {
83
+ TCWAnkrProviderNetworks["MAINNET"] = "homestead";
84
+ TCWAnkrProviderNetworks["POLYGON"] = "matic";
85
+ TCWAnkrProviderNetworks["ARBITRUM"] = "arbitrum";
86
+ })(TCWAnkrProviderNetworks || (exports.TCWAnkrProviderNetworks = TCWAnkrProviderNetworks = {}));
87
+ /** Type-Guard for TCWAnkrProvider. */
88
+ const isTCWAnkrProvider = (provider) => provider.service === TCWRPCProviders.TCWAnkrProvider;
89
+ exports.isTCWAnkrProvider = isTCWAnkrProvider;
90
+ /** Type-Guard for TCWCustomProvider. */
91
+ const isTCWCustomProvider = (provider) => provider.service === TCWRPCProviders.TCWCustomProvider;
92
+ exports.isTCWCustomProvider = isTCWCustomProvider;
93
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './utils';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./utils"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,15 @@
1
+ import { TCWEnsData, TCWRPCProvider } from '../types';
2
+ import { ethers } from 'ethers';
3
+ /**
4
+ * @param rpc - TCWRPCProvider
5
+ * @returns an ethers provider based on the RPC configuration.
6
+ */
7
+ export declare const getProvider: (rpc?: TCWRPCProvider) => ethers.providers.BaseProvider;
8
+ /**
9
+ * Resolves ENS data supported by TCW.
10
+ * @param provider - Ethers provider.
11
+ * @param address - User address.
12
+ * @returns Object containing ENS data.
13
+ */
14
+ export declare const tcwResolveEns: (provider: ethers.providers.BaseProvider, address: string) => Promise<TCWEnsData>;
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,UAAU,EAIV,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAsB,MAAM,QAAQ,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,SAChB,cAAc,KACnB,MAAM,CAAC,SAAS,CAAC,YAyCnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aACd,MAAM,CAAC,SAAS,CAAC,YAAY,WAE9B,MAAM,KACd,OAAO,CAAC,UAAU,CAqBpB,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.tcwResolveEns = exports.getProvider = void 0;
13
+ const types_1 = require("../types");
14
+ const ethers_1 = require("ethers");
15
+ /**
16
+ * @param rpc - TCWRPCProvider
17
+ * @returns an ethers provider based on the RPC configuration.
18
+ */
19
+ const getProvider = (rpc) => {
20
+ var _a, _b, _c, _d, _e;
21
+ if (!rpc) {
22
+ return (0, ethers_1.getDefaultProvider)();
23
+ }
24
+ if ((0, types_1.isTCWEtherscanProvider)(rpc)) {
25
+ return new ethers_1.ethers.providers.EtherscanProvider((_a = rpc.network) !== null && _a !== void 0 ? _a : types_1.TCWEtherscanProviderNetworks.MAINNET, rpc.apiKey);
26
+ }
27
+ if ((0, types_1.isTCWInfuraProvider)(rpc)) {
28
+ return new ethers_1.ethers.providers.InfuraProvider((_b = rpc.network) !== null && _b !== void 0 ? _b : types_1.TCWInfuraProviderNetworks.MAINNET, rpc.apiKey);
29
+ }
30
+ if ((0, types_1.isTCWAlchemyProvider)(rpc)) {
31
+ return new ethers_1.ethers.providers.AlchemyProvider((_c = rpc.network) !== null && _c !== void 0 ? _c : types_1.TCWAlchemyProviderNetworks.MAINNET, rpc.apiKey);
32
+ }
33
+ if ((0, types_1.isTCWCloudflareProvider)(rpc)) {
34
+ return new ethers_1.ethers.providers.CloudflareProvider();
35
+ }
36
+ if ((0, types_1.isTCWPocketProvider)(rpc)) {
37
+ return new ethers_1.ethers.providers.PocketProvider((_d = rpc.network) !== null && _d !== void 0 ? _d : types_1.TCWPocketProviderNetworks.MAINNET, rpc.apiKey);
38
+ }
39
+ if ((0, types_1.isTCWAnkrProvider)(rpc)) {
40
+ return new ethers_1.ethers.providers.AnkrProvider((_e = rpc.network) !== null && _e !== void 0 ? _e : types_1.TCWAnkrProviderNetworks.MAINNET, rpc.apiKey);
41
+ }
42
+ if ((0, types_1.isTCWCustomProvider)(rpc)) {
43
+ return new ethers_1.ethers.providers.JsonRpcProvider(rpc.url, rpc.network);
44
+ }
45
+ return (0, ethers_1.getDefaultProvider)();
46
+ };
47
+ exports.getProvider = getProvider;
48
+ /**
49
+ * Resolves ENS data supported by TCW.
50
+ * @param provider - Ethers provider.
51
+ * @param address - User address.
52
+ * @returns Object containing ENS data.
53
+ */
54
+ const tcwResolveEns = (provider,
55
+ /* User Address */
56
+ address) => __awaiter(void 0, void 0, void 0, function* () {
57
+ if (!address) {
58
+ throw new Error('Missing address.');
59
+ }
60
+ const ens = {};
61
+ const promises = [];
62
+ promises.push(provider.lookupAddress(address));
63
+ promises.push(provider.getAvatar(address));
64
+ yield Promise.all(promises)
65
+ .then(([domain, avatarUrl]) => {
66
+ if (domain) {
67
+ ens['domain'] = domain;
68
+ }
69
+ if (avatarUrl) {
70
+ ens['avatarUrl'] = avatarUrl;
71
+ }
72
+ })
73
+ .catch(console.error);
74
+ return ens;
75
+ });
76
+ exports.tcwResolveEns = tcwResolveEns;
77
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAekB;AAClB,mCAAoD;AAEpD;;;GAGG;AACI,MAAM,WAAW,GAAG,CACzB,GAAoB,EACW,EAAE;;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAA,2BAAkB,GAAE,CAAC;IAC9B,CAAC;IACD,IAAI,IAAA,8BAAsB,EAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,iBAAiB,CAC3C,MAAA,GAAG,CAAC,OAAO,mCAAI,oCAA4B,CAAC,OAAO,EACnD,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,cAAc,CACxC,MAAA,GAAG,CAAC,OAAO,mCAAI,iCAAyB,CAAC,OAAO,EAChD,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,4BAAoB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CACzC,MAAA,GAAG,CAAC,OAAO,mCAAI,kCAA0B,CAAC,OAAO,EACjD,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,+BAAuB,EAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,cAAc,CACxC,MAAA,GAAG,CAAC,OAAO,mCAAI,iCAAyB,CAAC,OAAO,EAChD,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,yBAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,YAAY,CACtC,MAAA,GAAG,CAAC,OAAO,mCAAI,+BAAuB,CAAC,OAAO,EAC9C,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,2BAAmB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,eAAM,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAA,2BAAkB,GAAE,CAAC;AAC9B,CAAC,CAAC;AA3CW,QAAA,WAAW,eA2CtB;AAEF;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAC3B,QAAuC;AACvC,kBAAkB;AAClB,OAAe,EACM,EAAE;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3C,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;SACxB,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAExB,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC;AAzBW,QAAA,aAAa,iBAyBxB"}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@tinycloudlabs/web-core",
3
+ "version": "0.1.0",
4
+ "description": "TinyCloud Web Core library",
5
+ "author": "TinyCloud, Inc.",
6
+ "license": "Apache-2.0 OR MIT",
7
+ "homepage": "https://github.com/TinyCloudLabs/web-sdk#readme",
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "bugs": {
11
+ "url": "https://github.com/TinyCloudLabs/web-sdk/issues"
12
+ },
13
+ "directories": {
14
+ "src": "src"
15
+ },
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.js",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./client": {
22
+ "types": "./dist/client/index.d.js",
23
+ "default": "./dist/client/index.js"
24
+ }
25
+ },
26
+ "typesVersions": {
27
+ "*": {
28
+ "*": [
29
+ "dist/index.d.ts"
30
+ ],
31
+ "client": [
32
+ "dist/client/index.d.ts"
33
+ ]
34
+ }
35
+ },
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "doc": "yarn doc:extractor && yarn doc:documenter",
39
+ "doc:extractor": "api-extractor run",
40
+ "doc:documenter": "api-documenter generate -i temp -o ../../documentation/docs/web-core"
41
+ },
42
+ "engines": {
43
+ "node": ">=18.16.0"
44
+ },
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "ssh://git@github.com:TinyCloudLabs/web-sdk.git"
48
+ },
49
+ "dependencies": {
50
+ "@tinycloudlabs/web-sdk-wasm": "workspace:*",
51
+ "@types/axios": "^0.14.4",
52
+ "axios": "^1.7.9",
53
+ "ethers": "^5.7.2",
54
+ "events": "^3.3.0",
55
+ "express": "^4.21.2",
56
+ "express-session": "^1.18.1",
57
+ "siwe": "^2.3.2"
58
+ },
59
+ "devDependencies": {
60
+ "@microsoft/api-documenter": "^7.26.5",
61
+ "@microsoft/api-extractor": "^7.49.1",
62
+ "@types/node": "^18.19.74",
63
+ "typescript": "^5.7.3",
64
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
65
+ "@typescript-eslint/parser": "^5.62.0",
66
+ "eslint": "^8.57.1",
67
+ "eslint-config-prettier": "^8.10.0",
68
+ "prettier": "^2.8.8"
69
+ },
70
+ "files": [
71
+ "dist"
72
+ ]
73
+ }