@mdfriday/foundry 26.2.13 → 26.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cli.js +54507 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +1 -1
  4. package/dist/internal/application/identity.d.ts +90 -0
  5. package/dist/internal/application/incremental-build-coordinator.d.ts +1 -0
  6. package/dist/internal/application/publish.d.ts +28 -0
  7. package/dist/internal/application/workspace.d.ts +29 -0
  8. package/dist/internal/domain/identity/entity/user.d.ts +55 -0
  9. package/dist/internal/domain/identity/factory/user-factory.d.ts +153 -0
  10. package/dist/internal/domain/identity/index.d.ts +9 -0
  11. package/dist/internal/domain/identity/repository/index.d.ts +31 -0
  12. package/dist/internal/domain/identity/type.d.ts +19 -0
  13. package/dist/internal/domain/identity/value-object/device.d.ts +21 -0
  14. package/dist/internal/domain/identity/value-object/email.d.ts +12 -0
  15. package/dist/internal/domain/identity/value-object/license.d.ts +63 -0
  16. package/dist/internal/domain/identity/value-object/server-config.d.ts +21 -0
  17. package/dist/internal/domain/identity/value-object/token.d.ts +21 -0
  18. package/dist/internal/domain/publish/entity/publisher.d.ts +24 -0
  19. package/dist/internal/domain/publish/factory/publisher-factory.d.ts +13 -0
  20. package/dist/internal/domain/publish/index.d.ts +10 -0
  21. package/dist/internal/domain/publish/repository/http-client.d.ts +14 -0
  22. package/dist/internal/domain/publish/repository/manifest-repository.d.ts +7 -0
  23. package/dist/internal/domain/publish/type.d.ts +59 -0
  24. package/dist/internal/domain/publish/value-object/ftp-publisher.d.ts +22 -0
  25. package/dist/internal/domain/publish/value-object/mdfriday-publisher.d.ts +28 -0
  26. package/dist/internal/domain/publish/value-object/netlify-publisher.d.ts +28 -0
  27. package/dist/internal/domain/publish/value-object/publish-config.d.ts +36 -0
  28. package/dist/internal/domain/publish/value-object/publish-manifest.d.ts +38 -0
  29. package/dist/internal/domain/workspace/entity/authentication.d.ts +11 -0
  30. package/dist/internal/domain/workspace/entity/project.d.ts +77 -0
  31. package/dist/internal/domain/workspace/entity/workspace.d.ts +49 -0
  32. package/dist/internal/domain/workspace/factory/workspace-factory.d.ts +57 -0
  33. package/dist/internal/domain/workspace/index.d.ts +9 -0
  34. package/dist/internal/domain/workspace/repository/file-system.d.ts +55 -0
  35. package/dist/internal/domain/workspace/repository/index.d.ts +2 -0
  36. package/dist/internal/domain/workspace/repository.d.ts +52 -0
  37. package/dist/internal/domain/workspace/type.d.ts +41 -0
  38. package/dist/internal/domain/workspace/value-object/folder-structure.d.ts +27 -0
  39. package/dist/internal/domain/workspace/value-object/project-metadata.d.ts +62 -0
  40. package/dist/internal/domain/workspace/value-object/workspace-metadata.d.ts +61 -0
  41. package/dist/internal/infrastructure/http/netlify-http-client.d.ts +8 -0
  42. package/dist/internal/infrastructure/http/node-http-client.d.ts +7 -0
  43. package/dist/internal/infrastructure/index.d.ts +6 -0
  44. package/dist/internal/infrastructure/persistence/node-file-system.d.ts +30 -0
  45. package/dist/internal/infrastructure/persistence/node-manifest-repository.d.ts +11 -0
  46. package/dist/internal/infrastructure/persistence/node-snapshot-repository.d.ts +12 -0
  47. package/dist/internal/infrastructure/persistence/node-workspace-repository.d.ts +20 -0
  48. package/dist/internal/interfaces/cli/commands/auth.d.ts +121 -0
  49. package/dist/internal/interfaces/cli/commands/build.d.ts +10 -0
  50. package/dist/internal/interfaces/cli/commands/config.d.ts +42 -0
  51. package/dist/internal/interfaces/cli/commands/index.d.ts +6 -0
  52. package/dist/internal/interfaces/cli/commands/project.d.ts +36 -0
  53. package/dist/internal/interfaces/cli/commands/publish.d.ts +27 -0
  54. package/dist/internal/interfaces/cli/commands/serve.d.ts +16 -0
  55. package/dist/internal/interfaces/cli/commands/snapshot.d.ts +25 -0
  56. package/dist/internal/interfaces/cli/commands/workspace.d.ts +16 -0
  57. package/dist/internal/interfaces/cli/container.d.ts +7 -0
  58. package/dist/internal/interfaces/cli/index.d.ts +4 -0
  59. package/dist/internal/interfaces/cli/router.d.ts +27 -0
  60. package/dist/internal/interfaces/cli/types.d.ts +52 -0
  61. package/dist/internal/interfaces/obsidian/container.d.ts +4 -0
  62. package/dist/internal/interfaces/obsidian/index.d.ts +2 -0
  63. package/dist/internal/interfaces/obsidian/workspace.d.ts +38 -0
  64. package/dist/pkg/progress-bar.d.ts +20 -0
  65. package/dist/worker/pool-manager.js +3 -2
  66. package/dist/worker/worker-node.js +3 -2
  67. package/package.json +10 -2
