@geekmidas/constructs 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{HonoEndpointAdaptor-CRe-ij5f.d.mts → HonoEndpointAdaptor-BaPlUhz0.d.mts} +3 -3
- package/dist/{HonoEndpointAdaptor-Bqm6SEuP.d.cts.map → HonoEndpointAdaptor-BaPlUhz0.d.mts.map} +1 -1
- package/dist/{HonoEndpointAdaptor-Bqm6SEuP.d.cts → HonoEndpointAdaptor-YcRHYALH.d.cts} +3 -3
- package/dist/{HonoEndpointAdaptor-CRe-ij5f.d.mts.map → HonoEndpointAdaptor-YcRHYALH.d.cts.map} +1 -1
- package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +1 -1
- package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +1 -1
- package/dist/{TestEndpointAdaptor-BXTofAKc.mjs → TestEndpointAdaptor-DJgik2Wj.mjs} +3 -6
- package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +1 -0
- package/dist/{TestEndpointAdaptor-D9IwhIYg.cjs → TestEndpointAdaptor-ZbtQiuHE.cjs} +3 -6
- package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +1 -0
- package/dist/adaptors/aws.d.cts +1 -1
- package/dist/adaptors/hono.d.cts +2 -2
- package/dist/adaptors/hono.d.mts +1 -1
- package/dist/adaptors/testing.cjs +1 -1
- package/dist/adaptors/testing.d.cts +1 -1
- package/dist/adaptors/testing.mjs +1 -1
- package/dist/crons/Cron.d.cts +1 -1
- package/dist/crons/CronBuilder.d.cts +1 -1
- package/dist/crons/index.d.cts +5 -5
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/Endpoint.d.cts +1 -1
- package/dist/endpoints/EndpointBuilder.d.cts +1 -1
- package/dist/endpoints/EndpointFactory.d.cts +1 -1
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +2 -2
- package/dist/endpoints/HonoEndpointAdaptor.d.mts +1 -1
- package/dist/endpoints/TestEndpointAdaptor.cjs +1 -1
- package/dist/endpoints/TestEndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/TestEndpointAdaptor.mjs +1 -1
- package/dist/endpoints/audit.d.cts +1 -1
- package/dist/endpoints/helpers.d.cts +1 -1
- package/dist/endpoints/index.d.cts +3 -3
- package/dist/endpoints/index.d.mts +2 -2
- package/dist/endpoints/processAudits.d.cts +1 -1
- package/dist/endpoints/rls.d.cts +1 -1
- package/dist/functions/index.d.cts +1 -1
- package/dist/index-DmFozqLd.d.cts +12 -0
- package/dist/{index-SI4V0XwK.d.cts.map → index-DmFozqLd.d.cts.map} +1 -1
- package/dist/subscribers/index.d.cts +2 -2
- package/dist/subscribers/index.d.cts.map +1 -1
- package/package.json +5 -5
- package/src/endpoints/TestEndpointAdaptor.ts +5 -5
- package/dist/TestEndpointAdaptor-BXTofAKc.mjs.map +0 -1
- package/dist/TestEndpointAdaptor-D9IwhIYg.cjs.map +0 -1
- package/dist/index-SI4V0XwK.d.cts +0 -12
|
@@ -7,7 +7,7 @@ import { EnvironmentParser } from "@geekmidas/envkit";
|
|
|
7
7
|
import { EventPublisher } from "@geekmidas/events";
|
|
8
8
|
import { Logger } from "@geekmidas/logger";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
|
-
import * as
|
|
10
|
+
import * as hono_types5 from "hono/types";
|
|
11
11
|
|
|
12
12
|
//#region src/endpoints/HonoEndpointAdaptor.d.ts
|
|
13
13
|
interface HonoEndpointOptions {
|
|
@@ -33,7 +33,7 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
|
|
|
33
33
|
static validate<T extends StandardSchemaV1>(c: Context<any, string, {}>, data: unknown, schema?: T): Promise<unknown>;
|
|
34
34
|
addRoute(serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
|
|
35
35
|
static applyEventMiddleware(app: Hono, serviceDiscovery: ServiceDiscovery<any, any>): void;
|
|
36
|
-
static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<
|
|
36
|
+
static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types5.BlankEnv, hono_types5.BlankSchema, "/"> | undefined, logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
|
|
37
37
|
static addRoutes<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono, options?: HonoEndpointOptions): void;
|
|
38
38
|
static addRoute<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>, serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
|
|
39
39
|
static addDocsRoute<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], app: Hono, docsPath: string, openApiOptions?: HonoEndpointOptions['openApiOptions']): void;
|
|
@@ -42,4 +42,4 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
|
|
|
42
42
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { HonoEndpoint, HonoEndpointOptions };
|
|
45
|
-
//# sourceMappingURL=HonoEndpointAdaptor-
|
|
45
|
+
//# sourceMappingURL=HonoEndpointAdaptor-BaPlUhz0.d.mts.map
|
package/dist/{HonoEndpointAdaptor-Bqm6SEuP.d.cts.map → HonoEndpointAdaptor-BaPlUhz0.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoEndpointAdaptor-
|
|
1
|
+
{"version":3,"file":"HonoEndpointAdaptor-BaPlUhz0.d.mts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Logger } from "@geekmidas/logger";
|
|
|
6
6
|
import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
|
|
7
7
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
8
8
|
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
9
|
-
import * as
|
|
9
|
+
import * as hono_types9 from "hono/types";
|
|
10
10
|
import { Context, Hono } from "hono";
|
|
11
11
|
|
|
12
12
|
//#region src/endpoints/HonoEndpointAdaptor.d.ts
|
|
@@ -33,7 +33,7 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
|
|
|
33
33
|
static validate<T extends StandardSchemaV1>(c: Context<any, string, {}>, data: unknown, schema?: T): Promise<unknown>;
|
|
34
34
|
addRoute(serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
|
|
35
35
|
static applyEventMiddleware(app: Hono, serviceDiscovery: ServiceDiscovery<any, any>): void;
|
|
36
|
-
static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<
|
|
36
|
+
static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types9.BlankEnv, hono_types9.BlankSchema, "/"> | undefined, logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
|
|
37
37
|
static addRoutes<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono, options?: HonoEndpointOptions): void;
|
|
38
38
|
static addRoute<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>, serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
|
|
39
39
|
static addDocsRoute<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], app: Hono, docsPath: string, openApiOptions?: HonoEndpointOptions['openApiOptions']): void;
|
|
@@ -42,4 +42,4 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
|
|
|
42
42
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { HonoEndpoint, HonoEndpointOptions };
|
|
45
|
-
//# sourceMappingURL=HonoEndpointAdaptor-
|
|
45
|
+
//# sourceMappingURL=HonoEndpointAdaptor-YcRHYALH.d.cts.map
|
package/dist/{HonoEndpointAdaptor-CRe-ij5f.d.mts.map → HonoEndpointAdaptor-YcRHYALH.d.cts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HonoEndpointAdaptor-
|
|
1
|
+
{"version":3,"file":"HonoEndpointAdaptor-YcRHYALH.d.cts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestEndpointAdaptor-C10xBI--.d.cts","names":[],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TestEndpointAdaptor-C10xBI--.d.cts","names":[],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestEndpointAdaptor-DB7bREhS.d.mts","names":[],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TestEndpointAdaptor-DB7bREhS.d.mts","names":[],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { publishConstructEvents } from "./publisher-Bw4770Hi.mjs";
|
|
2
2
|
import { Endpoint, ResponseBuilder } from "./Endpoint-CuOEswxJ.mjs";
|
|
3
3
|
import { executeWithAuditTransaction } from "./processAudits-Dj8UGqcW.mjs";
|
|
4
|
+
import { UnauthorizedError } from "@geekmidas/errors";
|
|
4
5
|
import { ServiceDiscovery } from "@geekmidas/services";
|
|
5
6
|
import { DefaultAuditor } from "@geekmidas/audit";
|
|
6
7
|
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
@@ -58,11 +59,7 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
|
|
|
58
59
|
});
|
|
59
60
|
if (!isAuthorized) {
|
|
60
61
|
logger.warn("Unauthorized access attempt");
|
|
61
|
-
|
|
62
|
-
body: { error: "Unauthorized" },
|
|
63
|
-
status: 401,
|
|
64
|
-
headers: {}
|
|
65
|
-
};
|
|
62
|
+
throw new UnauthorizedError("Unauthorized access to the endpoint", "You do not have permission to access this resource.");
|
|
66
63
|
}
|
|
67
64
|
const auditorStorage = ctx.auditorStorage;
|
|
68
65
|
let auditContext;
|
|
@@ -160,4 +157,4 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
|
|
|
160
157
|
|
|
161
158
|
//#endregion
|
|
162
159
|
export { TestEndpointAdaptor };
|
|
163
|
-
//# sourceMappingURL=TestEndpointAdaptor-
|
|
160
|
+
//# sourceMappingURL=TestEndpointAdaptor-DJgik2Wj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEndpointAdaptor-DJgik2Wj.mjs","names":["name: string","value: string","options?: CookieOptions","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >","auditContext: AuditExecutionContext<TAuditAction> | undefined","actor: AuditActor","metadata","output","result","headers: Record<string, string | string[]>","setCookieValues: string[]","cookie"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import type {\n AuditActor,\n AuditStorage,\n AuditableAction,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { EnvironmentParser } from '@geekmidas/envkit';\nimport { UnauthorizedError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n type CookieOptions,\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport type { MappedAudit } from './audit';\nimport {\n type AuditExecutionContext,\n executeWithAuditTransaction,\n} from './processAudits';\n\nexport type TestHttpResponse<TBody = any> = {\n body: TBody;\n status: number;\n headers: Record<string, string | string[]>;\n};\n\n/**\n * Serializes a cookie into a Set-Cookie header string\n */\nfunction serializeCookie(\n name: string,\n value: string,\n options?: CookieOptions,\n): string {\n let cookieString = `${name}=${value}`;\n\n if (options) {\n if (options.maxAge !== undefined) {\n cookieString += `; Max-Age=${options.maxAge}`;\n }\n if (options.expires) {\n cookieString += `; Expires=${options.expires.toUTCString()}`;\n }\n if (options.domain) {\n cookieString += `; Domain=${options.domain}`;\n }\n if (options.path) {\n cookieString += `; Path=${options.path}`;\n }\n if (options.httpOnly) {\n cookieString += '; HttpOnly';\n }\n if (options.secure) {\n cookieString += '; Secure';\n }\n if (options.sameSite) {\n cookieString += `; SameSite=${options.sameSite}`;\n }\n }\n\n return cookieString;\n}\n\nexport class TestEndpointAdaptor<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async fullRequest(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>> {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n\n // Get database from context for session extraction\n const rawDb = (ctx as any).database as TDatabase;\n\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n ...(rawDb !== undefined && { db: rawDb }),\n } as any);\n\n // Check authorization\n const isAuthorized = await this.endpoint.authorize({\n header,\n cookie,\n services: ctx.services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n throw new UnauthorizedError(\n 'Unauthorized access to the endpoint',\n 'You do not have permission to access this resource.',\n );\n }\n\n // Create audit context if audit storage is provided\n // The auditorStorage instance is required when endpoint uses .auditor()\n const auditorStorage = (ctx as any).auditorStorage as TAuditStorage;\n let auditContext: AuditExecutionContext<TAuditAction> | undefined;\n\n if (auditorStorage) {\n // Extract actor if configured\n let actor: AuditActor = { id: 'system', type: 'system' };\n if (this.endpoint.actorExtractor) {\n try {\n actor = await this.endpoint.actorExtractor({\n services: ctx.services as any,\n session,\n header,\n cookie,\n logger,\n });\n } catch (error) {\n logger.error(error as Error, 'Failed to extract actor for audits');\n }\n }\n\n const auditor = new DefaultAuditor<TAuditAction>({\n actor,\n storage: auditorStorage as AuditStorage,\n metadata: {\n endpoint: this.endpoint.route,\n method: this.endpoint.method,\n },\n });\n\n auditContext = { auditor, storage: auditorStorage as AuditStorage };\n }\n\n // Warn if declarative audits are configured but no audit storage\n const audits = this.endpoint.audits as MappedAudit<\n TAuditAction,\n TOutSchema\n >[];\n if (!auditContext && audits?.length) {\n logger.warn('No auditor storage service available');\n }\n\n // Execute handler with automatic audit transaction support\n const result = await executeWithAuditTransaction(\n auditContext,\n async (auditor) => {\n // Use audit transaction as db if available (when storage has same database)\n // For testing, the tester controls whether to use transactional auditing\n const trx = auditor?.getTransaction?.();\n const db = trx ?? rawDb;\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n auditor,\n db,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n\n return { output, metadata, responseBuilder };\n },\n // Process declarative audits after handler (inside transaction)\n async (result, auditor) => {\n if (!audits?.length) return;\n\n for (const audit of audits) {\n if (audit.when && !audit.when(result.output as any)) {\n continue;\n }\n const payload = audit.payload(result.output as any);\n const entityId = audit.entityId?.(result.output as any);\n auditor.audit(audit.type as any, payload as any, {\n table: audit.table,\n entityId,\n });\n }\n },\n // Pass rawDb so storage can reuse existing transactions\n { db: rawDb },\n );\n\n const { output, metadata } = result;\n\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Convert cookies to Set-Cookie headers\n const headers: Record<string, string | string[]> = {\n ...(metadata.headers || {}),\n };\n\n if (metadata.cookies && metadata.cookies.size > 0) {\n const setCookieValues: string[] = [];\n for (const [name, cookie] of metadata.cookies.entries()) {\n setCookieValues.push(\n serializeCookie(name, cookie.value, cookie.options),\n );\n }\n headers['set-cookie'] = setCookieValues;\n }\n\n // Return HTTP response format\n return {\n body: output,\n status: metadata.status || 200,\n headers,\n };\n }\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<InferStandardSchema<TOutSchema>> {\n const response = await this.fullRequest(ctx);\n return response.body;\n }\n}\n\n/**\n * Conditional audit storage requirement - required when TAuditStorage is configured\n */\ntype AuditStorageRequirement<\n TAuditStorage extends AuditStorage | undefined = undefined,\n> = TAuditStorage extends undefined\n ? {}\n : {\n /** Audit storage instance - required when endpoint uses .auditor() */\n auditorStorage: TAuditStorage;\n };\n\n/**\n * Conditional database requirement - required when TDatabase is configured\n */\ntype DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined\n ? {}\n : {\n /** Database instance - required when endpoint uses .database() */\n database: TDatabase;\n };\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n _TAuditStorageServiceName extends string = string,\n TDatabase = undefined,\n _TDatabaseServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput> &\n AuditStorageRequirement<TAuditStorage> &\n DatabaseRequirement<TDatabase>;\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
|
2
2
|
const require_publisher = require('./publisher-lFQleddL.cjs');
|
|
3
3
|
const require_Endpoint = require('./Endpoint-BVGZXFyV.cjs');
|
|
4
4
|
const require_processAudits = require('./processAudits-CzHkPokQ.cjs');
|
|
5
|
+
const __geekmidas_errors = require_chunk.__toESM(require("@geekmidas/errors"));
|
|
5
6
|
const __geekmidas_services = require_chunk.__toESM(require("@geekmidas/services"));
|
|
6
7
|
const __geekmidas_audit = require_chunk.__toESM(require("@geekmidas/audit"));
|
|
7
8
|
const __geekmidas_envkit = require_chunk.__toESM(require("@geekmidas/envkit"));
|
|
@@ -59,11 +60,7 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
|
|
|
59
60
|
});
|
|
60
61
|
if (!isAuthorized) {
|
|
61
62
|
logger.warn("Unauthorized access attempt");
|
|
62
|
-
|
|
63
|
-
body: { error: "Unauthorized" },
|
|
64
|
-
status: 401,
|
|
65
|
-
headers: {}
|
|
66
|
-
};
|
|
63
|
+
throw new __geekmidas_errors.UnauthorizedError("Unauthorized access to the endpoint", "You do not have permission to access this resource.");
|
|
67
64
|
}
|
|
68
65
|
const auditorStorage = ctx.auditorStorage;
|
|
69
66
|
let auditContext;
|
|
@@ -166,4 +163,4 @@ Object.defineProperty(exports, 'TestEndpointAdaptor', {
|
|
|
166
163
|
return TestEndpointAdaptor;
|
|
167
164
|
}
|
|
168
165
|
});
|
|
169
|
-
//# sourceMappingURL=TestEndpointAdaptor-
|
|
166
|
+
//# sourceMappingURL=TestEndpointAdaptor-ZbtQiuHE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEndpointAdaptor-ZbtQiuHE.cjs","names":["name: string","value: string","options?: CookieOptions","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >","EnvironmentParser","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >","UnauthorizedError","auditContext: AuditExecutionContext<TAuditAction> | undefined","actor: AuditActor","DefaultAuditor","ResponseBuilder","metadata","output","result","headers: Record<string, string | string[]>","setCookieValues: string[]","cookie"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import type {\n AuditActor,\n AuditStorage,\n AuditableAction,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { EnvironmentParser } from '@geekmidas/envkit';\nimport { UnauthorizedError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n type CookieOptions,\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport type { MappedAudit } from './audit';\nimport {\n type AuditExecutionContext,\n executeWithAuditTransaction,\n} from './processAudits';\n\nexport type TestHttpResponse<TBody = any> = {\n body: TBody;\n status: number;\n headers: Record<string, string | string[]>;\n};\n\n/**\n * Serializes a cookie into a Set-Cookie header string\n */\nfunction serializeCookie(\n name: string,\n value: string,\n options?: CookieOptions,\n): string {\n let cookieString = `${name}=${value}`;\n\n if (options) {\n if (options.maxAge !== undefined) {\n cookieString += `; Max-Age=${options.maxAge}`;\n }\n if (options.expires) {\n cookieString += `; Expires=${options.expires.toUTCString()}`;\n }\n if (options.domain) {\n cookieString += `; Domain=${options.domain}`;\n }\n if (options.path) {\n cookieString += `; Path=${options.path}`;\n }\n if (options.httpOnly) {\n cookieString += '; HttpOnly';\n }\n if (options.secure) {\n cookieString += '; Secure';\n }\n if (options.sameSite) {\n cookieString += `; SameSite=${options.sameSite}`;\n }\n }\n\n return cookieString;\n}\n\nexport class TestEndpointAdaptor<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async fullRequest(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>> {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n\n // Get database from context for session extraction\n const rawDb = (ctx as any).database as TDatabase;\n\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n ...(rawDb !== undefined && { db: rawDb }),\n } as any);\n\n // Check authorization\n const isAuthorized = await this.endpoint.authorize({\n header,\n cookie,\n services: ctx.services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n throw new UnauthorizedError(\n 'Unauthorized access to the endpoint',\n 'You do not have permission to access this resource.',\n );\n }\n\n // Create audit context if audit storage is provided\n // The auditorStorage instance is required when endpoint uses .auditor()\n const auditorStorage = (ctx as any).auditorStorage as TAuditStorage;\n let auditContext: AuditExecutionContext<TAuditAction> | undefined;\n\n if (auditorStorage) {\n // Extract actor if configured\n let actor: AuditActor = { id: 'system', type: 'system' };\n if (this.endpoint.actorExtractor) {\n try {\n actor = await this.endpoint.actorExtractor({\n services: ctx.services as any,\n session,\n header,\n cookie,\n logger,\n });\n } catch (error) {\n logger.error(error as Error, 'Failed to extract actor for audits');\n }\n }\n\n const auditor = new DefaultAuditor<TAuditAction>({\n actor,\n storage: auditorStorage as AuditStorage,\n metadata: {\n endpoint: this.endpoint.route,\n method: this.endpoint.method,\n },\n });\n\n auditContext = { auditor, storage: auditorStorage as AuditStorage };\n }\n\n // Warn if declarative audits are configured but no audit storage\n const audits = this.endpoint.audits as MappedAudit<\n TAuditAction,\n TOutSchema\n >[];\n if (!auditContext && audits?.length) {\n logger.warn('No auditor storage service available');\n }\n\n // Execute handler with automatic audit transaction support\n const result = await executeWithAuditTransaction(\n auditContext,\n async (auditor) => {\n // Use audit transaction as db if available (when storage has same database)\n // For testing, the tester controls whether to use transactional auditing\n const trx = auditor?.getTransaction?.();\n const db = trx ?? rawDb;\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n auditor,\n db,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n\n return { output, metadata, responseBuilder };\n },\n // Process declarative audits after handler (inside transaction)\n async (result, auditor) => {\n if (!audits?.length) return;\n\n for (const audit of audits) {\n if (audit.when && !audit.when(result.output as any)) {\n continue;\n }\n const payload = audit.payload(result.output as any);\n const entityId = audit.entityId?.(result.output as any);\n auditor.audit(audit.type as any, payload as any, {\n table: audit.table,\n entityId,\n });\n }\n },\n // Pass rawDb so storage can reuse existing transactions\n { db: rawDb },\n );\n\n const { output, metadata } = result;\n\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Convert cookies to Set-Cookie headers\n const headers: Record<string, string | string[]> = {\n ...(metadata.headers || {}),\n };\n\n if (metadata.cookies && metadata.cookies.size > 0) {\n const setCookieValues: string[] = [];\n for (const [name, cookie] of metadata.cookies.entries()) {\n setCookieValues.push(\n serializeCookie(name, cookie.value, cookie.options),\n );\n }\n headers['set-cookie'] = setCookieValues;\n }\n\n // Return HTTP response format\n return {\n body: output,\n status: metadata.status || 200,\n headers,\n };\n }\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<InferStandardSchema<TOutSchema>> {\n const response = await this.fullRequest(ctx);\n return response.body;\n }\n}\n\n/**\n * Conditional audit storage requirement - required when TAuditStorage is configured\n */\ntype AuditStorageRequirement<\n TAuditStorage extends AuditStorage | undefined = undefined,\n> = TAuditStorage extends undefined\n ? {}\n : {\n /** Audit storage instance - required when endpoint uses .auditor() */\n auditorStorage: TAuditStorage;\n };\n\n/**\n * Conditional database requirement - required when TDatabase is configured\n */\ntype DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined\n ? {}\n : {\n /** Database instance - required when endpoint uses .database() */\n database: TDatabase;\n };\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n _TAuditStorageServiceName extends string = string,\n TDatabase = undefined,\n _TDatabaseServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput> &\n AuditStorageRequirement<TAuditStorage> &\n DatabaseRequirement<TDatabase>;\n"],"mappings":"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"}
|
package/dist/adaptors/aws.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import "../AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.cjs";
|
package/dist/adaptors/hono.d.cts
CHANGED
|
@@ -3,8 +3,8 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
|
-
import { HonoEndpoint } from "../HonoEndpointAdaptor-
|
|
9
|
+
import { HonoEndpoint } from "../HonoEndpointAdaptor-YcRHYALH.cjs";
|
|
10
10
|
export { HonoEndpoint };
|
package/dist/adaptors/hono.d.mts
CHANGED
|
@@ -6,5 +6,5 @@ import "../FunctionBuilder-Cxx8D2na.mjs";
|
|
|
6
6
|
import "../index-BWzGIj06.mjs";
|
|
7
7
|
import "../Authorizer-gWxYsGEp.mjs";
|
|
8
8
|
import "../Endpoint-BdwG75G_.mjs";
|
|
9
|
-
import { HonoEndpoint } from "../HonoEndpointAdaptor-
|
|
9
|
+
import { HonoEndpoint } from "../HonoEndpointAdaptor-BaPlUhz0.mjs";
|
|
10
10
|
export { HonoEndpoint };
|
|
@@ -6,6 +6,6 @@ require('../FunctionBuilder-DswJ-9sD.cjs');
|
|
|
6
6
|
require('../functions-fTid0RMK.cjs');
|
|
7
7
|
require('../Endpoint-BVGZXFyV.cjs');
|
|
8
8
|
require('../processAudits-CzHkPokQ.cjs');
|
|
9
|
-
const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-
|
|
9
|
+
const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-ZbtQiuHE.cjs');
|
|
10
10
|
|
|
11
11
|
exports.TestEndpointAdaptor = require_TestEndpointAdaptor.TestEndpointAdaptor;
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { TestEndpointAdaptor } from "../TestEndpointAdaptor-C10xBI--.cjs";
|
|
@@ -6,6 +6,6 @@ import "../FunctionBuilder-CrDYgfiI.mjs";
|
|
|
6
6
|
import "../functions-C6EK1xL6.mjs";
|
|
7
7
|
import "../Endpoint-CuOEswxJ.mjs";
|
|
8
8
|
import "../processAudits-Dj8UGqcW.mjs";
|
|
9
|
-
import { TestEndpointAdaptor } from "../TestEndpointAdaptor-
|
|
9
|
+
import { TestEndpointAdaptor } from "../TestEndpointAdaptor-DJgik2Wj.mjs";
|
|
10
10
|
|
|
11
11
|
export { TestEndpointAdaptor };
|
package/dist/crons/Cron.d.cts
CHANGED
|
@@ -2,6 +2,6 @@ import "../Construct-C4rPE67v.cjs";
|
|
|
2
2
|
import "../Function-Cf7f_kCz.cjs";
|
|
3
3
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
4
4
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
5
|
-
import "../index-
|
|
5
|
+
import "../index-DmFozqLd.cjs";
|
|
6
6
|
import { Cron, CronExpression, RateExpression, ScheduleExpression } from "../Cron-bDLcTvV5.cjs";
|
|
7
7
|
export { Cron, CronExpression, RateExpression, ScheduleExpression };
|
|
@@ -2,7 +2,7 @@ import "../Construct-C4rPE67v.cjs";
|
|
|
2
2
|
import "../Function-Cf7f_kCz.cjs";
|
|
3
3
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
4
4
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
5
|
-
import "../index-
|
|
5
|
+
import "../index-DmFozqLd.cjs";
|
|
6
6
|
import "../Cron-bDLcTvV5.cjs";
|
|
7
7
|
import { CronBuilder } from "../CronBuilder-DKVXyE0Q.cjs";
|
|
8
8
|
export { CronBuilder };
|
package/dist/crons/index.d.cts
CHANGED
|
@@ -2,15 +2,15 @@ import "../Construct-C4rPE67v.cjs";
|
|
|
2
2
|
import "../Function-Cf7f_kCz.cjs";
|
|
3
3
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
4
4
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
5
|
-
import "../index-
|
|
5
|
+
import "../index-DmFozqLd.cjs";
|
|
6
6
|
import { Cron, CronExpression, RateExpression, ScheduleExpression } from "../Cron-bDLcTvV5.cjs";
|
|
7
7
|
import { CronBuilder } from "../CronBuilder-DKVXyE0Q.cjs";
|
|
8
|
-
import * as
|
|
9
|
-
import * as
|
|
10
|
-
import * as
|
|
8
|
+
import * as _geekmidas_logger7 from "@geekmidas/logger";
|
|
9
|
+
import * as _geekmidas_services6 from "@geekmidas/services";
|
|
10
|
+
import * as _geekmidas_schema5 from "@geekmidas/schema";
|
|
11
11
|
|
|
12
12
|
//#region src/crons/index.d.ts
|
|
13
|
-
declare const c: CronBuilder<
|
|
13
|
+
declare const c: CronBuilder<_geekmidas_schema5.ComposableStandardSchema, _geekmidas_services6.Service<string, unknown>[], _geekmidas_logger7.Logger, undefined, undefined, string, undefined, string>;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
15
15
|
|
|
16
16
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { AmazonApiGatewayEndpoint, AmazonApiGatewayEndpointHandlerResponse, AmazonApiGatewayV1EndpointHandler, AmazonApiGatewayV2EndpointHandler, Event, GetInputResponse, HandlerEvent, LoggerContext } from "../AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.cjs";
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import "../AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.cjs";
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import "../AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.cjs";
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { AuthorizeContext, AuthorizeFn, ConvertRouteParams, CookieFn, CookieOptions, Endpoint, EndpointContext, EndpointEvent, EndpointHandler, EndpointHeaders, EndpointInput, EndpointOpenApiSchema, EndpointOptions, EndpointOutput, EndpointSchemas, HeaderFn, MultiHeaderFn, ResponseBuilder, ResponseMetadata, ResponseWithMetadata, SessionContext, SessionFn, SingleHeaderFn, SuccessStatus } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
export { AuthorizeContext, AuthorizeFn, ConvertRouteParams, CookieFn, CookieOptions, Endpoint, EndpointContext, EndpointEvent, EndpointHandler, EndpointHeaders, EndpointInput, EndpointOpenApiSchema, EndpointOptions, EndpointOutput, EndpointSchemas, HeaderFn, MultiHeaderFn, ResponseBuilder, ResponseMetadata, ResponseWithMetadata, SessionContext, SessionFn, SingleHeaderFn, SuccessStatus };
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { EndpointBuilder } from "../EndpointBuilder-DIy_m1bu.cjs";
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import { SecurityScheme } from "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import "../EndpointBuilder-DIy_m1bu.cjs";
|
|
@@ -3,8 +3,8 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
|
-
import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-
|
|
9
|
+
import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-YcRHYALH.cjs";
|
|
10
10
|
export { HonoEndpoint, HonoEndpointOptions };
|
|
@@ -6,5 +6,5 @@ import "../FunctionBuilder-Cxx8D2na.mjs";
|
|
|
6
6
|
import "../index-BWzGIj06.mjs";
|
|
7
7
|
import "../Authorizer-gWxYsGEp.mjs";
|
|
8
8
|
import "../Endpoint-BdwG75G_.mjs";
|
|
9
|
-
import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-
|
|
9
|
+
import { HonoEndpoint, HonoEndpointOptions } from "../HonoEndpointAdaptor-BaPlUhz0.mjs";
|
|
10
10
|
export { HonoEndpoint, HonoEndpointOptions };
|
|
@@ -6,6 +6,6 @@ require('../FunctionBuilder-DswJ-9sD.cjs');
|
|
|
6
6
|
require('../functions-fTid0RMK.cjs');
|
|
7
7
|
require('../Endpoint-BVGZXFyV.cjs');
|
|
8
8
|
require('../processAudits-CzHkPokQ.cjs');
|
|
9
|
-
const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-
|
|
9
|
+
const require_TestEndpointAdaptor = require('../TestEndpointAdaptor-ZbtQiuHE.cjs');
|
|
10
10
|
|
|
11
11
|
exports.TestEndpointAdaptor = require_TestEndpointAdaptor.TestEndpointAdaptor;
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { TestEndpointAdaptor, TestHttpResponse, TestRequestAdaptor } from "../TestEndpointAdaptor-C10xBI--.cjs";
|
|
@@ -6,6 +6,6 @@ import "../FunctionBuilder-CrDYgfiI.mjs";
|
|
|
6
6
|
import "../functions-C6EK1xL6.mjs";
|
|
7
7
|
import "../Endpoint-CuOEswxJ.mjs";
|
|
8
8
|
import "../processAudits-Dj8UGqcW.mjs";
|
|
9
|
-
import { TestEndpointAdaptor } from "../TestEndpointAdaptor-
|
|
9
|
+
import { TestEndpointAdaptor } from "../TestEndpointAdaptor-DJgik2Wj.mjs";
|
|
10
10
|
|
|
11
11
|
export { TestEndpointAdaptor };
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { ActorExtractor, EndpointAuditorConfig, MappedAudit } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
export { ActorExtractor, EndpointAuditorConfig, MappedAudit };
|
|
@@ -3,7 +3,7 @@ import { HttpMethod } from "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { Endpoint } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { Service } from "@geekmidas/services";
|
|
@@ -3,15 +3,15 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import { Authorizer, BUILT_IN_SECURITY_SCHEMES, BuiltInSecuritySchemeId, OAuthFlow, OAuthFlows, SecurityScheme, createAuthorizer, getSecurityScheme, isBuiltInSecurityScheme } from "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { ActorExtractor, Endpoint, EndpointContext, EndpointHandler, EndpointOutput, EndpointSchemas, MappedAudit, RLS_BYPASS, RlsBypass, RlsConfig, RlsContext, RlsContextExtractor } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { EndpointBuilder } from "../EndpointBuilder-DIy_m1bu.cjs";
|
|
10
10
|
import { EndpointFactory } from "../EndpointFactory-CyPbm3AD.cjs";
|
|
11
|
-
import * as
|
|
11
|
+
import * as _geekmidas_logger0 from "@geekmidas/logger";
|
|
12
12
|
|
|
13
13
|
//#region src/endpoints/index.d.ts
|
|
14
|
-
declare const e: EndpointFactory<[], "",
|
|
14
|
+
declare const e: EndpointFactory<[], "", _geekmidas_logger0.Logger, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string, Record<string, SecurityScheme>, undefined>;
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
16
16
|
|
|
17
17
|
//#endregion
|
|
@@ -8,10 +8,10 @@ import { Authorizer, BUILT_IN_SECURITY_SCHEMES, BuiltInSecuritySchemeId, OAuthFl
|
|
|
8
8
|
import { ActorExtractor, Endpoint, EndpointContext, EndpointHandler, EndpointOutput, EndpointSchemas, MappedAudit, RLS_BYPASS, RlsBypass, RlsConfig, RlsContext, RlsContextExtractor } from "../Endpoint-BdwG75G_.mjs";
|
|
9
9
|
import { EndpointBuilder } from "../EndpointBuilder-B3az942t.mjs";
|
|
10
10
|
import { EndpointFactory } from "../EndpointFactory-C-0nE6Jg.mjs";
|
|
11
|
-
import * as
|
|
11
|
+
import * as _geekmidas_logger3 from "@geekmidas/logger";
|
|
12
12
|
|
|
13
13
|
//#region src/endpoints/index.d.ts
|
|
14
|
-
declare const e: EndpointFactory<[], "",
|
|
14
|
+
declare const e: EndpointFactory<[], "", _geekmidas_logger3.Logger, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string, Record<string, SecurityScheme>, undefined>;
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
16
16
|
|
|
17
17
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { CookieFn, Endpoint, HeaderFn } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
|
package/dist/endpoints/rls.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ import "../types-B5H3piDg.cjs";
|
|
|
3
3
|
import "../Function-Cf7f_kCz.cjs";
|
|
4
4
|
import "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
5
5
|
import "../FunctionBuilder-CJBzzXL3.cjs";
|
|
6
|
-
import "../index-
|
|
6
|
+
import "../index-DmFozqLd.cjs";
|
|
7
7
|
import "../Authorizer-B-btowNd.cjs";
|
|
8
8
|
import { RLS_BYPASS, RlsBypass, RlsConfig, RlsContext, RlsContextExtractor } from "../Endpoint-BPv9_-m_.cjs";
|
|
9
9
|
export { RLS_BYPASS, RlsBypass, RlsConfig, RlsContext, RlsContextExtractor };
|
|
@@ -2,5 +2,5 @@ import "../Construct-C4rPE67v.cjs";
|
|
|
2
2
|
import { Function, FunctionContext, FunctionHandler } from "../Function-Cf7f_kCz.cjs";
|
|
3
3
|
import { BaseFunctionBuilder } from "../BaseFunctionBuilder-BAtutR6q.cjs";
|
|
4
4
|
import { FunctionBuilder } from "../FunctionBuilder-CJBzzXL3.cjs";
|
|
5
|
-
import { f } from "../index-
|
|
5
|
+
import { f } from "../index-DmFozqLd.cjs";
|
|
6
6
|
export { BaseFunctionBuilder, Function, FunctionBuilder, FunctionContext, FunctionHandler, f };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FunctionBuilder } from "./FunctionBuilder-CJBzzXL3.cjs";
|
|
2
|
+
import * as _geekmidas_audit4 from "@geekmidas/audit";
|
|
3
|
+
import * as _geekmidas_logger3 from "@geekmidas/logger";
|
|
4
|
+
import * as _geekmidas_schema2 from "@geekmidas/schema";
|
|
5
|
+
|
|
6
|
+
//#region src/functions/index.d.ts
|
|
7
|
+
declare const f: FunctionBuilder<_geekmidas_schema2.ComposableStandardSchema, undefined, [], _geekmidas_logger3.Logger, undefined, string, undefined, string, undefined, string, _geekmidas_audit4.AuditableAction<string, unknown>>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { f };
|
|
12
|
+
//# sourceMappingURL=index-DmFozqLd.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-DmFozqLd.d.cts","names":[],"sources":["../src/functions/index.ts"],"sourcesContent":[],"mappings":";;;;;;cASa,GAAC,gBAAwB,kBAAA,CAAxB,wBAAA,iBAAA,kBAAA,CAAA,MAAA,2DAAA,iBAAA,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../Construct-C4rPE67v.cjs";
|
|
2
2
|
import { Subscriber } from "../Subscriber-COYMSevD.cjs";
|
|
3
3
|
import { SubscriberBuilder } from "../SubscriberBuilder-ivHAGIVi.cjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _geekmidas_logger8 from "@geekmidas/logger";
|
|
5
5
|
|
|
6
6
|
//#region src/subscribers/index.d.ts
|
|
7
|
-
declare const s: SubscriberBuilder<[],
|
|
7
|
+
declare const s: SubscriberBuilder<[], _geekmidas_logger8.Logger, undefined, undefined, string, []>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAIa,GAAC,sBAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAIa,GAAC,sBAA0B,kBAAA,CAA1B,MAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/constructs",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -78,15 +78,15 @@
|
|
|
78
78
|
"pg": "~8.16.3",
|
|
79
79
|
"zod": "~4.1.13",
|
|
80
80
|
"@geekmidas/audit": "^0.1.0",
|
|
81
|
-
"@geekmidas/cache": "^0.1.0",
|
|
82
81
|
"@geekmidas/db": "^0.2.0",
|
|
82
|
+
"@geekmidas/cache": "^0.1.0",
|
|
83
83
|
"@geekmidas/envkit": "^0.2.0",
|
|
84
|
-
"@geekmidas/errors": "^0.1.0",
|
|
85
84
|
"@geekmidas/events": "^0.1.0",
|
|
85
|
+
"@geekmidas/errors": "^0.1.0",
|
|
86
86
|
"@geekmidas/rate-limit": "^0.2.0",
|
|
87
|
-
"@geekmidas/services": "^0.1.0",
|
|
88
|
-
"@geekmidas/logger": "^0.3.0",
|
|
89
87
|
"@geekmidas/schema": "^0.1.0",
|
|
88
|
+
"@geekmidas/logger": "^0.3.0",
|
|
89
|
+
"@geekmidas/services": "^0.1.0",
|
|
90
90
|
"@geekmidas/testkit": "^0.4.0"
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
} from '@geekmidas/audit';
|
|
6
6
|
import { DefaultAuditor } from '@geekmidas/audit';
|
|
7
7
|
import { EnvironmentParser } from '@geekmidas/envkit';
|
|
8
|
+
import { UnauthorizedError } from '@geekmidas/errors';
|
|
8
9
|
import type { EventPublisher } from '@geekmidas/events';
|
|
9
10
|
import type { Logger } from '@geekmidas/logger';
|
|
10
11
|
import type {
|
|
@@ -206,11 +207,10 @@ export class TestEndpointAdaptor<
|
|
|
206
207
|
|
|
207
208
|
if (!isAuthorized) {
|
|
208
209
|
logger.warn('Unauthorized access attempt');
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
};
|
|
210
|
+
throw new UnauthorizedError(
|
|
211
|
+
'Unauthorized access to the endpoint',
|
|
212
|
+
'You do not have permission to access this resource.',
|
|
213
|
+
);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
// Create audit context if audit storage is provided
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestEndpointAdaptor-BXTofAKc.mjs","names":["name: string","value: string","options?: CookieOptions","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >","auditContext: AuditExecutionContext<TAuditAction> | undefined","actor: AuditActor","metadata","output","result","headers: Record<string, string | string[]>","setCookieValues: string[]","cookie"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import type {\n AuditActor,\n AuditStorage,\n AuditableAction,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n type CookieOptions,\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport type { MappedAudit } from './audit';\nimport {\n type AuditExecutionContext,\n executeWithAuditTransaction,\n} from './processAudits';\n\nexport type TestHttpResponse<TBody = any> = {\n body: TBody;\n status: number;\n headers: Record<string, string | string[]>;\n};\n\n/**\n * Serializes a cookie into a Set-Cookie header string\n */\nfunction serializeCookie(\n name: string,\n value: string,\n options?: CookieOptions,\n): string {\n let cookieString = `${name}=${value}`;\n\n if (options) {\n if (options.maxAge !== undefined) {\n cookieString += `; Max-Age=${options.maxAge}`;\n }\n if (options.expires) {\n cookieString += `; Expires=${options.expires.toUTCString()}`;\n }\n if (options.domain) {\n cookieString += `; Domain=${options.domain}`;\n }\n if (options.path) {\n cookieString += `; Path=${options.path}`;\n }\n if (options.httpOnly) {\n cookieString += '; HttpOnly';\n }\n if (options.secure) {\n cookieString += '; Secure';\n }\n if (options.sameSite) {\n cookieString += `; SameSite=${options.sameSite}`;\n }\n }\n\n return cookieString;\n}\n\nexport class TestEndpointAdaptor<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async fullRequest(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>> {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n\n // Get database from context for session extraction\n const rawDb = (ctx as any).database as TDatabase;\n\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n ...(rawDb !== undefined && { db: rawDb }),\n } as any);\n\n // Check authorization\n const isAuthorized = await this.endpoint.authorize({\n header,\n cookie,\n services: ctx.services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n return {\n body: { error: 'Unauthorized' } as any,\n status: 401,\n headers: {},\n };\n }\n\n // Create audit context if audit storage is provided\n // The auditorStorage instance is required when endpoint uses .auditor()\n const auditorStorage = (ctx as any).auditorStorage as TAuditStorage;\n let auditContext: AuditExecutionContext<TAuditAction> | undefined;\n\n if (auditorStorage) {\n // Extract actor if configured\n let actor: AuditActor = { id: 'system', type: 'system' };\n if (this.endpoint.actorExtractor) {\n try {\n actor = await this.endpoint.actorExtractor({\n services: ctx.services as any,\n session,\n header,\n cookie,\n logger,\n });\n } catch (error) {\n logger.error(error as Error, 'Failed to extract actor for audits');\n }\n }\n\n const auditor = new DefaultAuditor<TAuditAction>({\n actor,\n storage: auditorStorage as AuditStorage,\n metadata: {\n endpoint: this.endpoint.route,\n method: this.endpoint.method,\n },\n });\n\n auditContext = { auditor, storage: auditorStorage as AuditStorage };\n }\n\n // Warn if declarative audits are configured but no audit storage\n const audits = this.endpoint.audits as MappedAudit<\n TAuditAction,\n TOutSchema\n >[];\n if (!auditContext && audits?.length) {\n logger.warn('No auditor storage service available');\n }\n\n // Execute handler with automatic audit transaction support\n const result = await executeWithAuditTransaction(\n auditContext,\n async (auditor) => {\n // Use audit transaction as db if available (when storage has same database)\n // For testing, the tester controls whether to use transactional auditing\n const trx = auditor?.getTransaction?.();\n const db = trx ?? rawDb;\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n auditor,\n db,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n\n return { output, metadata, responseBuilder };\n },\n // Process declarative audits after handler (inside transaction)\n async (result, auditor) => {\n if (!audits?.length) return;\n\n for (const audit of audits) {\n if (audit.when && !audit.when(result.output as any)) {\n continue;\n }\n const payload = audit.payload(result.output as any);\n const entityId = audit.entityId?.(result.output as any);\n auditor.audit(audit.type as any, payload as any, {\n table: audit.table,\n entityId,\n });\n }\n },\n // Pass rawDb so storage can reuse existing transactions\n { db: rawDb },\n );\n\n const { output, metadata } = result;\n\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Convert cookies to Set-Cookie headers\n const headers: Record<string, string | string[]> = {\n ...(metadata.headers || {}),\n };\n\n if (metadata.cookies && metadata.cookies.size > 0) {\n const setCookieValues: string[] = [];\n for (const [name, cookie] of metadata.cookies.entries()) {\n setCookieValues.push(\n serializeCookie(name, cookie.value, cookie.options),\n );\n }\n headers['set-cookie'] = setCookieValues;\n }\n\n // Return HTTP response format\n return {\n body: output,\n status: metadata.status || 200,\n headers,\n };\n }\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<InferStandardSchema<TOutSchema>> {\n const response = await this.fullRequest(ctx);\n return response.body;\n }\n}\n\n/**\n * Conditional audit storage requirement - required when TAuditStorage is configured\n */\ntype AuditStorageRequirement<\n TAuditStorage extends AuditStorage | undefined = undefined,\n> = TAuditStorage extends undefined\n ? {}\n : {\n /** Audit storage instance - required when endpoint uses .auditor() */\n auditorStorage: TAuditStorage;\n };\n\n/**\n * Conditional database requirement - required when TDatabase is configured\n */\ntype DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined\n ? {}\n : {\n /** Database instance - required when endpoint uses .database() */\n database: TDatabase;\n };\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n _TAuditStorageServiceName extends string = string,\n TDatabase = undefined,\n _TDatabaseServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput> &\n AuditStorageRequirement<TAuditStorage> &\n DatabaseRequirement<TDatabase>;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestEndpointAdaptor-D9IwhIYg.cjs","names":["name: string","value: string","options?: CookieOptions","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >","EnvironmentParser","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >","auditContext: AuditExecutionContext<TAuditAction> | undefined","actor: AuditActor","DefaultAuditor","ResponseBuilder","metadata","output","result","headers: Record<string, string | string[]>","setCookieValues: string[]","cookie"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import type {\n AuditActor,\n AuditStorage,\n AuditableAction,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n type CookieOptions,\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport type { MappedAudit } from './audit';\nimport {\n type AuditExecutionContext,\n executeWithAuditTransaction,\n} from './processAudits';\n\nexport type TestHttpResponse<TBody = any> = {\n body: TBody;\n status: number;\n headers: Record<string, string | string[]>;\n};\n\n/**\n * Serializes a cookie into a Set-Cookie header string\n */\nfunction serializeCookie(\n name: string,\n value: string,\n options?: CookieOptions,\n): string {\n let cookieString = `${name}=${value}`;\n\n if (options) {\n if (options.maxAge !== undefined) {\n cookieString += `; Max-Age=${options.maxAge}`;\n }\n if (options.expires) {\n cookieString += `; Expires=${options.expires.toUTCString()}`;\n }\n if (options.domain) {\n cookieString += `; Domain=${options.domain}`;\n }\n if (options.path) {\n cookieString += `; Path=${options.path}`;\n }\n if (options.httpOnly) {\n cookieString += '; HttpOnly';\n }\n if (options.secure) {\n cookieString += '; Secure';\n }\n if (options.sameSite) {\n cookieString += `; SameSite=${options.sameSite}`;\n }\n }\n\n return cookieString;\n}\n\nexport class TestEndpointAdaptor<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n TAuditStorageServiceName extends string = string,\n TAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n string,\n unknown\n >,\n TDatabase = undefined,\n TDatabaseServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TAuditAction,\n TDatabase,\n TDatabaseServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async fullRequest(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<TestHttpResponse<InferStandardSchema<TOutSchema>>> {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n\n // Get database from context for session extraction\n const rawDb = (ctx as any).database as TDatabase;\n\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n ...(rawDb !== undefined && { db: rawDb }),\n } as any);\n\n // Check authorization\n const isAuthorized = await this.endpoint.authorize({\n header,\n cookie,\n services: ctx.services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n return {\n body: { error: 'Unauthorized' } as any,\n status: 401,\n headers: {},\n };\n }\n\n // Create audit context if audit storage is provided\n // The auditorStorage instance is required when endpoint uses .auditor()\n const auditorStorage = (ctx as any).auditorStorage as TAuditStorage;\n let auditContext: AuditExecutionContext<TAuditAction> | undefined;\n\n if (auditorStorage) {\n // Extract actor if configured\n let actor: AuditActor = { id: 'system', type: 'system' };\n if (this.endpoint.actorExtractor) {\n try {\n actor = await this.endpoint.actorExtractor({\n services: ctx.services as any,\n session,\n header,\n cookie,\n logger,\n });\n } catch (error) {\n logger.error(error as Error, 'Failed to extract actor for audits');\n }\n }\n\n const auditor = new DefaultAuditor<TAuditAction>({\n actor,\n storage: auditorStorage as AuditStorage,\n metadata: {\n endpoint: this.endpoint.route,\n method: this.endpoint.method,\n },\n });\n\n auditContext = { auditor, storage: auditorStorage as AuditStorage };\n }\n\n // Warn if declarative audits are configured but no audit storage\n const audits = this.endpoint.audits as MappedAudit<\n TAuditAction,\n TOutSchema\n >[];\n if (!auditContext && audits?.length) {\n logger.warn('No auditor storage service available');\n }\n\n // Execute handler with automatic audit transaction support\n const result = await executeWithAuditTransaction(\n auditContext,\n async (auditor) => {\n // Use audit transaction as db if available (when storage has same database)\n // For testing, the tester controls whether to use transactional auditing\n const trx = auditor?.getTransaction?.();\n const db = trx ?? rawDb;\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n auditor,\n db,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n\n return { output, metadata, responseBuilder };\n },\n // Process declarative audits after handler (inside transaction)\n async (result, auditor) => {\n if (!audits?.length) return;\n\n for (const audit of audits) {\n if (audit.when && !audit.when(result.output as any)) {\n continue;\n }\n const payload = audit.payload(result.output as any);\n const entityId = audit.entityId?.(result.output as any);\n auditor.audit(audit.type as any, payload as any, {\n table: audit.table,\n entityId,\n });\n }\n },\n // Pass rawDb so storage can reuse existing transactions\n { db: rawDb },\n );\n\n const { output, metadata } = result;\n\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Convert cookies to Set-Cookie headers\n const headers: Record<string, string | string[]> = {\n ...(metadata.headers || {}),\n };\n\n if (metadata.cookies && metadata.cookies.size > 0) {\n const setCookieValues: string[] = [];\n for (const [name, cookie] of metadata.cookies.entries()) {\n setCookieValues.push(\n serializeCookie(name, cookie.value, cookie.options),\n );\n }\n headers['set-cookie'] = setCookieValues;\n }\n\n // Return HTTP response format\n return {\n body: output,\n status: metadata.status || 200,\n headers,\n };\n }\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName,\n TAuditStorage,\n TAuditStorageServiceName,\n TDatabase,\n TDatabaseServiceName\n >,\n ): Promise<InferStandardSchema<TOutSchema>> {\n const response = await this.fullRequest(ctx);\n return response.body;\n }\n}\n\n/**\n * Conditional audit storage requirement - required when TAuditStorage is configured\n */\ntype AuditStorageRequirement<\n TAuditStorage extends AuditStorage | undefined = undefined,\n> = TAuditStorage extends undefined\n ? {}\n : {\n /** Audit storage instance - required when endpoint uses .auditor() */\n auditorStorage: TAuditStorage;\n };\n\n/**\n * Conditional database requirement - required when TDatabase is configured\n */\ntype DatabaseRequirement<TDatabase = undefined> = TDatabase extends undefined\n ? {}\n : {\n /** Database instance - required when endpoint uses .database() */\n database: TDatabase;\n };\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n _TAuditStorageServiceName extends string = string,\n TDatabase = undefined,\n _TDatabaseServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput> &\n AuditStorageRequirement<TAuditStorage> &\n DatabaseRequirement<TDatabase>;\n"],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { FunctionBuilder } from "./FunctionBuilder-CJBzzXL3.cjs";
|
|
2
|
-
import * as _geekmidas_audit9 from "@geekmidas/audit";
|
|
3
|
-
import * as _geekmidas_logger8 from "@geekmidas/logger";
|
|
4
|
-
import * as _geekmidas_schema7 from "@geekmidas/schema";
|
|
5
|
-
|
|
6
|
-
//#region src/functions/index.d.ts
|
|
7
|
-
declare const f: FunctionBuilder<_geekmidas_schema7.ComposableStandardSchema, undefined, [], _geekmidas_logger8.Logger, undefined, string, undefined, string, undefined, string, _geekmidas_audit9.AuditableAction<string, unknown>>;
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
9
|
-
|
|
10
|
-
//#endregion
|
|
11
|
-
export { f };
|
|
12
|
-
//# sourceMappingURL=index-SI4V0XwK.d.cts.map
|