@tinycloud/web-core 1.0.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.
@@ -0,0 +1,377 @@
1
+ "use strict";
2
+ /**
3
+ * Zod schemas for TinyCloud Web Core types.
4
+ *
5
+ * These schemas provide runtime validation for RPC providers, route configuration,
6
+ * and ENS data. Types are derived from schemas using z.infer<>.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ServerRouteNamesSchema = exports.ServerRoutesSchema = exports.ServerRouteEndpointTypeSchema = exports.isServerMiddlewareConfig = exports.ServerMiddlewareConfigSchema = exports.RouteConfigSchema = exports.isCustomProvider = exports.isAnkrProvider = exports.isPocketProvider = exports.isCloudflareProvider = exports.isAlchemyProvider = exports.isInfuraProvider = exports.isEtherscanProvider = exports.RPCProviderSchema = exports.GenericProviderSchema = exports.CustomProviderSchema = exports.AnkrProviderSchema = exports.PocketProviderSchema = exports.CloudflareProviderSchema = exports.AlchemyProviderSchema = exports.InfuraProviderSchema = exports.EtherscanProviderSchema = exports.InfuraProviderProjectSettingsSchema = exports.AnkrProviderNetworks = exports.AnkrProviderNetworksSchema = exports.PocketProviderNetworks = exports.PocketProviderNetworksSchema = exports.AlchemyProviderNetworks = exports.AlchemyProviderNetworksSchema = exports.InfuraProviderNetworks = exports.InfuraProviderNetworksSchema = exports.EtherscanProviderNetworks = exports.EtherscanProviderNetworksSchema = exports.RPCProviders = exports.RPCProvidersSchema = exports.EnsDataSchema = void 0;
12
+ exports.validateEnsData = validateEnsData;
13
+ exports.validateRPCProvider = validateRPCProvider;
14
+ exports.validateServerRoutes = validateServerRoutes;
15
+ const zod_1 = require("zod");
16
+ // =============================================================================
17
+ // ENS Data
18
+ // =============================================================================
19
+ /**
20
+ * ENS data supported by TCW.
21
+ */
22
+ exports.EnsDataSchema = zod_1.z.object({
23
+ /** ENS name/domain. */
24
+ domain: zod_1.z.string().nullable().optional(),
25
+ /** ENS avatar. */
26
+ avatarUrl: zod_1.z.string().nullable().optional(),
27
+ });
28
+ // =============================================================================
29
+ // RPC Provider Enums
30
+ // =============================================================================
31
+ /**
32
+ * Enum of supported EthersJS providers.
33
+ */
34
+ exports.RPCProvidersSchema = zod_1.z.enum([
35
+ "alchemy",
36
+ "ankr",
37
+ "cloudflare",
38
+ "custom",
39
+ "etherscan",
40
+ "infura",
41
+ "pocket",
42
+ ]);
43
+ /**
44
+ * Enum values for RPCProviders (for backwards compatibility).
45
+ */
46
+ exports.RPCProviders = {
47
+ AlchemyProvider: "alchemy",
48
+ AnkrProvider: "ankr",
49
+ CloudflareProvider: "cloudflare",
50
+ CustomProvider: "custom",
51
+ EtherscanProvider: "etherscan",
52
+ InfuraProvider: "infura",
53
+ PocketProvider: "pocket",
54
+ };
55
+ // =============================================================================
56
+ // Network Enums
57
+ // =============================================================================
58
+ /**
59
+ * Enum of supported networks for Etherscan.
60
+ */
61
+ exports.EtherscanProviderNetworksSchema = zod_1.z.enum([
62
+ "homestead",
63
+ "ropsten",
64
+ "rinkeby",
65
+ "goerli",
66
+ "kovan",
67
+ ]);
68
+ exports.EtherscanProviderNetworks = {
69
+ MAINNET: "homestead",
70
+ ROPSTEN: "ropsten",
71
+ RINKEBY: "rinkeby",
72
+ GOERLI: "goerli",
73
+ KOVAN: "kovan",
74
+ };
75
+ /**
76
+ * Enum of supported networks for Infura.
77
+ */
78
+ exports.InfuraProviderNetworksSchema = zod_1.z.enum([
79
+ "homestead",
80
+ "ropsten",
81
+ "rinkeby",
82
+ "goerli",
83
+ "kovan",
84
+ "matic",
85
+ "maticmum",
86
+ "optimism",
87
+ "optimism-kovan",
88
+ "arbitrum",
89
+ "arbitrum-rinkeby",
90
+ ]);
91
+ exports.InfuraProviderNetworks = {
92
+ MAINNET: "homestead",
93
+ ROPSTEN: "ropsten",
94
+ RINKEBY: "rinkeby",
95
+ GOERLI: "goerli",
96
+ KOVAN: "kovan",
97
+ POLYGON: "matic",
98
+ POLYGON_MUMBAI: "maticmum",
99
+ OPTIMISM: "optimism",
100
+ OPTIMISM_KOVAN: "optimism-kovan",
101
+ ARBITRUM: "arbitrum",
102
+ ARBITRUM_RINKEBY: "arbitrum-rinkeby",
103
+ };
104
+ /**
105
+ * Enum of supported networks for Alchemy.
106
+ */
107
+ exports.AlchemyProviderNetworksSchema = zod_1.z.enum([
108
+ "homestead",
109
+ "ropsten",
110
+ "rinkeby",
111
+ "goerli",
112
+ "kovan",
113
+ "matic",
114
+ "maticmum",
115
+ "optimism",
116
+ "optimism-kovan",
117
+ "arbitrum",
118
+ "arbitrum-rinkeby",
119
+ ]);
120
+ exports.AlchemyProviderNetworks = {
121
+ MAINNET: "homestead",
122
+ ROPSTEN: "ropsten",
123
+ RINKEBY: "rinkeby",
124
+ GOERLI: "goerli",
125
+ KOVAN: "kovan",
126
+ POLYGON: "matic",
127
+ POLYGON_MUMBAI: "maticmum",
128
+ OPTIMISM: "optimism",
129
+ OPTIMISM_KOVAN: "optimism-kovan",
130
+ ARBITRUM: "arbitrum",
131
+ ARBITRUM_RINKEBY: "arbitrum-rinkeby",
132
+ };
133
+ /**
134
+ * Enum of supported networks for Pocket.
135
+ */
136
+ exports.PocketProviderNetworksSchema = zod_1.z.enum([
137
+ "homestead",
138
+ "ropsten",
139
+ "rinkeby",
140
+ "goerli",
141
+ ]);
142
+ exports.PocketProviderNetworks = {
143
+ MAINNET: "homestead",
144
+ ROPSTEN: "ropsten",
145
+ RINKEBY: "rinkeby",
146
+ GOERLI: "goerli",
147
+ };
148
+ /**
149
+ * Enum of supported networks for Ankr.
150
+ */
151
+ exports.AnkrProviderNetworksSchema = zod_1.z.enum([
152
+ "homestead",
153
+ "matic",
154
+ "arbitrum",
155
+ ]);
156
+ exports.AnkrProviderNetworks = {
157
+ MAINNET: "homestead",
158
+ POLYGON: "matic",
159
+ ARBITRUM: "arbitrum",
160
+ };
161
+ // =============================================================================
162
+ // Provider Types
163
+ // =============================================================================
164
+ /**
165
+ * Infura provider project settings.
166
+ */
167
+ exports.InfuraProviderProjectSettingsSchema = zod_1.z.object({
168
+ projectId: zod_1.z.string(),
169
+ projectSecret: zod_1.z.string(),
170
+ });
171
+ /**
172
+ * Etherscan provider settings.
173
+ */
174
+ exports.EtherscanProviderSchema = zod_1.z.object({
175
+ service: zod_1.z.literal("etherscan"),
176
+ apiKey: zod_1.z.string().optional(),
177
+ network: exports.EtherscanProviderNetworksSchema.optional(),
178
+ });
179
+ /**
180
+ * Infura provider settings.
181
+ */
182
+ exports.InfuraProviderSchema = zod_1.z.object({
183
+ service: zod_1.z.literal("infura"),
184
+ apiKey: zod_1.z.union([zod_1.z.string(), exports.InfuraProviderProjectSettingsSchema]),
185
+ network: exports.InfuraProviderNetworksSchema.optional(),
186
+ });
187
+ /**
188
+ * Alchemy provider settings.
189
+ */
190
+ exports.AlchemyProviderSchema = zod_1.z.object({
191
+ service: zod_1.z.literal("alchemy"),
192
+ apiKey: zod_1.z.string().optional(),
193
+ network: exports.AlchemyProviderNetworksSchema.optional(),
194
+ });
195
+ /**
196
+ * Cloudflare provider settings.
197
+ */
198
+ exports.CloudflareProviderSchema = zod_1.z.object({
199
+ service: zod_1.z.literal("cloudflare"),
200
+ });
201
+ /**
202
+ * Pocket provider settings.
203
+ */
204
+ exports.PocketProviderSchema = zod_1.z.object({
205
+ service: zod_1.z.literal("pocket"),
206
+ apiKey: zod_1.z.string().optional(),
207
+ network: exports.PocketProviderNetworksSchema.optional(),
208
+ });
209
+ /**
210
+ * Ankr provider settings.
211
+ */
212
+ exports.AnkrProviderSchema = zod_1.z.object({
213
+ service: zod_1.z.literal("ankr"),
214
+ apiKey: zod_1.z.string().optional(),
215
+ network: exports.AnkrProviderNetworksSchema.optional(),
216
+ });
217
+ /**
218
+ * Custom provider settings.
219
+ * Note: url and network are ethers types, validated as unknown.
220
+ */
221
+ exports.CustomProviderSchema = zod_1.z.object({
222
+ service: zod_1.z.literal("custom"),
223
+ url: zod_1.z.unknown().optional(),
224
+ network: zod_1.z.unknown().optional(),
225
+ });
226
+ /**
227
+ * Generic provider settings.
228
+ * Note: url and network are ethers types, validated as unknown.
229
+ */
230
+ exports.GenericProviderSchema = zod_1.z.object({
231
+ service: exports.RPCProvidersSchema,
232
+ url: zod_1.z.unknown().optional(),
233
+ network: zod_1.z.unknown().optional(),
234
+ apiKey: zod_1.z.union([zod_1.z.string(), exports.InfuraProviderProjectSettingsSchema]).optional(),
235
+ });
236
+ /**
237
+ * Supported provider types (discriminated union).
238
+ */
239
+ exports.RPCProviderSchema = zod_1.z.discriminatedUnion("service", [
240
+ exports.EtherscanProviderSchema,
241
+ exports.InfuraProviderSchema,
242
+ exports.AlchemyProviderSchema,
243
+ exports.CloudflareProviderSchema,
244
+ exports.PocketProviderSchema,
245
+ exports.AnkrProviderSchema,
246
+ exports.CustomProviderSchema,
247
+ ]);
248
+ // =============================================================================
249
+ // Type Guards (for backwards compatibility)
250
+ // =============================================================================
251
+ const isEtherscanProvider = (provider) => provider.service === "etherscan";
252
+ exports.isEtherscanProvider = isEtherscanProvider;
253
+ const isInfuraProvider = (provider) => provider.service === "infura";
254
+ exports.isInfuraProvider = isInfuraProvider;
255
+ const isAlchemyProvider = (provider) => provider.service === "alchemy";
256
+ exports.isAlchemyProvider = isAlchemyProvider;
257
+ const isCloudflareProvider = (provider) => provider.service === "cloudflare";
258
+ exports.isCloudflareProvider = isCloudflareProvider;
259
+ const isPocketProvider = (provider) => provider.service === "pocket";
260
+ exports.isPocketProvider = isPocketProvider;
261
+ const isAnkrProvider = (provider) => provider.service === "ankr";
262
+ exports.isAnkrProvider = isAnkrProvider;
263
+ const isCustomProvider = (provider) => provider.service === "custom";
264
+ exports.isCustomProvider = isCustomProvider;
265
+ // =============================================================================
266
+ // Route Configuration Types
267
+ // =============================================================================
268
+ /**
269
+ * TCW Route Configuration.
270
+ * This configuration is used to override the default endpoint paths.
271
+ */
272
+ exports.RouteConfigSchema = zod_1.z.object({
273
+ /** Endpoint path. */
274
+ url: zod_1.z.string().optional(),
275
+ /** Endpoint request method. */
276
+ method: zod_1.z.enum(["get", "post", "put", "delete"]).optional(),
277
+ /** Custom Operation - Replace the tcw function called with a function of your own. */
278
+ customAPIOperation: zod_1.z.function().optional(),
279
+ });
280
+ /**
281
+ * Server middleware configuration.
282
+ */
283
+ exports.ServerMiddlewareConfigSchema = zod_1.z.object({
284
+ path: zod_1.z.string(),
285
+ callback: zod_1.z.function().optional(),
286
+ });
287
+ /**
288
+ * Type-Guard for ServerMiddlewareConfig.
289
+ */
290
+ const isServerMiddlewareConfig = (config) => typeof config === "object" &&
291
+ config !== null &&
292
+ "path" in config &&
293
+ typeof config.path === "string";
294
+ exports.isServerMiddlewareConfig = isServerMiddlewareConfig;
295
+ /**
296
+ * Server route endpoint type (union).
297
+ */
298
+ exports.ServerRouteEndpointTypeSchema = zod_1.z.union([
299
+ exports.RouteConfigSchema.partial(),
300
+ zod_1.z.unknown(), // AxiosRequestConfig
301
+ zod_1.z.string(),
302
+ exports.ServerMiddlewareConfigSchema,
303
+ ]);
304
+ /**
305
+ * Server endpoints configuration.
306
+ */
307
+ exports.ServerRoutesSchema = zod_1.z.object({
308
+ /** Get nonce endpoint path. /tcw-nonce as default. */
309
+ nonce: exports.ServerRouteEndpointTypeSchema.optional(),
310
+ /** Post login endpoint path. /tcw-login as default. */
311
+ login: exports.ServerRouteEndpointTypeSchema.optional(),
312
+ /** Post logout endpoint path. /tcw-logout as default. */
313
+ logout: exports.ServerRouteEndpointTypeSchema.optional(),
314
+ });
315
+ /**
316
+ * Server endpoints name configuration.
317
+ */
318
+ exports.ServerRouteNamesSchema = zod_1.z.object({
319
+ /** Get nonce endpoint path. /tcw-nonce as default. */
320
+ nonce: zod_1.z.string().optional(),
321
+ /** Post login endpoint path. /tcw-login as default. */
322
+ login: zod_1.z.string().optional(),
323
+ /** Post logout endpoint path. /tcw-logout as default. */
324
+ logout: zod_1.z.string().optional(),
325
+ });
326
+ /**
327
+ * Validates EnsData.
328
+ */
329
+ function validateEnsData(data) {
330
+ const result = exports.EnsDataSchema.safeParse(data);
331
+ if (!result.success) {
332
+ return {
333
+ ok: false,
334
+ error: {
335
+ code: "VALIDATION_ERROR",
336
+ message: result.error.message,
337
+ issues: result.error.issues,
338
+ },
339
+ };
340
+ }
341
+ return { ok: true, data: result.data };
342
+ }
343
+ /**
344
+ * Validates RPCProvider.
345
+ */
346
+ function validateRPCProvider(data) {
347
+ const result = exports.RPCProviderSchema.safeParse(data);
348
+ if (!result.success) {
349
+ return {
350
+ ok: false,
351
+ error: {
352
+ code: "VALIDATION_ERROR",
353
+ message: result.error.message,
354
+ issues: result.error.issues,
355
+ },
356
+ };
357
+ }
358
+ return { ok: true, data: result.data };
359
+ }
360
+ /**
361
+ * Validates ServerRoutes.
362
+ */
363
+ function validateServerRoutes(data) {
364
+ const result = exports.ServerRoutesSchema.safeParse(data);
365
+ if (!result.success) {
366
+ return {
367
+ ok: false,
368
+ error: {
369
+ code: "VALIDATION_ERROR",
370
+ message: result.error.message,
371
+ issues: result.error.issues,
372
+ },
373
+ };
374
+ }
375
+ return { ok: true, data: result.data };
376
+ }
377
+ //# sourceMappingURL=types.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.schema.js","sourceRoot":"","sources":["../src/types.schema.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 { EnsData, RPCProvider } from '../types';
2
+ import { ethers } from 'ethers';
3
+ /**
4
+ * @param rpc - RPCProvider
5
+ * @returns an ethers provider based on the RPC configuration.
6
+ */
7
+ export declare const getProvider: (rpc?: RPCProvider) => 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 resolveEns: (provider: ethers.providers.BaseProvider, address: string) => Promise<EnsData>;
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,OAAO,EAIP,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAsB,MAAM,QAAQ,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,WAAW,KAChB,MAAM,CAAC,SAAS,CAAC,YAyCnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,CAAC,SAAS,CAAC,YAAY,EAEvC,SAAS,MAAM,KACd,OAAO,CAAC,OAAO,CAqBjB,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.resolveEns = exports.getProvider = void 0;
13
+ const types_1 = require("../types");
14
+ const ethers_1 = require("ethers");
15
+ /**
16
+ * @param rpc - RPCProvider
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.isEtherscanProvider)(rpc)) {
25
+ return new ethers_1.ethers.providers.EtherscanProvider((_a = rpc.network) !== null && _a !== void 0 ? _a : types_1.EtherscanProviderNetworks.MAINNET, rpc.apiKey);
26
+ }
27
+ if ((0, types_1.isInfuraProvider)(rpc)) {
28
+ return new ethers_1.ethers.providers.InfuraProvider((_b = rpc.network) !== null && _b !== void 0 ? _b : types_1.InfuraProviderNetworks.MAINNET, rpc.apiKey);
29
+ }
30
+ if ((0, types_1.isAlchemyProvider)(rpc)) {
31
+ return new ethers_1.ethers.providers.AlchemyProvider((_c = rpc.network) !== null && _c !== void 0 ? _c : types_1.AlchemyProviderNetworks.MAINNET, rpc.apiKey);
32
+ }
33
+ if ((0, types_1.isCloudflareProvider)(rpc)) {
34
+ return new ethers_1.ethers.providers.CloudflareProvider();
35
+ }
36
+ if ((0, types_1.isPocketProvider)(rpc)) {
37
+ return new ethers_1.ethers.providers.PocketProvider((_d = rpc.network) !== null && _d !== void 0 ? _d : types_1.PocketProviderNetworks.MAINNET, rpc.apiKey);
38
+ }
39
+ if ((0, types_1.isAnkrProvider)(rpc)) {
40
+ return new ethers_1.ethers.providers.AnkrProvider((_e = rpc.network) !== null && _e !== void 0 ? _e : types_1.AnkrProviderNetworks.MAINNET, rpc.apiKey);
41
+ }
42
+ if ((0, types_1.isCustomProvider)(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 resolveEns = (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.resolveEns = resolveEns;
77
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@tinycloud/web-core",
3
+ "version": "1.0.0",
4
+ "description": "TinyCloud Web Core library",
5
+ "author": "TinyCloud, Inc.",
6
+ "license": "EGPL",
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
+ "dev": "tsc --watch",
39
+ "doc": "yarn doc:extractor && yarn doc:documenter",
40
+ "doc:extractor": "api-extractor run",
41
+ "doc:documenter": "api-documenter generate -i temp -o ../../documentation/docs/web-core"
42
+ },
43
+ "engines": {
44
+ "node": ">=18.16.0"
45
+ },
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "ssh://git@github.com:TinyCloudLabs/web-sdk.git"
49
+ },
50
+ "dependencies": {
51
+ "@tinycloud/web-sdk-wasm": "^1.0.0",
52
+ "@types/axios": "^0.14.4",
53
+ "axios": "^1.7.9",
54
+ "ethers": "^5.7.2",
55
+ "events": "^3.3.0",
56
+ "express": "^4.21.2",
57
+ "express-session": "^1.18.1",
58
+ "siwe": "^2.3.2",
59
+ "zod": "^3.22.0"
60
+ },
61
+ "devDependencies": {
62
+ "@microsoft/api-documenter": "^7.26.5",
63
+ "@microsoft/api-extractor": "^7.49.1",
64
+ "@types/node": "^18.19.74",
65
+ "typescript": "^5.7.3",
66
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
67
+ "@typescript-eslint/parser": "^5.62.0",
68
+ "eslint": "^8.57.1",
69
+ "eslint-config-prettier": "^8.10.0",
70
+ "prettier": "^2.8.8"
71
+ },
72
+ "files": [
73
+ "dist"
74
+ ]
75
+ }