@alepha/devtools 0.11.10 → 0.11.11
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/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +160 -160
- package/dist/index.d.ts +160 -160
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +19 -19
- package/src/DevToolsProvider.ts +1 -1
- package/src/entities/logs.ts +1 -1
- package/src/providers/DevToolsDatabaseProvider.ts +1 -1
- package/src/repositories/LogRepository.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@ let node_path = require("node:path");
|
|
|
3
3
|
let node_url = require("node:url");
|
|
4
4
|
let __alepha_batch = require("@alepha/batch");
|
|
5
5
|
let __alepha_logger = require("@alepha/logger");
|
|
6
|
-
let
|
|
6
|
+
let __alepha_orm = require("@alepha/orm");
|
|
7
7
|
let __alepha_server = require("@alepha/server");
|
|
8
8
|
let __alepha_server_static = require("@alepha/server-static");
|
|
9
9
|
let __alepha_bucket = require("@alepha/bucket");
|
|
@@ -14,10 +14,10 @@ let __alepha_security = require("@alepha/security");
|
|
|
14
14
|
let __alepha_topic = require("@alepha/topic");
|
|
15
15
|
|
|
16
16
|
//#region src/entities/logs.ts
|
|
17
|
-
const logs = (0,
|
|
17
|
+
const logs = (0, __alepha_orm.$entity)({
|
|
18
18
|
name: "logs",
|
|
19
19
|
schema: __alepha_core.t.object({
|
|
20
|
-
id:
|
|
20
|
+
id: __alepha_orm.pg.primaryKey(),
|
|
21
21
|
level: __alepha_core.t.enum([
|
|
22
22
|
"TRACE",
|
|
23
23
|
"DEBUG",
|
|
@@ -168,7 +168,7 @@ var DevToolsMetadataProvider = class {
|
|
|
168
168
|
|
|
169
169
|
//#endregion
|
|
170
170
|
//#region src/providers/DevToolsDatabaseProvider.ts
|
|
171
|
-
var DevToolsDatabaseProvider = class extends
|
|
171
|
+
var DevToolsDatabaseProvider = class extends __alepha_orm.NodeSqliteProvider {
|
|
172
172
|
get name() {
|
|
173
173
|
return "devtools";
|
|
174
174
|
}
|
|
@@ -177,7 +177,7 @@ var DevToolsDatabaseProvider = class extends __alepha_postgres.NodeSqliteProvide
|
|
|
177
177
|
|
|
178
178
|
//#endregion
|
|
179
179
|
//#region src/repositories/LogRepository.ts
|
|
180
|
-
var LogRepository = class extends
|
|
180
|
+
var LogRepository = class extends __alepha_orm.Repository {
|
|
181
181
|
constructor() {
|
|
182
182
|
super(logs, DevToolsDatabaseProvider);
|
|
183
183
|
}
|
|
@@ -383,7 +383,7 @@ var DevToolsProvider = class {
|
|
|
383
383
|
},
|
|
384
384
|
handler: ({ query }) => {
|
|
385
385
|
query.sort ??= "-timestamp";
|
|
386
|
-
return this.logs.paginate(query, query.search ? { where: (0,
|
|
386
|
+
return this.logs.paginate(query, query.search ? { where: (0, __alepha_orm.parseQueryString)(query.search) } : {}, { count: true });
|
|
387
387
|
}
|
|
388
388
|
});
|
|
389
389
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["t","pg","Alepha","$action","$queue","$scheduler","$topic","$bucket","$realm","$cache","NodeSqliteProvider","Repository","t","t","t","t","t","t","t","t","t","t","t","Alepha","ServerProvider","JsonFormatterProvider","t","pageQuerySchema","logEntrySchema"],"sources":["../src/entities/logs.ts","../src/providers/DevToolsMetadataProvider.ts","../src/providers/DevToolsDatabaseProvider.ts","../src/repositories/LogRepository.ts","../src/schemas/DevActionMetadata.ts","../src/schemas/DevBucketMetadata.ts","../src/schemas/DevCacheMetadata.ts","../src/schemas/DevModuleMetadata.ts","../src/schemas/DevPageMetadata.ts","../src/schemas/DevProviderMetadata.ts","../src/schemas/DevQueueMetadata.ts","../src/schemas/DevRealmMetadata.ts","../src/schemas/DevSchedulerMetadata.ts","../src/schemas/DevTopicMetadata.ts","../src/schemas/DevMetadata.ts","../src/DevToolsProvider.ts","../src/index.ts"],"sourcesContent":["import { type Static, t } from \"@alepha/core\";\nimport { $entity, pg } from \"@alepha/postgres\";\n\nexport const logs = $entity({\n name: \"logs\",\n schema: t.object({\n id: pg.primaryKey(),\n level: t.enum([\"TRACE\", \"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: t.text({\n size: \"rich\",\n }),\n service: t.text(),\n module: t.text(),\n context: t.optional(t.text()),\n app: t.optional(t.text()),\n data: t.optional(t.json()),\n timestamp: t.datetime(),\n }),\n});\n\nexport type DevLogEntry = Static<typeof logs.schema>;\n","import { $bucket } from \"@alepha/bucket\";\nimport { $cache } from \"@alepha/cache\";\nimport { $inject, Alepha } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { $queue } from \"@alepha/queue\";\nimport { $scheduler } from \"@alepha/scheduler\";\nimport { $realm } from \"@alepha/security\";\nimport { $action } from \"@alepha/server\";\nimport { $topic } from \"@alepha/topic\";\nimport type { DevActionMetadata } from \"../schemas/DevActionMetadata.ts\";\nimport type { DevBucketMetadata } from \"../schemas/DevBucketMetadata.ts\";\nimport type { DevCacheMetadata } from \"../schemas/DevCacheMetadata.ts\";\nimport type { DevMetadata } from \"../schemas/DevMetadata.ts\";\nimport type { DevModuleMetadata } from \"../schemas/DevModuleMetadata.ts\";\nimport type { DevPageMetadata } from \"../schemas/DevPageMetadata.ts\";\nimport type { DevProviderMetadata } from \"../schemas/DevProviderMetadata.ts\";\nimport type { DevQueueMetadata } from \"../schemas/DevQueueMetadata.ts\";\nimport type { DevRealmMetadata } from \"../schemas/DevRealmMetadata.ts\";\nimport type { DevSchedulerMetadata } from \"../schemas/DevSchedulerMetadata.ts\";\nimport type { DevTopicMetadata } from \"../schemas/DevTopicMetadata.ts\";\n\nexport class DevToolsMetadataProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n\n public getActions(): DevActionMetadata[] {\n const actionDescriptors = this.alepha.descriptors($action);\n\n return actionDescriptors.map((action) => {\n const schema = action.schema;\n const options = action.options as any; // Allow accessing augmented properties\n\n return {\n name: action.name,\n group: action.group,\n method: action.method,\n path: action.path,\n prefix: action.prefix,\n fullPath: action.route.path,\n description: action.options.description,\n summary: options.summary,\n disabled: action.options.disabled,\n secure: options.secure,\n hide: options.hide,\n body: schema?.body,\n params: schema?.params,\n query: schema?.query,\n response: schema?.response,\n bodyContentType: action.getBodyContentType(),\n };\n });\n }\n\n public getQueues(): DevQueueMetadata[] {\n const queueDescriptors = this.alepha.descriptors($queue);\n\n return queueDescriptors.map((queue) => ({\n name: queue.name,\n description: queue.options.description,\n schema: queue.options.schema,\n provider: this.getProviderName(queue.options.provider),\n }));\n }\n\n public getSchedulers(): DevSchedulerMetadata[] {\n const schedulerDescriptors = this.alepha.descriptors($scheduler);\n\n return schedulerDescriptors.map((scheduler) => ({\n name: scheduler.name,\n description: scheduler.options.description,\n cron: scheduler.options.cron,\n interval: scheduler.options.interval,\n lock: scheduler.options.lock,\n }));\n }\n\n public getTopics(): DevTopicMetadata[] {\n const topicDescriptors = this.alepha.descriptors($topic);\n\n return topicDescriptors.map((topic) => ({\n name: topic.name,\n description: topic.options.description,\n schema: topic.options.schema,\n provider: this.getProviderName(topic.options.provider),\n }));\n }\n\n public getBuckets(): DevBucketMetadata[] {\n const bucketDescriptors = this.alepha.descriptors($bucket);\n\n return bucketDescriptors.map((bucket) => ({\n name: bucket.name,\n description: bucket.options.description,\n mimeTypes: bucket.options.mimeTypes,\n maxSize: bucket.options.maxSize,\n provider: this.getProviderName(bucket.options.provider),\n }));\n }\n\n public getRealms(): DevRealmMetadata[] {\n const realmDescriptors = this.alepha.descriptors($realm);\n\n return realmDescriptors.map((realm) => ({\n name: realm.name,\n description: realm.options.description,\n roles: realm.options.roles,\n type: \"secret\" in realm.options ? \"internal\" : \"external\",\n settings: {\n accessTokenExpiration: realm.options.settings?.accessToken?.expiration,\n refreshTokenExpiration:\n realm.options.settings?.refreshToken?.expiration,\n hasOnCreateSession: !!realm.options.settings?.onCreateSession,\n hasOnRefreshSession: !!realm.options.settings?.onRefreshSession,\n hasOnDeleteSession: !!realm.options.settings?.onDeleteSession,\n },\n }));\n }\n\n public getCaches(): DevCacheMetadata[] {\n const cacheDescriptors = this.alepha.descriptors($cache);\n\n return cacheDescriptors.map((cache) => ({\n name: cache.container,\n ttl: cache.options.ttl,\n disabled: cache.options.disabled,\n provider: this.getProviderName(cache.options.provider),\n }));\n }\n\n public getPages(): DevPageMetadata[] {\n // const pageDescriptors = this.alepha.descriptors($page);\n //\n // return pageDescriptors.map((page) => ({\n // name: page.name,\n // description: page.options.description,\n // path: page.options.path,\n // params: page.options.schema?.params,\n // query: page.options.schema?.query,\n // hasComponent: !!page.options.component,\n // hasLazy: !!page.options.lazy,\n // hasResolve: !!page.options.resolve,\n // hasChildren: !!page.options.children,\n // hasParent: !!page.options.parent,\n // hasErrorHandler: !!page.options.errorHandler,\n // static:\n // typeof page.options.static === \"boolean\"\n // ? page.options.static\n // : !!page.options.static,\n // cache: page.options.cache,\n // client: page.options.client,\n // animation: page.options.animation,\n // }));\n\n return [];\n }\n\n public getProviders(): DevProviderMetadata[] {\n const graph = this.alepha.graph();\n\n return Object.entries(graph).map(([name, info]) => ({\n name,\n module: info.module,\n dependencies: info.from,\n aliases: info.as,\n }));\n }\n\n public getModules(): DevModuleMetadata[] {\n const graph = this.alepha.graph();\n const moduleMap = new Map<string, Set<string>>();\n\n // Group providers by module\n for (const [providerName, info] of Object.entries(graph)) {\n if (info.module) {\n if (!moduleMap.has(info.module)) {\n moduleMap.set(info.module, new Set());\n }\n moduleMap.get(info.module)!.add(providerName);\n }\n }\n\n return Array.from(moduleMap.entries()).map(([name, providers]) => ({\n name,\n providers: Array.from(providers),\n }));\n }\n\n public getMetadata(): DevMetadata {\n return {\n actions: this.getActions(),\n queues: this.getQueues(),\n schedulers: this.getSchedulers(),\n topics: this.getTopics(),\n buckets: this.getBuckets(),\n realms: this.getRealms(),\n caches: this.getCaches(),\n pages: this.getPages(),\n providers: this.getProviders(),\n modules: this.getModules(),\n };\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected getProviderName(provider?: \"memory\" | any): string {\n if (!provider) {\n return \"default\";\n }\n if (provider === \"memory\") {\n return \"memory\";\n }\n return provider.name || \"custom\";\n }\n}\n","import { NodeSqliteProvider } from \"@alepha/postgres\";\n\nexport class DevToolsDatabaseProvider extends NodeSqliteProvider {\n public get name() {\n return \"devtools\";\n }\n\n protected readonly options = {\n path: \":memory:\",\n };\n}\n","import { Repository } from \"@alepha/postgres\";\nimport { logs } from \"../entities/logs.ts\";\nimport { DevToolsDatabaseProvider } from \"../providers/DevToolsDatabaseProvider.ts\";\n\nexport class LogRepository extends Repository<typeof logs.schema> {\n constructor() {\n super(logs, DevToolsDatabaseProvider);\n }\n}\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devActionMetadataSchema = t.object({\n name: t.text(),\n group: t.text(),\n method: t.text(),\n path: t.text(),\n prefix: t.text(),\n fullPath: t.text(),\n description: t.optional(t.text()),\n summary: t.optional(t.text()),\n disabled: t.optional(t.boolean()),\n secure: t.optional(t.boolean()),\n hide: t.optional(t.boolean()),\n body: t.optional(t.any()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n response: t.optional(t.any()),\n bodyContentType: t.optional(t.text()),\n});\n\nexport type DevActionMetadata = Static<typeof devActionMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devBucketMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n mimeTypes: t.optional(t.array(t.text())),\n maxSize: t.optional(t.number()),\n provider: t.text(),\n});\n\nexport type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devCacheMetadataSchema = t.object({\n name: t.text(),\n ttl: t.optional(t.any()),\n disabled: t.optional(t.boolean()),\n provider: t.text(),\n});\n\nexport type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devModuleMetadataSchema = t.object({\n name: t.text(),\n providers: t.array(t.text()),\n});\n\nexport type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devPageMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n path: t.optional(t.text()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n hasComponent: t.boolean(),\n hasLazy: t.boolean(),\n hasResolve: t.boolean(),\n hasChildren: t.boolean(),\n hasParent: t.boolean(),\n hasErrorHandler: t.boolean(),\n static: t.optional(t.boolean()),\n cache: t.optional(t.any()),\n client: t.optional(t.any()),\n animation: t.optional(t.any()),\n});\n\nexport type DevPageMetadata = Static<typeof devPageMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devProviderMetadataSchema = t.object({\n name: t.text(),\n module: t.optional(t.text()),\n dependencies: t.array(t.text()),\n aliases: t.optional(t.array(t.text())),\n});\n\nexport type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devQueueMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devRealmMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n roles: t.optional(t.array(t.any())),\n type: t.enum([\"internal\", \"external\"]),\n settings: t.optional(\n t.object({\n accessTokenExpiration: t.optional(t.any()),\n refreshTokenExpiration: t.optional(t.any()),\n hasOnCreateSession: t.boolean(),\n hasOnRefreshSession: t.boolean(),\n hasOnDeleteSession: t.boolean(),\n }),\n ),\n});\n\nexport type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devSchedulerMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n cron: t.optional(t.text()),\n interval: t.optional(t.any()),\n lock: t.optional(t.boolean()),\n});\n\nexport type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devTopicMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\nimport { devActionMetadataSchema } from \"./DevActionMetadata.ts\";\nimport { devBucketMetadataSchema } from \"./DevBucketMetadata.ts\";\nimport { devCacheMetadataSchema } from \"./DevCacheMetadata.ts\";\nimport { devModuleMetadataSchema } from \"./DevModuleMetadata.ts\";\nimport { devPageMetadataSchema } from \"./DevPageMetadata.ts\";\nimport { devProviderMetadataSchema } from \"./DevProviderMetadata.ts\";\nimport { devQueueMetadataSchema } from \"./DevQueueMetadata.ts\";\nimport { devRealmMetadataSchema } from \"./DevRealmMetadata.ts\";\nimport { devSchedulerMetadataSchema } from \"./DevSchedulerMetadata.ts\";\nimport { devTopicMetadataSchema } from \"./DevTopicMetadata.ts\";\n\nexport const devMetadataSchema = t.object({\n actions: t.array(devActionMetadataSchema),\n queues: t.array(devQueueMetadataSchema),\n schedulers: t.array(devSchedulerMetadataSchema),\n topics: t.array(devTopicMetadataSchema),\n buckets: t.array(devBucketMetadataSchema),\n realms: t.array(devRealmMetadataSchema),\n caches: t.array(devCacheMetadataSchema),\n pages: t.array(devPageMetadataSchema),\n providers: t.array(devProviderMetadataSchema),\n modules: t.array(devModuleMetadataSchema),\n // More metadata will be added here later\n});\n\nexport type DevMetadata = Static<typeof devMetadataSchema>;\n","import { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { $batch } from \"@alepha/batch\";\nimport { $hook, $inject, Alepha, pageQuerySchema, t } from \"@alepha/core\";\nimport {\n $logger,\n JsonFormatterProvider,\n type LogEntry,\n logEntrySchema,\n} from \"@alepha/logger\";\nimport { parseQueryString } from \"@alepha/postgres\";\nimport { $route, ServerProvider } from \"@alepha/server\";\nimport { $serve } from \"@alepha/server-static\";\nimport { type DevLogEntry, logs } from \"./entities/logs.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\nimport { devMetadataSchema } from \"./schemas/DevMetadata.ts\";\n\nexport class DevToolsProvider {\n protected readonly log = $logger();\n protected readonly alepha = $inject(Alepha);\n protected readonly serverProvider = $inject(ServerProvider);\n protected readonly jsonFormatter = $inject(JsonFormatterProvider);\n protected readonly logs = $inject(LogRepository);\n protected readonly devCollectorProvider = $inject(DevToolsMetadataProvider);\n\n protected readonly onStart = $hook({\n on: \"start\",\n handler: () => {\n this.log.info(\n `Devtools available at ${this.serverProvider.hostname}/devtools/`,\n );\n },\n });\n\n protected batchLogs = $batch({\n maxSize: 50,\n maxDuration: [10, \"seconds\"],\n schema: logs.insertSchema,\n handler: async (entries) => {\n await this.logs.createMany(entries);\n },\n });\n\n protected readonly onLog = $hook({\n on: \"log\",\n handler: async (ev: { message?: string; entry: LogEntry }) => {\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n // CAUTION: It's very easy to create an infinite loop here.\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n try {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n if (ev.entry.module === \"alepha.devtools\") {\n // skip devtools logs to avoid infinite loop\n return;\n }\n\n if (ev.entry.level === \"TRACE\" && ev.entry.module === \"alepha.batch\") {\n // skip batch trace logs to avoid infinite loop\n return;\n }\n\n if (this.alepha.isProduction() && ev.entry.level === \"TRACE\") {\n // skip trace logs in production\n return;\n }\n\n const entry = {\n ...ev.entry,\n data:\n ev.entry.data instanceof Error\n ? this.jsonFormatter.formatJsonError(ev.entry.data)\n : typeof ev.entry.data === \"object\" &&\n !Array.isArray(ev.entry.data)\n ? ev.entry.data\n : { data: ev.entry.data },\n };\n\n await this.batchLogs.push(entry as DevLogEntry);\n } catch (error) {\n // DO TO NOT WITH THE LOGGER HERE TO AVOID INFINITE LOOP\n console.error(error, ev);\n }\n },\n });\n\n protected readonly uiRoute = $serve({\n path: \"/devtools\",\n root: join(fileURLToPath(import.meta.url), \"../../assets/devtools\"),\n historyApiFallback: true,\n });\n\n protected readonly metadataRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/metadata\",\n silent: true,\n schema: {\n response: devMetadataSchema,\n },\n handler: () => {\n return this.devCollectorProvider.getMetadata();\n },\n });\n\n protected readonly logsRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/logs\",\n silent: true,\n schema: {\n query: t.extend(pageQuerySchema, {\n search: t.optional(t.string()),\n }),\n response: t.page(logEntrySchema),\n },\n handler: ({ query }) => {\n query.sort ??= \"-timestamp\";\n return this.logs.paginate(\n query,\n query.search\n ? {\n where: parseQueryString(query.search),\n }\n : {},\n {\n count: true,\n },\n );\n },\n });\n}\n","import { $module } from \"@alepha/core\";\nimport { DevToolsProvider } from \"./DevToolsProvider.ts\";\nimport { DevToolsDatabaseProvider } from \"./providers/DevToolsDatabaseProvider.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/DevToolsMetadataProvider.ts\";\nexport * from \"./schemas/DevActionMetadata.ts\";\nexport * from \"./schemas/DevBucketMetadata.ts\";\nexport * from \"./schemas/DevCacheMetadata.ts\";\nexport * from \"./schemas/DevMetadata.ts\";\nexport * from \"./schemas/DevModuleMetadata.ts\";\nexport * from \"./schemas/DevPageMetadata.ts\";\nexport * from \"./schemas/DevProviderMetadata.ts\";\nexport * from \"./schemas/DevQueueMetadata.ts\";\nexport * from \"./schemas/DevRealmMetadata.ts\";\nexport * from \"./schemas/DevSchedulerMetadata.ts\";\nexport * from \"./schemas/DevTopicMetadata.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Developer tools module for monitoring and debugging Alepha applications.\n *\n * This module provides comprehensive data collection capabilities for tracking application behavior,\n * performance metrics, and debugging information in real-time.\n *\n * @see {@link DevToolsMetadataProvider}\n * @module alepha.devtools\n */\nexport const AlephaDevtools = $module({\n name: \"alepha.devtools\",\n descriptors: [],\n services: [\n DevToolsMetadataProvider,\n DevToolsProvider,\n DevToolsDatabaseProvider,\n LogRepository,\n ],\n register: (alepha) => {\n alepha.with(DevToolsProvider);\n alepha.with(DevToolsDatabaseProvider);\n alepha.with(DevToolsMetadataProvider);\n alepha.state.push(\"alepha.build.assets\", \"@alepha/devtools\");\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["t","pg","Alepha","$action","$queue","$scheduler","$topic","$bucket","$realm","$cache","NodeSqliteProvider","Repository","t","t","t","t","t","t","t","t","t","t","t","Alepha","ServerProvider","JsonFormatterProvider","t","pageQuerySchema","logEntrySchema"],"sources":["../src/entities/logs.ts","../src/providers/DevToolsMetadataProvider.ts","../src/providers/DevToolsDatabaseProvider.ts","../src/repositories/LogRepository.ts","../src/schemas/DevActionMetadata.ts","../src/schemas/DevBucketMetadata.ts","../src/schemas/DevCacheMetadata.ts","../src/schemas/DevModuleMetadata.ts","../src/schemas/DevPageMetadata.ts","../src/schemas/DevProviderMetadata.ts","../src/schemas/DevQueueMetadata.ts","../src/schemas/DevRealmMetadata.ts","../src/schemas/DevSchedulerMetadata.ts","../src/schemas/DevTopicMetadata.ts","../src/schemas/DevMetadata.ts","../src/DevToolsProvider.ts","../src/index.ts"],"sourcesContent":["import { type Static, t } from \"@alepha/core\";\nimport { $entity, pg } from \"@alepha/orm\";\n\nexport const logs = $entity({\n name: \"logs\",\n schema: t.object({\n id: pg.primaryKey(),\n level: t.enum([\"TRACE\", \"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: t.text({\n size: \"rich\",\n }),\n service: t.text(),\n module: t.text(),\n context: t.optional(t.text()),\n app: t.optional(t.text()),\n data: t.optional(t.json()),\n timestamp: t.datetime(),\n }),\n});\n\nexport type DevLogEntry = Static<typeof logs.schema>;\n","import { $bucket } from \"@alepha/bucket\";\nimport { $cache } from \"@alepha/cache\";\nimport { $inject, Alepha } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { $queue } from \"@alepha/queue\";\nimport { $scheduler } from \"@alepha/scheduler\";\nimport { $realm } from \"@alepha/security\";\nimport { $action } from \"@alepha/server\";\nimport { $topic } from \"@alepha/topic\";\nimport type { DevActionMetadata } from \"../schemas/DevActionMetadata.ts\";\nimport type { DevBucketMetadata } from \"../schemas/DevBucketMetadata.ts\";\nimport type { DevCacheMetadata } from \"../schemas/DevCacheMetadata.ts\";\nimport type { DevMetadata } from \"../schemas/DevMetadata.ts\";\nimport type { DevModuleMetadata } from \"../schemas/DevModuleMetadata.ts\";\nimport type { DevPageMetadata } from \"../schemas/DevPageMetadata.ts\";\nimport type { DevProviderMetadata } from \"../schemas/DevProviderMetadata.ts\";\nimport type { DevQueueMetadata } from \"../schemas/DevQueueMetadata.ts\";\nimport type { DevRealmMetadata } from \"../schemas/DevRealmMetadata.ts\";\nimport type { DevSchedulerMetadata } from \"../schemas/DevSchedulerMetadata.ts\";\nimport type { DevTopicMetadata } from \"../schemas/DevTopicMetadata.ts\";\n\nexport class DevToolsMetadataProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n\n public getActions(): DevActionMetadata[] {\n const actionDescriptors = this.alepha.descriptors($action);\n\n return actionDescriptors.map((action) => {\n const schema = action.schema;\n const options = action.options as any; // Allow accessing augmented properties\n\n return {\n name: action.name,\n group: action.group,\n method: action.method,\n path: action.path,\n prefix: action.prefix,\n fullPath: action.route.path,\n description: action.options.description,\n summary: options.summary,\n disabled: action.options.disabled,\n secure: options.secure,\n hide: options.hide,\n body: schema?.body,\n params: schema?.params,\n query: schema?.query,\n response: schema?.response,\n bodyContentType: action.getBodyContentType(),\n };\n });\n }\n\n public getQueues(): DevQueueMetadata[] {\n const queueDescriptors = this.alepha.descriptors($queue);\n\n return queueDescriptors.map((queue) => ({\n name: queue.name,\n description: queue.options.description,\n schema: queue.options.schema,\n provider: this.getProviderName(queue.options.provider),\n }));\n }\n\n public getSchedulers(): DevSchedulerMetadata[] {\n const schedulerDescriptors = this.alepha.descriptors($scheduler);\n\n return schedulerDescriptors.map((scheduler) => ({\n name: scheduler.name,\n description: scheduler.options.description,\n cron: scheduler.options.cron,\n interval: scheduler.options.interval,\n lock: scheduler.options.lock,\n }));\n }\n\n public getTopics(): DevTopicMetadata[] {\n const topicDescriptors = this.alepha.descriptors($topic);\n\n return topicDescriptors.map((topic) => ({\n name: topic.name,\n description: topic.options.description,\n schema: topic.options.schema,\n provider: this.getProviderName(topic.options.provider),\n }));\n }\n\n public getBuckets(): DevBucketMetadata[] {\n const bucketDescriptors = this.alepha.descriptors($bucket);\n\n return bucketDescriptors.map((bucket) => ({\n name: bucket.name,\n description: bucket.options.description,\n mimeTypes: bucket.options.mimeTypes,\n maxSize: bucket.options.maxSize,\n provider: this.getProviderName(bucket.options.provider),\n }));\n }\n\n public getRealms(): DevRealmMetadata[] {\n const realmDescriptors = this.alepha.descriptors($realm);\n\n return realmDescriptors.map((realm) => ({\n name: realm.name,\n description: realm.options.description,\n roles: realm.options.roles,\n type: \"secret\" in realm.options ? \"internal\" : \"external\",\n settings: {\n accessTokenExpiration: realm.options.settings?.accessToken?.expiration,\n refreshTokenExpiration:\n realm.options.settings?.refreshToken?.expiration,\n hasOnCreateSession: !!realm.options.settings?.onCreateSession,\n hasOnRefreshSession: !!realm.options.settings?.onRefreshSession,\n hasOnDeleteSession: !!realm.options.settings?.onDeleteSession,\n },\n }));\n }\n\n public getCaches(): DevCacheMetadata[] {\n const cacheDescriptors = this.alepha.descriptors($cache);\n\n return cacheDescriptors.map((cache) => ({\n name: cache.container,\n ttl: cache.options.ttl,\n disabled: cache.options.disabled,\n provider: this.getProviderName(cache.options.provider),\n }));\n }\n\n public getPages(): DevPageMetadata[] {\n // const pageDescriptors = this.alepha.descriptors($page);\n //\n // return pageDescriptors.map((page) => ({\n // name: page.name,\n // description: page.options.description,\n // path: page.options.path,\n // params: page.options.schema?.params,\n // query: page.options.schema?.query,\n // hasComponent: !!page.options.component,\n // hasLazy: !!page.options.lazy,\n // hasResolve: !!page.options.resolve,\n // hasChildren: !!page.options.children,\n // hasParent: !!page.options.parent,\n // hasErrorHandler: !!page.options.errorHandler,\n // static:\n // typeof page.options.static === \"boolean\"\n // ? page.options.static\n // : !!page.options.static,\n // cache: page.options.cache,\n // client: page.options.client,\n // animation: page.options.animation,\n // }));\n\n return [];\n }\n\n public getProviders(): DevProviderMetadata[] {\n const graph = this.alepha.graph();\n\n return Object.entries(graph).map(([name, info]) => ({\n name,\n module: info.module,\n dependencies: info.from,\n aliases: info.as,\n }));\n }\n\n public getModules(): DevModuleMetadata[] {\n const graph = this.alepha.graph();\n const moduleMap = new Map<string, Set<string>>();\n\n // Group providers by module\n for (const [providerName, info] of Object.entries(graph)) {\n if (info.module) {\n if (!moduleMap.has(info.module)) {\n moduleMap.set(info.module, new Set());\n }\n moduleMap.get(info.module)!.add(providerName);\n }\n }\n\n return Array.from(moduleMap.entries()).map(([name, providers]) => ({\n name,\n providers: Array.from(providers),\n }));\n }\n\n public getMetadata(): DevMetadata {\n return {\n actions: this.getActions(),\n queues: this.getQueues(),\n schedulers: this.getSchedulers(),\n topics: this.getTopics(),\n buckets: this.getBuckets(),\n realms: this.getRealms(),\n caches: this.getCaches(),\n pages: this.getPages(),\n providers: this.getProviders(),\n modules: this.getModules(),\n };\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected getProviderName(provider?: \"memory\" | any): string {\n if (!provider) {\n return \"default\";\n }\n if (provider === \"memory\") {\n return \"memory\";\n }\n return provider.name || \"custom\";\n }\n}\n","import { NodeSqliteProvider } from \"@alepha/orm\";\n\nexport class DevToolsDatabaseProvider extends NodeSqliteProvider {\n public get name() {\n return \"devtools\";\n }\n\n protected readonly options = {\n path: \":memory:\",\n };\n}\n","import { Repository } from \"@alepha/orm\";\nimport { logs } from \"../entities/logs.ts\";\nimport { DevToolsDatabaseProvider } from \"../providers/DevToolsDatabaseProvider.ts\";\n\nexport class LogRepository extends Repository<typeof logs.schema> {\n constructor() {\n super(logs, DevToolsDatabaseProvider);\n }\n}\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devActionMetadataSchema = t.object({\n name: t.text(),\n group: t.text(),\n method: t.text(),\n path: t.text(),\n prefix: t.text(),\n fullPath: t.text(),\n description: t.optional(t.text()),\n summary: t.optional(t.text()),\n disabled: t.optional(t.boolean()),\n secure: t.optional(t.boolean()),\n hide: t.optional(t.boolean()),\n body: t.optional(t.any()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n response: t.optional(t.any()),\n bodyContentType: t.optional(t.text()),\n});\n\nexport type DevActionMetadata = Static<typeof devActionMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devBucketMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n mimeTypes: t.optional(t.array(t.text())),\n maxSize: t.optional(t.number()),\n provider: t.text(),\n});\n\nexport type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devCacheMetadataSchema = t.object({\n name: t.text(),\n ttl: t.optional(t.any()),\n disabled: t.optional(t.boolean()),\n provider: t.text(),\n});\n\nexport type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devModuleMetadataSchema = t.object({\n name: t.text(),\n providers: t.array(t.text()),\n});\n\nexport type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devPageMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n path: t.optional(t.text()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n hasComponent: t.boolean(),\n hasLazy: t.boolean(),\n hasResolve: t.boolean(),\n hasChildren: t.boolean(),\n hasParent: t.boolean(),\n hasErrorHandler: t.boolean(),\n static: t.optional(t.boolean()),\n cache: t.optional(t.any()),\n client: t.optional(t.any()),\n animation: t.optional(t.any()),\n});\n\nexport type DevPageMetadata = Static<typeof devPageMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devProviderMetadataSchema = t.object({\n name: t.text(),\n module: t.optional(t.text()),\n dependencies: t.array(t.text()),\n aliases: t.optional(t.array(t.text())),\n});\n\nexport type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devQueueMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devRealmMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n roles: t.optional(t.array(t.any())),\n type: t.enum([\"internal\", \"external\"]),\n settings: t.optional(\n t.object({\n accessTokenExpiration: t.optional(t.any()),\n refreshTokenExpiration: t.optional(t.any()),\n hasOnCreateSession: t.boolean(),\n hasOnRefreshSession: t.boolean(),\n hasOnDeleteSession: t.boolean(),\n }),\n ),\n});\n\nexport type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devSchedulerMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n cron: t.optional(t.text()),\n interval: t.optional(t.any()),\n lock: t.optional(t.boolean()),\n});\n\nexport type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devTopicMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\nimport { devActionMetadataSchema } from \"./DevActionMetadata.ts\";\nimport { devBucketMetadataSchema } from \"./DevBucketMetadata.ts\";\nimport { devCacheMetadataSchema } from \"./DevCacheMetadata.ts\";\nimport { devModuleMetadataSchema } from \"./DevModuleMetadata.ts\";\nimport { devPageMetadataSchema } from \"./DevPageMetadata.ts\";\nimport { devProviderMetadataSchema } from \"./DevProviderMetadata.ts\";\nimport { devQueueMetadataSchema } from \"./DevQueueMetadata.ts\";\nimport { devRealmMetadataSchema } from \"./DevRealmMetadata.ts\";\nimport { devSchedulerMetadataSchema } from \"./DevSchedulerMetadata.ts\";\nimport { devTopicMetadataSchema } from \"./DevTopicMetadata.ts\";\n\nexport const devMetadataSchema = t.object({\n actions: t.array(devActionMetadataSchema),\n queues: t.array(devQueueMetadataSchema),\n schedulers: t.array(devSchedulerMetadataSchema),\n topics: t.array(devTopicMetadataSchema),\n buckets: t.array(devBucketMetadataSchema),\n realms: t.array(devRealmMetadataSchema),\n caches: t.array(devCacheMetadataSchema),\n pages: t.array(devPageMetadataSchema),\n providers: t.array(devProviderMetadataSchema),\n modules: t.array(devModuleMetadataSchema),\n // More metadata will be added here later\n});\n\nexport type DevMetadata = Static<typeof devMetadataSchema>;\n","import { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { $batch } from \"@alepha/batch\";\nimport { $hook, $inject, Alepha, pageQuerySchema, t } from \"@alepha/core\";\nimport {\n $logger,\n JsonFormatterProvider,\n type LogEntry,\n logEntrySchema,\n} from \"@alepha/logger\";\nimport { parseQueryString } from \"@alepha/orm\";\nimport { $route, ServerProvider } from \"@alepha/server\";\nimport { $serve } from \"@alepha/server-static\";\nimport { type DevLogEntry, logs } from \"./entities/logs.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\nimport { devMetadataSchema } from \"./schemas/DevMetadata.ts\";\n\nexport class DevToolsProvider {\n protected readonly log = $logger();\n protected readonly alepha = $inject(Alepha);\n protected readonly serverProvider = $inject(ServerProvider);\n protected readonly jsonFormatter = $inject(JsonFormatterProvider);\n protected readonly logs = $inject(LogRepository);\n protected readonly devCollectorProvider = $inject(DevToolsMetadataProvider);\n\n protected readonly onStart = $hook({\n on: \"start\",\n handler: () => {\n this.log.info(\n `Devtools available at ${this.serverProvider.hostname}/devtools/`,\n );\n },\n });\n\n protected batchLogs = $batch({\n maxSize: 50,\n maxDuration: [10, \"seconds\"],\n schema: logs.insertSchema,\n handler: async (entries) => {\n await this.logs.createMany(entries);\n },\n });\n\n protected readonly onLog = $hook({\n on: \"log\",\n handler: async (ev: { message?: string; entry: LogEntry }) => {\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n // CAUTION: It's very easy to create an infinite loop here.\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n try {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n if (ev.entry.module === \"alepha.devtools\") {\n // skip devtools logs to avoid infinite loop\n return;\n }\n\n if (ev.entry.level === \"TRACE\" && ev.entry.module === \"alepha.batch\") {\n // skip batch trace logs to avoid infinite loop\n return;\n }\n\n if (this.alepha.isProduction() && ev.entry.level === \"TRACE\") {\n // skip trace logs in production\n return;\n }\n\n const entry = {\n ...ev.entry,\n data:\n ev.entry.data instanceof Error\n ? this.jsonFormatter.formatJsonError(ev.entry.data)\n : typeof ev.entry.data === \"object\" &&\n !Array.isArray(ev.entry.data)\n ? ev.entry.data\n : { data: ev.entry.data },\n };\n\n await this.batchLogs.push(entry as DevLogEntry);\n } catch (error) {\n // DO TO NOT WITH THE LOGGER HERE TO AVOID INFINITE LOOP\n console.error(error, ev);\n }\n },\n });\n\n protected readonly uiRoute = $serve({\n path: \"/devtools\",\n root: join(fileURLToPath(import.meta.url), \"../../assets/devtools\"),\n historyApiFallback: true,\n });\n\n protected readonly metadataRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/metadata\",\n silent: true,\n schema: {\n response: devMetadataSchema,\n },\n handler: () => {\n return this.devCollectorProvider.getMetadata();\n },\n });\n\n protected readonly logsRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/logs\",\n silent: true,\n schema: {\n query: t.extend(pageQuerySchema, {\n search: t.optional(t.string()),\n }),\n response: t.page(logEntrySchema),\n },\n handler: ({ query }) => {\n query.sort ??= \"-timestamp\";\n return this.logs.paginate(\n query,\n query.search\n ? {\n where: parseQueryString(query.search),\n }\n : {},\n {\n count: true,\n },\n );\n },\n });\n}\n","import { $module } from \"@alepha/core\";\nimport { DevToolsProvider } from \"./DevToolsProvider.ts\";\nimport { DevToolsDatabaseProvider } from \"./providers/DevToolsDatabaseProvider.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/DevToolsMetadataProvider.ts\";\nexport * from \"./schemas/DevActionMetadata.ts\";\nexport * from \"./schemas/DevBucketMetadata.ts\";\nexport * from \"./schemas/DevCacheMetadata.ts\";\nexport * from \"./schemas/DevMetadata.ts\";\nexport * from \"./schemas/DevModuleMetadata.ts\";\nexport * from \"./schemas/DevPageMetadata.ts\";\nexport * from \"./schemas/DevProviderMetadata.ts\";\nexport * from \"./schemas/DevQueueMetadata.ts\";\nexport * from \"./schemas/DevRealmMetadata.ts\";\nexport * from \"./schemas/DevSchedulerMetadata.ts\";\nexport * from \"./schemas/DevTopicMetadata.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Developer tools module for monitoring and debugging Alepha applications.\n *\n * This module provides comprehensive data collection capabilities for tracking application behavior,\n * performance metrics, and debugging information in real-time.\n *\n * @see {@link DevToolsMetadataProvider}\n * @module alepha.devtools\n */\nexport const AlephaDevtools = $module({\n name: \"alepha.devtools\",\n descriptors: [],\n services: [\n DevToolsMetadataProvider,\n DevToolsProvider,\n DevToolsDatabaseProvider,\n LogRepository,\n ],\n register: (alepha) => {\n alepha.with(DevToolsProvider);\n alepha.with(DevToolsDatabaseProvider);\n alepha.with(DevToolsMetadataProvider);\n alepha.state.push(\"alepha.build.assets\", \"@alepha/devtools\");\n },\n});\n"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,220 +1,220 @@
|
|
|
1
1
|
import * as _alepha_core0 from "@alepha/core";
|
|
2
2
|
import { Alepha, Static } from "@alepha/core";
|
|
3
3
|
import * as _alepha_logger0 from "@alepha/logger";
|
|
4
|
-
import * as
|
|
4
|
+
import * as typebox153 from "typebox";
|
|
5
5
|
|
|
6
6
|
//#region src/schemas/DevActionMetadata.d.ts
|
|
7
|
-
declare const devActionMetadataSchema:
|
|
8
|
-
name:
|
|
9
|
-
group:
|
|
10
|
-
method:
|
|
11
|
-
path:
|
|
12
|
-
prefix:
|
|
13
|
-
fullPath:
|
|
14
|
-
description:
|
|
15
|
-
summary:
|
|
16
|
-
disabled:
|
|
17
|
-
secure:
|
|
18
|
-
hide:
|
|
19
|
-
body:
|
|
20
|
-
params:
|
|
21
|
-
query:
|
|
22
|
-
response:
|
|
23
|
-
bodyContentType:
|
|
7
|
+
declare const devActionMetadataSchema: typebox153.TObject<{
|
|
8
|
+
name: typebox153.TString;
|
|
9
|
+
group: typebox153.TString;
|
|
10
|
+
method: typebox153.TString;
|
|
11
|
+
path: typebox153.TString;
|
|
12
|
+
prefix: typebox153.TString;
|
|
13
|
+
fullPath: typebox153.TString;
|
|
14
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
15
|
+
summary: typebox153.TOptional<typebox153.TString>;
|
|
16
|
+
disabled: typebox153.TOptional<typebox153.TBoolean>;
|
|
17
|
+
secure: typebox153.TOptional<typebox153.TBoolean>;
|
|
18
|
+
hide: typebox153.TOptional<typebox153.TBoolean>;
|
|
19
|
+
body: typebox153.TOptional<typebox153.TAny>;
|
|
20
|
+
params: typebox153.TOptional<typebox153.TAny>;
|
|
21
|
+
query: typebox153.TOptional<typebox153.TAny>;
|
|
22
|
+
response: typebox153.TOptional<typebox153.TAny>;
|
|
23
|
+
bodyContentType: typebox153.TOptional<typebox153.TString>;
|
|
24
24
|
}>;
|
|
25
25
|
type DevActionMetadata = Static<typeof devActionMetadataSchema>;
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/schemas/DevBucketMetadata.d.ts
|
|
28
|
-
declare const devBucketMetadataSchema:
|
|
29
|
-
name:
|
|
30
|
-
description:
|
|
31
|
-
mimeTypes:
|
|
32
|
-
maxSize:
|
|
33
|
-
provider:
|
|
28
|
+
declare const devBucketMetadataSchema: typebox153.TObject<{
|
|
29
|
+
name: typebox153.TString;
|
|
30
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
31
|
+
mimeTypes: typebox153.TOptional<typebox153.TArray<typebox153.TString>>;
|
|
32
|
+
maxSize: typebox153.TOptional<typebox153.TNumber>;
|
|
33
|
+
provider: typebox153.TString;
|
|
34
34
|
}>;
|
|
35
35
|
type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;
|
|
36
36
|
//#endregion
|
|
37
37
|
//#region src/schemas/DevCacheMetadata.d.ts
|
|
38
|
-
declare const devCacheMetadataSchema:
|
|
39
|
-
name:
|
|
40
|
-
ttl:
|
|
41
|
-
disabled:
|
|
42
|
-
provider:
|
|
38
|
+
declare const devCacheMetadataSchema: typebox153.TObject<{
|
|
39
|
+
name: typebox153.TString;
|
|
40
|
+
ttl: typebox153.TOptional<typebox153.TAny>;
|
|
41
|
+
disabled: typebox153.TOptional<typebox153.TBoolean>;
|
|
42
|
+
provider: typebox153.TString;
|
|
43
43
|
}>;
|
|
44
44
|
type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region src/schemas/DevMetadata.d.ts
|
|
47
|
-
declare const devMetadataSchema:
|
|
48
|
-
actions:
|
|
49
|
-
name:
|
|
50
|
-
group:
|
|
51
|
-
method:
|
|
52
|
-
path:
|
|
53
|
-
prefix:
|
|
54
|
-
fullPath:
|
|
55
|
-
description:
|
|
56
|
-
summary:
|
|
57
|
-
disabled:
|
|
58
|
-
secure:
|
|
59
|
-
hide:
|
|
60
|
-
body:
|
|
61
|
-
params:
|
|
62
|
-
query:
|
|
63
|
-
response:
|
|
64
|
-
bodyContentType:
|
|
47
|
+
declare const devMetadataSchema: typebox153.TObject<{
|
|
48
|
+
actions: typebox153.TArray<typebox153.TObject<{
|
|
49
|
+
name: typebox153.TString;
|
|
50
|
+
group: typebox153.TString;
|
|
51
|
+
method: typebox153.TString;
|
|
52
|
+
path: typebox153.TString;
|
|
53
|
+
prefix: typebox153.TString;
|
|
54
|
+
fullPath: typebox153.TString;
|
|
55
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
56
|
+
summary: typebox153.TOptional<typebox153.TString>;
|
|
57
|
+
disabled: typebox153.TOptional<typebox153.TBoolean>;
|
|
58
|
+
secure: typebox153.TOptional<typebox153.TBoolean>;
|
|
59
|
+
hide: typebox153.TOptional<typebox153.TBoolean>;
|
|
60
|
+
body: typebox153.TOptional<typebox153.TAny>;
|
|
61
|
+
params: typebox153.TOptional<typebox153.TAny>;
|
|
62
|
+
query: typebox153.TOptional<typebox153.TAny>;
|
|
63
|
+
response: typebox153.TOptional<typebox153.TAny>;
|
|
64
|
+
bodyContentType: typebox153.TOptional<typebox153.TString>;
|
|
65
65
|
}>>;
|
|
66
|
-
queues:
|
|
67
|
-
name:
|
|
68
|
-
description:
|
|
69
|
-
schema:
|
|
70
|
-
provider:
|
|
66
|
+
queues: typebox153.TArray<typebox153.TObject<{
|
|
67
|
+
name: typebox153.TString;
|
|
68
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
69
|
+
schema: typebox153.TOptional<typebox153.TAny>;
|
|
70
|
+
provider: typebox153.TString;
|
|
71
71
|
}>>;
|
|
72
|
-
schedulers:
|
|
73
|
-
name:
|
|
74
|
-
description:
|
|
75
|
-
cron:
|
|
76
|
-
interval:
|
|
77
|
-
lock:
|
|
72
|
+
schedulers: typebox153.TArray<typebox153.TObject<{
|
|
73
|
+
name: typebox153.TString;
|
|
74
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
75
|
+
cron: typebox153.TOptional<typebox153.TString>;
|
|
76
|
+
interval: typebox153.TOptional<typebox153.TAny>;
|
|
77
|
+
lock: typebox153.TOptional<typebox153.TBoolean>;
|
|
78
78
|
}>>;
|
|
79
|
-
topics:
|
|
80
|
-
name:
|
|
81
|
-
description:
|
|
82
|
-
schema:
|
|
83
|
-
provider:
|
|
79
|
+
topics: typebox153.TArray<typebox153.TObject<{
|
|
80
|
+
name: typebox153.TString;
|
|
81
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
82
|
+
schema: typebox153.TOptional<typebox153.TAny>;
|
|
83
|
+
provider: typebox153.TString;
|
|
84
84
|
}>>;
|
|
85
|
-
buckets:
|
|
86
|
-
name:
|
|
87
|
-
description:
|
|
88
|
-
mimeTypes:
|
|
89
|
-
maxSize:
|
|
90
|
-
provider:
|
|
85
|
+
buckets: typebox153.TArray<typebox153.TObject<{
|
|
86
|
+
name: typebox153.TString;
|
|
87
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
88
|
+
mimeTypes: typebox153.TOptional<typebox153.TArray<typebox153.TString>>;
|
|
89
|
+
maxSize: typebox153.TOptional<typebox153.TNumber>;
|
|
90
|
+
provider: typebox153.TString;
|
|
91
91
|
}>>;
|
|
92
|
-
realms:
|
|
93
|
-
name:
|
|
94
|
-
description:
|
|
95
|
-
roles:
|
|
96
|
-
type:
|
|
97
|
-
settings:
|
|
98
|
-
accessTokenExpiration:
|
|
99
|
-
refreshTokenExpiration:
|
|
100
|
-
hasOnCreateSession:
|
|
101
|
-
hasOnRefreshSession:
|
|
102
|
-
hasOnDeleteSession:
|
|
92
|
+
realms: typebox153.TArray<typebox153.TObject<{
|
|
93
|
+
name: typebox153.TString;
|
|
94
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
95
|
+
roles: typebox153.TOptional<typebox153.TArray<typebox153.TAny>>;
|
|
96
|
+
type: typebox153.TUnsafe<"internal" | "external">;
|
|
97
|
+
settings: typebox153.TOptional<typebox153.TObject<{
|
|
98
|
+
accessTokenExpiration: typebox153.TOptional<typebox153.TAny>;
|
|
99
|
+
refreshTokenExpiration: typebox153.TOptional<typebox153.TAny>;
|
|
100
|
+
hasOnCreateSession: typebox153.TBoolean;
|
|
101
|
+
hasOnRefreshSession: typebox153.TBoolean;
|
|
102
|
+
hasOnDeleteSession: typebox153.TBoolean;
|
|
103
103
|
}>>;
|
|
104
104
|
}>>;
|
|
105
|
-
caches:
|
|
106
|
-
name:
|
|
107
|
-
ttl:
|
|
108
|
-
disabled:
|
|
109
|
-
provider:
|
|
105
|
+
caches: typebox153.TArray<typebox153.TObject<{
|
|
106
|
+
name: typebox153.TString;
|
|
107
|
+
ttl: typebox153.TOptional<typebox153.TAny>;
|
|
108
|
+
disabled: typebox153.TOptional<typebox153.TBoolean>;
|
|
109
|
+
provider: typebox153.TString;
|
|
110
110
|
}>>;
|
|
111
|
-
pages:
|
|
112
|
-
name:
|
|
113
|
-
description:
|
|
114
|
-
path:
|
|
115
|
-
params:
|
|
116
|
-
query:
|
|
117
|
-
hasComponent:
|
|
118
|
-
hasLazy:
|
|
119
|
-
hasResolve:
|
|
120
|
-
hasChildren:
|
|
121
|
-
hasParent:
|
|
122
|
-
hasErrorHandler:
|
|
123
|
-
static:
|
|
124
|
-
cache:
|
|
125
|
-
client:
|
|
126
|
-
animation:
|
|
111
|
+
pages: typebox153.TArray<typebox153.TObject<{
|
|
112
|
+
name: typebox153.TString;
|
|
113
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
114
|
+
path: typebox153.TOptional<typebox153.TString>;
|
|
115
|
+
params: typebox153.TOptional<typebox153.TAny>;
|
|
116
|
+
query: typebox153.TOptional<typebox153.TAny>;
|
|
117
|
+
hasComponent: typebox153.TBoolean;
|
|
118
|
+
hasLazy: typebox153.TBoolean;
|
|
119
|
+
hasResolve: typebox153.TBoolean;
|
|
120
|
+
hasChildren: typebox153.TBoolean;
|
|
121
|
+
hasParent: typebox153.TBoolean;
|
|
122
|
+
hasErrorHandler: typebox153.TBoolean;
|
|
123
|
+
static: typebox153.TOptional<typebox153.TBoolean>;
|
|
124
|
+
cache: typebox153.TOptional<typebox153.TAny>;
|
|
125
|
+
client: typebox153.TOptional<typebox153.TAny>;
|
|
126
|
+
animation: typebox153.TOptional<typebox153.TAny>;
|
|
127
127
|
}>>;
|
|
128
|
-
providers:
|
|
129
|
-
name:
|
|
130
|
-
module:
|
|
131
|
-
dependencies:
|
|
132
|
-
aliases:
|
|
128
|
+
providers: typebox153.TArray<typebox153.TObject<{
|
|
129
|
+
name: typebox153.TString;
|
|
130
|
+
module: typebox153.TOptional<typebox153.TString>;
|
|
131
|
+
dependencies: typebox153.TArray<typebox153.TString>;
|
|
132
|
+
aliases: typebox153.TOptional<typebox153.TArray<typebox153.TString>>;
|
|
133
133
|
}>>;
|
|
134
|
-
modules:
|
|
135
|
-
name:
|
|
136
|
-
providers:
|
|
134
|
+
modules: typebox153.TArray<typebox153.TObject<{
|
|
135
|
+
name: typebox153.TString;
|
|
136
|
+
providers: typebox153.TArray<typebox153.TString>;
|
|
137
137
|
}>>;
|
|
138
138
|
}>;
|
|
139
139
|
type DevMetadata = Static<typeof devMetadataSchema>;
|
|
140
140
|
//#endregion
|
|
141
141
|
//#region src/schemas/DevModuleMetadata.d.ts
|
|
142
|
-
declare const devModuleMetadataSchema:
|
|
143
|
-
name:
|
|
144
|
-
providers:
|
|
142
|
+
declare const devModuleMetadataSchema: typebox153.TObject<{
|
|
143
|
+
name: typebox153.TString;
|
|
144
|
+
providers: typebox153.TArray<typebox153.TString>;
|
|
145
145
|
}>;
|
|
146
146
|
type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;
|
|
147
147
|
//#endregion
|
|
148
148
|
//#region src/schemas/DevPageMetadata.d.ts
|
|
149
|
-
declare const devPageMetadataSchema:
|
|
150
|
-
name:
|
|
151
|
-
description:
|
|
152
|
-
path:
|
|
153
|
-
params:
|
|
154
|
-
query:
|
|
155
|
-
hasComponent:
|
|
156
|
-
hasLazy:
|
|
157
|
-
hasResolve:
|
|
158
|
-
hasChildren:
|
|
159
|
-
hasParent:
|
|
160
|
-
hasErrorHandler:
|
|
161
|
-
static:
|
|
162
|
-
cache:
|
|
163
|
-
client:
|
|
164
|
-
animation:
|
|
149
|
+
declare const devPageMetadataSchema: typebox153.TObject<{
|
|
150
|
+
name: typebox153.TString;
|
|
151
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
152
|
+
path: typebox153.TOptional<typebox153.TString>;
|
|
153
|
+
params: typebox153.TOptional<typebox153.TAny>;
|
|
154
|
+
query: typebox153.TOptional<typebox153.TAny>;
|
|
155
|
+
hasComponent: typebox153.TBoolean;
|
|
156
|
+
hasLazy: typebox153.TBoolean;
|
|
157
|
+
hasResolve: typebox153.TBoolean;
|
|
158
|
+
hasChildren: typebox153.TBoolean;
|
|
159
|
+
hasParent: typebox153.TBoolean;
|
|
160
|
+
hasErrorHandler: typebox153.TBoolean;
|
|
161
|
+
static: typebox153.TOptional<typebox153.TBoolean>;
|
|
162
|
+
cache: typebox153.TOptional<typebox153.TAny>;
|
|
163
|
+
client: typebox153.TOptional<typebox153.TAny>;
|
|
164
|
+
animation: typebox153.TOptional<typebox153.TAny>;
|
|
165
165
|
}>;
|
|
166
166
|
type DevPageMetadata = Static<typeof devPageMetadataSchema>;
|
|
167
167
|
//#endregion
|
|
168
168
|
//#region src/schemas/DevProviderMetadata.d.ts
|
|
169
|
-
declare const devProviderMetadataSchema:
|
|
170
|
-
name:
|
|
171
|
-
module:
|
|
172
|
-
dependencies:
|
|
173
|
-
aliases:
|
|
169
|
+
declare const devProviderMetadataSchema: typebox153.TObject<{
|
|
170
|
+
name: typebox153.TString;
|
|
171
|
+
module: typebox153.TOptional<typebox153.TString>;
|
|
172
|
+
dependencies: typebox153.TArray<typebox153.TString>;
|
|
173
|
+
aliases: typebox153.TOptional<typebox153.TArray<typebox153.TString>>;
|
|
174
174
|
}>;
|
|
175
175
|
type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;
|
|
176
176
|
//#endregion
|
|
177
177
|
//#region src/schemas/DevQueueMetadata.d.ts
|
|
178
|
-
declare const devQueueMetadataSchema:
|
|
179
|
-
name:
|
|
180
|
-
description:
|
|
181
|
-
schema:
|
|
182
|
-
provider:
|
|
178
|
+
declare const devQueueMetadataSchema: typebox153.TObject<{
|
|
179
|
+
name: typebox153.TString;
|
|
180
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
181
|
+
schema: typebox153.TOptional<typebox153.TAny>;
|
|
182
|
+
provider: typebox153.TString;
|
|
183
183
|
}>;
|
|
184
184
|
type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region src/schemas/DevRealmMetadata.d.ts
|
|
187
|
-
declare const devRealmMetadataSchema:
|
|
188
|
-
name:
|
|
189
|
-
description:
|
|
190
|
-
roles:
|
|
191
|
-
type:
|
|
192
|
-
settings:
|
|
193
|
-
accessTokenExpiration:
|
|
194
|
-
refreshTokenExpiration:
|
|
195
|
-
hasOnCreateSession:
|
|
196
|
-
hasOnRefreshSession:
|
|
197
|
-
hasOnDeleteSession:
|
|
187
|
+
declare const devRealmMetadataSchema: typebox153.TObject<{
|
|
188
|
+
name: typebox153.TString;
|
|
189
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
190
|
+
roles: typebox153.TOptional<typebox153.TArray<typebox153.TAny>>;
|
|
191
|
+
type: typebox153.TUnsafe<"internal" | "external">;
|
|
192
|
+
settings: typebox153.TOptional<typebox153.TObject<{
|
|
193
|
+
accessTokenExpiration: typebox153.TOptional<typebox153.TAny>;
|
|
194
|
+
refreshTokenExpiration: typebox153.TOptional<typebox153.TAny>;
|
|
195
|
+
hasOnCreateSession: typebox153.TBoolean;
|
|
196
|
+
hasOnRefreshSession: typebox153.TBoolean;
|
|
197
|
+
hasOnDeleteSession: typebox153.TBoolean;
|
|
198
198
|
}>>;
|
|
199
199
|
}>;
|
|
200
200
|
type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;
|
|
201
201
|
//#endregion
|
|
202
202
|
//#region src/schemas/DevSchedulerMetadata.d.ts
|
|
203
|
-
declare const devSchedulerMetadataSchema:
|
|
204
|
-
name:
|
|
205
|
-
description:
|
|
206
|
-
cron:
|
|
207
|
-
interval:
|
|
208
|
-
lock:
|
|
203
|
+
declare const devSchedulerMetadataSchema: typebox153.TObject<{
|
|
204
|
+
name: typebox153.TString;
|
|
205
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
206
|
+
cron: typebox153.TOptional<typebox153.TString>;
|
|
207
|
+
interval: typebox153.TOptional<typebox153.TAny>;
|
|
208
|
+
lock: typebox153.TOptional<typebox153.TBoolean>;
|
|
209
209
|
}>;
|
|
210
210
|
type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;
|
|
211
211
|
//#endregion
|
|
212
212
|
//#region src/schemas/DevTopicMetadata.d.ts
|
|
213
|
-
declare const devTopicMetadataSchema:
|
|
214
|
-
name:
|
|
215
|
-
description:
|
|
216
|
-
schema:
|
|
217
|
-
provider:
|
|
213
|
+
declare const devTopicMetadataSchema: typebox153.TObject<{
|
|
214
|
+
name: typebox153.TString;
|
|
215
|
+
description: typebox153.TOptional<typebox153.TString>;
|
|
216
|
+
schema: typebox153.TOptional<typebox153.TAny>;
|
|
217
|
+
provider: typebox153.TString;
|
|
218
218
|
}>;
|
|
219
219
|
type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;
|
|
220
220
|
//#endregion
|
package/dist/index.d.ts
CHANGED
|
@@ -1,220 +1,220 @@
|
|
|
1
1
|
import * as _alepha_core0 from "@alepha/core";
|
|
2
2
|
import { Alepha, Static } from "@alepha/core";
|
|
3
3
|
import * as _alepha_logger0 from "@alepha/logger";
|
|
4
|
-
import * as
|
|
4
|
+
import * as typebox0 from "typebox";
|
|
5
5
|
|
|
6
6
|
//#region src/schemas/DevActionMetadata.d.ts
|
|
7
|
-
declare const devActionMetadataSchema:
|
|
8
|
-
name:
|
|
9
|
-
group:
|
|
10
|
-
method:
|
|
11
|
-
path:
|
|
12
|
-
prefix:
|
|
13
|
-
fullPath:
|
|
14
|
-
description:
|
|
15
|
-
summary:
|
|
16
|
-
disabled:
|
|
17
|
-
secure:
|
|
18
|
-
hide:
|
|
19
|
-
body:
|
|
20
|
-
params:
|
|
21
|
-
query:
|
|
22
|
-
response:
|
|
23
|
-
bodyContentType:
|
|
7
|
+
declare const devActionMetadataSchema: typebox0.TObject<{
|
|
8
|
+
name: typebox0.TString;
|
|
9
|
+
group: typebox0.TString;
|
|
10
|
+
method: typebox0.TString;
|
|
11
|
+
path: typebox0.TString;
|
|
12
|
+
prefix: typebox0.TString;
|
|
13
|
+
fullPath: typebox0.TString;
|
|
14
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
15
|
+
summary: typebox0.TOptional<typebox0.TString>;
|
|
16
|
+
disabled: typebox0.TOptional<typebox0.TBoolean>;
|
|
17
|
+
secure: typebox0.TOptional<typebox0.TBoolean>;
|
|
18
|
+
hide: typebox0.TOptional<typebox0.TBoolean>;
|
|
19
|
+
body: typebox0.TOptional<typebox0.TAny>;
|
|
20
|
+
params: typebox0.TOptional<typebox0.TAny>;
|
|
21
|
+
query: typebox0.TOptional<typebox0.TAny>;
|
|
22
|
+
response: typebox0.TOptional<typebox0.TAny>;
|
|
23
|
+
bodyContentType: typebox0.TOptional<typebox0.TString>;
|
|
24
24
|
}>;
|
|
25
25
|
type DevActionMetadata = Static<typeof devActionMetadataSchema>;
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/schemas/DevBucketMetadata.d.ts
|
|
28
|
-
declare const devBucketMetadataSchema:
|
|
29
|
-
name:
|
|
30
|
-
description:
|
|
31
|
-
mimeTypes:
|
|
32
|
-
maxSize:
|
|
33
|
-
provider:
|
|
28
|
+
declare const devBucketMetadataSchema: typebox0.TObject<{
|
|
29
|
+
name: typebox0.TString;
|
|
30
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
31
|
+
mimeTypes: typebox0.TOptional<typebox0.TArray<typebox0.TString>>;
|
|
32
|
+
maxSize: typebox0.TOptional<typebox0.TNumber>;
|
|
33
|
+
provider: typebox0.TString;
|
|
34
34
|
}>;
|
|
35
35
|
type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;
|
|
36
36
|
//#endregion
|
|
37
37
|
//#region src/schemas/DevCacheMetadata.d.ts
|
|
38
|
-
declare const devCacheMetadataSchema:
|
|
39
|
-
name:
|
|
40
|
-
ttl:
|
|
41
|
-
disabled:
|
|
42
|
-
provider:
|
|
38
|
+
declare const devCacheMetadataSchema: typebox0.TObject<{
|
|
39
|
+
name: typebox0.TString;
|
|
40
|
+
ttl: typebox0.TOptional<typebox0.TAny>;
|
|
41
|
+
disabled: typebox0.TOptional<typebox0.TBoolean>;
|
|
42
|
+
provider: typebox0.TString;
|
|
43
43
|
}>;
|
|
44
44
|
type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region src/schemas/DevMetadata.d.ts
|
|
47
|
-
declare const devMetadataSchema:
|
|
48
|
-
actions:
|
|
49
|
-
name:
|
|
50
|
-
group:
|
|
51
|
-
method:
|
|
52
|
-
path:
|
|
53
|
-
prefix:
|
|
54
|
-
fullPath:
|
|
55
|
-
description:
|
|
56
|
-
summary:
|
|
57
|
-
disabled:
|
|
58
|
-
secure:
|
|
59
|
-
hide:
|
|
60
|
-
body:
|
|
61
|
-
params:
|
|
62
|
-
query:
|
|
63
|
-
response:
|
|
64
|
-
bodyContentType:
|
|
47
|
+
declare const devMetadataSchema: typebox0.TObject<{
|
|
48
|
+
actions: typebox0.TArray<typebox0.TObject<{
|
|
49
|
+
name: typebox0.TString;
|
|
50
|
+
group: typebox0.TString;
|
|
51
|
+
method: typebox0.TString;
|
|
52
|
+
path: typebox0.TString;
|
|
53
|
+
prefix: typebox0.TString;
|
|
54
|
+
fullPath: typebox0.TString;
|
|
55
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
56
|
+
summary: typebox0.TOptional<typebox0.TString>;
|
|
57
|
+
disabled: typebox0.TOptional<typebox0.TBoolean>;
|
|
58
|
+
secure: typebox0.TOptional<typebox0.TBoolean>;
|
|
59
|
+
hide: typebox0.TOptional<typebox0.TBoolean>;
|
|
60
|
+
body: typebox0.TOptional<typebox0.TAny>;
|
|
61
|
+
params: typebox0.TOptional<typebox0.TAny>;
|
|
62
|
+
query: typebox0.TOptional<typebox0.TAny>;
|
|
63
|
+
response: typebox0.TOptional<typebox0.TAny>;
|
|
64
|
+
bodyContentType: typebox0.TOptional<typebox0.TString>;
|
|
65
65
|
}>>;
|
|
66
|
-
queues:
|
|
67
|
-
name:
|
|
68
|
-
description:
|
|
69
|
-
schema:
|
|
70
|
-
provider:
|
|
66
|
+
queues: typebox0.TArray<typebox0.TObject<{
|
|
67
|
+
name: typebox0.TString;
|
|
68
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
69
|
+
schema: typebox0.TOptional<typebox0.TAny>;
|
|
70
|
+
provider: typebox0.TString;
|
|
71
71
|
}>>;
|
|
72
|
-
schedulers:
|
|
73
|
-
name:
|
|
74
|
-
description:
|
|
75
|
-
cron:
|
|
76
|
-
interval:
|
|
77
|
-
lock:
|
|
72
|
+
schedulers: typebox0.TArray<typebox0.TObject<{
|
|
73
|
+
name: typebox0.TString;
|
|
74
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
75
|
+
cron: typebox0.TOptional<typebox0.TString>;
|
|
76
|
+
interval: typebox0.TOptional<typebox0.TAny>;
|
|
77
|
+
lock: typebox0.TOptional<typebox0.TBoolean>;
|
|
78
78
|
}>>;
|
|
79
|
-
topics:
|
|
80
|
-
name:
|
|
81
|
-
description:
|
|
82
|
-
schema:
|
|
83
|
-
provider:
|
|
79
|
+
topics: typebox0.TArray<typebox0.TObject<{
|
|
80
|
+
name: typebox0.TString;
|
|
81
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
82
|
+
schema: typebox0.TOptional<typebox0.TAny>;
|
|
83
|
+
provider: typebox0.TString;
|
|
84
84
|
}>>;
|
|
85
|
-
buckets:
|
|
86
|
-
name:
|
|
87
|
-
description:
|
|
88
|
-
mimeTypes:
|
|
89
|
-
maxSize:
|
|
90
|
-
provider:
|
|
85
|
+
buckets: typebox0.TArray<typebox0.TObject<{
|
|
86
|
+
name: typebox0.TString;
|
|
87
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
88
|
+
mimeTypes: typebox0.TOptional<typebox0.TArray<typebox0.TString>>;
|
|
89
|
+
maxSize: typebox0.TOptional<typebox0.TNumber>;
|
|
90
|
+
provider: typebox0.TString;
|
|
91
91
|
}>>;
|
|
92
|
-
realms:
|
|
93
|
-
name:
|
|
94
|
-
description:
|
|
95
|
-
roles:
|
|
96
|
-
type:
|
|
97
|
-
settings:
|
|
98
|
-
accessTokenExpiration:
|
|
99
|
-
refreshTokenExpiration:
|
|
100
|
-
hasOnCreateSession:
|
|
101
|
-
hasOnRefreshSession:
|
|
102
|
-
hasOnDeleteSession:
|
|
92
|
+
realms: typebox0.TArray<typebox0.TObject<{
|
|
93
|
+
name: typebox0.TString;
|
|
94
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
95
|
+
roles: typebox0.TOptional<typebox0.TArray<typebox0.TAny>>;
|
|
96
|
+
type: typebox0.TUnsafe<"internal" | "external">;
|
|
97
|
+
settings: typebox0.TOptional<typebox0.TObject<{
|
|
98
|
+
accessTokenExpiration: typebox0.TOptional<typebox0.TAny>;
|
|
99
|
+
refreshTokenExpiration: typebox0.TOptional<typebox0.TAny>;
|
|
100
|
+
hasOnCreateSession: typebox0.TBoolean;
|
|
101
|
+
hasOnRefreshSession: typebox0.TBoolean;
|
|
102
|
+
hasOnDeleteSession: typebox0.TBoolean;
|
|
103
103
|
}>>;
|
|
104
104
|
}>>;
|
|
105
|
-
caches:
|
|
106
|
-
name:
|
|
107
|
-
ttl:
|
|
108
|
-
disabled:
|
|
109
|
-
provider:
|
|
105
|
+
caches: typebox0.TArray<typebox0.TObject<{
|
|
106
|
+
name: typebox0.TString;
|
|
107
|
+
ttl: typebox0.TOptional<typebox0.TAny>;
|
|
108
|
+
disabled: typebox0.TOptional<typebox0.TBoolean>;
|
|
109
|
+
provider: typebox0.TString;
|
|
110
110
|
}>>;
|
|
111
|
-
pages:
|
|
112
|
-
name:
|
|
113
|
-
description:
|
|
114
|
-
path:
|
|
115
|
-
params:
|
|
116
|
-
query:
|
|
117
|
-
hasComponent:
|
|
118
|
-
hasLazy:
|
|
119
|
-
hasResolve:
|
|
120
|
-
hasChildren:
|
|
121
|
-
hasParent:
|
|
122
|
-
hasErrorHandler:
|
|
123
|
-
static:
|
|
124
|
-
cache:
|
|
125
|
-
client:
|
|
126
|
-
animation:
|
|
111
|
+
pages: typebox0.TArray<typebox0.TObject<{
|
|
112
|
+
name: typebox0.TString;
|
|
113
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
114
|
+
path: typebox0.TOptional<typebox0.TString>;
|
|
115
|
+
params: typebox0.TOptional<typebox0.TAny>;
|
|
116
|
+
query: typebox0.TOptional<typebox0.TAny>;
|
|
117
|
+
hasComponent: typebox0.TBoolean;
|
|
118
|
+
hasLazy: typebox0.TBoolean;
|
|
119
|
+
hasResolve: typebox0.TBoolean;
|
|
120
|
+
hasChildren: typebox0.TBoolean;
|
|
121
|
+
hasParent: typebox0.TBoolean;
|
|
122
|
+
hasErrorHandler: typebox0.TBoolean;
|
|
123
|
+
static: typebox0.TOptional<typebox0.TBoolean>;
|
|
124
|
+
cache: typebox0.TOptional<typebox0.TAny>;
|
|
125
|
+
client: typebox0.TOptional<typebox0.TAny>;
|
|
126
|
+
animation: typebox0.TOptional<typebox0.TAny>;
|
|
127
127
|
}>>;
|
|
128
|
-
providers:
|
|
129
|
-
name:
|
|
130
|
-
module:
|
|
131
|
-
dependencies:
|
|
132
|
-
aliases:
|
|
128
|
+
providers: typebox0.TArray<typebox0.TObject<{
|
|
129
|
+
name: typebox0.TString;
|
|
130
|
+
module: typebox0.TOptional<typebox0.TString>;
|
|
131
|
+
dependencies: typebox0.TArray<typebox0.TString>;
|
|
132
|
+
aliases: typebox0.TOptional<typebox0.TArray<typebox0.TString>>;
|
|
133
133
|
}>>;
|
|
134
|
-
modules:
|
|
135
|
-
name:
|
|
136
|
-
providers:
|
|
134
|
+
modules: typebox0.TArray<typebox0.TObject<{
|
|
135
|
+
name: typebox0.TString;
|
|
136
|
+
providers: typebox0.TArray<typebox0.TString>;
|
|
137
137
|
}>>;
|
|
138
138
|
}>;
|
|
139
139
|
type DevMetadata = Static<typeof devMetadataSchema>;
|
|
140
140
|
//#endregion
|
|
141
141
|
//#region src/schemas/DevModuleMetadata.d.ts
|
|
142
|
-
declare const devModuleMetadataSchema:
|
|
143
|
-
name:
|
|
144
|
-
providers:
|
|
142
|
+
declare const devModuleMetadataSchema: typebox0.TObject<{
|
|
143
|
+
name: typebox0.TString;
|
|
144
|
+
providers: typebox0.TArray<typebox0.TString>;
|
|
145
145
|
}>;
|
|
146
146
|
type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;
|
|
147
147
|
//#endregion
|
|
148
148
|
//#region src/schemas/DevPageMetadata.d.ts
|
|
149
|
-
declare const devPageMetadataSchema:
|
|
150
|
-
name:
|
|
151
|
-
description:
|
|
152
|
-
path:
|
|
153
|
-
params:
|
|
154
|
-
query:
|
|
155
|
-
hasComponent:
|
|
156
|
-
hasLazy:
|
|
157
|
-
hasResolve:
|
|
158
|
-
hasChildren:
|
|
159
|
-
hasParent:
|
|
160
|
-
hasErrorHandler:
|
|
161
|
-
static:
|
|
162
|
-
cache:
|
|
163
|
-
client:
|
|
164
|
-
animation:
|
|
149
|
+
declare const devPageMetadataSchema: typebox0.TObject<{
|
|
150
|
+
name: typebox0.TString;
|
|
151
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
152
|
+
path: typebox0.TOptional<typebox0.TString>;
|
|
153
|
+
params: typebox0.TOptional<typebox0.TAny>;
|
|
154
|
+
query: typebox0.TOptional<typebox0.TAny>;
|
|
155
|
+
hasComponent: typebox0.TBoolean;
|
|
156
|
+
hasLazy: typebox0.TBoolean;
|
|
157
|
+
hasResolve: typebox0.TBoolean;
|
|
158
|
+
hasChildren: typebox0.TBoolean;
|
|
159
|
+
hasParent: typebox0.TBoolean;
|
|
160
|
+
hasErrorHandler: typebox0.TBoolean;
|
|
161
|
+
static: typebox0.TOptional<typebox0.TBoolean>;
|
|
162
|
+
cache: typebox0.TOptional<typebox0.TAny>;
|
|
163
|
+
client: typebox0.TOptional<typebox0.TAny>;
|
|
164
|
+
animation: typebox0.TOptional<typebox0.TAny>;
|
|
165
165
|
}>;
|
|
166
166
|
type DevPageMetadata = Static<typeof devPageMetadataSchema>;
|
|
167
167
|
//#endregion
|
|
168
168
|
//#region src/schemas/DevProviderMetadata.d.ts
|
|
169
|
-
declare const devProviderMetadataSchema:
|
|
170
|
-
name:
|
|
171
|
-
module:
|
|
172
|
-
dependencies:
|
|
173
|
-
aliases:
|
|
169
|
+
declare const devProviderMetadataSchema: typebox0.TObject<{
|
|
170
|
+
name: typebox0.TString;
|
|
171
|
+
module: typebox0.TOptional<typebox0.TString>;
|
|
172
|
+
dependencies: typebox0.TArray<typebox0.TString>;
|
|
173
|
+
aliases: typebox0.TOptional<typebox0.TArray<typebox0.TString>>;
|
|
174
174
|
}>;
|
|
175
175
|
type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;
|
|
176
176
|
//#endregion
|
|
177
177
|
//#region src/schemas/DevQueueMetadata.d.ts
|
|
178
|
-
declare const devQueueMetadataSchema:
|
|
179
|
-
name:
|
|
180
|
-
description:
|
|
181
|
-
schema:
|
|
182
|
-
provider:
|
|
178
|
+
declare const devQueueMetadataSchema: typebox0.TObject<{
|
|
179
|
+
name: typebox0.TString;
|
|
180
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
181
|
+
schema: typebox0.TOptional<typebox0.TAny>;
|
|
182
|
+
provider: typebox0.TString;
|
|
183
183
|
}>;
|
|
184
184
|
type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region src/schemas/DevRealmMetadata.d.ts
|
|
187
|
-
declare const devRealmMetadataSchema:
|
|
188
|
-
name:
|
|
189
|
-
description:
|
|
190
|
-
roles:
|
|
191
|
-
type:
|
|
192
|
-
settings:
|
|
193
|
-
accessTokenExpiration:
|
|
194
|
-
refreshTokenExpiration:
|
|
195
|
-
hasOnCreateSession:
|
|
196
|
-
hasOnRefreshSession:
|
|
197
|
-
hasOnDeleteSession:
|
|
187
|
+
declare const devRealmMetadataSchema: typebox0.TObject<{
|
|
188
|
+
name: typebox0.TString;
|
|
189
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
190
|
+
roles: typebox0.TOptional<typebox0.TArray<typebox0.TAny>>;
|
|
191
|
+
type: typebox0.TUnsafe<"internal" | "external">;
|
|
192
|
+
settings: typebox0.TOptional<typebox0.TObject<{
|
|
193
|
+
accessTokenExpiration: typebox0.TOptional<typebox0.TAny>;
|
|
194
|
+
refreshTokenExpiration: typebox0.TOptional<typebox0.TAny>;
|
|
195
|
+
hasOnCreateSession: typebox0.TBoolean;
|
|
196
|
+
hasOnRefreshSession: typebox0.TBoolean;
|
|
197
|
+
hasOnDeleteSession: typebox0.TBoolean;
|
|
198
198
|
}>>;
|
|
199
199
|
}>;
|
|
200
200
|
type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;
|
|
201
201
|
//#endregion
|
|
202
202
|
//#region src/schemas/DevSchedulerMetadata.d.ts
|
|
203
|
-
declare const devSchedulerMetadataSchema:
|
|
204
|
-
name:
|
|
205
|
-
description:
|
|
206
|
-
cron:
|
|
207
|
-
interval:
|
|
208
|
-
lock:
|
|
203
|
+
declare const devSchedulerMetadataSchema: typebox0.TObject<{
|
|
204
|
+
name: typebox0.TString;
|
|
205
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
206
|
+
cron: typebox0.TOptional<typebox0.TString>;
|
|
207
|
+
interval: typebox0.TOptional<typebox0.TAny>;
|
|
208
|
+
lock: typebox0.TOptional<typebox0.TBoolean>;
|
|
209
209
|
}>;
|
|
210
210
|
type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;
|
|
211
211
|
//#endregion
|
|
212
212
|
//#region src/schemas/DevTopicMetadata.d.ts
|
|
213
|
-
declare const devTopicMetadataSchema:
|
|
214
|
-
name:
|
|
215
|
-
description:
|
|
216
|
-
schema:
|
|
217
|
-
provider:
|
|
213
|
+
declare const devTopicMetadataSchema: typebox0.TObject<{
|
|
214
|
+
name: typebox0.TString;
|
|
215
|
+
description: typebox0.TOptional<typebox0.TString>;
|
|
216
|
+
schema: typebox0.TOptional<typebox0.TAny>;
|
|
217
|
+
provider: typebox0.TString;
|
|
218
218
|
}>;
|
|
219
219
|
type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;
|
|
220
220
|
//#endregion
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { join } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { $batch } from "@alepha/batch";
|
|
5
5
|
import { $logger, JsonFormatterProvider, logEntrySchema } from "@alepha/logger";
|
|
6
|
-
import { $entity, NodeSqliteProvider, Repository, parseQueryString, pg } from "@alepha/
|
|
6
|
+
import { $entity, NodeSqliteProvider, Repository, parseQueryString, pg } from "@alepha/orm";
|
|
7
7
|
import { $action, $route, ServerProvider } from "@alepha/server";
|
|
8
8
|
import { $serve } from "@alepha/server-static";
|
|
9
9
|
import { $bucket } from "@alepha/bucket";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/entities/logs.ts","../src/providers/DevToolsMetadataProvider.ts","../src/providers/DevToolsDatabaseProvider.ts","../src/repositories/LogRepository.ts","../src/schemas/DevActionMetadata.ts","../src/schemas/DevBucketMetadata.ts","../src/schemas/DevCacheMetadata.ts","../src/schemas/DevModuleMetadata.ts","../src/schemas/DevPageMetadata.ts","../src/schemas/DevProviderMetadata.ts","../src/schemas/DevQueueMetadata.ts","../src/schemas/DevRealmMetadata.ts","../src/schemas/DevSchedulerMetadata.ts","../src/schemas/DevTopicMetadata.ts","../src/schemas/DevMetadata.ts","../src/DevToolsProvider.ts","../src/index.ts"],"sourcesContent":["import { type Static, t } from \"@alepha/core\";\nimport { $entity, pg } from \"@alepha/postgres\";\n\nexport const logs = $entity({\n name: \"logs\",\n schema: t.object({\n id: pg.primaryKey(),\n level: t.enum([\"TRACE\", \"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: t.text({\n size: \"rich\",\n }),\n service: t.text(),\n module: t.text(),\n context: t.optional(t.text()),\n app: t.optional(t.text()),\n data: t.optional(t.json()),\n timestamp: t.datetime(),\n }),\n});\n\nexport type DevLogEntry = Static<typeof logs.schema>;\n","import { $bucket } from \"@alepha/bucket\";\nimport { $cache } from \"@alepha/cache\";\nimport { $inject, Alepha } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { $queue } from \"@alepha/queue\";\nimport { $scheduler } from \"@alepha/scheduler\";\nimport { $realm } from \"@alepha/security\";\nimport { $action } from \"@alepha/server\";\nimport { $topic } from \"@alepha/topic\";\nimport type { DevActionMetadata } from \"../schemas/DevActionMetadata.ts\";\nimport type { DevBucketMetadata } from \"../schemas/DevBucketMetadata.ts\";\nimport type { DevCacheMetadata } from \"../schemas/DevCacheMetadata.ts\";\nimport type { DevMetadata } from \"../schemas/DevMetadata.ts\";\nimport type { DevModuleMetadata } from \"../schemas/DevModuleMetadata.ts\";\nimport type { DevPageMetadata } from \"../schemas/DevPageMetadata.ts\";\nimport type { DevProviderMetadata } from \"../schemas/DevProviderMetadata.ts\";\nimport type { DevQueueMetadata } from \"../schemas/DevQueueMetadata.ts\";\nimport type { DevRealmMetadata } from \"../schemas/DevRealmMetadata.ts\";\nimport type { DevSchedulerMetadata } from \"../schemas/DevSchedulerMetadata.ts\";\nimport type { DevTopicMetadata } from \"../schemas/DevTopicMetadata.ts\";\n\nexport class DevToolsMetadataProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n\n public getActions(): DevActionMetadata[] {\n const actionDescriptors = this.alepha.descriptors($action);\n\n return actionDescriptors.map((action) => {\n const schema = action.schema;\n const options = action.options as any; // Allow accessing augmented properties\n\n return {\n name: action.name,\n group: action.group,\n method: action.method,\n path: action.path,\n prefix: action.prefix,\n fullPath: action.route.path,\n description: action.options.description,\n summary: options.summary,\n disabled: action.options.disabled,\n secure: options.secure,\n hide: options.hide,\n body: schema?.body,\n params: schema?.params,\n query: schema?.query,\n response: schema?.response,\n bodyContentType: action.getBodyContentType(),\n };\n });\n }\n\n public getQueues(): DevQueueMetadata[] {\n const queueDescriptors = this.alepha.descriptors($queue);\n\n return queueDescriptors.map((queue) => ({\n name: queue.name,\n description: queue.options.description,\n schema: queue.options.schema,\n provider: this.getProviderName(queue.options.provider),\n }));\n }\n\n public getSchedulers(): DevSchedulerMetadata[] {\n const schedulerDescriptors = this.alepha.descriptors($scheduler);\n\n return schedulerDescriptors.map((scheduler) => ({\n name: scheduler.name,\n description: scheduler.options.description,\n cron: scheduler.options.cron,\n interval: scheduler.options.interval,\n lock: scheduler.options.lock,\n }));\n }\n\n public getTopics(): DevTopicMetadata[] {\n const topicDescriptors = this.alepha.descriptors($topic);\n\n return topicDescriptors.map((topic) => ({\n name: topic.name,\n description: topic.options.description,\n schema: topic.options.schema,\n provider: this.getProviderName(topic.options.provider),\n }));\n }\n\n public getBuckets(): DevBucketMetadata[] {\n const bucketDescriptors = this.alepha.descriptors($bucket);\n\n return bucketDescriptors.map((bucket) => ({\n name: bucket.name,\n description: bucket.options.description,\n mimeTypes: bucket.options.mimeTypes,\n maxSize: bucket.options.maxSize,\n provider: this.getProviderName(bucket.options.provider),\n }));\n }\n\n public getRealms(): DevRealmMetadata[] {\n const realmDescriptors = this.alepha.descriptors($realm);\n\n return realmDescriptors.map((realm) => ({\n name: realm.name,\n description: realm.options.description,\n roles: realm.options.roles,\n type: \"secret\" in realm.options ? \"internal\" : \"external\",\n settings: {\n accessTokenExpiration: realm.options.settings?.accessToken?.expiration,\n refreshTokenExpiration:\n realm.options.settings?.refreshToken?.expiration,\n hasOnCreateSession: !!realm.options.settings?.onCreateSession,\n hasOnRefreshSession: !!realm.options.settings?.onRefreshSession,\n hasOnDeleteSession: !!realm.options.settings?.onDeleteSession,\n },\n }));\n }\n\n public getCaches(): DevCacheMetadata[] {\n const cacheDescriptors = this.alepha.descriptors($cache);\n\n return cacheDescriptors.map((cache) => ({\n name: cache.container,\n ttl: cache.options.ttl,\n disabled: cache.options.disabled,\n provider: this.getProviderName(cache.options.provider),\n }));\n }\n\n public getPages(): DevPageMetadata[] {\n // const pageDescriptors = this.alepha.descriptors($page);\n //\n // return pageDescriptors.map((page) => ({\n // name: page.name,\n // description: page.options.description,\n // path: page.options.path,\n // params: page.options.schema?.params,\n // query: page.options.schema?.query,\n // hasComponent: !!page.options.component,\n // hasLazy: !!page.options.lazy,\n // hasResolve: !!page.options.resolve,\n // hasChildren: !!page.options.children,\n // hasParent: !!page.options.parent,\n // hasErrorHandler: !!page.options.errorHandler,\n // static:\n // typeof page.options.static === \"boolean\"\n // ? page.options.static\n // : !!page.options.static,\n // cache: page.options.cache,\n // client: page.options.client,\n // animation: page.options.animation,\n // }));\n\n return [];\n }\n\n public getProviders(): DevProviderMetadata[] {\n const graph = this.alepha.graph();\n\n return Object.entries(graph).map(([name, info]) => ({\n name,\n module: info.module,\n dependencies: info.from,\n aliases: info.as,\n }));\n }\n\n public getModules(): DevModuleMetadata[] {\n const graph = this.alepha.graph();\n const moduleMap = new Map<string, Set<string>>();\n\n // Group providers by module\n for (const [providerName, info] of Object.entries(graph)) {\n if (info.module) {\n if (!moduleMap.has(info.module)) {\n moduleMap.set(info.module, new Set());\n }\n moduleMap.get(info.module)!.add(providerName);\n }\n }\n\n return Array.from(moduleMap.entries()).map(([name, providers]) => ({\n name,\n providers: Array.from(providers),\n }));\n }\n\n public getMetadata(): DevMetadata {\n return {\n actions: this.getActions(),\n queues: this.getQueues(),\n schedulers: this.getSchedulers(),\n topics: this.getTopics(),\n buckets: this.getBuckets(),\n realms: this.getRealms(),\n caches: this.getCaches(),\n pages: this.getPages(),\n providers: this.getProviders(),\n modules: this.getModules(),\n };\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected getProviderName(provider?: \"memory\" | any): string {\n if (!provider) {\n return \"default\";\n }\n if (provider === \"memory\") {\n return \"memory\";\n }\n return provider.name || \"custom\";\n }\n}\n","import { NodeSqliteProvider } from \"@alepha/postgres\";\n\nexport class DevToolsDatabaseProvider extends NodeSqliteProvider {\n public get name() {\n return \"devtools\";\n }\n\n protected readonly options = {\n path: \":memory:\",\n };\n}\n","import { Repository } from \"@alepha/postgres\";\nimport { logs } from \"../entities/logs.ts\";\nimport { DevToolsDatabaseProvider } from \"../providers/DevToolsDatabaseProvider.ts\";\n\nexport class LogRepository extends Repository<typeof logs.schema> {\n constructor() {\n super(logs, DevToolsDatabaseProvider);\n }\n}\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devActionMetadataSchema = t.object({\n name: t.text(),\n group: t.text(),\n method: t.text(),\n path: t.text(),\n prefix: t.text(),\n fullPath: t.text(),\n description: t.optional(t.text()),\n summary: t.optional(t.text()),\n disabled: t.optional(t.boolean()),\n secure: t.optional(t.boolean()),\n hide: t.optional(t.boolean()),\n body: t.optional(t.any()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n response: t.optional(t.any()),\n bodyContentType: t.optional(t.text()),\n});\n\nexport type DevActionMetadata = Static<typeof devActionMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devBucketMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n mimeTypes: t.optional(t.array(t.text())),\n maxSize: t.optional(t.number()),\n provider: t.text(),\n});\n\nexport type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devCacheMetadataSchema = t.object({\n name: t.text(),\n ttl: t.optional(t.any()),\n disabled: t.optional(t.boolean()),\n provider: t.text(),\n});\n\nexport type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devModuleMetadataSchema = t.object({\n name: t.text(),\n providers: t.array(t.text()),\n});\n\nexport type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devPageMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n path: t.optional(t.text()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n hasComponent: t.boolean(),\n hasLazy: t.boolean(),\n hasResolve: t.boolean(),\n hasChildren: t.boolean(),\n hasParent: t.boolean(),\n hasErrorHandler: t.boolean(),\n static: t.optional(t.boolean()),\n cache: t.optional(t.any()),\n client: t.optional(t.any()),\n animation: t.optional(t.any()),\n});\n\nexport type DevPageMetadata = Static<typeof devPageMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devProviderMetadataSchema = t.object({\n name: t.text(),\n module: t.optional(t.text()),\n dependencies: t.array(t.text()),\n aliases: t.optional(t.array(t.text())),\n});\n\nexport type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devQueueMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devRealmMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n roles: t.optional(t.array(t.any())),\n type: t.enum([\"internal\", \"external\"]),\n settings: t.optional(\n t.object({\n accessTokenExpiration: t.optional(t.any()),\n refreshTokenExpiration: t.optional(t.any()),\n hasOnCreateSession: t.boolean(),\n hasOnRefreshSession: t.boolean(),\n hasOnDeleteSession: t.boolean(),\n }),\n ),\n});\n\nexport type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devSchedulerMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n cron: t.optional(t.text()),\n interval: t.optional(t.any()),\n lock: t.optional(t.boolean()),\n});\n\nexport type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devTopicMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\nimport { devActionMetadataSchema } from \"./DevActionMetadata.ts\";\nimport { devBucketMetadataSchema } from \"./DevBucketMetadata.ts\";\nimport { devCacheMetadataSchema } from \"./DevCacheMetadata.ts\";\nimport { devModuleMetadataSchema } from \"./DevModuleMetadata.ts\";\nimport { devPageMetadataSchema } from \"./DevPageMetadata.ts\";\nimport { devProviderMetadataSchema } from \"./DevProviderMetadata.ts\";\nimport { devQueueMetadataSchema } from \"./DevQueueMetadata.ts\";\nimport { devRealmMetadataSchema } from \"./DevRealmMetadata.ts\";\nimport { devSchedulerMetadataSchema } from \"./DevSchedulerMetadata.ts\";\nimport { devTopicMetadataSchema } from \"./DevTopicMetadata.ts\";\n\nexport const devMetadataSchema = t.object({\n actions: t.array(devActionMetadataSchema),\n queues: t.array(devQueueMetadataSchema),\n schedulers: t.array(devSchedulerMetadataSchema),\n topics: t.array(devTopicMetadataSchema),\n buckets: t.array(devBucketMetadataSchema),\n realms: t.array(devRealmMetadataSchema),\n caches: t.array(devCacheMetadataSchema),\n pages: t.array(devPageMetadataSchema),\n providers: t.array(devProviderMetadataSchema),\n modules: t.array(devModuleMetadataSchema),\n // More metadata will be added here later\n});\n\nexport type DevMetadata = Static<typeof devMetadataSchema>;\n","import { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { $batch } from \"@alepha/batch\";\nimport { $hook, $inject, Alepha, pageQuerySchema, t } from \"@alepha/core\";\nimport {\n $logger,\n JsonFormatterProvider,\n type LogEntry,\n logEntrySchema,\n} from \"@alepha/logger\";\nimport { parseQueryString } from \"@alepha/postgres\";\nimport { $route, ServerProvider } from \"@alepha/server\";\nimport { $serve } from \"@alepha/server-static\";\nimport { type DevLogEntry, logs } from \"./entities/logs.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\nimport { devMetadataSchema } from \"./schemas/DevMetadata.ts\";\n\nexport class DevToolsProvider {\n protected readonly log = $logger();\n protected readonly alepha = $inject(Alepha);\n protected readonly serverProvider = $inject(ServerProvider);\n protected readonly jsonFormatter = $inject(JsonFormatterProvider);\n protected readonly logs = $inject(LogRepository);\n protected readonly devCollectorProvider = $inject(DevToolsMetadataProvider);\n\n protected readonly onStart = $hook({\n on: \"start\",\n handler: () => {\n this.log.info(\n `Devtools available at ${this.serverProvider.hostname}/devtools/`,\n );\n },\n });\n\n protected batchLogs = $batch({\n maxSize: 50,\n maxDuration: [10, \"seconds\"],\n schema: logs.insertSchema,\n handler: async (entries) => {\n await this.logs.createMany(entries);\n },\n });\n\n protected readonly onLog = $hook({\n on: \"log\",\n handler: async (ev: { message?: string; entry: LogEntry }) => {\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n // CAUTION: It's very easy to create an infinite loop here.\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n try {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n if (ev.entry.module === \"alepha.devtools\") {\n // skip devtools logs to avoid infinite loop\n return;\n }\n\n if (ev.entry.level === \"TRACE\" && ev.entry.module === \"alepha.batch\") {\n // skip batch trace logs to avoid infinite loop\n return;\n }\n\n if (this.alepha.isProduction() && ev.entry.level === \"TRACE\") {\n // skip trace logs in production\n return;\n }\n\n const entry = {\n ...ev.entry,\n data:\n ev.entry.data instanceof Error\n ? this.jsonFormatter.formatJsonError(ev.entry.data)\n : typeof ev.entry.data === \"object\" &&\n !Array.isArray(ev.entry.data)\n ? ev.entry.data\n : { data: ev.entry.data },\n };\n\n await this.batchLogs.push(entry as DevLogEntry);\n } catch (error) {\n // DO TO NOT WITH THE LOGGER HERE TO AVOID INFINITE LOOP\n console.error(error, ev);\n }\n },\n });\n\n protected readonly uiRoute = $serve({\n path: \"/devtools\",\n root: join(fileURLToPath(import.meta.url), \"../../assets/devtools\"),\n historyApiFallback: true,\n });\n\n protected readonly metadataRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/metadata\",\n silent: true,\n schema: {\n response: devMetadataSchema,\n },\n handler: () => {\n return this.devCollectorProvider.getMetadata();\n },\n });\n\n protected readonly logsRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/logs\",\n silent: true,\n schema: {\n query: t.extend(pageQuerySchema, {\n search: t.optional(t.string()),\n }),\n response: t.page(logEntrySchema),\n },\n handler: ({ query }) => {\n query.sort ??= \"-timestamp\";\n return this.logs.paginate(\n query,\n query.search\n ? {\n where: parseQueryString(query.search),\n }\n : {},\n {\n count: true,\n },\n );\n },\n });\n}\n","import { $module } from \"@alepha/core\";\nimport { DevToolsProvider } from \"./DevToolsProvider.ts\";\nimport { DevToolsDatabaseProvider } from \"./providers/DevToolsDatabaseProvider.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/DevToolsMetadataProvider.ts\";\nexport * from \"./schemas/DevActionMetadata.ts\";\nexport * from \"./schemas/DevBucketMetadata.ts\";\nexport * from \"./schemas/DevCacheMetadata.ts\";\nexport * from \"./schemas/DevMetadata.ts\";\nexport * from \"./schemas/DevModuleMetadata.ts\";\nexport * from \"./schemas/DevPageMetadata.ts\";\nexport * from \"./schemas/DevProviderMetadata.ts\";\nexport * from \"./schemas/DevQueueMetadata.ts\";\nexport * from \"./schemas/DevRealmMetadata.ts\";\nexport * from \"./schemas/DevSchedulerMetadata.ts\";\nexport * from \"./schemas/DevTopicMetadata.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Developer tools module for monitoring and debugging Alepha applications.\n *\n * This module provides comprehensive data collection capabilities for tracking application behavior,\n * performance metrics, and debugging information in real-time.\n *\n * @see {@link DevToolsMetadataProvider}\n * @module alepha.devtools\n */\nexport const AlephaDevtools = $module({\n name: \"alepha.devtools\",\n descriptors: [],\n services: [\n DevToolsMetadataProvider,\n DevToolsProvider,\n DevToolsDatabaseProvider,\n LogRepository,\n ],\n register: (alepha) => {\n alepha.with(DevToolsProvider);\n alepha.with(DevToolsDatabaseProvider);\n alepha.with(DevToolsMetadataProvider);\n alepha.state.push(\"alepha.build.assets\", \"@alepha/devtools\");\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/entities/logs.ts","../src/providers/DevToolsMetadataProvider.ts","../src/providers/DevToolsDatabaseProvider.ts","../src/repositories/LogRepository.ts","../src/schemas/DevActionMetadata.ts","../src/schemas/DevBucketMetadata.ts","../src/schemas/DevCacheMetadata.ts","../src/schemas/DevModuleMetadata.ts","../src/schemas/DevPageMetadata.ts","../src/schemas/DevProviderMetadata.ts","../src/schemas/DevQueueMetadata.ts","../src/schemas/DevRealmMetadata.ts","../src/schemas/DevSchedulerMetadata.ts","../src/schemas/DevTopicMetadata.ts","../src/schemas/DevMetadata.ts","../src/DevToolsProvider.ts","../src/index.ts"],"sourcesContent":["import { type Static, t } from \"@alepha/core\";\nimport { $entity, pg } from \"@alepha/orm\";\n\nexport const logs = $entity({\n name: \"logs\",\n schema: t.object({\n id: pg.primaryKey(),\n level: t.enum([\"TRACE\", \"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: t.text({\n size: \"rich\",\n }),\n service: t.text(),\n module: t.text(),\n context: t.optional(t.text()),\n app: t.optional(t.text()),\n data: t.optional(t.json()),\n timestamp: t.datetime(),\n }),\n});\n\nexport type DevLogEntry = Static<typeof logs.schema>;\n","import { $bucket } from \"@alepha/bucket\";\nimport { $cache } from \"@alepha/cache\";\nimport { $inject, Alepha } from \"@alepha/core\";\nimport { $logger } from \"@alepha/logger\";\nimport { $queue } from \"@alepha/queue\";\nimport { $scheduler } from \"@alepha/scheduler\";\nimport { $realm } from \"@alepha/security\";\nimport { $action } from \"@alepha/server\";\nimport { $topic } from \"@alepha/topic\";\nimport type { DevActionMetadata } from \"../schemas/DevActionMetadata.ts\";\nimport type { DevBucketMetadata } from \"../schemas/DevBucketMetadata.ts\";\nimport type { DevCacheMetadata } from \"../schemas/DevCacheMetadata.ts\";\nimport type { DevMetadata } from \"../schemas/DevMetadata.ts\";\nimport type { DevModuleMetadata } from \"../schemas/DevModuleMetadata.ts\";\nimport type { DevPageMetadata } from \"../schemas/DevPageMetadata.ts\";\nimport type { DevProviderMetadata } from \"../schemas/DevProviderMetadata.ts\";\nimport type { DevQueueMetadata } from \"../schemas/DevQueueMetadata.ts\";\nimport type { DevRealmMetadata } from \"../schemas/DevRealmMetadata.ts\";\nimport type { DevSchedulerMetadata } from \"../schemas/DevSchedulerMetadata.ts\";\nimport type { DevTopicMetadata } from \"../schemas/DevTopicMetadata.ts\";\n\nexport class DevToolsMetadataProvider {\n protected readonly alepha = $inject(Alepha);\n protected readonly log = $logger();\n\n public getActions(): DevActionMetadata[] {\n const actionDescriptors = this.alepha.descriptors($action);\n\n return actionDescriptors.map((action) => {\n const schema = action.schema;\n const options = action.options as any; // Allow accessing augmented properties\n\n return {\n name: action.name,\n group: action.group,\n method: action.method,\n path: action.path,\n prefix: action.prefix,\n fullPath: action.route.path,\n description: action.options.description,\n summary: options.summary,\n disabled: action.options.disabled,\n secure: options.secure,\n hide: options.hide,\n body: schema?.body,\n params: schema?.params,\n query: schema?.query,\n response: schema?.response,\n bodyContentType: action.getBodyContentType(),\n };\n });\n }\n\n public getQueues(): DevQueueMetadata[] {\n const queueDescriptors = this.alepha.descriptors($queue);\n\n return queueDescriptors.map((queue) => ({\n name: queue.name,\n description: queue.options.description,\n schema: queue.options.schema,\n provider: this.getProviderName(queue.options.provider),\n }));\n }\n\n public getSchedulers(): DevSchedulerMetadata[] {\n const schedulerDescriptors = this.alepha.descriptors($scheduler);\n\n return schedulerDescriptors.map((scheduler) => ({\n name: scheduler.name,\n description: scheduler.options.description,\n cron: scheduler.options.cron,\n interval: scheduler.options.interval,\n lock: scheduler.options.lock,\n }));\n }\n\n public getTopics(): DevTopicMetadata[] {\n const topicDescriptors = this.alepha.descriptors($topic);\n\n return topicDescriptors.map((topic) => ({\n name: topic.name,\n description: topic.options.description,\n schema: topic.options.schema,\n provider: this.getProviderName(topic.options.provider),\n }));\n }\n\n public getBuckets(): DevBucketMetadata[] {\n const bucketDescriptors = this.alepha.descriptors($bucket);\n\n return bucketDescriptors.map((bucket) => ({\n name: bucket.name,\n description: bucket.options.description,\n mimeTypes: bucket.options.mimeTypes,\n maxSize: bucket.options.maxSize,\n provider: this.getProviderName(bucket.options.provider),\n }));\n }\n\n public getRealms(): DevRealmMetadata[] {\n const realmDescriptors = this.alepha.descriptors($realm);\n\n return realmDescriptors.map((realm) => ({\n name: realm.name,\n description: realm.options.description,\n roles: realm.options.roles,\n type: \"secret\" in realm.options ? \"internal\" : \"external\",\n settings: {\n accessTokenExpiration: realm.options.settings?.accessToken?.expiration,\n refreshTokenExpiration:\n realm.options.settings?.refreshToken?.expiration,\n hasOnCreateSession: !!realm.options.settings?.onCreateSession,\n hasOnRefreshSession: !!realm.options.settings?.onRefreshSession,\n hasOnDeleteSession: !!realm.options.settings?.onDeleteSession,\n },\n }));\n }\n\n public getCaches(): DevCacheMetadata[] {\n const cacheDescriptors = this.alepha.descriptors($cache);\n\n return cacheDescriptors.map((cache) => ({\n name: cache.container,\n ttl: cache.options.ttl,\n disabled: cache.options.disabled,\n provider: this.getProviderName(cache.options.provider),\n }));\n }\n\n public getPages(): DevPageMetadata[] {\n // const pageDescriptors = this.alepha.descriptors($page);\n //\n // return pageDescriptors.map((page) => ({\n // name: page.name,\n // description: page.options.description,\n // path: page.options.path,\n // params: page.options.schema?.params,\n // query: page.options.schema?.query,\n // hasComponent: !!page.options.component,\n // hasLazy: !!page.options.lazy,\n // hasResolve: !!page.options.resolve,\n // hasChildren: !!page.options.children,\n // hasParent: !!page.options.parent,\n // hasErrorHandler: !!page.options.errorHandler,\n // static:\n // typeof page.options.static === \"boolean\"\n // ? page.options.static\n // : !!page.options.static,\n // cache: page.options.cache,\n // client: page.options.client,\n // animation: page.options.animation,\n // }));\n\n return [];\n }\n\n public getProviders(): DevProviderMetadata[] {\n const graph = this.alepha.graph();\n\n return Object.entries(graph).map(([name, info]) => ({\n name,\n module: info.module,\n dependencies: info.from,\n aliases: info.as,\n }));\n }\n\n public getModules(): DevModuleMetadata[] {\n const graph = this.alepha.graph();\n const moduleMap = new Map<string, Set<string>>();\n\n // Group providers by module\n for (const [providerName, info] of Object.entries(graph)) {\n if (info.module) {\n if (!moduleMap.has(info.module)) {\n moduleMap.set(info.module, new Set());\n }\n moduleMap.get(info.module)!.add(providerName);\n }\n }\n\n return Array.from(moduleMap.entries()).map(([name, providers]) => ({\n name,\n providers: Array.from(providers),\n }));\n }\n\n public getMetadata(): DevMetadata {\n return {\n actions: this.getActions(),\n queues: this.getQueues(),\n schedulers: this.getSchedulers(),\n topics: this.getTopics(),\n buckets: this.getBuckets(),\n realms: this.getRealms(),\n caches: this.getCaches(),\n pages: this.getPages(),\n providers: this.getProviders(),\n modules: this.getModules(),\n };\n }\n\n // -------------------------------------------------------------------------------------------------------------------\n\n protected getProviderName(provider?: \"memory\" | any): string {\n if (!provider) {\n return \"default\";\n }\n if (provider === \"memory\") {\n return \"memory\";\n }\n return provider.name || \"custom\";\n }\n}\n","import { NodeSqliteProvider } from \"@alepha/orm\";\n\nexport class DevToolsDatabaseProvider extends NodeSqliteProvider {\n public get name() {\n return \"devtools\";\n }\n\n protected readonly options = {\n path: \":memory:\",\n };\n}\n","import { Repository } from \"@alepha/orm\";\nimport { logs } from \"../entities/logs.ts\";\nimport { DevToolsDatabaseProvider } from \"../providers/DevToolsDatabaseProvider.ts\";\n\nexport class LogRepository extends Repository<typeof logs.schema> {\n constructor() {\n super(logs, DevToolsDatabaseProvider);\n }\n}\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devActionMetadataSchema = t.object({\n name: t.text(),\n group: t.text(),\n method: t.text(),\n path: t.text(),\n prefix: t.text(),\n fullPath: t.text(),\n description: t.optional(t.text()),\n summary: t.optional(t.text()),\n disabled: t.optional(t.boolean()),\n secure: t.optional(t.boolean()),\n hide: t.optional(t.boolean()),\n body: t.optional(t.any()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n response: t.optional(t.any()),\n bodyContentType: t.optional(t.text()),\n});\n\nexport type DevActionMetadata = Static<typeof devActionMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devBucketMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n mimeTypes: t.optional(t.array(t.text())),\n maxSize: t.optional(t.number()),\n provider: t.text(),\n});\n\nexport type DevBucketMetadata = Static<typeof devBucketMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devCacheMetadataSchema = t.object({\n name: t.text(),\n ttl: t.optional(t.any()),\n disabled: t.optional(t.boolean()),\n provider: t.text(),\n});\n\nexport type DevCacheMetadata = Static<typeof devCacheMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devModuleMetadataSchema = t.object({\n name: t.text(),\n providers: t.array(t.text()),\n});\n\nexport type DevModuleMetadata = Static<typeof devModuleMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devPageMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n path: t.optional(t.text()),\n params: t.optional(t.any()),\n query: t.optional(t.any()),\n hasComponent: t.boolean(),\n hasLazy: t.boolean(),\n hasResolve: t.boolean(),\n hasChildren: t.boolean(),\n hasParent: t.boolean(),\n hasErrorHandler: t.boolean(),\n static: t.optional(t.boolean()),\n cache: t.optional(t.any()),\n client: t.optional(t.any()),\n animation: t.optional(t.any()),\n});\n\nexport type DevPageMetadata = Static<typeof devPageMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devProviderMetadataSchema = t.object({\n name: t.text(),\n module: t.optional(t.text()),\n dependencies: t.array(t.text()),\n aliases: t.optional(t.array(t.text())),\n});\n\nexport type DevProviderMetadata = Static<typeof devProviderMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devQueueMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevQueueMetadata = Static<typeof devQueueMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devRealmMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n roles: t.optional(t.array(t.any())),\n type: t.enum([\"internal\", \"external\"]),\n settings: t.optional(\n t.object({\n accessTokenExpiration: t.optional(t.any()),\n refreshTokenExpiration: t.optional(t.any()),\n hasOnCreateSession: t.boolean(),\n hasOnRefreshSession: t.boolean(),\n hasOnDeleteSession: t.boolean(),\n }),\n ),\n});\n\nexport type DevRealmMetadata = Static<typeof devRealmMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devSchedulerMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n cron: t.optional(t.text()),\n interval: t.optional(t.any()),\n lock: t.optional(t.boolean()),\n});\n\nexport type DevSchedulerMetadata = Static<typeof devSchedulerMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\n\nexport const devTopicMetadataSchema = t.object({\n name: t.text(),\n description: t.optional(t.text()),\n schema: t.optional(t.any()),\n provider: t.text(),\n});\n\nexport type DevTopicMetadata = Static<typeof devTopicMetadataSchema>;\n","import { type Static, t } from \"@alepha/core\";\nimport { devActionMetadataSchema } from \"./DevActionMetadata.ts\";\nimport { devBucketMetadataSchema } from \"./DevBucketMetadata.ts\";\nimport { devCacheMetadataSchema } from \"./DevCacheMetadata.ts\";\nimport { devModuleMetadataSchema } from \"./DevModuleMetadata.ts\";\nimport { devPageMetadataSchema } from \"./DevPageMetadata.ts\";\nimport { devProviderMetadataSchema } from \"./DevProviderMetadata.ts\";\nimport { devQueueMetadataSchema } from \"./DevQueueMetadata.ts\";\nimport { devRealmMetadataSchema } from \"./DevRealmMetadata.ts\";\nimport { devSchedulerMetadataSchema } from \"./DevSchedulerMetadata.ts\";\nimport { devTopicMetadataSchema } from \"./DevTopicMetadata.ts\";\n\nexport const devMetadataSchema = t.object({\n actions: t.array(devActionMetadataSchema),\n queues: t.array(devQueueMetadataSchema),\n schedulers: t.array(devSchedulerMetadataSchema),\n topics: t.array(devTopicMetadataSchema),\n buckets: t.array(devBucketMetadataSchema),\n realms: t.array(devRealmMetadataSchema),\n caches: t.array(devCacheMetadataSchema),\n pages: t.array(devPageMetadataSchema),\n providers: t.array(devProviderMetadataSchema),\n modules: t.array(devModuleMetadataSchema),\n // More metadata will be added here later\n});\n\nexport type DevMetadata = Static<typeof devMetadataSchema>;\n","import { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { $batch } from \"@alepha/batch\";\nimport { $hook, $inject, Alepha, pageQuerySchema, t } from \"@alepha/core\";\nimport {\n $logger,\n JsonFormatterProvider,\n type LogEntry,\n logEntrySchema,\n} from \"@alepha/logger\";\nimport { parseQueryString } from \"@alepha/orm\";\nimport { $route, ServerProvider } from \"@alepha/server\";\nimport { $serve } from \"@alepha/server-static\";\nimport { type DevLogEntry, logs } from \"./entities/logs.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\nimport { devMetadataSchema } from \"./schemas/DevMetadata.ts\";\n\nexport class DevToolsProvider {\n protected readonly log = $logger();\n protected readonly alepha = $inject(Alepha);\n protected readonly serverProvider = $inject(ServerProvider);\n protected readonly jsonFormatter = $inject(JsonFormatterProvider);\n protected readonly logs = $inject(LogRepository);\n protected readonly devCollectorProvider = $inject(DevToolsMetadataProvider);\n\n protected readonly onStart = $hook({\n on: \"start\",\n handler: () => {\n this.log.info(\n `Devtools available at ${this.serverProvider.hostname}/devtools/`,\n );\n },\n });\n\n protected batchLogs = $batch({\n maxSize: 50,\n maxDuration: [10, \"seconds\"],\n schema: logs.insertSchema,\n handler: async (entries) => {\n await this.logs.createMany(entries);\n },\n });\n\n protected readonly onLog = $hook({\n on: \"log\",\n handler: async (ev: { message?: string; entry: LogEntry }) => {\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n // CAUTION: It's very easy to create an infinite loop here.\n // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n try {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n if (ev.entry.module === \"alepha.devtools\") {\n // skip devtools logs to avoid infinite loop\n return;\n }\n\n if (ev.entry.level === \"TRACE\" && ev.entry.module === \"alepha.batch\") {\n // skip batch trace logs to avoid infinite loop\n return;\n }\n\n if (this.alepha.isProduction() && ev.entry.level === \"TRACE\") {\n // skip trace logs in production\n return;\n }\n\n const entry = {\n ...ev.entry,\n data:\n ev.entry.data instanceof Error\n ? this.jsonFormatter.formatJsonError(ev.entry.data)\n : typeof ev.entry.data === \"object\" &&\n !Array.isArray(ev.entry.data)\n ? ev.entry.data\n : { data: ev.entry.data },\n };\n\n await this.batchLogs.push(entry as DevLogEntry);\n } catch (error) {\n // DO TO NOT WITH THE LOGGER HERE TO AVOID INFINITE LOOP\n console.error(error, ev);\n }\n },\n });\n\n protected readonly uiRoute = $serve({\n path: \"/devtools\",\n root: join(fileURLToPath(import.meta.url), \"../../assets/devtools\"),\n historyApiFallback: true,\n });\n\n protected readonly metadataRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/metadata\",\n silent: true,\n schema: {\n response: devMetadataSchema,\n },\n handler: () => {\n return this.devCollectorProvider.getMetadata();\n },\n });\n\n protected readonly logsRoute = $route({\n method: \"GET\",\n path: \"/devtools/api/logs\",\n silent: true,\n schema: {\n query: t.extend(pageQuerySchema, {\n search: t.optional(t.string()),\n }),\n response: t.page(logEntrySchema),\n },\n handler: ({ query }) => {\n query.sort ??= \"-timestamp\";\n return this.logs.paginate(\n query,\n query.search\n ? {\n where: parseQueryString(query.search),\n }\n : {},\n {\n count: true,\n },\n );\n },\n });\n}\n","import { $module } from \"@alepha/core\";\nimport { DevToolsProvider } from \"./DevToolsProvider.ts\";\nimport { DevToolsDatabaseProvider } from \"./providers/DevToolsDatabaseProvider.ts\";\nimport { DevToolsMetadataProvider } from \"./providers/DevToolsMetadataProvider.ts\";\nimport { LogRepository } from \"./repositories/LogRepository.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/DevToolsMetadataProvider.ts\";\nexport * from \"./schemas/DevActionMetadata.ts\";\nexport * from \"./schemas/DevBucketMetadata.ts\";\nexport * from \"./schemas/DevCacheMetadata.ts\";\nexport * from \"./schemas/DevMetadata.ts\";\nexport * from \"./schemas/DevModuleMetadata.ts\";\nexport * from \"./schemas/DevPageMetadata.ts\";\nexport * from \"./schemas/DevProviderMetadata.ts\";\nexport * from \"./schemas/DevQueueMetadata.ts\";\nexport * from \"./schemas/DevRealmMetadata.ts\";\nexport * from \"./schemas/DevSchedulerMetadata.ts\";\nexport * from \"./schemas/DevTopicMetadata.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Developer tools module for monitoring and debugging Alepha applications.\n *\n * This module provides comprehensive data collection capabilities for tracking application behavior,\n * performance metrics, and debugging information in real-time.\n *\n * @see {@link DevToolsMetadataProvider}\n * @module alepha.devtools\n */\nexport const AlephaDevtools = $module({\n name: \"alepha.devtools\",\n descriptors: [],\n services: [\n DevToolsMetadataProvider,\n DevToolsProvider,\n DevToolsDatabaseProvider,\n LogRepository,\n ],\n register: (alepha) => {\n alepha.with(DevToolsProvider);\n alepha.with(DevToolsDatabaseProvider);\n alepha.with(DevToolsMetadataProvider);\n alepha.state.push(\"alepha.build.assets\", \"@alepha/devtools\");\n },\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alepha/devtools",
|
|
3
3
|
"description": "Developer tools for monitoring and debugging Alepha applications.",
|
|
4
|
-
"version": "0.11.
|
|
4
|
+
"version": "0.11.11",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=22.0.0"
|
|
@@ -14,28 +14,28 @@
|
|
|
14
14
|
"src"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@alepha/batch": "0.11.
|
|
18
|
-
"@alepha/bucket": "0.11.
|
|
19
|
-
"@alepha/cache": "0.11.
|
|
20
|
-
"@alepha/core": "0.11.
|
|
21
|
-
"@alepha/datetime": "0.11.
|
|
22
|
-
"@alepha/logger": "0.11.
|
|
23
|
-
"@alepha/
|
|
24
|
-
"@alepha/queue": "0.11.
|
|
25
|
-
"@alepha/react": "0.11.
|
|
26
|
-
"@alepha/react-i18n": "0.11.
|
|
27
|
-
"@alepha/scheduler": "0.11.
|
|
28
|
-
"@alepha/security": "0.11.
|
|
29
|
-
"@alepha/server": "0.11.
|
|
30
|
-
"@alepha/server-static": "0.11.
|
|
31
|
-
"@alepha/topic": "0.11.
|
|
17
|
+
"@alepha/batch": "0.11.11",
|
|
18
|
+
"@alepha/bucket": "0.11.11",
|
|
19
|
+
"@alepha/cache": "0.11.11",
|
|
20
|
+
"@alepha/core": "0.11.11",
|
|
21
|
+
"@alepha/datetime": "0.11.11",
|
|
22
|
+
"@alepha/logger": "0.11.11",
|
|
23
|
+
"@alepha/orm": "0.11.11",
|
|
24
|
+
"@alepha/queue": "0.11.11",
|
|
25
|
+
"@alepha/react": "0.11.11",
|
|
26
|
+
"@alepha/react-i18n": "0.11.11",
|
|
27
|
+
"@alepha/scheduler": "0.11.11",
|
|
28
|
+
"@alepha/security": "0.11.11",
|
|
29
|
+
"@alepha/server": "0.11.11",
|
|
30
|
+
"@alepha/server-static": "0.11.11",
|
|
31
|
+
"@alepha/topic": "0.11.11"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@alepha/ui": "0.11.
|
|
35
|
-
"@alepha/vite": "0.11.
|
|
34
|
+
"@alepha/ui": "0.11.11",
|
|
35
|
+
"@alepha/vite": "0.11.11",
|
|
36
36
|
"@biomejs/biome": "^2.3.5",
|
|
37
37
|
"@tabler/icons-react": "^3.35.0",
|
|
38
|
-
"alepha": "0.11.
|
|
38
|
+
"alepha": "0.11.11",
|
|
39
39
|
"react": "^19.2.0",
|
|
40
40
|
"tsdown": "^0.16.4",
|
|
41
41
|
"typescript": "^5.9.3",
|
package/src/DevToolsProvider.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
type LogEntry,
|
|
9
9
|
logEntrySchema,
|
|
10
10
|
} from "@alepha/logger";
|
|
11
|
-
import { parseQueryString } from "@alepha/
|
|
11
|
+
import { parseQueryString } from "@alepha/orm";
|
|
12
12
|
import { $route, ServerProvider } from "@alepha/server";
|
|
13
13
|
import { $serve } from "@alepha/server-static";
|
|
14
14
|
import { type DevLogEntry, logs } from "./entities/logs.ts";
|
package/src/entities/logs.ts
CHANGED