glasswork 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -43
- package/dist/config/config-service.d.ts +101 -0
- package/dist/config/config-service.d.ts.map +1 -0
- package/dist/config/config-service.js +164 -0
- package/dist/config/config-service.js.map +1 -0
- package/dist/config/helpers.d.ts +101 -0
- package/dist/config/helpers.d.ts.map +1 -0
- package/dist/config/helpers.js +122 -0
- package/dist/config/helpers.js.map +1 -0
- package/dist/config/index.d.ts +39 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/providers.d.ts +163 -0
- package/dist/config/providers.d.ts.map +1 -0
- package/dist/config/providers.js +188 -0
- package/dist/config/providers.js.map +1 -0
- package/dist/config/types.d.ts +98 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/core/bootstrap.js +9 -3
- package/dist/core/bootstrap.js.map +1 -1
- package/dist/core/types.d.ts +2 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/http/error-response.dto.d.ts +76 -0
- package/dist/http/error-response.dto.d.ts.map +1 -0
- package/dist/http/error-response.dto.js +67 -0
- package/dist/http/error-response.dto.js.map +1 -0
- package/dist/http/errors.d.ts +39 -0
- package/dist/http/errors.d.ts.map +1 -1
- package/dist/http/errors.js +78 -0
- package/dist/http/errors.js.map +1 -1
- package/dist/http/route-helpers.d.ts +13 -6
- package/dist/http/route-helpers.d.ts.map +1 -1
- package/dist/http/route-helpers.js +29 -1
- package/dist/http/route-helpers.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/index.js.map +1 -1
- package/dist/middleware/rate-limit.d.ts.map +1 -1
- package/dist/middleware/rate-limit.js +2 -16
- package/dist/middleware/rate-limit.js.map +1 -1
- package/dist/openapi/defaults.d.ts.map +1 -1
- package/dist/openapi/defaults.js +6 -38
- package/dist/openapi/defaults.js.map +1 -1
- package/dist/openapi/openapi.d.ts +1 -1
- package/dist/openapi/openapi.d.ts.map +1 -1
- package/dist/openapi/openapi.js +21 -3
- package/dist/openapi/openapi.js.map +1 -1
- package/package.json +25 -2
- package/dist/bootstrap.d.ts +0 -55
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -359
- package/dist/bootstrap.js.map +0 -1
- package/dist/environment.d.ts +0 -21
- package/dist/environment.d.ts.map +0 -1
- package/dist/environment.js +0 -29
- package/dist/environment.js.map +0 -1
- package/dist/error-handler.d.ts +0 -33
- package/dist/error-handler.d.ts.map +0 -1
- package/dist/error-handler.js +0 -53
- package/dist/error-handler.js.map +0 -1
- package/dist/errors.d.ts +0 -36
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -65
- package/dist/errors.js.map +0 -1
- package/dist/get-client-ip.d.ts +0 -24
- package/dist/get-client-ip.d.ts.map +0 -1
- package/dist/get-client-ip.js +0 -49
- package/dist/get-client-ip.js.map +0 -1
- package/dist/logger.d.ts +0 -37
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -52
- package/dist/logger.js.map +0 -1
- package/dist/module.d.ts +0 -21
- package/dist/module.d.ts.map +0 -1
- package/dist/module.js +0 -85
- package/dist/module.js.map +0 -1
- package/dist/omit.d.ts +0 -20
- package/dist/omit.d.ts.map +0 -1
- package/dist/omit.js +0 -28
- package/dist/omit.js.map +0 -1
- package/dist/openapi-defaults.d.ts +0 -11
- package/dist/openapi-defaults.d.ts.map +0 -1
- package/dist/openapi-defaults.js +0 -127
- package/dist/openapi-defaults.js.map +0 -1
- package/dist/openapi-hooks.d.ts +0 -14
- package/dist/openapi-hooks.d.ts.map +0 -1
- package/dist/openapi-hooks.js +0 -80
- package/dist/openapi-hooks.js.map +0 -1
- package/dist/openapi.d.ts +0 -24
- package/dist/openapi.d.ts.map +0 -1
- package/dist/openapi.js +0 -106
- package/dist/openapi.js.map +0 -1
- package/dist/pagination.d.ts +0 -48
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -43
- package/dist/pagination.js.map +0 -1
- package/dist/pick.d.ts +0 -20
- package/dist/pick.d.ts.map +0 -1
- package/dist/pick.js +0 -28
- package/dist/pick.js.map +0 -1
- package/dist/rate-limit.d.ts +0 -7
- package/dist/rate-limit.d.ts.map +0 -1
- package/dist/rate-limit.js +0 -180
- package/dist/rate-limit.js.map +0 -1
- package/dist/route-helpers.d.ts +0 -172
- package/dist/route-helpers.d.ts.map +0 -1
- package/dist/route-helpers.js +0 -249
- package/dist/route-helpers.js.map +0 -1
- package/dist/serialize-dates.d.ts +0 -27
- package/dist/serialize-dates.d.ts.map +0 -1
- package/dist/serialize-dates.js +0 -39
- package/dist/serialize-dates.js.map +0 -1
- package/dist/testing.d.ts +0 -87
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -94
- package/dist/testing.js.map +0 -1
- package/dist/types.d.ts +0 -273
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -9
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -31
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration management for Glasswork applications.
|
|
3
|
+
*
|
|
4
|
+
* Provides a flexible, type-safe way to load and validate configuration
|
|
5
|
+
* from multiple sources (environment variables, .env files, AWS SSM, etc.)
|
|
6
|
+
* using Valibot schemas.
|
|
7
|
+
*
|
|
8
|
+
* @module config
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { object, string, number } from 'valibot';
|
|
13
|
+
* import { createConfig, dotenvProvider, envProvider } from 'glasswork';
|
|
14
|
+
*
|
|
15
|
+
* // Define schema
|
|
16
|
+
* const configSchema = object({
|
|
17
|
+
* nodeEnv: string(),
|
|
18
|
+
* port: number(),
|
|
19
|
+
* databaseUrl: string(),
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Create config with multiple providers
|
|
23
|
+
* const config = await createConfig({
|
|
24
|
+
* schema: configSchema,
|
|
25
|
+
* providers: [
|
|
26
|
+
* dotenvProvider({ path: '.env' }),
|
|
27
|
+
* envProvider(), // Env vars override .env
|
|
28
|
+
* ],
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Type-safe access
|
|
32
|
+
* const port = config.get('port'); // number
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
// Core
|
|
36
|
+
export { ConfigValidationException, createConfig, validateConfig } from './config-service.js';
|
|
37
|
+
// Helpers
|
|
38
|
+
export { parseArray, parseBoolean, parseJson, toCamelCase, toSnakeCase, } from './helpers.js';
|
|
39
|
+
// Providers
|
|
40
|
+
export { dotenvProvider, envProvider, objectProvider, ssmProvider, } from './providers.js';
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO;AACP,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,UAAU;AACV,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY;AACZ,OAAO,EAEL,cAAc,EAEd,WAAW,EACX,cAAc,EAEd,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in configuration providers for common sources.
|
|
3
|
+
*
|
|
4
|
+
* @module config/providers
|
|
5
|
+
*/
|
|
6
|
+
import type { ConfigProvider } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for the environment variable provider.
|
|
9
|
+
*/
|
|
10
|
+
export interface EnvProviderOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Optional prefix to filter environment variables.
|
|
13
|
+
* Only variables starting with this prefix will be included.
|
|
14
|
+
*
|
|
15
|
+
* @example 'APP_' // Only include APP_* variables
|
|
16
|
+
*/
|
|
17
|
+
prefix?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to remove the prefix from the key names.
|
|
20
|
+
* Only applies if prefix is set.
|
|
21
|
+
*
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
removePrefix?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates a provider that loads configuration from process.env.
|
|
28
|
+
*
|
|
29
|
+
* @param options - Options for filtering/transforming env vars
|
|
30
|
+
* @returns ConfigProvider
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Load all env vars
|
|
35
|
+
* envProvider()
|
|
36
|
+
*
|
|
37
|
+
* // Load only APP_* env vars and remove prefix
|
|
38
|
+
* envProvider({ prefix: 'APP_', removePrefix: true })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function envProvider(options?: EnvProviderOptions): ConfigProvider;
|
|
42
|
+
/**
|
|
43
|
+
* Options for the .env file provider.
|
|
44
|
+
*/
|
|
45
|
+
export interface DotenvProviderOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Path to the .env file to load.
|
|
48
|
+
*
|
|
49
|
+
* @default '.env'
|
|
50
|
+
*/
|
|
51
|
+
path?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to override existing environment variables.
|
|
54
|
+
*
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
override?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Encoding of the .env file.
|
|
60
|
+
*
|
|
61
|
+
* @default 'utf8'
|
|
62
|
+
*/
|
|
63
|
+
encoding?: BufferEncoding;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Creates a provider that loads configuration from a .env file.
|
|
67
|
+
*
|
|
68
|
+
* Uses the classic `dotenv` package for parsing.
|
|
69
|
+
* Install with: npm install dotenv
|
|
70
|
+
*
|
|
71
|
+
* @param options - Options for loading .env file
|
|
72
|
+
* @returns ConfigProvider
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* // Load from .env
|
|
77
|
+
* dotenvProvider()
|
|
78
|
+
*
|
|
79
|
+
* // Load from specific file
|
|
80
|
+
* dotenvProvider({ path: '.env.local' })
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function dotenvProvider(options?: DotenvProviderOptions): ConfigProvider;
|
|
84
|
+
/**
|
|
85
|
+
* Options for the AWS SSM Parameter Store provider.
|
|
86
|
+
*/
|
|
87
|
+
export interface SsmProviderOptions {
|
|
88
|
+
/**
|
|
89
|
+
* Path prefix for parameters to fetch from SSM.
|
|
90
|
+
* If provided, fetches all parameters under this path.
|
|
91
|
+
*
|
|
92
|
+
* @example '/app/config'
|
|
93
|
+
*/
|
|
94
|
+
path?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Specific parameter names to fetch.
|
|
97
|
+
* Alternative to using path for fetching individual parameters.
|
|
98
|
+
*
|
|
99
|
+
* @example ['DATABASE_URL', 'API_KEY']
|
|
100
|
+
*/
|
|
101
|
+
names?: string[];
|
|
102
|
+
/**
|
|
103
|
+
* AWS region for SSM client.
|
|
104
|
+
*
|
|
105
|
+
* @default process.env.AWS_REGION || 'us-east-1'
|
|
106
|
+
*/
|
|
107
|
+
region?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Whether to decrypt SecureString parameters.
|
|
110
|
+
*
|
|
111
|
+
* @default true
|
|
112
|
+
*/
|
|
113
|
+
withDecryption?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Whether to remove the path prefix from parameter names.
|
|
116
|
+
* Only applies when using path option.
|
|
117
|
+
*
|
|
118
|
+
* @default true
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* // With removePrefix: true
|
|
122
|
+
* // /app/config/DATABASE_URL -> DATABASE_URL
|
|
123
|
+
* // With removePrefix: false
|
|
124
|
+
* // /app/config/DATABASE_URL -> /app/config/DATABASE_URL
|
|
125
|
+
*/
|
|
126
|
+
removePrefix?: boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates a provider that loads configuration from AWS SSM Parameter Store.
|
|
130
|
+
*
|
|
131
|
+
* Requires AWS SDK to be installed:
|
|
132
|
+
* npm install @aws-sdk/client-ssm
|
|
133
|
+
*
|
|
134
|
+
* @param options - Options for fetching SSM parameters
|
|
135
|
+
* @returns ConfigProvider
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* // Fetch all parameters under a path
|
|
140
|
+
* ssmProvider({ path: '/app/config' })
|
|
141
|
+
*
|
|
142
|
+
* // Fetch specific parameters
|
|
143
|
+
* ssmProvider({ names: ['DATABASE_URL', 'API_KEY'] })
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export declare function ssmProvider(options: SsmProviderOptions): ConfigProvider;
|
|
147
|
+
/**
|
|
148
|
+
* Creates a provider from a static object.
|
|
149
|
+
* Useful for providing defaults or overrides.
|
|
150
|
+
*
|
|
151
|
+
* @param config - Static configuration object
|
|
152
|
+
* @returns ConfigProvider
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* objectProvider({
|
|
157
|
+
* nodeEnv: 'development',
|
|
158
|
+
* port: 3000,
|
|
159
|
+
* })
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export declare function objectProvider(config: Record<string, unknown>): ConfigProvider;
|
|
163
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/config/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAuB5E;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAwBlF;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA8ED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAqCvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAE9E"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in configuration providers for common sources.
|
|
3
|
+
*
|
|
4
|
+
* @module config/providers
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Creates a provider that loads configuration from process.env.
|
|
8
|
+
*
|
|
9
|
+
* @param options - Options for filtering/transforming env vars
|
|
10
|
+
* @returns ConfigProvider
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Load all env vars
|
|
15
|
+
* envProvider()
|
|
16
|
+
*
|
|
17
|
+
* // Load only APP_* env vars and remove prefix
|
|
18
|
+
* envProvider({ prefix: 'APP_', removePrefix: true })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function envProvider(options = {}) {
|
|
22
|
+
return async () => {
|
|
23
|
+
const { prefix, removePrefix = true } = options;
|
|
24
|
+
const config = {};
|
|
25
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
26
|
+
if (value === undefined)
|
|
27
|
+
continue;
|
|
28
|
+
// No prefix filter - include all
|
|
29
|
+
if (!prefix) {
|
|
30
|
+
config[key] = value;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
// With prefix filter
|
|
34
|
+
if (key.startsWith(prefix)) {
|
|
35
|
+
const cleanKey = removePrefix ? key.slice(prefix.length) : key;
|
|
36
|
+
config[cleanKey] = value;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return config;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates a provider that loads configuration from a .env file.
|
|
44
|
+
*
|
|
45
|
+
* Uses the classic `dotenv` package for parsing.
|
|
46
|
+
* Install with: npm install dotenv
|
|
47
|
+
*
|
|
48
|
+
* @param options - Options for loading .env file
|
|
49
|
+
* @returns ConfigProvider
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // Load from .env
|
|
54
|
+
* dotenvProvider()
|
|
55
|
+
*
|
|
56
|
+
* // Load from specific file
|
|
57
|
+
* dotenvProvider({ path: '.env.local' })
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function dotenvProvider(options = {}) {
|
|
61
|
+
return async () => {
|
|
62
|
+
const { path = '.env', encoding = 'utf8' } = options;
|
|
63
|
+
try {
|
|
64
|
+
// Dynamic import to keep it optional
|
|
65
|
+
const fs = await import('node:fs');
|
|
66
|
+
const dotenv = await import('dotenv');
|
|
67
|
+
const content = fs.readFileSync(path, { encoding });
|
|
68
|
+
const parsed = dotenv.parse(content);
|
|
69
|
+
return parsed;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
// If file doesn't exist or dotenv not installed, return empty config
|
|
73
|
+
if (error.code === 'ENOENT') {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
if (error.message?.includes('Cannot find package')) {
|
|
77
|
+
throw new Error('dotenv package not found. Install with: npm install dotenv');
|
|
78
|
+
}
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Fetches parameters from SSM by path.
|
|
85
|
+
*/
|
|
86
|
+
async function fetchParametersByPath(client, path, withDecryption, removePrefix) {
|
|
87
|
+
const { GetParametersByPathCommand } = await import('@aws-sdk/client-ssm');
|
|
88
|
+
const config = {};
|
|
89
|
+
let nextToken;
|
|
90
|
+
do {
|
|
91
|
+
const command = new GetParametersByPathCommand({
|
|
92
|
+
Path: path,
|
|
93
|
+
Recursive: true,
|
|
94
|
+
WithDecryption: withDecryption,
|
|
95
|
+
NextToken: nextToken,
|
|
96
|
+
});
|
|
97
|
+
const response = await client.send(command);
|
|
98
|
+
for (const param of response.Parameters || []) {
|
|
99
|
+
if (!param.Name || !param.Value)
|
|
100
|
+
continue;
|
|
101
|
+
const key = removePrefix ? param.Name.replace(path, '').replace(/^\/+/, '') : param.Name;
|
|
102
|
+
config[key] = param.Value;
|
|
103
|
+
}
|
|
104
|
+
nextToken = response.NextToken;
|
|
105
|
+
} while (nextToken);
|
|
106
|
+
return config;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Fetches specific parameters from SSM by name.
|
|
110
|
+
*/
|
|
111
|
+
async function fetchParametersByName(client, names, withDecryption) {
|
|
112
|
+
const { GetParametersCommand } = await import('@aws-sdk/client-ssm');
|
|
113
|
+
const config = {};
|
|
114
|
+
const command = new GetParametersCommand({
|
|
115
|
+
Names: names,
|
|
116
|
+
WithDecryption: withDecryption,
|
|
117
|
+
});
|
|
118
|
+
const response = await client.send(command);
|
|
119
|
+
for (const param of response.Parameters || []) {
|
|
120
|
+
if (!param.Name || !param.Value)
|
|
121
|
+
continue;
|
|
122
|
+
config[param.Name] = param.Value;
|
|
123
|
+
}
|
|
124
|
+
return config;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Creates a provider that loads configuration from AWS SSM Parameter Store.
|
|
128
|
+
*
|
|
129
|
+
* Requires AWS SDK to be installed:
|
|
130
|
+
* npm install @aws-sdk/client-ssm
|
|
131
|
+
*
|
|
132
|
+
* @param options - Options for fetching SSM parameters
|
|
133
|
+
* @returns ConfigProvider
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* // Fetch all parameters under a path
|
|
138
|
+
* ssmProvider({ path: '/app/config' })
|
|
139
|
+
*
|
|
140
|
+
* // Fetch specific parameters
|
|
141
|
+
* ssmProvider({ names: ['DATABASE_URL', 'API_KEY'] })
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export function ssmProvider(options) {
|
|
145
|
+
return async () => {
|
|
146
|
+
const { path, names, region = process.env.AWS_REGION || 'us-east-1', withDecryption = true, removePrefix = true, } = options;
|
|
147
|
+
if (!path && !names) {
|
|
148
|
+
throw new Error('ssmProvider requires either "path" or "names" option');
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
// Dynamic import to keep AWS SDK optional
|
|
152
|
+
const { SSMClient } = await import('@aws-sdk/client-ssm');
|
|
153
|
+
const client = new SSMClient({ region });
|
|
154
|
+
if (path) {
|
|
155
|
+
return await fetchParametersByPath(client, path, withDecryption, removePrefix);
|
|
156
|
+
}
|
|
157
|
+
if (names) {
|
|
158
|
+
return await fetchParametersByName(client, names, withDecryption);
|
|
159
|
+
}
|
|
160
|
+
return {};
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (error.message?.includes('Cannot find package')) {
|
|
164
|
+
throw new Error('@aws-sdk/client-ssm package not found. Install with: npm install @aws-sdk/client-ssm');
|
|
165
|
+
}
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Creates a provider from a static object.
|
|
172
|
+
* Useful for providing defaults or overrides.
|
|
173
|
+
*
|
|
174
|
+
* @param config - Static configuration object
|
|
175
|
+
* @returns ConfigProvider
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* objectProvider({
|
|
180
|
+
* nodeEnv: 'development',
|
|
181
|
+
* port: 3000,
|
|
182
|
+
* })
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
export function objectProvider(config) {
|
|
186
|
+
return async () => config;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/config/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAElC,iCAAiC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,qBAAqB;YACrB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AA4BD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAErD,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAErC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAK,KAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAmDD;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAAe,EACf,IAAY,EACZ,cAAuB,EACvB,YAAqB;IAErB,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC3E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,SAA6B,CAAC;IAElC,GAAG,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAAC;YAC7C,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,cAAc;YAC9B,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MACf,MAMD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,SAAS;YAE1C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAEzF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC,QAAQ,SAAS,EAAE;IAEpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAAe,EACf,KAAe,EACf,cAAuB;IAEvB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC;QACvC,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MACf,MAKD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,SAAS;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,EAC9C,cAAc,GAAG,IAAI,EACrB,YAAY,GAAG,IAAI,GACpB,GAAG,OAAO,CAAC;QAEZ,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAEzC,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;YACjF,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YACpE,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for configuration management.
|
|
3
|
+
*
|
|
4
|
+
* @module config/types
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseIssue, BaseSchema, InferOutput } from 'valibot';
|
|
7
|
+
/**
|
|
8
|
+
* A config provider loads configuration from a specific source.
|
|
9
|
+
*
|
|
10
|
+
* Providers are executed in order, with later providers overwriting
|
|
11
|
+
* earlier ones. This allows for flexible precedence (e.g., SSM -> env -> .env).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const myProvider: ConfigProvider = async () => {
|
|
16
|
+
* return {
|
|
17
|
+
* apiKey: 'from-custom-source',
|
|
18
|
+
* };
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export type ConfigProvider = () => Promise<Record<string, unknown>>;
|
|
23
|
+
/**
|
|
24
|
+
* Options for creating a config service.
|
|
25
|
+
*
|
|
26
|
+
* @template TSchema - Valibot schema for config validation
|
|
27
|
+
*/
|
|
28
|
+
export interface ConfigOptions<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> {
|
|
29
|
+
/**
|
|
30
|
+
* Valibot schema to validate the configuration.
|
|
31
|
+
* The validated config will be fully typed based on this schema.
|
|
32
|
+
*/
|
|
33
|
+
schema: TSchema;
|
|
34
|
+
/**
|
|
35
|
+
* Array of config providers to load from.
|
|
36
|
+
* Providers are executed in order, with later providers taking precedence.
|
|
37
|
+
*
|
|
38
|
+
* @default [envProvider()]
|
|
39
|
+
*/
|
|
40
|
+
providers?: ConfigProvider[];
|
|
41
|
+
/**
|
|
42
|
+
* Optional function to transform keys (e.g., convert to camelCase).
|
|
43
|
+
*
|
|
44
|
+
* @default undefined (no transformation)
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Convert SNAKE_CASE to camelCase
|
|
49
|
+
* const transformKey = (key: string) =>
|
|
50
|
+
* key.toLowerCase().replace(/_([a-z])/g, (_, c) => c.toUpperCase());
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
transformKey?: (key: string) => string;
|
|
54
|
+
/**
|
|
55
|
+
* Whether to allow unknown keys in the config.
|
|
56
|
+
* If false, validation will fail if extra keys are present.
|
|
57
|
+
*
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
allowUnknownKeys?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A validated, type-safe configuration object.
|
|
64
|
+
*
|
|
65
|
+
* @template TSchema - Valibot schema used for validation
|
|
66
|
+
*/
|
|
67
|
+
export interface Config<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> {
|
|
68
|
+
/**
|
|
69
|
+
* The validated configuration, fully typed based on the schema.
|
|
70
|
+
*/
|
|
71
|
+
readonly data: InferOutput<TSchema>;
|
|
72
|
+
/**
|
|
73
|
+
* Get a config value by key with type safety.
|
|
74
|
+
*
|
|
75
|
+
* @param key - The config key to retrieve
|
|
76
|
+
* @returns The config value
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const dbUrl = config.get('databaseUrl');
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
get<K extends keyof InferOutput<TSchema>>(key: K): InferOutput<TSchema>[K];
|
|
84
|
+
/**
|
|
85
|
+
* Get a config value by key with a fallback.
|
|
86
|
+
*
|
|
87
|
+
* @param key - The config key to retrieve
|
|
88
|
+
* @param defaultValue - Value to return if key doesn't exist
|
|
89
|
+
* @returns The config value or default
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const port = config.getOrDefault('port', 3000);
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
getOrDefault<K extends keyof InferOutput<TSchema>>(key: K, defaultValue: InferOutput<TSchema>[K]): InferOutput<TSchema>[K];
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7F;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACtF;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,OAAO,CAAC,EAC/C,GAAG,EAAE,CAAC,EACN,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACpC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/core/bootstrap.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asClass, asValue, createContainer, InjectionMode } from 'awilix';
|
|
1
|
+
import { asClass, asFunction, asValue, createContainer, InjectionMode } from 'awilix';
|
|
2
2
|
import { Hono } from 'hono';
|
|
3
3
|
import { cors } from 'hono/cors';
|
|
4
4
|
import { logger as honoLogger } from 'hono/logger';
|
|
@@ -306,9 +306,15 @@ function registerValueProvider(provider, container, logger) {
|
|
|
306
306
|
});
|
|
307
307
|
}
|
|
308
308
|
function registerFactoryProvider(provider, container, logger) {
|
|
309
|
-
|
|
309
|
+
const scope = provider.scope || 'SINGLETON';
|
|
310
|
+
logger.info(` - Registering ${provider.provide} (factory, scope: ${scope})`);
|
|
311
|
+
const registration = asFunction(provider.useFactory);
|
|
312
|
+
// Apply dependency injection if specified
|
|
313
|
+
if (provider.inject && provider.inject.length > 0) {
|
|
314
|
+
registration.inject(() => provider.inject);
|
|
315
|
+
}
|
|
310
316
|
container.register({
|
|
311
|
-
[provider.provide]:
|
|
317
|
+
[provider.provide]: applyScopeToRegistration(registration, scope),
|
|
312
318
|
});
|
|
313
319
|
}
|
|
314
320
|
function applyScopeToRegistration(registration, scope) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -24,8 +24,9 @@ export type ProviderConfig = Constructor | {
|
|
|
24
24
|
useValue: unknown;
|
|
25
25
|
} | {
|
|
26
26
|
provide: string;
|
|
27
|
-
useFactory: (
|
|
27
|
+
useFactory: (dependencies: any) => unknown;
|
|
28
28
|
inject?: string[];
|
|
29
|
+
scope?: ServiceScope;
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* Route factory function that receives Hono router and services
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhE;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX;IACE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|