@plyaz/config 1.0.0 → 1.0.1

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,2 @@
1
+ export * from './contracts';
2
+ export * from './supportedChains';
@@ -1,2 +1,3 @@
1
1
  export declare const DEFAULT_LOCALE = "en";
2
2
  export declare const SUPPORTED_LOCALES: readonly ["en", "es", "pt"];
3
+ export declare const TIMEZONE = "Europe/London";
@@ -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
- // node_modules/.pnpm/viem@2.31.7_typescript@5.8.3/node_modules/viem/_esm/utils/chain/defineChain.js
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.32.1_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.31.7_typescript@5.8.3/node_modules/viem/_esm/chains/definitions/mainnet.js
79
+ // node_modules/.pnpm/viem@2.32.1_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.31.7_typescript@5.8.3/node_modules/viem/_esm/chains/definitions/sepolia.js
111
+ // node_modules/.pnpm/viem@2.32.1_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;
@@ -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.32.1_typescript@5.8.3/node_modules/viem/utils/chain/defineChain.ts","../node_modules/.pnpm/viem@2.32.1_typescript@5.8.3/node_modules/viem/chains/definitions/mainnet.ts","../node_modules/.pnpm/viem@2.32.1_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/alchemy';
3
- export * from './providers/oauth';
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/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.js","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 { 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","../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"]}
@@ -0,0 +1,2 @@
1
+ export * from './alchemy';
2
+ export * from './oauth';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plyaz/config",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "author": "Redeemer Pace",
5
5
  "license": "ISC",
6
6
  "description": "Provides shared configs and constants for @playz ecosystem.",