@zintrust/core 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +2 -1
  2. package/src/boot/Application.d.ts.map +1 -1
  3. package/src/boot/Application.js +48 -10
  4. package/src/boot/bootstrap.js +2 -0
  5. package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
  6. package/src/cli/commands/MigrateCommand.js +36 -3
  7. package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
  8. package/src/cli/d1/D1SqlMigrations.js +6 -1
  9. package/src/cli/scaffolding/ControllerGenerator.js +4 -4
  10. package/src/cli/scaffolding/GovernanceScaffolder.js +1 -1
  11. package/src/cli/scaffolding/MigrationGenerator.js +1 -1
  12. package/src/cli/scaffolding/ModelGenerator.js +1 -1
  13. package/src/cli/scaffolding/RouteGenerator.js +1 -1
  14. package/src/cli/scaffolding/ServiceScaffolder.js +4 -4
  15. package/src/config/broadcast.d.ts +14 -28
  16. package/src/config/broadcast.d.ts.map +1 -1
  17. package/src/config/broadcast.js +69 -35
  18. package/src/config/cache.d.ts +13 -45
  19. package/src/config/cache.d.ts.map +1 -1
  20. package/src/config/cache.js +69 -25
  21. package/src/config/database.d.ts +22 -64
  22. package/src/config/database.d.ts.map +1 -1
  23. package/src/config/database.js +99 -31
  24. package/src/config/env.d.ts +6 -0
  25. package/src/config/env.d.ts.map +1 -1
  26. package/src/config/env.js +7 -0
  27. package/src/config/index.d.ts +32 -136
  28. package/src/config/index.d.ts.map +1 -1
  29. package/src/config/mail.d.ts +19 -55
  30. package/src/config/mail.d.ts.map +1 -1
  31. package/src/config/mail.js +63 -21
  32. package/src/config/middleware.d.ts +24 -0
  33. package/src/config/middleware.d.ts.map +1 -1
  34. package/src/config/middleware.js +72 -52
  35. package/src/config/notification.d.ts +14 -27
  36. package/src/config/notification.d.ts.map +1 -1
  37. package/src/config/notification.js +82 -36
  38. package/src/config/queue.d.ts +21 -51
  39. package/src/config/queue.d.ts.map +1 -1
  40. package/src/config/queue.js +72 -27
  41. package/src/config/storage.d.ts +27 -34
  42. package/src/config/storage.d.ts.map +1 -1
  43. package/src/config/storage.js +97 -56
  44. package/src/config/type.d.ts +12 -1
  45. package/src/config/type.d.ts.map +1 -1
  46. package/src/http/parsers/MultipartParser.d.ts.map +1 -1
  47. package/src/http/parsers/MultipartParser.js +69 -42
  48. package/src/index.d.ts +9 -5
  49. package/src/index.d.ts.map +1 -1
  50. package/src/index.js +1 -0
  51. package/src/microservices/PostgresAdapter.d.ts.map +1 -1
  52. package/src/microservices/PostgresAdapter.js +0 -1
  53. package/src/migrations/MigratorFactory.d.ts.map +1 -1
  54. package/src/migrations/MigratorFactory.js +18 -2
  55. package/src/node-singletons/fs.d.ts +1 -1
  56. package/src/node-singletons/fs.d.ts.map +1 -1
  57. package/src/node-singletons/fs.js +1 -1
  58. package/src/orm/Database.d.ts +2 -1
  59. package/src/orm/Database.d.ts.map +1 -1
  60. package/src/orm/Database.js +110 -67
  61. package/src/orm/DatabaseAdapter.d.ts +1 -0
  62. package/src/orm/DatabaseAdapter.d.ts.map +1 -1
  63. package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
  64. package/src/orm/DatabaseRuntimeRegistration.js +12 -0
  65. package/src/orm/QueryBuilder.d.ts +1 -1
  66. package/src/orm/QueryBuilder.d.ts.map +1 -1
  67. package/src/orm/QueryBuilder.js +4 -3
  68. package/src/orm/adapters/SQLiteAdapter.js +1 -1
  69. package/src/performance/Optimizer.d.ts +6 -6
  70. package/src/performance/Optimizer.d.ts.map +1 -1
  71. package/src/performance/Optimizer.js +133 -52
  72. package/src/routing/doc.d.ts +4 -5
  73. package/src/routing/doc.d.ts.map +1 -1
  74. package/src/routing/doc.js +35 -20
  75. package/src/routing/publicRoot.d.ts +9 -0
  76. package/src/routing/publicRoot.d.ts.map +1 -1
  77. package/src/routing/publicRoot.js +63 -2
  78. package/src/runtime/StartupConfigFileRegistry.d.ts +20 -0
  79. package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -0
  80. package/src/runtime/StartupConfigFileRegistry.js +44 -0
  81. package/src/runtime/useFileLoader.d.ts +26 -0
  82. package/src/runtime/useFileLoader.d.ts.map +1 -0
  83. package/src/runtime/useFileLoader.js +188 -0
  84. package/src/scripts/TemplateSync.js +4 -4
  85. package/src/security/XssProtection.d.ts.map +1 -1
  86. package/src/security/XssProtection.js +62 -14
  87. package/src/templates/project/basic/config/broadcast.ts.tpl +33 -17
  88. package/src/templates/project/basic/config/cache.ts.tpl +35 -17
  89. package/src/templates/project/basic/config/database.ts.tpl +68 -32
  90. package/src/templates/project/basic/config/logging/HttpLogger.ts.tpl +7 -114
  91. package/src/templates/project/basic/config/mail.ts.tpl +59 -13
  92. package/src/templates/project/basic/config/notification.ts.tpl +28 -17
  93. package/src/templates/project/basic/config/queue.ts.tpl +49 -17
  94. package/src/templates/project/basic/config/storage.ts.tpl +55 -18
  95. package/src/templates/project/basic/config/type.ts.tpl +0 -1
  96. package/src/templates/project/basic/src/index.ts.tpl +3 -0
  97. package/src/templates/project/basic/config/logging/KvLogger.ts.tpl +0 -181
  98. package/src/templates/project/basic/config/logging/SlackLogger.ts.tpl +0 -156
