@plyaz/config 1.0.0 → 1.0.2
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/dist/chains/index.d.ts +2 -0
- package/dist/chains/supportedChains.d.ts +4 -0
- package/dist/constants.d.ts +1 -0
- package/dist/features.d.ts +24 -0
- package/dist/index.cjs +72 -44
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.js +61 -36
- package/dist/index.js.map +1 -1
- package/dist/providers/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -29,6 +29,7 @@ export declare const PROD_SUPPORTED_CHAINS: {
|
|
|
29
29
|
readonly symbol: "ETH";
|
|
30
30
|
readonly decimals: 18;
|
|
31
31
|
};
|
|
32
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
|
32
33
|
rpcUrls: {
|
|
33
34
|
readonly default: {
|
|
34
35
|
readonly http: readonly ["https://eth.merkle.io"];
|
|
@@ -73,6 +74,7 @@ export declare const STAGING_SUPPORTED_CHAINS: {
|
|
|
73
74
|
readonly symbol: "ETH";
|
|
74
75
|
readonly decimals: 18;
|
|
75
76
|
};
|
|
77
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
|
76
78
|
rpcUrls: {
|
|
77
79
|
readonly default: {
|
|
78
80
|
readonly http: readonly ["https://eth.merkle.io"];
|
|
@@ -115,6 +117,7 @@ export declare const STAGING_SUPPORTED_CHAINS: {
|
|
|
115
117
|
readonly symbol: "ETH";
|
|
116
118
|
readonly decimals: 18;
|
|
117
119
|
};
|
|
120
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
|
118
121
|
rpcUrls: {
|
|
119
122
|
readonly default: {
|
|
120
123
|
readonly http: readonly ["https://sepolia.drpc.org"];
|
|
@@ -159,6 +162,7 @@ export declare const DEV_SUPPORTED_CHAINS: {
|
|
|
159
162
|
readonly symbol: "ETH";
|
|
160
163
|
readonly decimals: 18;
|
|
161
164
|
};
|
|
165
|
+
experimental_preconfirmationTime?: number | undefined | undefined;
|
|
162
166
|
rpcUrls: {
|
|
163
167
|
readonly default: {
|
|
164
168
|
readonly http: readonly ["https://sepolia.drpc.org"];
|
package/dist/constants.d.ts
CHANGED
package/dist/features.d.ts
CHANGED
|
@@ -2,3 +2,27 @@ export declare const FEATURES: {
|
|
|
2
2
|
readonly AUTH_GOOGLE: true;
|
|
3
3
|
readonly AUTH_DISCORD: boolean;
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* Default backend configuration for feature flags.
|
|
7
|
+
* Optimized for server-side usage with reasonable defaults.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_BACKEND_CONFIG: {
|
|
10
|
+
readonly provider: "database";
|
|
11
|
+
readonly isCacheEnabled: true;
|
|
12
|
+
readonly cacheTtl: 300;
|
|
13
|
+
readonly refreshInterval: 60;
|
|
14
|
+
readonly shouldFallbackToDefaults: true;
|
|
15
|
+
readonly isLoggingEnabled: boolean;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Default frontend configuration for feature flags.
|
|
19
|
+
* Optimized for client-side usage with reasonable defaults.
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_FRONTEND_CONFIG: {
|
|
22
|
+
readonly provider: "memory";
|
|
23
|
+
readonly isCacheEnabled: true;
|
|
24
|
+
readonly cacheTtl: 300;
|
|
25
|
+
readonly refreshInterval: 0;
|
|
26
|
+
readonly shouldFallbackToDefaults: true;
|
|
27
|
+
readonly isLoggingEnabled: false;
|
|
28
|
+
};
|
package/dist/index.cjs
CHANGED
|
@@ -6,46 +6,66 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
6
6
|
|
|
7
7
|
// src/env.ts
|
|
8
8
|
var isServer = typeof window === "undefined";
|
|
9
|
-
var isDev = process.env.NODE_ENV === "development";
|
|
10
|
-
var isProd = process.env.NODE_ENV === "production";
|
|
11
|
-
var isTest = process.env.NODE_ENV === "test";
|
|
9
|
+
var isDev = globalThis.process.env.NODE_ENV === "development";
|
|
10
|
+
var isProd = globalThis.process.env.NODE_ENV === "production";
|
|
11
|
+
var isTest = globalThis.process.env.NODE_ENV === "test";
|
|
12
12
|
|
|
13
13
|
// src/providers/alchemy.ts
|
|
14
14
|
var ALCHEMY_CONFIG = {
|
|
15
|
-
apiKey: process.env.NEXT_PUBLIC_ALCHEMY_KEY,
|
|
15
|
+
apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,
|
|
16
16
|
rpcUrls: {
|
|
17
|
-
ethereum: `https://eth-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
18
|
-
polygon: `https://polygon-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
19
|
-
arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
20
|
-
optimism: `https://opt-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
21
|
-
base: `https://base-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
22
|
-
solana: `https://solana-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`
|
|
17
|
+
ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
18
|
+
polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
19
|
+
arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
20
|
+
optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
21
|
+
base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
22
|
+
solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
// src/providers/oauth.ts
|
|
27
27
|
var OAUTH_PROVIDERS = {
|
|
28
28
|
google: {
|
|
29
|
-
clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,
|
|
30
|
-
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
31
|
-
redirectUri: process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,
|
|
29
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,
|
|
30
|
+
clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET,
|
|
31
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,
|
|
32
32
|
scopes: ["openid", "profile", "email"]
|
|
33
33
|
},
|
|
34
34
|
discord: {
|
|
35
|
-
clientId: process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,
|
|
36
|
-
clientSecret: process.env.DISCORD_CLIENT_SECRET,
|
|
37
|
-
redirectUri: process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,
|
|
35
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,
|
|
36
|
+
clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET,
|
|
37
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,
|
|
38
38
|
scopes: ["identify", "email"]
|
|
39
39
|
},
|
|
40
40
|
facebook: {
|
|
41
|
-
clientId: process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,
|
|
42
|
-
clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
|
|
43
|
-
redirectUri: process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,
|
|
41
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,
|
|
42
|
+
clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET,
|
|
43
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,
|
|
44
44
|
scopes: ["public_profile", "email"]
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
//
|
|
48
|
+
// src/chains/contracts.ts
|
|
49
|
+
var CONTRACTS = {
|
|
50
|
+
nftManager: {
|
|
51
|
+
read: {
|
|
52
|
+
arbitrum: ""
|
|
53
|
+
},
|
|
54
|
+
write: {
|
|
55
|
+
arbitrum: ""
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
tokenManager: {
|
|
59
|
+
read: {
|
|
60
|
+
arbitrum: ""
|
|
61
|
+
},
|
|
62
|
+
write: {
|
|
63
|
+
arbitrum: ""
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/_esm/utils/chain/defineChain.js
|
|
49
69
|
function defineChain(chain) {
|
|
50
70
|
return {
|
|
51
71
|
formatters: void 0,
|
|
@@ -56,7 +76,7 @@ function defineChain(chain) {
|
|
|
56
76
|
}
|
|
57
77
|
__name(defineChain, "defineChain");
|
|
58
78
|
|
|
59
|
-
// node_modules/.pnpm/viem@2.
|
|
79
|
+
// node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/_esm/chains/definitions/mainnet.js
|
|
60
80
|
var mainnet = /* @__PURE__ */ defineChain({
|
|
61
81
|
id: 1,
|
|
62
82
|
name: "Ethereum",
|
|
@@ -88,7 +108,7 @@ var mainnet = /* @__PURE__ */ defineChain({
|
|
|
88
108
|
}
|
|
89
109
|
});
|
|
90
110
|
|
|
91
|
-
// node_modules/.pnpm/viem@2.
|
|
111
|
+
// node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/_esm/chains/definitions/sepolia.js
|
|
92
112
|
var sepolia = /* @__PURE__ */ defineChain({
|
|
93
113
|
id: 11155111,
|
|
94
114
|
name: "Sepolia",
|
|
@@ -135,42 +155,46 @@ var DEV_SUPPORTED_CHAINS = {
|
|
|
135
155
|
sepolia
|
|
136
156
|
};
|
|
137
157
|
|
|
138
|
-
// src/chains/contracts.ts
|
|
139
|
-
var CONTRACTS = {
|
|
140
|
-
nftManager: {
|
|
141
|
-
read: {
|
|
142
|
-
arbitrum: ""
|
|
143
|
-
},
|
|
144
|
-
write: {
|
|
145
|
-
arbitrum: ""
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
tokenManager: {
|
|
149
|
-
read: {
|
|
150
|
-
arbitrum: ""
|
|
151
|
-
},
|
|
152
|
-
write: {
|
|
153
|
-
arbitrum: ""
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
|
|
158
158
|
// src/features.ts
|
|
159
159
|
var FEATURES = {
|
|
160
160
|
// Authentication & Auth Providers
|
|
161
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
161
162
|
AUTH_GOOGLE: true,
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
162
164
|
AUTH_DISCORD: isDev
|
|
163
165
|
};
|
|
166
|
+
var DEFAULT_BACKEND_CONFIG = {
|
|
167
|
+
provider: "database",
|
|
168
|
+
isCacheEnabled: true,
|
|
169
|
+
cacheTtl: 300,
|
|
170
|
+
// 5 minutes
|
|
171
|
+
refreshInterval: 60,
|
|
172
|
+
// 1 minute auto-refresh
|
|
173
|
+
shouldFallbackToDefaults: true,
|
|
174
|
+
isLoggingEnabled: globalThis.process.env.NODE_ENV === "development"
|
|
175
|
+
};
|
|
176
|
+
var DEFAULT_FRONTEND_CONFIG = {
|
|
177
|
+
provider: "memory",
|
|
178
|
+
isCacheEnabled: true,
|
|
179
|
+
cacheTtl: 300,
|
|
180
|
+
// 5 minutes
|
|
181
|
+
refreshInterval: 0,
|
|
182
|
+
// No auto-refresh for frontend
|
|
183
|
+
shouldFallbackToDefaults: true,
|
|
184
|
+
isLoggingEnabled: false
|
|
185
|
+
// Disabled in production
|
|
186
|
+
};
|
|
164
187
|
|
|
165
188
|
// src/domains.ts
|
|
166
189
|
var DOMAINS = {
|
|
167
190
|
app: "https://plyaz.co.uk",
|
|
168
|
-
api: process.env.NEXT_PUBLIC_API_URL
|
|
191
|
+
api: globalThis.process.env.NEXT_PUBLIC_API_URL
|
|
169
192
|
};
|
|
170
193
|
|
|
171
194
|
// src/constants.ts
|
|
172
195
|
var DEFAULT_LOCALE = "en";
|
|
173
196
|
var SUPPORTED_LOCALES = ["en", "es", "pt"];
|
|
197
|
+
var TIMEZONE = "Europe/London";
|
|
174
198
|
|
|
175
199
|
// src/app.ts
|
|
176
200
|
var LANDING_PAGE_APP = {
|
|
@@ -214,9 +238,10 @@ var CACHE_CONFIG = {
|
|
|
214
238
|
},
|
|
215
239
|
// Redis configuration
|
|
216
240
|
redis: {
|
|
217
|
-
url: process.env.REDIS_URL,
|
|
241
|
+
url: globalThis.process.env.REDIS_URL,
|
|
218
242
|
keyPrefix: "plyaz:",
|
|
219
243
|
maxRetriesPerRequest: 3,
|
|
244
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
220
245
|
lazyConnect: true
|
|
221
246
|
}
|
|
222
247
|
};
|
|
@@ -226,6 +251,8 @@ exports.ALCHEMY_CONFIG = ALCHEMY_CONFIG;
|
|
|
226
251
|
exports.API_CONFIG = API_CONFIG;
|
|
227
252
|
exports.CACHE_CONFIG = CACHE_CONFIG;
|
|
228
253
|
exports.CONTRACTS = CONTRACTS;
|
|
254
|
+
exports.DEFAULT_BACKEND_CONFIG = DEFAULT_BACKEND_CONFIG;
|
|
255
|
+
exports.DEFAULT_FRONTEND_CONFIG = DEFAULT_FRONTEND_CONFIG;
|
|
229
256
|
exports.DEFAULT_LOCALE = DEFAULT_LOCALE;
|
|
230
257
|
exports.DEV_SUPPORTED_CHAINS = DEV_SUPPORTED_CHAINS;
|
|
231
258
|
exports.DOMAINS = DOMAINS;
|
|
@@ -236,6 +263,7 @@ exports.PROD_SUPPORTED_CHAINS = PROD_SUPPORTED_CHAINS;
|
|
|
236
263
|
exports.SECURITY = SECURITY;
|
|
237
264
|
exports.STAGING_SUPPORTED_CHAINS = STAGING_SUPPORTED_CHAINS;
|
|
238
265
|
exports.SUPPORTED_LOCALES = SUPPORTED_LOCALES;
|
|
266
|
+
exports.TIMEZONE = TIMEZONE;
|
|
239
267
|
exports.WEBHOOK_CONFIG = WEBHOOK_CONFIG;
|
|
240
268
|
exports.WEB_APP = WEB_APP;
|
|
241
269
|
exports.isDev = isDev;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../node_modules/.pnpm/viem@2.31.7_typescript@5.8.3/node_modules/viem/utils/chain/defineChain.ts","../node_modules/.pnpm/viem@2.31.7_typescript@5.8.3/node_modules/viem/chains/definitions/mainnet.ts","../node_modules/.pnpm/viem@2.31.7_typescript@5.8.3/node_modules/viem/chains/definitions/sepolia.ts","../src/chains/supportedChains.ts","../src/chains/contracts.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable no-undef */\n/* eslint-env node */\nexport const isServer = typeof window === 'undefined';\nexport const isDev = process.env.NODE_ENV === 'development';\nexport const isProd = process.env.NODE_ENV === 'production';\nexport const isTest = process.env.NODE_ENV === 'test';\n","/* eslint-disable no-undef */\n/* eslint-env node */\nexport const ALCHEMY_CONFIG = {\n apiKey: process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","/* eslint-disable no-undef */\n/* eslint-env node */\n\nexport const OAUTH_PROVIDERS = {\n google: {\n clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","import type { Chain, ChainFormatters } from '../../types/chain.js'\nimport type { Assign, Prettify } from '../../types/utils.js'\n\nexport function defineChain<\n formatters extends ChainFormatters,\n const chain extends Chain<formatters>,\n>(chain: chain): Prettify<Assign<Chain<undefined>, chain>> {\n return {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n } as Assign<Chain<undefined>, chain>\n}\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const mainnet = /*#__PURE__*/ defineChain({\n id: 1,\n name: 'Ethereum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://eth.merkle.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n apiUrl: 'https://api.etherscan.io/api',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xce01f8eee7E479C928F8919abD53E553a36CeF67',\n blockCreated: 19_258_213,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 14_353_601,\n },\n },\n})\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const sepolia = /*#__PURE__*/ defineChain({\n id: 11_155_111,\n name: 'Sepolia',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sepolia.drpc.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://sepolia.etherscan.io',\n apiUrl: 'https://api-sepolia.etherscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 751532,\n },\n ensRegistry: { address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' },\n ensUniversalResolver: {\n address: '0xc8Af999e38273D658BE1b921b88A9Ddf005769cC',\n blockCreated: 5_317_080,\n },\n },\n testnet: true,\n})\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n AUTH_GOOGLE: true,\n AUTH_DISCORD: isDev,\n} as const;\n","/* eslint-disable no-undef */\n/* eslint-env node */\nexport const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-undef */\n/* eslint-env node */\n\nexport const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/utils/chain/defineChain.ts","../node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/chains/definitions/mainnet.ts","../node_modules/.pnpm/viem@2.33.0_typescript@5.8.3/node_modules/viem/chains/definitions/sepolia.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import type { Chain, ChainFormatters } from '../../types/chain.js'\nimport type { Assign, Prettify } from '../../types/utils.js'\n\nexport function defineChain<\n formatters extends ChainFormatters,\n const chain extends Chain<formatters>,\n>(chain: chain): Prettify<Assign<Chain<undefined>, chain>> {\n return {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n } as Assign<Chain<undefined>, chain>\n}\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const mainnet = /*#__PURE__*/ defineChain({\n id: 1,\n name: 'Ethereum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://eth.merkle.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n apiUrl: 'https://api.etherscan.io/api',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xce01f8eee7E479C928F8919abD53E553a36CeF67',\n blockCreated: 19_258_213,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 14_353_601,\n },\n },\n})\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const sepolia = /*#__PURE__*/ defineChain({\n id: 11_155_111,\n name: 'Sepolia',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sepolia.drpc.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://sepolia.etherscan.io',\n apiUrl: 'https://api-sepolia.etherscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 751532,\n },\n ensRegistry: { address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' },\n ensUniversalResolver: {\n address: '0xc8Af999e38273D658BE1b921b88A9Ddf005769cC',\n blockCreated: 5_317_080,\n },\n },\n testnet: true,\n})\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","import { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n // eslint-disable-next-line @typescript-eslint/naming-convention\n AUTH_GOOGLE: true,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n AUTH_DISCORD: isDev,\n} as const;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export * from './env';
|
|
2
|
-
export * from './providers
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './chains/supportedChains';
|
|
5
|
-
export * from './chains/contracts';
|
|
2
|
+
export * from './providers';
|
|
3
|
+
export * from './chains';
|
|
6
4
|
export * from './features';
|
|
7
5
|
export * from './domains';
|
|
8
6
|
export * from './app';
|
package/dist/index.js
CHANGED
|
@@ -4,58 +4,44 @@ import { sepolia, mainnet } from 'viem/chains';
|
|
|
4
4
|
|
|
5
5
|
// src/env.ts
|
|
6
6
|
var isServer = typeof window === "undefined";
|
|
7
|
-
var isDev = process.env.NODE_ENV === "development";
|
|
8
|
-
var isProd = process.env.NODE_ENV === "production";
|
|
9
|
-
var isTest = process.env.NODE_ENV === "test";
|
|
7
|
+
var isDev = globalThis.process.env.NODE_ENV === "development";
|
|
8
|
+
var isProd = globalThis.process.env.NODE_ENV === "production";
|
|
9
|
+
var isTest = globalThis.process.env.NODE_ENV === "test";
|
|
10
10
|
|
|
11
11
|
// src/providers/alchemy.ts
|
|
12
12
|
var ALCHEMY_CONFIG = {
|
|
13
|
-
apiKey: process.env.NEXT_PUBLIC_ALCHEMY_KEY,
|
|
13
|
+
apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,
|
|
14
14
|
rpcUrls: {
|
|
15
|
-
ethereum: `https://eth-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
16
|
-
polygon: `https://polygon-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
17
|
-
arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
18
|
-
optimism: `https://opt-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
19
|
-
base: `https://base-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
20
|
-
solana: `https://solana-mainnet.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_KEY}`
|
|
15
|
+
ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
16
|
+
polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
17
|
+
arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
18
|
+
optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
19
|
+
base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,
|
|
20
|
+
solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// src/providers/oauth.ts
|
|
25
25
|
var OAUTH_PROVIDERS = {
|
|
26
26
|
google: {
|
|
27
|
-
clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,
|
|
28
|
-
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
29
|
-
redirectUri: process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,
|
|
27
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,
|
|
28
|
+
clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET,
|
|
29
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,
|
|
30
30
|
scopes: ["openid", "profile", "email"]
|
|
31
31
|
},
|
|
32
32
|
discord: {
|
|
33
|
-
clientId: process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,
|
|
34
|
-
clientSecret: process.env.DISCORD_CLIENT_SECRET,
|
|
35
|
-
redirectUri: process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,
|
|
33
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,
|
|
34
|
+
clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET,
|
|
35
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,
|
|
36
36
|
scopes: ["identify", "email"]
|
|
37
37
|
},
|
|
38
38
|
facebook: {
|
|
39
|
-
clientId: process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,
|
|
40
|
-
clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
|
|
41
|
-
redirectUri: process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,
|
|
39
|
+
clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,
|
|
40
|
+
clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET,
|
|
41
|
+
redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,
|
|
42
42
|
scopes: ["public_profile", "email"]
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
|
-
var PROD_SUPPORTED_CHAINS = {
|
|
46
|
-
// Mainnets
|
|
47
|
-
ethereum: mainnet
|
|
48
|
-
};
|
|
49
|
-
var STAGING_SUPPORTED_CHAINS = {
|
|
50
|
-
// Mainnets
|
|
51
|
-
ethereum: mainnet,
|
|
52
|
-
// Testnets
|
|
53
|
-
sepolia
|
|
54
|
-
};
|
|
55
|
-
var DEV_SUPPORTED_CHAINS = {
|
|
56
|
-
// Testnets
|
|
57
|
-
sepolia
|
|
58
|
-
};
|
|
59
45
|
|
|
60
46
|
// src/chains/contracts.ts
|
|
61
47
|
var CONTRACTS = {
|
|
@@ -76,23 +62,61 @@ var CONTRACTS = {
|
|
|
76
62
|
}
|
|
77
63
|
}
|
|
78
64
|
};
|
|
65
|
+
var PROD_SUPPORTED_CHAINS = {
|
|
66
|
+
// Mainnets
|
|
67
|
+
ethereum: mainnet
|
|
68
|
+
};
|
|
69
|
+
var STAGING_SUPPORTED_CHAINS = {
|
|
70
|
+
// Mainnets
|
|
71
|
+
ethereum: mainnet,
|
|
72
|
+
// Testnets
|
|
73
|
+
sepolia
|
|
74
|
+
};
|
|
75
|
+
var DEV_SUPPORTED_CHAINS = {
|
|
76
|
+
// Testnets
|
|
77
|
+
sepolia
|
|
78
|
+
};
|
|
79
79
|
|
|
80
80
|
// src/features.ts
|
|
81
81
|
var FEATURES = {
|
|
82
82
|
// Authentication & Auth Providers
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
83
84
|
AUTH_GOOGLE: true,
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
84
86
|
AUTH_DISCORD: isDev
|
|
85
87
|
};
|
|
88
|
+
var DEFAULT_BACKEND_CONFIG = {
|
|
89
|
+
provider: "database",
|
|
90
|
+
isCacheEnabled: true,
|
|
91
|
+
cacheTtl: 300,
|
|
92
|
+
// 5 minutes
|
|
93
|
+
refreshInterval: 60,
|
|
94
|
+
// 1 minute auto-refresh
|
|
95
|
+
shouldFallbackToDefaults: true,
|
|
96
|
+
isLoggingEnabled: globalThis.process.env.NODE_ENV === "development"
|
|
97
|
+
};
|
|
98
|
+
var DEFAULT_FRONTEND_CONFIG = {
|
|
99
|
+
provider: "memory",
|
|
100
|
+
isCacheEnabled: true,
|
|
101
|
+
cacheTtl: 300,
|
|
102
|
+
// 5 minutes
|
|
103
|
+
refreshInterval: 0,
|
|
104
|
+
// No auto-refresh for frontend
|
|
105
|
+
shouldFallbackToDefaults: true,
|
|
106
|
+
isLoggingEnabled: false
|
|
107
|
+
// Disabled in production
|
|
108
|
+
};
|
|
86
109
|
|
|
87
110
|
// src/domains.ts
|
|
88
111
|
var DOMAINS = {
|
|
89
112
|
app: "https://plyaz.co.uk",
|
|
90
|
-
api: process.env.NEXT_PUBLIC_API_URL
|
|
113
|
+
api: globalThis.process.env.NEXT_PUBLIC_API_URL
|
|
91
114
|
};
|
|
92
115
|
|
|
93
116
|
// src/constants.ts
|
|
94
117
|
var DEFAULT_LOCALE = "en";
|
|
95
118
|
var SUPPORTED_LOCALES = ["en", "es", "pt"];
|
|
119
|
+
var TIMEZONE = "Europe/London";
|
|
96
120
|
|
|
97
121
|
// src/app.ts
|
|
98
122
|
var LANDING_PAGE_APP = {
|
|
@@ -136,14 +160,15 @@ var CACHE_CONFIG = {
|
|
|
136
160
|
},
|
|
137
161
|
// Redis configuration
|
|
138
162
|
redis: {
|
|
139
|
-
url: process.env.REDIS_URL,
|
|
163
|
+
url: globalThis.process.env.REDIS_URL,
|
|
140
164
|
keyPrefix: "plyaz:",
|
|
141
165
|
maxRetriesPerRequest: 3,
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
142
167
|
lazyConnect: true
|
|
143
168
|
}
|
|
144
169
|
};
|
|
145
170
|
var WEBHOOK_CONFIG = {};
|
|
146
171
|
|
|
147
|
-
export { ALCHEMY_CONFIG, API_CONFIG, CACHE_CONFIG, CONTRACTS, DEFAULT_LOCALE, DEV_SUPPORTED_CHAINS, DOMAINS, FEATURES, LANDING_PAGE_APP, OAUTH_PROVIDERS, PROD_SUPPORTED_CHAINS, SECURITY, STAGING_SUPPORTED_CHAINS, SUPPORTED_LOCALES, WEBHOOK_CONFIG, WEB_APP, isDev, isProd, isServer, isTest };
|
|
172
|
+
export { ALCHEMY_CONFIG, API_CONFIG, CACHE_CONFIG, CONTRACTS, DEFAULT_BACKEND_CONFIG, DEFAULT_FRONTEND_CONFIG, DEFAULT_LOCALE, DEV_SUPPORTED_CHAINS, DOMAINS, FEATURES, LANDING_PAGE_APP, OAUTH_PROVIDERS, PROD_SUPPORTED_CHAINS, SECURITY, STAGING_SUPPORTED_CHAINS, SUPPORTED_LOCALES, TIMEZONE, WEBHOOK_CONFIG, WEB_APP, isDev, isProd, isServer, isTest };
|
|
148
173
|
//# sourceMappingURL=index.js.map
|
|
149
174
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/
|
|
1
|
+
{"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","import { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n // eslint-disable-next-line @typescript-eslint/naming-convention\n AUTH_GOOGLE: true,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n AUTH_DISCORD: isDev,\n} as const;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n"]}
|