glasswork 0.1.1 → 0.2.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.
- package/dist/authorization/ability-middleware.d.ts +61 -0
- package/dist/authorization/ability-middleware.d.ts.map +1 -0
- package/dist/authorization/ability-middleware.js +74 -0
- package/dist/authorization/ability-middleware.js.map +1 -0
- package/dist/authorization/index.d.ts +46 -0
- package/dist/authorization/index.d.ts.map +1 -0
- package/dist/authorization/index.js +46 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/authorization/route-helpers.d.ts +106 -0
- package/dist/authorization/route-helpers.d.ts.map +1 -0
- package/dist/authorization/route-helpers.js +136 -0
- package/dist/authorization/route-helpers.js.map +1 -0
- package/dist/authorization/service-proxy.d.ts +59 -0
- package/dist/authorization/service-proxy.d.ts.map +1 -0
- package/dist/authorization/service-proxy.js +110 -0
- package/dist/authorization/service-proxy.js.map +1 -0
- package/dist/authorization/types.d.ts +58 -0
- package/dist/authorization/types.d.ts.map +1 -0
- package/dist/authorization/types.js +7 -0
- package/dist/authorization/types.js.map +1 -0
- 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/hooks/authorization-hook.d.ts +100 -0
- package/dist/hooks/authorization-hook.d.ts.map +1 -0
- package/dist/hooks/authorization-hook.js +93 -0
- package/dist/hooks/authorization-hook.js.map +1 -0
- package/dist/hooks/index.d.ts +54 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +55 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/service-hooks.d.ts +82 -0
- package/dist/hooks/service-hooks.d.ts.map +1 -0
- package/dist/hooks/service-hooks.js +158 -0
- package/dist/hooks/service-hooks.js.map +1 -0
- package/dist/hooks/types.d.ts +151 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.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 +39 -13
- package/dist/http/route-helpers.d.ts.map +1 -1
- package/dist/http/route-helpers.js +45 -2
- package/dist/http/route-helpers.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -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/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 +22 -1
- 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.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
- /package/dist/{types.js → hooks/types.js} +0 -0
package/dist/serialize-dates.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recursively converts all Date objects to ISO 8601 strings in an entity or array of entities.
|
|
3
|
-
*
|
|
4
|
-
* This utility handles the mismatch between Prisma's Date types and API response DTOs
|
|
5
|
-
* that expect string timestamps. It preserves null values and handles nested objects and arrays.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of data to transform
|
|
8
|
-
* @param data - The data to transform (object, array, or primitive)
|
|
9
|
-
* @returns The same structure with all Date objects converted to ISO strings
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const ranger = await prisma.ranger.findUnique({
|
|
14
|
-
* where: { id },
|
|
15
|
-
* include: { category: true }
|
|
16
|
-
* });
|
|
17
|
-
* return serializeDates(ranger); // All Date fields → ISO strings
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export function serializeDates(data) {
|
|
21
|
-
if (data === null || data === undefined) {
|
|
22
|
-
return data;
|
|
23
|
-
}
|
|
24
|
-
if (data instanceof Date) {
|
|
25
|
-
return data.toISOString();
|
|
26
|
-
}
|
|
27
|
-
if (Array.isArray(data)) {
|
|
28
|
-
return data.map((item) => serializeDates(item));
|
|
29
|
-
}
|
|
30
|
-
if (typeof data === 'object') {
|
|
31
|
-
const result = {};
|
|
32
|
-
for (const [key, value] of Object.entries(data)) {
|
|
33
|
-
result[key] = serializeDates(value);
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
return data;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=serialize-dates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialize-dates.js","sourceRoot":"","sources":["../src/serialize-dates.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAI,IAAO;IACvC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAA0B,CAAC;IACpC,CAAC;IAED,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,EAAwB,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAuB,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;IAED,OAAO,IAA0B,CAAC;AACpC,CAAC"}
|
package/dist/testing.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import type { AwilixContainer } from 'awilix';
|
|
2
|
-
import { Hono } from 'hono';
|
|
3
|
-
import type { ModuleConfig } from './types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Options for creating a test app
|
|
6
|
-
*/
|
|
7
|
-
export interface CreateTestAppOptions {
|
|
8
|
-
/**
|
|
9
|
-
* API base path
|
|
10
|
-
* @default '/api'
|
|
11
|
-
*/
|
|
12
|
-
apiBasePath?: string;
|
|
13
|
-
/**
|
|
14
|
-
* Service mocks to override module providers
|
|
15
|
-
* These will be registered as values in the container, overriding any class/factory providers
|
|
16
|
-
*/
|
|
17
|
-
services?: Record<string, unknown>;
|
|
18
|
-
/**
|
|
19
|
-
* Error handler
|
|
20
|
-
* @default defaultErrorHandler
|
|
21
|
-
* Set to false to disable error handling
|
|
22
|
-
*/
|
|
23
|
-
errorHandler?: false | import('hono').ErrorHandler;
|
|
24
|
-
/**
|
|
25
|
-
* Enable debug logging
|
|
26
|
-
* @default false
|
|
27
|
-
*/
|
|
28
|
-
debug?: boolean;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Test context returned by createTestApp
|
|
32
|
-
*/
|
|
33
|
-
export interface TestContext {
|
|
34
|
-
/**
|
|
35
|
-
* Hono app instance with mounted routes
|
|
36
|
-
*/
|
|
37
|
-
app: Hono;
|
|
38
|
-
/**
|
|
39
|
-
* Awilix container with all services
|
|
40
|
-
*/
|
|
41
|
-
container: AwilixContainer;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Create a test app for testing a specific module.
|
|
45
|
-
*
|
|
46
|
-
* This function:
|
|
47
|
-
* 1. Creates an Awilix container
|
|
48
|
-
* 2. Registers all module providers (from the module and its imports)
|
|
49
|
-
* 3. Overrides providers with mock services
|
|
50
|
-
* 4. Creates a Hono app with error handler
|
|
51
|
-
* 5. Mounts the module's routes
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* const mockEmailService = {
|
|
56
|
-
* sendEmail: vi.fn(),
|
|
57
|
-
* };
|
|
58
|
-
*
|
|
59
|
-
* const { app, container } = createTestApp(AuthModule, {
|
|
60
|
-
* services: {
|
|
61
|
-
* emailService: mockEmailService,
|
|
62
|
-
* prismaService: testDb,
|
|
63
|
-
* },
|
|
64
|
-
* });
|
|
65
|
-
*
|
|
66
|
-
* // Test routes
|
|
67
|
-
* const res = await app.request('/api/auth/session', { method: 'POST', ... });
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
export declare function createTestApp(module: ModuleConfig, options?: CreateTestAppOptions): TestContext;
|
|
71
|
-
/**
|
|
72
|
-
* Create a test container with specific services.
|
|
73
|
-
*
|
|
74
|
-
* Useful for testing services in isolation without creating a full app.
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const container = createTestContainer({
|
|
79
|
-
* prismaService: testDb,
|
|
80
|
-
* hashService: new HashService(),
|
|
81
|
-
* });
|
|
82
|
-
*
|
|
83
|
-
* const authService = new AuthService(container.cradle);
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
export declare function createTestContainer(services: Record<string, unknown>): AwilixContainer;
|
|
87
|
-
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,OAAO,MAAM,EAAE,YAAY,CAAC;IAEnD;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,EAAE,IAAI,CAAC;IAEV;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,oBAAyB,GACjC,WAAW,CA+Cb;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAatF"}
|
package/dist/testing.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { asValue, createContainer, InjectionMode } from 'awilix';
|
|
2
|
-
import { Hono } from 'hono';
|
|
3
|
-
import { collectModules, registerModuleProviders, validateNoCycles } from './bootstrap.js';
|
|
4
|
-
import { defaultErrorHandler } from './error-handler.js';
|
|
5
|
-
/**
|
|
6
|
-
* Create a test app for testing a specific module.
|
|
7
|
-
*
|
|
8
|
-
* This function:
|
|
9
|
-
* 1. Creates an Awilix container
|
|
10
|
-
* 2. Registers all module providers (from the module and its imports)
|
|
11
|
-
* 3. Overrides providers with mock services
|
|
12
|
-
* 4. Creates a Hono app with error handler
|
|
13
|
-
* 5. Mounts the module's routes
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* const mockEmailService = {
|
|
18
|
-
* sendEmail: vi.fn(),
|
|
19
|
-
* };
|
|
20
|
-
*
|
|
21
|
-
* const { app, container } = createTestApp(AuthModule, {
|
|
22
|
-
* services: {
|
|
23
|
-
* emailService: mockEmailService,
|
|
24
|
-
* prismaService: testDb,
|
|
25
|
-
* },
|
|
26
|
-
* });
|
|
27
|
-
*
|
|
28
|
-
* // Test routes
|
|
29
|
-
* const res = await app.request('/api/auth/session', { method: 'POST', ... });
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export function createTestApp(module, options = {}) {
|
|
33
|
-
const { apiBasePath = '/api', services = {}, errorHandler = defaultErrorHandler, debug = false, } = options;
|
|
34
|
-
// Create Awilix container
|
|
35
|
-
const container = createContainer({
|
|
36
|
-
injectionMode: InjectionMode.PROXY,
|
|
37
|
-
strict: true,
|
|
38
|
-
});
|
|
39
|
-
// Collect all modules (flatten imports)
|
|
40
|
-
const allModules = collectModules(module);
|
|
41
|
-
validateNoCycles(allModules);
|
|
42
|
-
// Register all providers from the module and its imports
|
|
43
|
-
for (const mod of allModules) {
|
|
44
|
-
registerModuleProviders(mod, container, debug);
|
|
45
|
-
}
|
|
46
|
-
// Override with mock services AFTER module providers
|
|
47
|
-
// This allows both overriding services and providing dependencies
|
|
48
|
-
for (const [key, value] of Object.entries(services)) {
|
|
49
|
-
container.register({
|
|
50
|
-
[key]: asValue(value),
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// Create Hono app
|
|
54
|
-
const app = new Hono();
|
|
55
|
-
// Apply error handler
|
|
56
|
-
if (errorHandler !== false) {
|
|
57
|
-
app.onError(errorHandler);
|
|
58
|
-
}
|
|
59
|
-
// Mount module routes
|
|
60
|
-
if (module.routes && module.basePath) {
|
|
61
|
-
const router = new Hono();
|
|
62
|
-
module.routes(router, container.cradle);
|
|
63
|
-
app.route(`${apiBasePath}/${module.basePath}`, router);
|
|
64
|
-
}
|
|
65
|
-
return { app, container };
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Create a test container with specific services.
|
|
69
|
-
*
|
|
70
|
-
* Useful for testing services in isolation without creating a full app.
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```typescript
|
|
74
|
-
* const container = createTestContainer({
|
|
75
|
-
* prismaService: testDb,
|
|
76
|
-
* hashService: new HashService(),
|
|
77
|
-
* });
|
|
78
|
-
*
|
|
79
|
-
* const authService = new AuthService(container.cradle);
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
export function createTestContainer(services) {
|
|
83
|
-
const container = createContainer({
|
|
84
|
-
injectionMode: InjectionMode.PROXY,
|
|
85
|
-
strict: true,
|
|
86
|
-
});
|
|
87
|
-
for (const [key, value] of Object.entries(services)) {
|
|
88
|
-
container.register({
|
|
89
|
-
[key]: asValue(value),
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return container;
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAgDzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,EACJ,WAAW,GAAG,MAAM,EACpB,QAAQ,GAAG,EAAE,EACb,YAAY,GAAG,mBAAmB,EAClC,KAAK,GAAG,KAAK,GACd,GAAG,OAAO,CAAC;IAEZ,0BAA0B;IAC1B,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE7B,yDAAyD;IACzD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,qDAAqD;IACrD,kEAAkE;IAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,SAAS,CAAC,QAAQ,CAAC;YACjB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,sBAAsB;IACtB,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAiC,CAAC,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAiC;IACnE,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,aAAa,EAAE,aAAa,CAAC,KAAK;QAClC,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,SAAS,CAAC,QAAQ,CAAC;YACjB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import type { AwilixContainer } from 'awilix';
|
|
2
|
-
import type { ErrorHandler, Hono } from 'hono';
|
|
3
|
-
/**
|
|
4
|
-
* Service lifetime scope for dependency injection
|
|
5
|
-
*/
|
|
6
|
-
export type ServiceScope = 'SINGLETON' | 'SCOPED' | 'TRANSIENT';
|
|
7
|
-
/**
|
|
8
|
-
* Constructor type for class providers
|
|
9
|
-
*
|
|
10
|
-
* We use `any[]` for constructor arguments because in dependency injection,
|
|
11
|
-
* we can't know at compile time what arguments will be injected - that's
|
|
12
|
-
* determined by the DI container at runtime. This is a legitimate use of `any`.
|
|
13
|
-
*/
|
|
14
|
-
export type Constructor<T = unknown> = new (...args: any[]) => T;
|
|
15
|
-
/**
|
|
16
|
-
* Provider configuration for dependency injection
|
|
17
|
-
*/
|
|
18
|
-
export type ProviderConfig = Constructor | {
|
|
19
|
-
provide: string | Constructor;
|
|
20
|
-
useClass: Constructor;
|
|
21
|
-
scope?: ServiceScope;
|
|
22
|
-
} | {
|
|
23
|
-
provide: string;
|
|
24
|
-
useValue: unknown;
|
|
25
|
-
} | {
|
|
26
|
-
provide: string;
|
|
27
|
-
useFactory: (container: unknown) => unknown;
|
|
28
|
-
inject?: string[];
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Route factory function that receives Hono router and services
|
|
32
|
-
*/
|
|
33
|
-
export type RouteFactory = (router: Hono, services: Record<string, unknown>) => void;
|
|
34
|
-
/**
|
|
35
|
-
* Module configuration
|
|
36
|
-
*/
|
|
37
|
-
export interface ModuleConfig {
|
|
38
|
-
/**
|
|
39
|
-
* Unique module name
|
|
40
|
-
*/
|
|
41
|
-
name: string;
|
|
42
|
-
/**
|
|
43
|
-
* Base path for routes (e.g., 'auth' becomes /api/auth)
|
|
44
|
-
*/
|
|
45
|
-
basePath?: string;
|
|
46
|
-
/**
|
|
47
|
-
* Service providers to register
|
|
48
|
-
*/
|
|
49
|
-
providers?: ProviderConfig[];
|
|
50
|
-
/**
|
|
51
|
-
* Modules to import (access their exported providers)
|
|
52
|
-
*/
|
|
53
|
-
imports?: ModuleConfig[];
|
|
54
|
-
/**
|
|
55
|
-
* Providers to export (available to importing modules)
|
|
56
|
-
*/
|
|
57
|
-
exports?: (Constructor | string)[];
|
|
58
|
-
/**
|
|
59
|
-
* Route factory function
|
|
60
|
-
*/
|
|
61
|
-
routes?: RouteFactory;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Environment type for conditional behavior
|
|
65
|
-
*/
|
|
66
|
-
export type Environment = 'development' | 'production' | 'test';
|
|
67
|
-
/**
|
|
68
|
-
* OpenAPI documentation configuration
|
|
69
|
-
*/
|
|
70
|
-
export interface OpenAPIDocumentation {
|
|
71
|
-
info: {
|
|
72
|
-
title: string;
|
|
73
|
-
version: string;
|
|
74
|
-
description?: string;
|
|
75
|
-
contact?: {
|
|
76
|
-
name?: string;
|
|
77
|
-
email?: string;
|
|
78
|
-
url?: string;
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
tags?: Array<{
|
|
82
|
-
name: string;
|
|
83
|
-
description?: string;
|
|
84
|
-
}>;
|
|
85
|
-
servers?: Array<{
|
|
86
|
-
url: string;
|
|
87
|
-
description?: string;
|
|
88
|
-
}>;
|
|
89
|
-
components?: Record<string, unknown>;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Hook function for customizing OpenAPI responses
|
|
93
|
-
*
|
|
94
|
-
* Receives the response object and context, returns modified response.
|
|
95
|
-
* This allows both framework and applications to add headers, modify
|
|
96
|
-
* descriptions, etc. globally across all routes.
|
|
97
|
-
*/
|
|
98
|
-
export type OpenAPIResponseHook = (response: {
|
|
99
|
-
description: string;
|
|
100
|
-
headers?: Record<string, {
|
|
101
|
-
$ref: string;
|
|
102
|
-
}>;
|
|
103
|
-
content?: Record<string, unknown>;
|
|
104
|
-
}, context: {
|
|
105
|
-
statusCode: string;
|
|
106
|
-
routeConfig: {
|
|
107
|
-
public?: boolean;
|
|
108
|
-
paginate?: boolean;
|
|
109
|
-
tags?: string[];
|
|
110
|
-
summary?: string;
|
|
111
|
-
};
|
|
112
|
-
}) => {
|
|
113
|
-
description: string;
|
|
114
|
-
headers?: Record<string, {
|
|
115
|
-
$ref: string;
|
|
116
|
-
}>;
|
|
117
|
-
content?: Record<string, unknown>;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* OpenAPI configuration options
|
|
121
|
-
*/
|
|
122
|
-
export interface OpenAPIOptions {
|
|
123
|
-
/**
|
|
124
|
-
* Whether to enable OpenAPI generation
|
|
125
|
-
*/
|
|
126
|
-
enabled?: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Serve OpenAPI specs at /api/openapi.json (default: true in development)
|
|
129
|
-
*/
|
|
130
|
-
serveSpecs?: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* Serve Swagger UI at /api (default: true in development)
|
|
133
|
-
*/
|
|
134
|
-
serveUI?: boolean;
|
|
135
|
-
/**
|
|
136
|
-
* Write OpenAPI specs to file (path relative to cwd)
|
|
137
|
-
*/
|
|
138
|
-
writeToFile?: string;
|
|
139
|
-
/**
|
|
140
|
-
* OpenAPI documentation
|
|
141
|
-
*/
|
|
142
|
-
documentation?: OpenAPIDocumentation;
|
|
143
|
-
/**
|
|
144
|
-
* Response hooks for customizing OpenAPI responses
|
|
145
|
-
*
|
|
146
|
-
* Hooks are applied in order to each response object.
|
|
147
|
-
* Use this to add custom headers, modify descriptions, etc.
|
|
148
|
-
*/
|
|
149
|
-
responseHooks?: OpenAPIResponseHook[];
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Rate limiting storage backend
|
|
153
|
-
*/
|
|
154
|
-
export type RateLimitStorage = 'memory' | 'dynamodb';
|
|
155
|
-
/**
|
|
156
|
-
* Rate limiting configuration
|
|
157
|
-
*/
|
|
158
|
-
export interface RateLimitOptions {
|
|
159
|
-
/**
|
|
160
|
-
* Whether rate limiting is enabled
|
|
161
|
-
*/
|
|
162
|
-
enabled: boolean;
|
|
163
|
-
/**
|
|
164
|
-
* Storage backend
|
|
165
|
-
*/
|
|
166
|
-
storage: RateLimitStorage;
|
|
167
|
-
/**
|
|
168
|
-
* Rate limit window in milliseconds (default: 60000 = 1 minute)
|
|
169
|
-
*/
|
|
170
|
-
windowMs?: number;
|
|
171
|
-
/**
|
|
172
|
-
* Maximum requests per window (default: 100)
|
|
173
|
-
*/
|
|
174
|
-
maxRequests?: number;
|
|
175
|
-
/**
|
|
176
|
-
* DynamoDB configuration (required if storage is 'dynamodb')
|
|
177
|
-
*/
|
|
178
|
-
dynamodb?: {
|
|
179
|
-
tableName: string;
|
|
180
|
-
region?: string;
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Middleware configuration options
|
|
185
|
-
*/
|
|
186
|
-
export interface MiddlewareOptions {
|
|
187
|
-
/**
|
|
188
|
-
* Enable request ID middleware
|
|
189
|
-
* @default true
|
|
190
|
-
*/
|
|
191
|
-
requestId?: boolean;
|
|
192
|
-
/**
|
|
193
|
-
* Enable secure headers middleware
|
|
194
|
-
* @default true in production
|
|
195
|
-
*/
|
|
196
|
-
secureHeaders?: boolean;
|
|
197
|
-
/**
|
|
198
|
-
* CORS configuration
|
|
199
|
-
*/
|
|
200
|
-
cors?: {
|
|
201
|
-
origin: string | string[];
|
|
202
|
-
credentials?: boolean;
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Logger configuration options
|
|
207
|
-
*/
|
|
208
|
-
export interface LoggerOptions {
|
|
209
|
-
/**
|
|
210
|
-
* Enable HTTP request logging
|
|
211
|
-
* @default true
|
|
212
|
-
*/
|
|
213
|
-
enabled?: boolean;
|
|
214
|
-
/**
|
|
215
|
-
* Use plain logger (no ANSI colors) for Lambda/CloudWatch
|
|
216
|
-
* Auto-detected based on environment if not specified
|
|
217
|
-
*/
|
|
218
|
-
plain?: boolean;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Bootstrap options
|
|
222
|
-
*/
|
|
223
|
-
export interface BootstrapOptions {
|
|
224
|
-
/**
|
|
225
|
-
* Environment (auto-detected from NODE_ENV if not provided)
|
|
226
|
-
*/
|
|
227
|
-
environment?: Environment;
|
|
228
|
-
/**
|
|
229
|
-
* API base path (default: '/api')
|
|
230
|
-
*/
|
|
231
|
-
apiBasePath?: string;
|
|
232
|
-
/**
|
|
233
|
-
* Error handler middleware
|
|
234
|
-
* Set to false to disable default error handler
|
|
235
|
-
* Provide a custom ErrorHandler to override
|
|
236
|
-
* @default Glasswork's default error handler
|
|
237
|
-
*/
|
|
238
|
-
errorHandler?: ErrorHandler | false;
|
|
239
|
-
/**
|
|
240
|
-
* OpenAPI configuration
|
|
241
|
-
*/
|
|
242
|
-
openapi?: OpenAPIOptions;
|
|
243
|
-
/**
|
|
244
|
-
* Rate limiting configuration
|
|
245
|
-
*/
|
|
246
|
-
rateLimit?: RateLimitOptions;
|
|
247
|
-
/**
|
|
248
|
-
* Common middleware configuration
|
|
249
|
-
*/
|
|
250
|
-
middleware?: MiddlewareOptions;
|
|
251
|
-
/**
|
|
252
|
-
* Logger configuration
|
|
253
|
-
*/
|
|
254
|
-
logger?: LoggerOptions;
|
|
255
|
-
/**
|
|
256
|
-
* Enable debug logging
|
|
257
|
-
*/
|
|
258
|
-
debug?: boolean;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Bootstrap result
|
|
262
|
-
*/
|
|
263
|
-
export interface BootstrapResult {
|
|
264
|
-
/**
|
|
265
|
-
* Hono application instance
|
|
266
|
-
*/
|
|
267
|
-
app: Hono;
|
|
268
|
-
/**
|
|
269
|
-
* Awilix container (fully accessible)
|
|
270
|
-
*/
|
|
271
|
-
container: AwilixContainer;
|
|
272
|
-
}
|
|
273
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deep merge objects (simple implementation for small objects)
|
|
3
|
-
*/
|
|
4
|
-
export declare function deepMerge<T extends Record<string, unknown>>(...objects: (T | Record<string, unknown>)[]): T;
|
|
5
|
-
/**
|
|
6
|
-
* Omit keys from an object
|
|
7
|
-
*/
|
|
8
|
-
export declare function omit<T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
|
|
9
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GAC1C,CAAC,CAqBH;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACvE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EAAE,GACR,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAMZ"}
|
package/dist/utils.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Deep merge objects (simple implementation for small objects)
|
|
3
|
-
*/
|
|
4
|
-
export function deepMerge(...objects) {
|
|
5
|
-
const result = {};
|
|
6
|
-
for (const obj of objects) {
|
|
7
|
-
for (const key in obj) {
|
|
8
|
-
if (Object.hasOwn(obj, key)) {
|
|
9
|
-
const value = obj[key];
|
|
10
|
-
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
11
|
-
result[key] = deepMerge(result[key] || {}, value);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
result[key] = value;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return result;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Omit keys from an object
|
|
23
|
-
*/
|
|
24
|
-
export function omit(obj, keys) {
|
|
25
|
-
const result = { ...obj };
|
|
26
|
-
for (const key of keys) {
|
|
27
|
-
delete result[key];
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,GAAG,OAAwC;IAE3C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEvB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACpB,MAAM,CAAC,GAAG,CAA6B,IAAI,EAAE,EAC9C,KAAgC,CACjC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,GAAM,EACN,IAAS;IAET,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
File without changes
|