@@ -3,6 +3,7 @@
3
3
  * Caching drivers and settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
+ import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
6
7
  import { Env } from './env.js';
7
8
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
8
9
  const getCacheDriver = (config, name) => {
@@ -22,22 +23,16 @@ const getCacheDriver = (config, name) => {
22
23
  }
23
24
  throw ErrorFactory.createConfigError(`Cache default store not configured: ${storeName || '<empty>'}`);
24
25
  };
25
- const cacheConfigObj = {
26
- /**
27
- * Default cache driver
28
- */
29
- default: (() => {
26
+ const createCacheConfig = () => {
27
+ const baseDefault = (() => {
30
28
  const envConnection = Env.get('CACHE_CONNECTION', '').trim();
31
29
  const envDriver = typeof Env.CACHE_DRIVER === 'string'
32
30
  ? String(Env.CACHE_DRIVER)
33
31
  : Env.get('CACHE_DRIVER', 'memory');
34
32
  const selected = envConnection.length > 0 ? envConnection : String(envDriver ?? 'memory');
35
33
  return selected.trim().toLowerCase();
36
- })(),
37
- /**
38
- * Cache drivers
39
- */
40
- drivers: {
34
+ })();
35
+ const baseDrivers = {
41
36
  memory: {
42
37
  driver: 'memory',
43
38
  ttl: Env.getInt('CACHE_MEMORY_TTL', 3600),
@@ -62,20 +57,69 @@ const cacheConfigObj = {
62
57
  driver: 'kv-remote',
63
58
  ttl: Env.getInt('CACHE_KV_TTL', 3600),
64
59
  },
60
+ };
61
+ const overrides = StartupConfigFileRegistry.get(StartupConfigFile.Cache) ?? {};
62
+ const mergedDrivers = {
63
+ ...baseDrivers,
64
+ ...(overrides.drivers ?? {}),
65
+ };
66
+ const mergedDefault = typeof overrides.default === 'string' && overrides.default.trim() !== ''
67
+ ? overrides.default.trim().toLowerCase()
68
+ : baseDefault;
69
+ const mergedKeyPrefix = typeof overrides.keyPrefix === 'string' && overrides.keyPrefix.length > 0
70
+ ? overrides.keyPrefix
71
+ : Env.get('CACHE_KEY_PREFIX', 'zintrust:');
72
+ const mergedTtl = typeof overrides.ttl === 'number' && Number.isFinite(overrides.ttl) ? overrides.ttl : 3600;
73
+ const cacheConfigObj = {
74
+ /**
75
+ * Default cache driver
76
+ */
77
+ default: mergedDefault,
78
+ /**
79
+ * Cache drivers
80
+ */
81
+ drivers: mergedDrivers,
82
+ /**
83
+ * Get cache driver config
84
+ */
85
+ getDriver(name) {
86
+ return getCacheDriver(this, name);
87
+ },
88
+ /**
89
+ * Key prefix for all cache keys
90
+ */
91
+ keyPrefix: mergedKeyPrefix,
92
+ /**
93
+ * Default cache TTL (seconds)
94
+ */
95
+ ttl: mergedTtl,
96
+ };
97
+ return Object.freeze(cacheConfigObj);
98
+ };
99
+ let cached = null;
100
+ const proxyTarget = {};
101
+ const ensureCacheConfig = () => {
102
+ if (cached)
103
+ return cached;
104
+ cached = createCacheConfig();
105
+ try {
106
+ Object.defineProperties(proxyTarget, Object.getOwnPropertyDescriptors(cached));
107
+ }
108
+ catch {
109
+ // best-effort
110
+ }
111
+ return cached;
112
+ };
113
+ export const cacheConfig = new Proxy(proxyTarget, {
114
+ get(_target, prop) {
115
+ return ensureCacheConfig()[prop];
65
116
  },
66
- /**
67
- * Get cache driver config
68
- */
69
- getDriver(name) {
70
- return getCacheDriver(this, name);
117
+ ownKeys() {
118
+ ensureCacheConfig();
119
+ return Reflect.ownKeys(proxyTarget);
71
120
  },
72
- /**
73
- * Key prefix for all cache keys
74
- */
75
- keyPrefix: Env.get('CACHE_KEY_PREFIX', 'zintrust:'),
76
- /**
77
- * Default cache TTL (seconds)
78
- */
79
- ttl: Env.getInt('CACHE_DEFAULT_TTL', 3600),
80
- };
81
- export const cacheConfig = Object.freeze(cacheConfigObj);
121
+ getOwnPropertyDescriptor(_target, prop) {
122
+ ensureCacheConfig();
123
+ return Object.getOwnPropertyDescriptor(proxyTarget, prop);
124
+ },
125
+ });
@@ -3,81 +3,39 @@
3
3
  * Database connections and pooling settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
- import type { DatabaseConfigShape, DatabaseConnectionConfig } from './type';
7
- export declare const databaseConfig: Readonly<{
8
- /**
9
- * Default database connection
10
- */
6
+ import type { DatabaseConfigShape, DatabaseConnectionConfig, DatabaseConnections } from './type';
7
+ export type DatabaseConfigOverrides = Partial<{
11
8
  default: string;
12
- /**
13
- * Database connections
14
- */
15
- connections: {
16
- sqlite: {
17
- driver: "sqlite";
18
- database: string;
19
- migrations: string;
20
- };
21
- d1: {
22
- driver: "d1";
23
- };
24
- 'd1-remote': {
25
- driver: "d1-remote";
26
- };
27
- postgresql: {
28
- driver: "postgresql";
29
- host: string;
30
- port: number;
31
- database: string;
32
- username: string;
33
- password: string;
34
- ssl: boolean;
35
- pooling: {
36
- enabled: boolean;
37
- min: number;
38
- max: number;
39
- idleTimeout: number;
40
- connectionTimeout: number;
41
- };
42
- };
43
- mysql: {
44
- driver: "mysql";
45
- host: string;
46
- port: number;
47
- database: string;
48
- username: string;
49
- password: string;
50
- pooling: {
51
- enabled: boolean;
52
- min: number;
53
- max: number;
54
- };
55
- };
56
- };
57
- /**
58
- * Get current connection config
59
- */
60
- getConnection(this: DatabaseConfigShape): DatabaseConnectionConfig;
61
- /**
62
- * Enable query logging
63
- */
9
+ connections: DatabaseConnections;
64
10
  logging: {
65
11
  enabled: boolean;
66
12
  level: string;
67
13
  };
68
- /**
69
- * Migration settings
70
- */
71
14
  migrations: {
72
15
  directory: string;
73
16
  extension: string;
74
17
  };
75
- /**
76
- * Seeding settings
77
- */
78
18
  seeders: {
79
19
  directory: string;
80
20
  };
81
21
  }>;
82
- export type DatabaseConfig = typeof databaseConfig;
22
+ declare const createDatabaseConfig: () => {
23
+ default: string;
24
+ connections: DatabaseConnections;
25
+ getConnection: (this: DatabaseConfigShape) => DatabaseConnectionConfig;
26
+ logging: {
27
+ enabled: boolean;
28
+ level: string;
29
+ };
30
+ migrations: {
31
+ directory: string;
32
+ extension: string;
33
+ };
34
+ seeders: {
35
+ directory: string;
36
+ };
37
+ };
38
+ export type DatabaseConfig = ReturnType<typeof createDatabaseConfig>;
39
+ export declare const databaseConfig: DatabaseConfig;
40
+ export {};
83
41
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EAEzB,MAAM,cAAc,CAAC;AAkNtB,eAAO,MAAM,cAAc;IAzCzB;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;wBACiB,mBAAmB,GAAG,wBAAwB;IAIlE;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;EAMyD,CAAC;AAC/D,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,CAAC,CAAC;AA0LH,QAAA,MAAM,oBAAoB,QAAO;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,wBAAwB,CAAC;IACvE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAyEhC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAqBrE,eAAO,MAAM,cAAc,EAAE,cAY3B,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Database connections and pooling settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
+ import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
6
7
  import { Env } from './env.js';
7
8
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
8
9
  const isNodeProcess = () => {
@@ -94,6 +95,13 @@ const resolveDefaultSqliteDatabasePath = () => {
94
95
  const hasOwn = (obj, key) => {
95
96
  return Object.hasOwn(obj, key);
96
97
  };
98
+ const parseReadHosts = (raw) => {
99
+ const list = String(raw ?? '')
100
+ .split(',')
101
+ .map((v) => v.trim())
102
+ .filter((v) => v.length > 0);
103
+ return list.length > 0 ? list : undefined;
104
+ };
97
105
  const getDefaultConnection = (connections) => {
98
106
  const envSelectedRaw = Env.get('DB_CONNECTION', '');
99
107
  const value = String(envSelectedRaw ?? '').trim();
@@ -138,6 +146,7 @@ const connections = {
138
146
  username: Env.DB_USERNAME_POSTGRESQL,
139
147
  password: Env.DB_PASSWORD_POSTGRESQL,
140
148
  ssl: Env.getBool('DB_SSL', false),
149
+ readHosts: parseReadHosts(Env.DB_READ_HOSTS_POSTGRESQL),
141
150
  pooling: {
142
151
  enabled: Env.getBool('DB_POOLING', true),
143
152
  min: Env.getInt('DB_POOL_MIN', 5),
@@ -153,47 +162,106 @@ const connections = {
153
162
  database: Env.DB_DATABASE,
154
163
  username: Env.DB_USERNAME,
155
164
  password: Env.DB_PASSWORD,
165
+ readHosts: parseReadHosts(Env.DB_READ_HOSTS),
156
166
  pooling: {
157
167
  enabled: Env.getBool('DB_POOLING', true),
158
168
  min: Env.getInt('DB_POOL_MIN', 5),
159
169
  max: Env.getInt('DB_POOL_MAX', 20),
160
170
  },
161
171
  },
162
- };
163
- const databaseConfigObj = {
164
- /**
165
- * Default database connection
166
- */
167
- default: getDefaultConnection(connections),
168
- /**
169
- * Database connections
170
- */
171
- connections,
172
- /**
173
- * Get current connection config
174
- */
175
- getConnection() {
176
- return getDatabaseConnection(this);
172
+ sqlserver: {
173
+ driver: 'sqlserver',
174
+ host: Env.DB_HOST_MSSQL,
175
+ port: Env.DB_PORT_MSSQL,
176
+ database: Env.DB_DATABASE_MSSQL,
177
+ username: Env.DB_USERNAME_MSSQL,
178
+ password: Env.DB_PASSWORD_MSSQL,
179
+ readHosts: parseReadHosts(Env.DB_READ_HOSTS_MSSQL),
177
180
  },
178
- /**
179
- * Enable query logging
180
- */
181
- logging: {
181
+ };
182
+ const createDatabaseConfig = () => {
183
+ const overrides = StartupConfigFileRegistry.get(StartupConfigFile.Database) ?? {};
184
+ const mergedConnections = {
185
+ ...connections,
186
+ ...overrides.connections,
187
+ };
188
+ const baseLogging = {
182
189
  enabled: Env.getBool('DB_LOG_QUERIES', Env.DEBUG),
183
190
  level: Env.get('DB_LOG_LEVEL', 'debug'),
184
- },
185
- /**
186
- * Migration settings
187
- */
188
- migrations: {
191
+ };
192
+ const baseMigrations = {
189
193
  directory: 'database/migrations',
190
194
  extension: Env.get('DB_MIGRATION_EXT', '.ts'),
191
- },
192
- /**
193
- * Seeding settings
194
- */
195
- seeders: {
195
+ };
196
+ const baseSeeders = {
196
197
  directory: 'database/seeders',
197
- },
198
+ };
199
+ const mergedDefault = typeof overrides.default === 'string' && overrides.default.trim() !== ''
200
+ ? overrides.default.trim()
201
+ : getDefaultConnection(mergedConnections);
202
+ const databaseConfigObj = {
203
+ /**
204
+ * Default database connection
205
+ */
206
+ default: mergedDefault,
207
+ /**
208
+ * Database connections
209
+ */
210
+ connections: mergedConnections,
211
+ /**
212
+ * Get current connection config
213
+ */
214
+ getConnection() {
215
+ return getDatabaseConnection(this);
216
+ },
217
+ /**
218
+ * Enable query logging
219
+ */
220
+ logging: {
221
+ ...baseLogging,
222
+ ...overrides.logging,
223
+ },
224
+ /**
225
+ * Migration settings
226
+ */
227
+ migrations: {
228
+ ...baseMigrations,
229
+ ...overrides.migrations,
230
+ },
231
+ /**
232
+ * Seeding settings
233
+ */
234
+ seeders: {
235
+ ...baseSeeders,
236
+ ...overrides.seeders,
237
+ },
238
+ };
239
+ return Object.freeze(databaseConfigObj);
240
+ };
241
+ let cached = null;
242
+ const proxyTarget = {};
243
+ const ensureDatabaseConfig = () => {
244
+ if (cached)
245
+ return cached;
246
+ cached = createDatabaseConfig();
247
+ try {
248
+ Object.defineProperties(proxyTarget, Object.getOwnPropertyDescriptors(cached));
249
+ }
250
+ catch {
251
+ // best-effort
252
+ }
253
+ return cached;
198
254
  };
199
- export const databaseConfig = Object.freeze(databaseConfigObj);
255
+ export const databaseConfig = new Proxy(proxyTarget, {
256
+ get(_target, prop) {
257
+ return ensureDatabaseConfig()[prop];
258
+ },
259
+ ownKeys() {
260
+ ensureDatabaseConfig();
261
+ return Reflect.ownKeys(proxyTarget);
262
+ },
263
+ getOwnPropertyDescriptor(_target, prop) {
264
+ ensureDatabaseConfig();
265
+ return Object.getOwnPropertyDescriptor(proxyTarget, prop);
266
+ },
267
+ });
@@ -28,6 +28,12 @@ export declare const Env: Readonly<{
28
28
  DB_USERNAME_POSTGRESQL: string;
29
29
  DB_PASSWORD_POSTGRESQL: string;
30
30
  DB_READ_HOSTS_POSTGRESQL: string;
31
+ DB_HOST_MSSQL: string;
32
+ DB_PORT_MSSQL: number;
33
+ DB_DATABASE_MSSQL: string;
34
+ DB_USERNAME_MSSQL: string;
35
+ DB_PASSWORD_MSSQL: string;
36
+ DB_READ_HOSTS_MSSQL: string;
31
37
  D1_DATABASE_ID: string;
32
38
  KV_NAMESPACE_ID: string;
33
39
  D1_REMOTE_URL: string;
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+CH,eAAO,MAAM,GAAG;eA/BE,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,iBAAiB,MAAM,KAAG,MAAM;mBASrC,MAAM,iBAAiB,OAAO,KAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4GP,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;;;;EAkCxF,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+CH,eAAO,MAAM,GAAG;eA/BE,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,iBAAiB,MAAM,KAAG,MAAM;mBASrC,MAAM,iBAAiB,OAAO,KAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAoHP,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;;;;EAkCxF,CAAC"}
package/src/config/env.js CHANGED
@@ -78,6 +78,13 @@ export const Env = Object.freeze({
78
78
  DB_USERNAME_POSTGRESQL: get('DB_USERNAME_POSTGRESQL', 'postgres'),
79
79
  DB_PASSWORD_POSTGRESQL: get('DB_PASSWORD_POSTGRESQL', ''),
80
80
  DB_READ_HOSTS_POSTGRESQL: get('DB_READ_HOSTS_POSTGRESQL', ''),
81
+ // SQL Server (MSSQL) specific configuration
82
+ DB_HOST_MSSQL: get('DB_HOST_MSSQL', get('DB_HOST', 'localhost')),
83
+ DB_PORT_MSSQL: getInt('DB_PORT_MSSQL', 1433),
84
+ DB_DATABASE_MSSQL: get('DB_DATABASE_MSSQL', 'zintrust'),
85
+ DB_USERNAME_MSSQL: get('DB_USERNAME_MSSQL', 'sa'),
86
+ DB_PASSWORD_MSSQL: get('DB_PASSWORD_MSSQL', ''),
87
+ DB_READ_HOSTS_MSSQL: get('DB_READ_HOSTS_MSSQL', ''),
81
88
  // Cloudflare
82
89
  D1_DATABASE_ID: get('D1_DATABASE_ID'),
83
90
  KV_NAMESPACE_ID: get('KV_NAMESPACE_ID'),
@@ -31,62 +31,16 @@ export declare const config: Readonly<{
31
31
  readonly maxBodySize: string;
32
32
  readonly getSafeEnv: () => NodeJS.ProcessEnv;
33
33
  }>;
34
- readonly broadcast: Readonly<{
35
- readonly default: string;
36
- readonly drivers: {
37
- readonly inmemory: import("./type").InMemoryBroadcastDriverConfig;
38
- readonly pusher: import("./type").PusherBroadcastDriverConfig;
39
- readonly redis: import("./type").RedisBroadcastDriverConfig;
40
- readonly redishttps: import("./type").RedisHttpsBroadcastDriverConfig;
41
- };
42
- readonly getDriverName: () => string;
43
- readonly getDriverConfig: (name?: string) => import("./type").KnownBroadcastDriverConfig;
44
- }>;
45
- readonly database: Readonly<{
34
+ readonly broadcast: {
46
35
  default: string;
47
- connections: {
48
- sqlite: {
49
- driver: "sqlite";
50
- database: string;
51
- migrations: string;
52
- };
53
- d1: {
54
- driver: "d1";
55
- };
56
- 'd1-remote': {
57
- driver: "d1-remote";
58
- };
59
- postgresql: {
60
- driver: "postgresql";
61
- host: string;
62
- port: number;
63
- database: string;
64
- username: string;
65
- password: string;
66
- ssl: boolean;
67
- pooling: {
68
- enabled: boolean;
69
- min: number;
70
- max: number;
71
- idleTimeout: number;
72
- connectionTimeout: number;
73
- };
74
- };
75
- mysql: {
76
- driver: "mysql";
77
- host: string;
78
- port: number;
79
- database: string;
80
- username: string;
81
- password: string;
82
- pooling: {
83
- enabled: boolean;
84
- min: number;
85
- max: number;
86
- };
87
- };
88
- };
89
- getConnection(this: import("./type").DatabaseConfigShape): import("./type").DatabaseConnectionConfig;
36
+ drivers: import("./type").BroadcastDrivers;
37
+ getDriverName: () => string;
38
+ getDriverConfig: (name?: string) => import("./type").KnownBroadcastDriverConfig;
39
+ };
40
+ readonly database: {
41
+ default: string;
42
+ connections: import("./type").DatabaseConnections;
43
+ getConnection: (this: import("./type").DatabaseConfigShape) => import("./type").DatabaseConnectionConfig;
90
44
  logging: {
91
45
  enabled: boolean;
92
46
  level: string;
@@ -98,33 +52,31 @@ export declare const config: Readonly<{
98
52
  seeders: {
99
53
  directory: string;
100
54
  };
101
- }>;
102
- readonly storage: Readonly<{
103
- readonly default: string;
104
- readonly drivers: import("./type").StorageDrivers;
105
- getDriver(this: import("./type").StorageConfigRuntime): import("./type").StorageDriverConfig;
106
- getDriverConfig(this: import("./type").StorageConfigRuntime, name?: string): import("./type").StorageDriverConfig;
107
- readonly temp: {
55
+ };
56
+ readonly storage: import("./type").StorageConfigRuntime & {
57
+ getDriver: (this: import("./type").StorageConfigRuntime) => import("./type").StorageDriverConfig;
58
+ getDriverConfig: (this: import("./type").StorageConfigRuntime, name?: string) => import("./type").StorageDriverConfig;
59
+ temp: {
108
60
  path: string;
109
61
  maxAge: number;
110
62
  };
111
- readonly uploads: {
63
+ uploads: {
112
64
  maxSize: string;
113
65
  allowedMimes: string;
114
66
  path: string;
115
67
  };
116
- readonly backups: {
68
+ backups: {
117
69
  path: string;
118
70
  driver: string;
119
71
  };
120
- }>;
121
- readonly notification: Readonly<{
122
- readonly default: string;
123
- readonly drivers: import("./type").NotificationDrivers;
124
- readonly providers: import("./type").NotificationProviders;
125
- readonly getDriverName: () => string;
126
- readonly getDriverConfig: (name?: string) => import("./type").KnownNotificationDriverConfig;
127
- }>;
72
+ };
73
+ readonly notification: {
74
+ default: string;
75
+ drivers: import("./type").NotificationDrivers;
76
+ providers: import("./type").NotificationProviders;
77
+ getDriverName: () => string;
78
+ getDriverConfig: (name?: string) => import("./type").KnownNotificationDriverConfig;
79
+ };
128
80
  readonly security: Readonly<{
129
81
  readonly jwt: {
130
82
  readonly enabled: boolean;
@@ -252,73 +204,17 @@ export declare const config: Readonly<{
252
204
  readonly namespace: string;
253
205
  };
254
206
  }>;
255
- readonly cache: Readonly<{
207
+ readonly cache: {
256
208
  default: string;
257
- drivers: {
258
- memory: {
259
- driver: "memory";
260
- ttl: number;
261
- };
262
- redis: {
263
- driver: "redis";
264
- host: string;
265
- port: number;
266
- ttl: number;
267
- };
268
- mongodb: {
269
- driver: "mongodb";
270
- uri: string;
271
- db: string;
272
- ttl: number;
273
- };
274
- kv: {
275
- driver: "kv";
276
- ttl: number;
277
- };
278
- 'kv-remote': {
279
- driver: "kv-remote";
280
- ttl: number;
281
- };
282
- };
283
- getDriver(name?: string): import("./type").CacheDriverConfig;
209
+ drivers: import("./type").CacheConfigInput["drivers"];
210
+ getDriver: (name?: string) => import("./type").CacheDriverConfig;
284
211
  keyPrefix: string;
285
212
  ttl: number;
286
- }>;
287
- readonly queue: Readonly<{
213
+ };
214
+ readonly queue: {
288
215
  default: import("./type").QueueDriverName;
289
- drivers: {
290
- sync: {
291
- driver: "sync";
292
- };
293
- database: {
294
- driver: "database";
295
- table: string;
296
- connection: string;
297
- };
298
- redis: {
299
- driver: "redis";
300
- host: string;
301
- port: number;
302
- password: string;
303
- database: number;
304
- };
305
- rabbitmq: {
306
- driver: "rabbitmq";
307
- host: string;
308
- port: number;
309
- username: string;
310
- password: string;
311
- vhost: string;
312
- };
313
- sqs: {
314
- driver: "sqs";
315
- key: string;
316
- secret: string;
317
- region: string;
318
- queueUrl: string;
319
- };
320
- };
321
- getDriver(): import("./type").QueueDriversConfig[import("./type").QueueDriverName];
216
+ drivers: import("./type").QueueDriversConfig;
217
+ getDriver: (this: import("./type").QueueConfigWithDrivers) => import("./type").QueueDriversConfig[import("./type").QueueDriverName];
322
218
  failed: {
323
219
  database: string;
324
220
  table: string;
@@ -329,7 +225,7 @@ export declare const config: Readonly<{
329
225
  backoff: number;
330
226
  workers: number;
331
227
  };
332
- }>;
228
+ };
333
229
  }>;
334
230
  export type Config = typeof config;
335
231
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWR,CAAC;AAEZ,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;8BAXgB,CAAA;;;;;;;;;;;;;;;;;;;;2EAAA,CAAC;;;;;;;;;;;;;;;;;;;;8BAD2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoBxD,CAAC;;;;;;;;;;;;;;;;;;;EAGE,CAAC;AAEZ,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}