@@ -0,0 +1,61 @@
1
+ export declare class WorkspaceMetadata {
2
+ readonly version: string;
3
+ readonly id: string;
4
+ readonly name: string;
5
+ readonly createdAt: number;
6
+ readonly updatedAt: number;
7
+ readonly paths: {
8
+ modules: string;
9
+ projects: string;
10
+ };
11
+ readonly defaults: {
12
+ modulesDir?: string;
13
+ theme?: string;
14
+ language?: string;
15
+ };
16
+ private constructor();
17
+ static create(data: {
18
+ version: string;
19
+ id: string;
20
+ name: string;
21
+ createdAt: number;
22
+ updatedAt: number;
23
+ paths: {
24
+ modules: string;
25
+ projects: string;
26
+ };
27
+ defaults?: {
28
+ modulesDir?: string;
29
+ theme?: string;
30
+ language?: string;
31
+ };
32
+ }): WorkspaceMetadata;
33
+ update(updates: Partial<{
34
+ name: string;
35
+ paths: {
36
+ modules: string;
37
+ projects: string;
38
+ };
39
+ defaults: {
40
+ modulesDir?: string;
41
+ theme?: string;
42
+ language?: string;
43
+ };
44
+ }>): WorkspaceMetadata;
45
+ toJSON(): {
46
+ version: string;
47
+ id: string;
48
+ name: string;
49
+ createdAt: number;
50
+ updatedAt: number;
51
+ paths: {
52
+ modules: string;
53
+ projects: string;
54
+ };
55
+ defaults?: {
56
+ modulesDir?: string;
57
+ theme?: string;
58
+ language?: string;
59
+ };
60
+ };
61
+ }
@@ -0,0 +1,8 @@
1
+ import { HttpClient, HttpResponse } from '@internal/domain/publish/repository/http-client';
2
+ export declare class NetlifyHttpClient implements HttpClient {
3
+ postJSON(url: string, data: any, headers?: Record<string, string>): Promise<HttpResponse>;
4
+ postMultipart(url: string, formData: Record<string, any>, headers?: Record<string, string>): Promise<HttpResponse>;
5
+ putBinary(url: string, data: Buffer | Uint8Array, headers?: Record<string, string>): Promise<HttpResponse>;
6
+ get(url: string, headers?: Record<string, string>): Promise<HttpResponse>;
7
+ private createResponse;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { HttpClient, HttpResponse } from '@internal/domain/identity/repository';
2
+ export declare class NodeHttpClient implements HttpClient {
3
+ post(url: string, data: any, headers?: Record<string, string>): Promise<HttpResponse>;
4
+ postForm(url: string, data: Record<string, string>): Promise<HttpResponse>;
5
+ postMultipart(url: string, data: Record<string, any>, headers?: Record<string, string>): Promise<HttpResponse>;
6
+ get(url: string, headers?: Record<string, string>): Promise<HttpResponse>;
7
+ }
@@ -0,0 +1,6 @@
1
+ export { NodeWorkspaceRepository, NodeProjectRepository, } from './persistence/node-workspace-repository';
2
+ export { NodeSnapshotRepository } from './persistence/node-snapshot-repository';
3
+ export { NodeFileSystemRepository } from './persistence/node-file-system';
4
+ export { NodeManifestRepository } from './persistence/node-manifest-repository';
5
+ export { NodeHttpClient } from './http/node-http-client';
6
+ export { NetlifyHttpClient } from './http/netlify-http-client';
@@ -0,0 +1,30 @@
1
+ import { FileSystemRepository, FolderScanResult, FolderStructure, SymlinkResult } from '@internal/domain/workspace/repository/file-system';
2
+ export declare class NodeFileSystemRepository implements FileSystemRepository {
3
+ exists(filePath: string): Promise<boolean>;
4
+ isDirectory(filePath: string): Promise<boolean>;
5
+ isFile(filePath: string): Promise<boolean>;
6
+ readDirectory(dirPath: string): Promise<FolderScanResult[]>;
7
+ scanFolderStructure(dirPath: string): Promise<FolderStructure>;
8
+ createSymlink(source: string, target: string): Promise<SymlinkResult>;
9
+ createSymlinks(links: Array<{
10
+ source: string;
11
+ target: string;
12
+ }>): Promise<SymlinkResult[]>;
13
+ removeSymlink(filePath: string): Promise<void>;
14
+ isSymlink(filePath: string): Promise<boolean>;
15
+ readSymlink(filePath: string): Promise<string>;
16
+ createDirectory(dirPath: string, recursive?: boolean): Promise<void>;
17
+ remove(filePath: string, recursive?: boolean): Promise<void>;
18
+ stat(filePath: string): Promise<{
19
+ isFile(): boolean;
20
+ isDirectory(): boolean;
21
+ isSymbolicLink(): boolean;
22
+ size: number;
23
+ mtime: Date;
24
+ }>;
25
+ copyFile(source: string, target: string): Promise<void>;
26
+ resolvePath(filePath: string): Promise<string>;
27
+ basename(filePath: string): string;
28
+ dirname(filePath: string): string;
29
+ join(...paths: string[]): string;
30
+ }
@@ -0,0 +1,11 @@
1
+ import { ManifestRepository } from '@internal/domain/publish';
2
+ import { PublishManifest } from '@internal/domain/publish';
3
+ export declare class NodeManifestRepository implements ManifestRepository {
4
+ loadManifest(projectPath: string, publishMethod: 'ftp' | 'netlify' | 'mdfriday'): Promise<PublishManifest | null>;
5
+ saveManifest(projectPath: string, manifest: PublishManifest): Promise<void>;
6
+ generateManifest(projectId: string, publicDir: string, publishMethod: 'ftp' | 'netlify' | 'mdfriday', remoteConfig?: any): Promise<PublishManifest>;
7
+ deleteManifest(projectPath: string, publishMethod: 'ftp' | 'netlify' | 'mdfriday'): Promise<boolean>;
8
+ private getManifestPath;
9
+ private scanDirectory;
10
+ private calculateFileHash;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { SnapshotRepository } from '@internal/domain/workspace/repository';
2
+ import { SnapshotMetadata } from '@internal/domain/workspace/type';
3
+ export declare class NodeSnapshotRepository implements SnapshotRepository {
4
+ createSnapshot(projectPath: string, snapshotId: string, outputDir: string): Promise<SnapshotMetadata>;
5
+ listSnapshots(projectPath: string): Promise<SnapshotMetadata[]>;
6
+ getSnapshot(projectPath: string, snapshotId: string): Promise<SnapshotMetadata>;
7
+ restoreSnapshot(projectPath: string, snapshotId: string, outputDir: string): Promise<void>;
8
+ deleteSnapshot(projectPath: string, snapshotId: string): Promise<void>;
9
+ private copyDirectory;
10
+ private getDirectorySize;
11
+ private countFiles;
12
+ }
@@ -0,0 +1,20 @@
1
+ import { WorkspaceRepository, ProjectRepository, WorkspaceMetadataData, ProjectMetadataData } from '@internal/domain/workspace/repository';
2
+ import { ProjectRegistry } from '@internal/domain/workspace/type';
3
+ export declare class NodeWorkspaceRepository implements WorkspaceRepository {
4
+ isWorkspace(workspacePath: string): Promise<boolean>;
5
+ initWorkspaceStructure(workspacePath: string, modulesDir: string, projectsDir: string): Promise<void>;
6
+ saveWorkspaceMetadata(workspacePath: string, metadata: WorkspaceMetadataData): Promise<void>;
7
+ loadWorkspaceMetadata(workspacePath: string): Promise<WorkspaceMetadataData>;
8
+ saveProjectRegistry(workspacePath: string, registry: ProjectRegistry): Promise<void>;
9
+ loadProjectRegistry(workspacePath: string): Promise<ProjectRegistry>;
10
+ }
11
+ export declare class NodeProjectRepository implements ProjectRepository {
12
+ isProject(projectPath: string): Promise<boolean>;
13
+ initProjectStructure(projectPath: string, contentDir: string, staticDir: string, publishDir: string): Promise<void>;
14
+ saveProjectMetadata(projectPath: string, metadata: ProjectMetadataData): Promise<void>;
15
+ loadProjectMetadata(projectPath: string): Promise<ProjectMetadataData>;
16
+ saveProjectConfig(projectPath: string, config: any): Promise<void>;
17
+ createSampleContent(contentPath: string, content: string): Promise<void>;
18
+ deleteProjectFiles(projectPath: string): Promise<void>;
19
+ deleteProjectDirectory(projectPath: string): Promise<void>;
20
+ }
@@ -0,0 +1,121 @@
1
+ import { Command, CommandResult } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class AuthLoginCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
9
+ }
10
+ export declare class AuthRegisterCommand implements Command {
11
+ private workspaceAppService;
12
+ name: string;
13
+ description: string;
14
+ constructor(workspaceAppService: WorkspaceAppService);
15
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
16
+ }
17
+ export declare class AuthLogoutCommand implements Command {
18
+ private workspaceAppService;
19
+ name: string;
20
+ description: string;
21
+ constructor(workspaceAppService: WorkspaceAppService);
22
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
23
+ }
24
+ export declare class AuthStatusCommand implements Command {
25
+ private workspaceAppService;
26
+ name: string;
27
+ description: string;
28
+ constructor(workspaceAppService: WorkspaceAppService);
29
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
30
+ }
31
+ export declare class AuthConfigCommand implements Command {
32
+ private workspaceAppService;
33
+ name: string;
34
+ description: string;
35
+ constructor(workspaceAppService: WorkspaceAppService);
36
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
37
+ }
38
+ export declare class LicenseTrialCommand implements Command {
39
+ private workspaceAppService;
40
+ name: string;
41
+ description: string;
42
+ constructor(workspaceAppService: WorkspaceAppService);
43
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
44
+ }
45
+ export declare class LicenseLoginCommand implements Command {
46
+ private workspaceAppService;
47
+ name: string;
48
+ description: string;
49
+ constructor(workspaceAppService: WorkspaceAppService);
50
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
51
+ }
52
+ export declare class LicenseActivateCommand implements Command {
53
+ private workspaceAppService;
54
+ name: string;
55
+ description: string;
56
+ constructor(workspaceAppService: WorkspaceAppService);
57
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
58
+ }
59
+ export declare class LicenseInfoCommand implements Command {
60
+ private workspaceAppService;
61
+ name: string;
62
+ description: string;
63
+ constructor(workspaceAppService: WorkspaceAppService);
64
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
65
+ }
66
+ export declare class LicenseUsageCommand implements Command {
67
+ private workspaceAppService;
68
+ name: string;
69
+ description: string;
70
+ constructor(workspaceAppService: WorkspaceAppService);
71
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
72
+ }
73
+ export declare class LicenseResetCommand implements Command {
74
+ private workspaceAppService;
75
+ name: string;
76
+ description: string;
77
+ constructor(workspaceAppService: WorkspaceAppService);
78
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
79
+ }
80
+ export declare class DomainInfoCommand implements Command {
81
+ private workspaceAppService;
82
+ name: string;
83
+ description: string;
84
+ constructor(workspaceAppService: WorkspaceAppService);
85
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
86
+ }
87
+ export declare class SubdomainCheckCommand implements Command {
88
+ private workspaceAppService;
89
+ name: string;
90
+ description: string;
91
+ constructor(workspaceAppService: WorkspaceAppService);
92
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
93
+ }
94
+ export declare class SubdomainUpdateCommand implements Command {
95
+ private workspaceAppService;
96
+ name: string;
97
+ description: string;
98
+ constructor(workspaceAppService: WorkspaceAppService);
99
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
100
+ }
101
+ export declare class CustomDomainCheckCommand implements Command {
102
+ private workspaceAppService;
103
+ name: string;
104
+ description: string;
105
+ constructor(workspaceAppService: WorkspaceAppService);
106
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
107
+ }
108
+ export declare class CustomDomainAddCommand implements Command {
109
+ private workspaceAppService;
110
+ name: string;
111
+ description: string;
112
+ constructor(workspaceAppService: WorkspaceAppService);
113
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
114
+ }
115
+ export declare class DomainHttpsCommand implements Command {
116
+ private workspaceAppService;
117
+ name: string;
118
+ description: string;
119
+ constructor(workspaceAppService: WorkspaceAppService);
120
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
121
+ }
@@ -0,0 +1,10 @@
1
+ import { Command, CommandResult, BuildOptions } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class BuildCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(_args: string[], options: BuildOptions): Promise<CommandResult>;
9
+ private cleanOutputDir;
10
+ }
@@ -0,0 +1,42 @@
1
+ import { Command, CommandResult } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class ConfigGetCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
9
+ private formatValue;
10
+ }
11
+ export declare class ConfigSetCommand implements Command {
12
+ private workspaceAppService;
13
+ name: string;
14
+ description: string;
15
+ constructor(workspaceAppService: WorkspaceAppService);
16
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
17
+ private parseValue;
18
+ private formatValue;
19
+ }
20
+ export declare class ConfigListCommand implements Command {
21
+ private workspaceAppService;
22
+ name: string;
23
+ description: string;
24
+ constructor(workspaceAppService: WorkspaceAppService);
25
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
26
+ private formatConfig;
27
+ private formatObject;
28
+ }
29
+ export declare class ConfigUnsetCommand implements Command {
30
+ private workspaceAppService;
31
+ name: string;
32
+ description: string;
33
+ constructor(workspaceAppService: WorkspaceAppService);
34
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
35
+ }
36
+ export declare class ConfigEditCommand implements Command {
37
+ private workspaceAppService;
38
+ name: string;
39
+ description: string;
40
+ constructor(workspaceAppService: WorkspaceAppService);
41
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
42
+ }
@@ -0,0 +1,6 @@
1
+ export * from './workspace';
2
+ export * from './project';
3
+ export * from './build';
4
+ export * from './serve';
5
+ export * from './snapshot';
6
+ export * from './auth';
@@ -0,0 +1,36 @@
1
+ import { Command, CommandResult, ProjectCreateOptions } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class ProjectNewCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(args: string[], options: ProjectCreateOptions): Promise<CommandResult>;
9
+ }
10
+ export declare class ProjectListCommand implements Command {
11
+ private workspaceAppService;
12
+ name: string;
13
+ description: string;
14
+ constructor(workspaceAppService: WorkspaceAppService);
15
+ execute(_args: string[], options: {
16
+ format?: 'table' | 'json';
17
+ status?: 'active' | 'archived';
18
+ }): Promise<CommandResult>;
19
+ }
20
+ export declare class ProjectShowCommand implements Command {
21
+ private workspaceAppService;
22
+ name: string;
23
+ description: string;
24
+ constructor(workspaceAppService: WorkspaceAppService);
25
+ execute(args: string[], _options: Record<string, any>): Promise<CommandResult>;
26
+ }
27
+ export declare class ProjectDeleteCommand implements Command {
28
+ private workspaceAppService;
29
+ name: string;
30
+ description: string;
31
+ constructor(workspaceAppService: WorkspaceAppService);
32
+ execute(args: string[], options: {
33
+ force?: boolean;
34
+ keepFiles?: boolean;
35
+ }): Promise<CommandResult>;
36
+ }
@@ -0,0 +1,27 @@
1
+ import { Command, CommandResult } from '../types';
2
+ import { PublishAppService } from '@internal/application/publish';
3
+ import { WorkspaceAppService } from '@internal/application/workspace';
4
+ export interface PublishOptions {
5
+ project?: string;
6
+ force?: boolean;
7
+ verbose?: boolean;
8
+ host?: string;
9
+ port?: number;
10
+ username?: string;
11
+ password?: string;
12
+ remotePath?: string;
13
+ secure?: boolean;
14
+ siteId?: string;
15
+ token?: string;
16
+ type?: 'share' | 'sub' | 'custom' | 'enterprise';
17
+ licenseKey?: string;
18
+ }
19
+ export declare class PublishCommand implements Command {
20
+ private publishService;
21
+ private workspaceAppService;
22
+ name: string;
23
+ description: string;
24
+ constructor(publishService: PublishAppService, workspaceAppService: WorkspaceAppService);
25
+ execute(args: string[], options: PublishOptions): Promise<CommandResult>;
26
+ private parseConfigOverride;
27
+ }
@@ -0,0 +1,16 @@
1
+ import { Command, CommandResult, ServeOptions } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ import { PublishAppService } from '@internal/application/publish';
4
+ export declare class ServeCommand implements Command {
5
+ private workspaceAppService;
6
+ private publishAppService?;
7
+ name: string;
8
+ description: string;
9
+ private coordinator?;
10
+ private publishTimer?;
11
+ constructor(workspaceAppService: WorkspaceAppService, publishAppService?: PublishAppService | undefined);
12
+ execute(_args: string[], options: ServeOptions): Promise<CommandResult>;
13
+ private openBrowser;
14
+ cleanup(): Promise<void>;
15
+ private autoPublish;
16
+ }
@@ -0,0 +1,25 @@
1
+ import { Command, CommandResult } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class SnapshotListCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(_args: string[], options: Record<string, any>): Promise<CommandResult>;
9
+ private formatBytes;
10
+ }
11
+ export declare class SnapshotRestoreCommand implements Command {
12
+ private workspaceAppService;
13
+ name: string;
14
+ description: string;
15
+ constructor(workspaceAppService: WorkspaceAppService);
16
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
17
+ private formatBytes;
18
+ }
19
+ export declare class SnapshotDeleteCommand implements Command {
20
+ private workspaceAppService;
21
+ name: string;
22
+ description: string;
23
+ constructor(workspaceAppService: WorkspaceAppService);
24
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
25
+ }
@@ -0,0 +1,16 @@
1
+ import { Command, CommandResult, WorkspaceInitOptions } from '../types';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare class WorkspaceInitCommand implements Command {
4
+ private workspaceAppService;
5
+ name: string;
6
+ description: string;
7
+ constructor(workspaceAppService: WorkspaceAppService);
8
+ execute(args: string[], options: WorkspaceInitOptions): Promise<CommandResult>;
9
+ }
10
+ export declare class WorkspaceInfoCommand implements Command {
11
+ private workspaceAppService;
12
+ name: string;
13
+ description: string;
14
+ constructor(workspaceAppService: WorkspaceAppService);
15
+ execute(_args: string[], _options: Record<string, any>): Promise<CommandResult>;
16
+ }
@@ -0,0 +1,7 @@
1
+ import { WorkspaceFactory } from '@internal/domain/workspace';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ import { IdentityAppService } from '@internal/application/identity';
4
+ export declare function createWorkspaceFactory(): WorkspaceFactory;
5
+ export declare function createWorkspaceAppService(): WorkspaceAppService;
6
+ export declare function createIdentityService(projectPath?: string): Promise<IdentityAppService>;
7
+ export declare function createPublishAppService(): any;
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { CLIRouter } from './router';
3
+ declare function main(): Promise<void>;
4
+ export { CLIRouter, main };
@@ -0,0 +1,27 @@
1
+ import { Command, CommandResult } from './types';
2
+ export declare class CommandRegistry {
3
+ private commands;
4
+ private initialized;
5
+ constructor();
6
+ waitForInitialization(): Promise<void>;
7
+ private registerCommands;
8
+ private register;
9
+ get(name: string): Command | undefined;
10
+ getAll(): Command[];
11
+ has(name: string): boolean;
12
+ }
13
+ export declare class CLIRouter {
14
+ private registry;
15
+ constructor();
16
+ parseArgs(argv: string[]): {
17
+ command: string;
18
+ subcommand?: string;
19
+ args: string[];
20
+ options: Record<string, any>;
21
+ };
22
+ private isSubcommand;
23
+ private camelCase;
24
+ route(argv: string[]): Promise<CommandResult>;
25
+ private showHelp;
26
+ private showVersion;
27
+ }
@@ -0,0 +1,52 @@
1
+ export interface CommandResult {
2
+ success: boolean;
3
+ message?: string;
4
+ error?: Error;
5
+ data?: any;
6
+ }
7
+ export interface Command {
8
+ name: string;
9
+ description: string;
10
+ execute(args: string[], options: Record<string, any>): Promise<CommandResult>;
11
+ }
12
+ export interface CommandOptions {
13
+ [key: string]: any;
14
+ }
15
+ export interface WorkspaceInitOptions {
16
+ name?: string;
17
+ modulesDir?: string;
18
+ projectsDir?: string;
19
+ }
20
+ export interface ProjectCreateOptions {
21
+ theme?: string;
22
+ language?: string;
23
+ path?: string;
24
+ source?: string;
25
+ sourceFile?: string;
26
+ noSample?: boolean;
27
+ interactive?: boolean;
28
+ }
29
+ export interface BuildOptions {
30
+ project?: string;
31
+ source?: string;
32
+ destination?: string;
33
+ modulesDir?: string;
34
+ contentDirs?: string[];
35
+ parallel?: boolean;
36
+ watch?: boolean;
37
+ clean?: boolean;
38
+ snapshot?: boolean;
39
+ snapshotName?: string;
40
+ }
41
+ export interface ServeOptions {
42
+ project?: string;
43
+ port?: number;
44
+ host?: string;
45
+ open?: boolean;
46
+ livereload?: boolean;
47
+ livereloadPort?: number;
48
+ publish?: 'ftp' | 'netlify' | 'mdfriday';
49
+ publishDelay?: number;
50
+ type?: 'share' | 'sub' | 'custom' | 'enterprise';
51
+ licenseKey?: string;
52
+ }
@@ -0,0 +1,4 @@
1
+ import { WorkspaceFactory } from '@internal/domain/workspace';
2
+ import { WorkspaceAppService } from '@internal/application/workspace';
3
+ export declare function createWorkspaceFactory(): WorkspaceFactory;
4
+ export declare function createWorkspaceAppService(): WorkspaceAppService;
@@ -0,0 +1,2 @@
1
+ export { ObsidianWorkspaceService, createObsidianWorkspaceService, ObsidianWorkspaceInitOptions, ObsidianWorkspaceInfo, ObsidianWorkspaceResult, } from './workspace';
2
+ export { createWorkspaceAppService, createWorkspaceFactory, } from './container';
@@ -0,0 +1,38 @@
1
+ import { WorkspaceAppService } from '@internal/application/workspace';
2
+ import { WorkspaceFactory } from '@internal/domain/workspace';
3
+ export interface ObsidianWorkspaceInitOptions {
4
+ name?: string;
5
+ modulesDir?: string;
6
+ projectsDir?: string;
7
+ }
8
+ export interface ObsidianWorkspaceInfo {
9
+ id: string;
10
+ name: string;
11
+ path: string;
12
+ createdAt: string;
13
+ modulesDir: string;
14
+ projectsDir: string;
15
+ projectCount: number;
16
+ projects: Array<{
17
+ id: string;
18
+ name: string;
19
+ path: string;
20
+ createdAt: string;
21
+ lastBuild?: string;
22
+ }>;
23
+ }
24
+ export interface ObsidianWorkspaceResult<T = any> {
25
+ success: boolean;
26
+ message?: string;
27
+ data?: T;
28
+ error?: string;
29
+ }
30
+ export declare class ObsidianWorkspaceService {
31
+ private workspaceAppService;
32
+ private workspaceFactory;
33
+ constructor(workspaceAppService: WorkspaceAppService, workspaceFactory: WorkspaceFactory);
34
+ initWorkspace(workspacePath: string, options?: ObsidianWorkspaceInitOptions): Promise<ObsidianWorkspaceResult<ObsidianWorkspaceInfo>>;
35
+ getWorkspaceInfo(workspacePath: string): Promise<ObsidianWorkspaceResult<ObsidianWorkspaceInfo>>;
36
+ workspaceExists(workspacePath: string): Promise<ObsidianWorkspaceResult<boolean>>;
37
+ }
38
+ export declare function createObsidianWorkspaceService(): ObsidianWorkspaceService;
@@ -0,0 +1,20 @@
1
+ export interface ProgressBarOptions {
2
+ width?: number;
3
+ showPercentage?: boolean;
4
+ showMessage?: boolean;
5
+ clearOnComplete?: boolean;
6
+ }
7
+ export declare class ProgressBar {
8
+ private width;
9
+ private showPercentage;
10
+ private showMessage;
11
+ private clearOnComplete;
12
+ private lastOutput;
13
+ constructor(options?: ProgressBarOptions);
14
+ update(percentage: number, message?: string): void;
15
+ complete(message?: string): void;
16
+ clear(): void;
17
+ static create(percentage: number, width?: number): string;
18
+ }
19
+ export declare function formatBytes(bytes: number): string;
20
+ export declare function formatDuration(ms: number): string;