cadenlane-cli-2 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/LICENSE +21 -0
- package/README.md +333 -0
- package/bin.js +2 -0
- package/dist/application/config/config.manager.d.ts +62 -0
- package/dist/application/config/config.manager.d.ts.map +1 -0
- package/dist/application/config/config.manager.js +146 -0
- package/dist/application/config/config.manager.js.map +1 -0
- package/dist/application/services/application.service.d.ts +35 -0
- package/dist/application/services/application.service.d.ts.map +1 -0
- package/dist/application/services/application.service.js +174 -0
- package/dist/application/services/application.service.js.map +1 -0
- package/dist/application/services/download.service.d.ts +27 -0
- package/dist/application/services/download.service.d.ts.map +1 -0
- package/dist/application/services/download.service.js +197 -0
- package/dist/application/services/download.service.js.map +1 -0
- package/dist/application/services/file-naming.service.d.ts +34 -0
- package/dist/application/services/file-naming.service.d.ts.map +1 -0
- package/dist/application/services/file-naming.service.js +142 -0
- package/dist/application/services/file-naming.service.js.map +1 -0
- package/dist/application/services/queue.service.d.ts +53 -0
- package/dist/application/services/queue.service.d.ts.map +1 -0
- package/dist/application/services/queue.service.js +82 -0
- package/dist/application/services/queue.service.js.map +1 -0
- package/dist/cli/commands/start.command.d.ts +39 -0
- package/dist/cli/commands/start.command.d.ts.map +1 -0
- package/dist/cli/commands/start.command.js +196 -0
- package/dist/cli/commands/start.command.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +86 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/domain/constants/config.constants.d.ts +54 -0
- package/dist/domain/constants/config.constants.d.ts.map +1 -0
- package/dist/domain/constants/config.constants.js +142 -0
- package/dist/domain/constants/config.constants.js.map +1 -0
- package/dist/domain/dtos/index.d.ts +4 -0
- package/dist/domain/dtos/index.d.ts.map +1 -0
- package/dist/domain/dtos/index.js +10 -0
- package/dist/domain/dtos/index.js.map +1 -0
- package/dist/domain/dtos/log-entry.dto.d.ts +15 -0
- package/dist/domain/dtos/log-entry.dto.d.ts.map +1 -0
- package/dist/domain/dtos/log-entry.dto.js +64 -0
- package/dist/domain/dtos/log-entry.dto.js.map +1 -0
- package/dist/domain/dtos/message.dto.d.ts +27 -0
- package/dist/domain/dtos/message.dto.d.ts.map +1 -0
- package/dist/domain/dtos/message.dto.js +140 -0
- package/dist/domain/dtos/message.dto.js.map +1 -0
- package/dist/domain/dtos/queue-message.dto.d.ts +10 -0
- package/dist/domain/dtos/queue-message.dto.d.ts.map +1 -0
- package/dist/domain/dtos/queue-message.dto.js +39 -0
- package/dist/domain/dtos/queue-message.dto.js.map +1 -0
- package/dist/domain/entities/cli-instance.entity.d.ts +55 -0
- package/dist/domain/entities/cli-instance.entity.d.ts.map +1 -0
- package/dist/domain/entities/cli-instance.entity.js +132 -0
- package/dist/domain/entities/cli-instance.entity.js.map +1 -0
- package/dist/domain/entities/index.d.ts +3 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +8 -0
- package/dist/domain/entities/index.js.map +1 -0
- package/dist/domain/entities/log-entry.entity.d.ts +60 -0
- package/dist/domain/entities/log-entry.entity.d.ts.map +1 -0
- package/dist/domain/entities/log-entry.entity.js +101 -0
- package/dist/domain/entities/log-entry.entity.js.map +1 -0
- package/dist/domain/entities/message.entity.d.ts +64 -0
- package/dist/domain/entities/message.entity.d.ts.map +1 -0
- package/dist/domain/entities/message.entity.js +110 -0
- package/dist/domain/entities/message.entity.js.map +1 -0
- package/dist/domain/enums/error-category.enum.d.ts +11 -0
- package/dist/domain/enums/error-category.enum.d.ts.map +1 -0
- package/dist/domain/enums/error-category.enum.js +15 -0
- package/dist/domain/enums/error-category.enum.js.map +1 -0
- package/dist/domain/enums/index.d.ts +4 -0
- package/dist/domain/enums/index.d.ts.map +1 -0
- package/dist/domain/enums/index.js +10 -0
- package/dist/domain/enums/index.js.map +1 -0
- package/dist/domain/enums/log-level.enum.d.ts +11 -0
- package/dist/domain/enums/log-level.enum.d.ts.map +1 -0
- package/dist/domain/enums/log-level.enum.js +15 -0
- package/dist/domain/enums/log-level.enum.js.map +1 -0
- package/dist/domain/enums/message-status.enum.d.ts +11 -0
- package/dist/domain/enums/message-status.enum.d.ts.map +1 -0
- package/dist/domain/enums/message-status.enum.js +15 -0
- package/dist/domain/enums/message-status.enum.js.map +1 -0
- package/dist/domain/interfaces/adapters/ifilesystem.adapter.d.ts +34 -0
- package/dist/domain/interfaces/adapters/ifilesystem.adapter.d.ts.map +1 -0
- package/dist/domain/interfaces/adapters/ifilesystem.adapter.js +3 -0
- package/dist/domain/interfaces/adapters/ifilesystem.adapter.js.map +1 -0
- package/dist/domain/interfaces/adapters/ihttp.adapter.d.ts +22 -0
- package/dist/domain/interfaces/adapters/ihttp.adapter.d.ts.map +1 -0
- package/dist/domain/interfaces/adapters/ihttp.adapter.js +3 -0
- package/dist/domain/interfaces/adapters/ihttp.adapter.js.map +1 -0
- package/dist/domain/interfaces/adapters/index.d.ts +4 -0
- package/dist/domain/interfaces/adapters/index.d.ts.map +1 -0
- package/dist/domain/interfaces/adapters/index.js +3 -0
- package/dist/domain/interfaces/adapters/index.js.map +1 -0
- package/dist/domain/interfaces/adapters/isupabase.adapter.d.ts +27 -0
- package/dist/domain/interfaces/adapters/isupabase.adapter.d.ts.map +1 -0
- package/dist/domain/interfaces/adapters/isupabase.adapter.js +3 -0
- package/dist/domain/interfaces/adapters/isupabase.adapter.js.map +1 -0
- package/dist/domain/interfaces/repositories/ilog.repository.d.ts +32 -0
- package/dist/domain/interfaces/repositories/ilog.repository.d.ts.map +1 -0
- package/dist/domain/interfaces/repositories/ilog.repository.js +3 -0
- package/dist/domain/interfaces/repositories/ilog.repository.js.map +1 -0
- package/dist/domain/interfaces/repositories/imessage.repository.d.ts +39 -0
- package/dist/domain/interfaces/repositories/imessage.repository.d.ts.map +1 -0
- package/dist/domain/interfaces/repositories/imessage.repository.js +3 -0
- package/dist/domain/interfaces/repositories/imessage.repository.js.map +1 -0
- package/dist/domain/interfaces/repositories/index.d.ts +4 -0
- package/dist/domain/interfaces/repositories/index.d.ts.map +1 -0
- package/dist/domain/interfaces/repositories/index.js +3 -0
- package/dist/domain/interfaces/repositories/index.js.map +1 -0
- package/dist/domain/interfaces/repositories/iqueue.repository.d.ts +75 -0
- package/dist/domain/interfaces/repositories/iqueue.repository.d.ts.map +1 -0
- package/dist/domain/interfaces/repositories/iqueue.repository.js +3 -0
- package/dist/domain/interfaces/repositories/iqueue.repository.js.map +1 -0
- package/dist/domain/interfaces/services/idownload.service.d.ts +28 -0
- package/dist/domain/interfaces/services/idownload.service.d.ts.map +1 -0
- package/dist/domain/interfaces/services/idownload.service.js +3 -0
- package/dist/domain/interfaces/services/idownload.service.js.map +1 -0
- package/dist/domain/interfaces/services/iqueue.service.d.ts +35 -0
- package/dist/domain/interfaces/services/iqueue.service.d.ts.map +1 -0
- package/dist/domain/interfaces/services/iqueue.service.js +3 -0
- package/dist/domain/interfaces/services/iqueue.service.js.map +1 -0
- package/dist/domain/services/path-resolver.service.d.ts +94 -0
- package/dist/domain/services/path-resolver.service.d.ts.map +1 -0
- package/dist/domain/services/path-resolver.service.js +332 -0
- package/dist/domain/services/path-resolver.service.js.map +1 -0
- package/dist/domain/validators/index.d.ts +4 -0
- package/dist/domain/validators/index.d.ts.map +1 -0
- package/dist/domain/validators/index.js +10 -0
- package/dist/domain/validators/index.js.map +1 -0
- package/dist/domain/validators/message.validator.d.ts +20 -0
- package/dist/domain/validators/message.validator.d.ts.map +1 -0
- package/dist/domain/validators/message.validator.js +31 -0
- package/dist/domain/validators/message.validator.js.map +1 -0
- package/dist/domain/validators/path.validator.d.ts +44 -0
- package/dist/domain/validators/path.validator.d.ts.map +1 -0
- package/dist/domain/validators/path.validator.js +156 -0
- package/dist/domain/validators/path.validator.js.map +1 -0
- package/dist/domain/validators/url.validator.d.ts +19 -0
- package/dist/domain/validators/url.validator.d.ts.map +1 -0
- package/dist/domain/validators/url.validator.js +46 -0
- package/dist/domain/validators/url.validator.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/adapters/filesystem.adapter.d.ts +35 -0
- package/dist/infrastructure/adapters/filesystem.adapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/filesystem.adapter.js +103 -0
- package/dist/infrastructure/adapters/filesystem.adapter.js.map +1 -0
- package/dist/infrastructure/adapters/http.adapter.d.ts +15 -0
- package/dist/infrastructure/adapters/http.adapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/http.adapter.js +80 -0
- package/dist/infrastructure/adapters/http.adapter.js.map +1 -0
- package/dist/infrastructure/adapters/index.d.ts +4 -0
- package/dist/infrastructure/adapters/index.d.ts.map +1 -0
- package/dist/infrastructure/adapters/index.js +10 -0
- package/dist/infrastructure/adapters/index.js.map +1 -0
- package/dist/infrastructure/adapters/pgmq.adapter.d.ts +29 -0
- package/dist/infrastructure/adapters/pgmq.adapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/pgmq.adapter.js +84 -0
- package/dist/infrastructure/adapters/pgmq.adapter.js.map +1 -0
- package/dist/infrastructure/adapters/supabase.adapter.d.ts +79 -0
- package/dist/infrastructure/adapters/supabase.adapter.d.ts.map +1 -0
- package/dist/infrastructure/adapters/supabase.adapter.js +97 -0
- package/dist/infrastructure/adapters/supabase.adapter.js.map +1 -0
- package/dist/infrastructure/database/supabase.client.d.ts +20 -0
- package/dist/infrastructure/database/supabase.client.d.ts.map +1 -0
- package/dist/infrastructure/database/supabase.client.js +36 -0
- package/dist/infrastructure/database/supabase.client.js.map +1 -0
- package/dist/infrastructure/di/container.d.ts +18 -0
- package/dist/infrastructure/di/container.d.ts.map +1 -0
- package/dist/infrastructure/di/container.js +103 -0
- package/dist/infrastructure/di/container.js.map +1 -0
- package/dist/infrastructure/repositories/cli-instance.repository.d.ts +64 -0
- package/dist/infrastructure/repositories/cli-instance.repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/cli-instance.repository.js +154 -0
- package/dist/infrastructure/repositories/cli-instance.repository.js.map +1 -0
- package/dist/infrastructure/repositories/config.repository.d.ts +52 -0
- package/dist/infrastructure/repositories/config.repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/config.repository.js +130 -0
- package/dist/infrastructure/repositories/config.repository.js.map +1 -0
- package/dist/infrastructure/repositories/index.d.ts +4 -0
- package/dist/infrastructure/repositories/index.d.ts.map +1 -0
- package/dist/infrastructure/repositories/index.js +10 -0
- package/dist/infrastructure/repositories/index.js.map +1 -0
- package/dist/infrastructure/repositories/log.repository.d.ts +44 -0
- package/dist/infrastructure/repositories/log.repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/log.repository.js +108 -0
- package/dist/infrastructure/repositories/log.repository.js.map +1 -0
- package/dist/infrastructure/repositories/message.repository.d.ts +51 -0
- package/dist/infrastructure/repositories/message.repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/message.repository.js +161 -0
- package/dist/infrastructure/repositories/message.repository.js.map +1 -0
- package/dist/infrastructure/repositories/queue.repository.d.ts +69 -0
- package/dist/infrastructure/repositories/queue.repository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/queue.repository.js +130 -0
- package/dist/infrastructure/repositories/queue.repository.js.map +1 -0
- package/dist/infrastructure/utils/connection-health.util.d.ts +23 -0
- package/dist/infrastructure/utils/connection-health.util.d.ts.map +1 -0
- package/dist/infrastructure/utils/connection-health.util.js +64 -0
- package/dist/infrastructure/utils/connection-health.util.js.map +1 -0
- package/package.json +105 -0
- package/pm2.config.js +104 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File System Adapter Interface
|
|
3
|
+
* Abstracts file system operations
|
|
4
|
+
*/
|
|
5
|
+
export interface IFileSystemAdapter {
|
|
6
|
+
/**
|
|
7
|
+
* Writes a file to the file system
|
|
8
|
+
* @param filePath - Full path where to write the file
|
|
9
|
+
* @param data - Data to write (Buffer or string)
|
|
10
|
+
* @returns Promise that resolves when write is complete
|
|
11
|
+
*/
|
|
12
|
+
writeFile(filePath: string, data: Buffer | string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if a file exists
|
|
15
|
+
* @param filePath - Path to check
|
|
16
|
+
* @returns true if file exists, false otherwise
|
|
17
|
+
*/
|
|
18
|
+
fileExists(filePath: string): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a directory (and parent directories if needed)
|
|
21
|
+
* @param dirPath - Directory path to create
|
|
22
|
+
* @returns Promise that resolves when directory is created
|
|
23
|
+
*/
|
|
24
|
+
ensureDir(dirPath: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Gets file stats
|
|
27
|
+
* @param filePath - Path to the file
|
|
28
|
+
* @returns File stats including size
|
|
29
|
+
*/
|
|
30
|
+
getFileStats(filePath: string): Promise<{
|
|
31
|
+
size: number;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ifilesystem.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifilesystem.adapter.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/ifilesystem.adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifilesystem.adapter.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/ifilesystem.adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Download Result
|
|
3
|
+
*/
|
|
4
|
+
export interface HttpDownloadResult {
|
|
5
|
+
buffer: Buffer;
|
|
6
|
+
contentType?: string;
|
|
7
|
+
contentLength?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* HTTP Adapter Interface
|
|
11
|
+
* Abstracts HTTP operations for downloading files
|
|
12
|
+
*/
|
|
13
|
+
export interface IHttpAdapter {
|
|
14
|
+
/**
|
|
15
|
+
* Downloads a file from a URL
|
|
16
|
+
* @param url - URL to download from
|
|
17
|
+
* @param timeoutMs - Timeout in milliseconds
|
|
18
|
+
* @returns Download result with buffer and metadata
|
|
19
|
+
*/
|
|
20
|
+
download(url: string, timeoutMs?: number): Promise<HttpDownloadResult>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=ihttp.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ihttp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/ihttp.adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ihttp.adapter.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/ihttp.adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
/**
|
|
3
|
+
* Supabase Adapter Interface
|
|
4
|
+
* Abstracts Supabase client operations
|
|
5
|
+
*/
|
|
6
|
+
export interface ISupabaseAdapter {
|
|
7
|
+
/**
|
|
8
|
+
* Gets the Supabase client instance
|
|
9
|
+
* @returns SupabaseClient
|
|
10
|
+
*/
|
|
11
|
+
getClient(): SupabaseClient;
|
|
12
|
+
/**
|
|
13
|
+
* Executes a raw SQL query
|
|
14
|
+
* @param query - SQL query to execute
|
|
15
|
+
* @param params - Query parameters
|
|
16
|
+
* @returns Query result
|
|
17
|
+
*/
|
|
18
|
+
executeQuery<T = any>(query: string, params?: any[]): Promise<T[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Calls a Supabase RPC function
|
|
21
|
+
* @param functionName - Name of the RPC function
|
|
22
|
+
* @param params - Function parameters
|
|
23
|
+
* @returns Function result
|
|
24
|
+
*/
|
|
25
|
+
rpc<T = any>(functionName: string, params?: Record<string, any>): Promise<T>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=isupabase.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isupabase.adapter.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/isupabase.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,IAAI,cAAc,CAAC;IAE5B;;;;;OAKG;IACH,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isupabase.adapter.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/adapters/isupabase.adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LogEntryEntity } from '../../../domain/entities';
|
|
2
|
+
/**
|
|
3
|
+
* Log Repository Interface
|
|
4
|
+
* Defines operations for log persistence
|
|
5
|
+
*/
|
|
6
|
+
export interface ILogRepository {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new log entry
|
|
9
|
+
* @param logEntry - Log entry entity to create
|
|
10
|
+
* @returns Created log entry entity
|
|
11
|
+
*/
|
|
12
|
+
create(logEntry: LogEntryEntity): Promise<LogEntryEntity>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates multiple log entries in batch
|
|
15
|
+
* @param logEntries - Array of log entry entities
|
|
16
|
+
* @returns Array of created log entry entities
|
|
17
|
+
*/
|
|
18
|
+
createBatch(logEntries: LogEntryEntity[]): Promise<LogEntryEntity[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Finds all logs for a specific message
|
|
21
|
+
* @param messageId - Message ID
|
|
22
|
+
* @returns Array of log entry entities
|
|
23
|
+
*/
|
|
24
|
+
findByMessageId(messageId: string): Promise<LogEntryEntity[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Finds error logs for a specific message
|
|
27
|
+
* @param messageId - Message ID
|
|
28
|
+
* @returns Array of error log entry entities
|
|
29
|
+
*/
|
|
30
|
+
findErrorsByMessageId(messageId: string): Promise<LogEntryEntity[]>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ilog.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ilog.repository.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/ilog.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1D;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAErE;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE9D;;;;OAIG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ilog.repository.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/ilog.repository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MessageEntity } from '../../../domain/entities';
|
|
2
|
+
/**
|
|
3
|
+
* Message Repository Interface
|
|
4
|
+
* Defines operations for message persistence
|
|
5
|
+
*/
|
|
6
|
+
export interface IMessageRepository {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a new message record
|
|
9
|
+
* @param message - Message entity to create
|
|
10
|
+
* @returns Created message entity
|
|
11
|
+
*/
|
|
12
|
+
create(message: MessageEntity): Promise<MessageEntity>;
|
|
13
|
+
/**
|
|
14
|
+
* Updates an existing message
|
|
15
|
+
* @param message - Message entity with updated data
|
|
16
|
+
* @returns Updated message entity
|
|
17
|
+
*/
|
|
18
|
+
update(message: MessageEntity): Promise<MessageEntity>;
|
|
19
|
+
/**
|
|
20
|
+
* Finds a message by ID
|
|
21
|
+
* @param id - Message ID
|
|
22
|
+
* @returns Message entity or null if not found
|
|
23
|
+
*/
|
|
24
|
+
findById(id: string): Promise<MessageEntity | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Finds a message by PGMQ message ID
|
|
27
|
+
* @param pgmqMessageId - PGMQ message ID
|
|
28
|
+
* @returns Message entity or null if not found
|
|
29
|
+
*/
|
|
30
|
+
findByPgmqMessageId(pgmqMessageId: number): Promise<MessageEntity | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Finds messages by status
|
|
33
|
+
* @param status - Message status
|
|
34
|
+
* @param limit - Maximum number of results
|
|
35
|
+
* @returns Array of message entities
|
|
36
|
+
*/
|
|
37
|
+
findByStatus(status: string, limit?: number): Promise<MessageEntity[]>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=imessage.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imessage.repository.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/imessage.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;OAIG;IACH,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imessage.repository.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/imessage.repository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { QueueMessageDto } from '../../../domain/dtos';
|
|
2
|
+
/**
|
|
3
|
+
* PGMQ Message with metadata
|
|
4
|
+
*/
|
|
5
|
+
export interface PgmqMessage {
|
|
6
|
+
msg_id: number;
|
|
7
|
+
read_ct: number;
|
|
8
|
+
enqueued_at: string;
|
|
9
|
+
vt: string;
|
|
10
|
+
message: QueueMessageDto;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Queue Repository Interface
|
|
14
|
+
* Defines operations for PGMQ queue management
|
|
15
|
+
*/
|
|
16
|
+
export interface IQueueRepository {
|
|
17
|
+
/**
|
|
18
|
+
* Reads a message from the queue (non-blocking)
|
|
19
|
+
* @param queueName - Name of the queue
|
|
20
|
+
* @param visibilityTimeoutSeconds - Visibility timeout in seconds
|
|
21
|
+
* @returns PGMQ message or null if queue is empty
|
|
22
|
+
*/
|
|
23
|
+
readMessage(queueName: string, visibilityTimeoutSeconds: number): Promise<PgmqMessage | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Reads a message from the queue with blocking poll (event-driven)
|
|
26
|
+
* Waits up to pollTimeoutSeconds for a message to arrive
|
|
27
|
+
* @param queueName - Name of the queue
|
|
28
|
+
* @param visibilityTimeoutSeconds - Visibility timeout in seconds
|
|
29
|
+
* @param pollTimeoutSeconds - How long to wait for a message (default: 5s)
|
|
30
|
+
* @param pollIntervalMs - Internal polling interval (default: 250ms)
|
|
31
|
+
* @returns PGMQ message or null if timeout reached
|
|
32
|
+
*/
|
|
33
|
+
readMessageWithPoll(queueName: string, visibilityTimeoutSeconds: number, pollTimeoutSeconds?: number, pollIntervalMs?: number): Promise<PgmqMessage | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Deletes a message from the queue
|
|
36
|
+
* @param queueName - Name of the queue
|
|
37
|
+
* @param messageId - PGMQ message ID
|
|
38
|
+
* @returns true if deleted, false otherwise
|
|
39
|
+
*/
|
|
40
|
+
deleteMessage(queueName: string, messageId: number): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Sends a message to the queue
|
|
43
|
+
* @param queueName - Name of the queue
|
|
44
|
+
* @param message - Message to send
|
|
45
|
+
* @returns PGMQ message ID
|
|
46
|
+
*/
|
|
47
|
+
sendMessage(queueName: string, message: QueueMessageDto): Promise<number>;
|
|
48
|
+
/**
|
|
49
|
+
* Gets queue metrics
|
|
50
|
+
* @param queueName - Name of the queue
|
|
51
|
+
* @returns Queue metrics
|
|
52
|
+
*/
|
|
53
|
+
getMetrics(queueName: string): Promise<{
|
|
54
|
+
queue_name: string;
|
|
55
|
+
queue_length: number;
|
|
56
|
+
newest_msg_age_sec: number | null;
|
|
57
|
+
oldest_msg_age_sec: number | null;
|
|
58
|
+
total_messages: number;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new queue (idempotent - safe to call if queue exists)
|
|
62
|
+
* @param queueName - Name of the queue to create
|
|
63
|
+
* @returns true if created or already exists
|
|
64
|
+
*/
|
|
65
|
+
createQueue(queueName: string): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Sends a message to a specific CLI instance queue
|
|
68
|
+
* @param baseQueueName - Base queue name (e.g., 'image_downloads')
|
|
69
|
+
* @param targetInstanceId - Target CLI instance ID
|
|
70
|
+
* @param message - Message to send
|
|
71
|
+
* @returns PGMQ message ID
|
|
72
|
+
*/
|
|
73
|
+
sendMessageToInstance(baseQueueName: string, targetInstanceId: string, message: QueueMessageDto): Promise<number>;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=iqueue.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqueue.repository.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/iqueue.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE9F;;;;;;;;OAQG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,wBAAwB,EAAE,MAAM,EAChC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1E;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IAEH;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,qBAAqB,CACnB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqueue.repository.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/repositories/iqueue.repository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { MessageEntity } from '../../../domain/entities';
|
|
2
|
+
/**
|
|
3
|
+
* Download Result
|
|
4
|
+
*/
|
|
5
|
+
export interface DownloadResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
fileName?: string;
|
|
8
|
+
filePath?: string;
|
|
9
|
+
fileSizeBytes?: number;
|
|
10
|
+
durationMs?: number;
|
|
11
|
+
error?: {
|
|
12
|
+
message: string;
|
|
13
|
+
category: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Download Service Interface
|
|
18
|
+
* Handles image download operations
|
|
19
|
+
*/
|
|
20
|
+
export interface IDownloadService {
|
|
21
|
+
/**
|
|
22
|
+
* Downloads an image from URL and saves to target folder
|
|
23
|
+
* @param message - Message entity containing download details
|
|
24
|
+
* @returns Download result
|
|
25
|
+
*/
|
|
26
|
+
downloadImage(message: MessageEntity): Promise<DownloadResult>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=idownload.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idownload.service.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/services/idownload.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idownload.service.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/services/idownload.service.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { PgmqMessage } from '../../../domain/interfaces/repositories';
|
|
2
|
+
/**
|
|
3
|
+
* Queue Service Interface
|
|
4
|
+
* Handles queue operations and message lifecycle
|
|
5
|
+
*/
|
|
6
|
+
export interface IQueueService {
|
|
7
|
+
/**
|
|
8
|
+
* Polls the queue for a new message
|
|
9
|
+
* @returns PGMQ message or null if queue is empty
|
|
10
|
+
*/
|
|
11
|
+
pollMessage(): Promise<PgmqMessage | null>;
|
|
12
|
+
/**
|
|
13
|
+
* Acknowledges successful message processing by deleting from queue
|
|
14
|
+
* @param messageId - PGMQ message ID
|
|
15
|
+
* @returns true if deleted, false otherwise
|
|
16
|
+
*/
|
|
17
|
+
acknowledgeMessage(messageId: number): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Gets queue metrics
|
|
20
|
+
* @returns Queue metrics
|
|
21
|
+
*/
|
|
22
|
+
getQueueMetrics(): Promise<{
|
|
23
|
+
queue_name: string;
|
|
24
|
+
queue_length: number;
|
|
25
|
+
newest_msg_age_sec: number | null;
|
|
26
|
+
oldest_msg_age_sec: number | null;
|
|
27
|
+
total_messages: number;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Creates the queue for this CLI instance (idempotent)
|
|
31
|
+
* @returns true if created or already exists
|
|
32
|
+
*/
|
|
33
|
+
createQueue(): Promise<boolean>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=iqueue.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqueue.service.d.ts","sourceRoot":"","sources":["../../../../src/domain/interfaces/services/iqueue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE3C;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IAEH;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqueue.service.js","sourceRoot":"","sources":["../../../../src/domain/interfaces/services/iqueue.service.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform information
|
|
3
|
+
*/
|
|
4
|
+
export interface PlatformInfo {
|
|
5
|
+
platform: 'win32' | 'darwin' | 'linux';
|
|
6
|
+
isWindows: boolean;
|
|
7
|
+
isMac: boolean;
|
|
8
|
+
isLinux: boolean;
|
|
9
|
+
homeDir: string;
|
|
10
|
+
separator: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Path resolution result
|
|
14
|
+
*/
|
|
15
|
+
export interface PathResolutionResult {
|
|
16
|
+
absolutePath: string;
|
|
17
|
+
isValid: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
platform: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* PathResolver Service
|
|
23
|
+
* Handles cross-platform path resolution and validation
|
|
24
|
+
*
|
|
25
|
+
* Design Principles:
|
|
26
|
+
* - All paths must be absolute
|
|
27
|
+
* - Platform-specific validation (Windows drive letters, Unix root)
|
|
28
|
+
* - Home directory expansion support (~)
|
|
29
|
+
* - Environment variable expansion (%VAR% on Windows, $VAR on Unix)
|
|
30
|
+
*/
|
|
31
|
+
export declare class PathResolverService {
|
|
32
|
+
private readonly platformInfo;
|
|
33
|
+
constructor();
|
|
34
|
+
/**
|
|
35
|
+
* Get current platform information
|
|
36
|
+
*/
|
|
37
|
+
getPlatformInfo(): PlatformInfo;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve a path to an absolute path with platform-specific handling
|
|
40
|
+
* @param inputPath - The path to resolve (can include ~ or env vars)
|
|
41
|
+
* @param fallbackPath - Optional fallback if resolution fails
|
|
42
|
+
* @returns Resolution result with absolute path or error
|
|
43
|
+
*/
|
|
44
|
+
resolve(inputPath: string, fallbackPath?: string): PathResolutionResult;
|
|
45
|
+
/**
|
|
46
|
+
* Get default download path for current platform
|
|
47
|
+
* @returns Platform-specific default download directory
|
|
48
|
+
*/
|
|
49
|
+
getDefaultDownloadPath(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Expand home directory shorthand (~)
|
|
52
|
+
* Works on all platforms
|
|
53
|
+
*/
|
|
54
|
+
private expandHomeDirectory;
|
|
55
|
+
/**
|
|
56
|
+
* Expand environment variables
|
|
57
|
+
* - Windows: %VAR%
|
|
58
|
+
* - Unix: $VAR or ${VAR}
|
|
59
|
+
*/
|
|
60
|
+
private expandEnvironmentVariables;
|
|
61
|
+
/**
|
|
62
|
+
* Normalize path separators for current platform
|
|
63
|
+
*/
|
|
64
|
+
private normalizeSeparators;
|
|
65
|
+
/**
|
|
66
|
+
* Check if path is absolute (platform-aware)
|
|
67
|
+
* This is more reliable than path.isAbsolute() for cross-platform testing
|
|
68
|
+
*/
|
|
69
|
+
private isPathAbsolute;
|
|
70
|
+
/**
|
|
71
|
+
* Validate path for current platform
|
|
72
|
+
* @returns Error message if invalid, undefined if valid
|
|
73
|
+
*/
|
|
74
|
+
private validatePlatformPath;
|
|
75
|
+
/**
|
|
76
|
+
* Validate Windows-specific path requirements
|
|
77
|
+
*/
|
|
78
|
+
private validateWindowsPath;
|
|
79
|
+
/**
|
|
80
|
+
* Validate Unix-specific path requirements (Mac/Linux)
|
|
81
|
+
*/
|
|
82
|
+
private validateUnixPath;
|
|
83
|
+
/**
|
|
84
|
+
* Format a path example for current platform
|
|
85
|
+
* Useful for error messages and UI placeholders
|
|
86
|
+
*/
|
|
87
|
+
getPathExample(type: 'downloads' | 'documents' | 'desktop' | 'custom'): string;
|
|
88
|
+
/**
|
|
89
|
+
* Check if a path is safe (no directory traversal)
|
|
90
|
+
* This is a secondary check after resolution
|
|
91
|
+
*/
|
|
92
|
+
isSafePath(absolutePath: string): boolean;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=path-resolver.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-resolver.service.d.ts","sourceRoot":"","sources":["../../../src/domain/services/path-resolver.service.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;;IAc5C;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAuEvE;;;OAGG;IACH,sBAAsB,IAAI,MAAM;IAUhC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM;IAsC9E;;;OAGG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;CAS1C"}
|