@push.rocks/smartregistry 1.1.1 → 1.4.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.
Files changed (51) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/cargo/classes.cargoregistry.d.ts +79 -0
  3. package/dist_ts/cargo/classes.cargoregistry.js +490 -0
  4. package/dist_ts/cargo/index.d.ts +5 -0
  5. package/dist_ts/cargo/index.js +6 -0
  6. package/dist_ts/cargo/interfaces.cargo.d.ts +160 -0
  7. package/dist_ts/cargo/interfaces.cargo.js +6 -0
  8. package/dist_ts/classes.smartregistry.d.ts +2 -2
  9. package/dist_ts/classes.smartregistry.js +50 -2
  10. package/dist_ts/composer/classes.composerregistry.d.ts +26 -0
  11. package/dist_ts/composer/classes.composerregistry.js +366 -0
  12. package/dist_ts/composer/helpers.composer.d.ts +35 -0
  13. package/dist_ts/composer/helpers.composer.js +120 -0
  14. package/dist_ts/composer/index.d.ts +7 -0
  15. package/dist_ts/composer/index.js +8 -0
  16. package/dist_ts/composer/interfaces.composer.d.ts +102 -0
  17. package/dist_ts/composer/interfaces.composer.js +6 -0
  18. package/dist_ts/core/classes.authmanager.d.ts +46 -1
  19. package/dist_ts/core/classes.authmanager.js +121 -12
  20. package/dist_ts/core/classes.registrystorage.d.ts +103 -0
  21. package/dist_ts/core/classes.registrystorage.js +253 -1
  22. package/dist_ts/core/interfaces.core.d.ts +4 -1
  23. package/dist_ts/index.d.ts +4 -1
  24. package/dist_ts/index.js +8 -2
  25. package/dist_ts/maven/classes.mavenregistry.d.ts +35 -0
  26. package/dist_ts/maven/classes.mavenregistry.js +407 -0
  27. package/dist_ts/maven/helpers.maven.d.ts +68 -0
  28. package/dist_ts/maven/helpers.maven.js +286 -0
  29. package/dist_ts/maven/index.d.ts +6 -0
  30. package/dist_ts/maven/index.js +7 -0
  31. package/dist_ts/maven/interfaces.maven.d.ts +116 -0
  32. package/dist_ts/maven/interfaces.maven.js +6 -0
  33. package/package.json +3 -2
  34. package/readme.md +288 -14
  35. package/ts/00_commitinfo_data.ts +1 -1
  36. package/ts/cargo/classes.cargoregistry.ts +604 -0
  37. package/ts/cargo/index.ts +6 -0
  38. package/ts/cargo/interfaces.cargo.ts +169 -0
  39. package/ts/classes.smartregistry.ts +56 -2
  40. package/ts/composer/classes.composerregistry.ts +475 -0
  41. package/ts/composer/helpers.composer.ts +139 -0
  42. package/ts/composer/index.ts +8 -0
  43. package/ts/composer/interfaces.composer.ts +111 -0
  44. package/ts/core/classes.authmanager.ts +145 -12
  45. package/ts/core/classes.registrystorage.ts +334 -0
  46. package/ts/core/interfaces.core.ts +4 -1
  47. package/ts/index.ts +10 -1
  48. package/ts/maven/classes.mavenregistry.ts +580 -0
  49. package/ts/maven/helpers.maven.ts +346 -0
  50. package/ts/maven/index.ts +7 -0
  51. package/ts/maven/interfaces.maven.ts +127 -0
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Cargo/crates.io registry type definitions
3
+ * Based on: https://doc.rust-lang.org/cargo/reference/registry-index.html
4
+ */
5
+ /**
6
+ * Dependency specification in Cargo index
7
+ */
8
+ export interface ICargoDepend {
9
+ /** Dependency package name */
10
+ name: string;
11
+ /** Version requirement (e.g., "^0.6", ">=1.0.0") */
12
+ req: string;
13
+ /** Optional features to enable */
14
+ features: string[];
15
+ /** Whether this dependency is optional */
16
+ optional: boolean;
17
+ /** Whether to include default features */
18
+ default_features: boolean;
19
+ /** Platform-specific target (e.g., "cfg(unix)") */
20
+ target: string | null;
21
+ /** Dependency kind: normal, dev, or build */
22
+ kind: 'normal' | 'dev' | 'build';
23
+ /** Alternative registry URL */
24
+ registry: string | null;
25
+ /** Rename to different package name */
26
+ package: string | null;
27
+ }
28
+ /**
29
+ * Single version entry in the Cargo index file
30
+ * Each line in the index file is one of these as JSON
31
+ */
32
+ export interface ICargoIndexEntry {
33
+ /** Crate name */
34
+ name: string;
35
+ /** Version string */
36
+ vers: string;
37
+ /** Dependencies */
38
+ deps: ICargoDepend[];
39
+ /** SHA256 checksum of the .crate file (hex) */
40
+ cksum: string;
41
+ /** Features (legacy format) */
42
+ features: Record<string, string[]>;
43
+ /** Features (extended format for newer Cargo) */
44
+ features2?: Record<string, string[]>;
45
+ /** Whether this version is yanked (deprecated but not deleted) */
46
+ yanked: boolean;
47
+ /** Optional native library link */
48
+ links?: string | null;
49
+ /** Index format version (2 is current) */
50
+ v?: number;
51
+ /** Minimum Rust version required */
52
+ rust_version?: string;
53
+ }
54
+ /**
55
+ * Metadata sent during crate publication
56
+ */
57
+ export interface ICargoPublishMetadata {
58
+ /** Crate name */
59
+ name: string;
60
+ /** Version string */
61
+ vers: string;
62
+ /** Dependencies */
63
+ deps: ICargoDepend[];
64
+ /** Features */
65
+ features: Record<string, string[]>;
66
+ /** Authors */
67
+ authors: string[];
68
+ /** Short description */
69
+ description?: string;
70
+ /** Documentation URL */
71
+ documentation?: string;
72
+ /** Homepage URL */
73
+ homepage?: string;
74
+ /** README content */
75
+ readme?: string;
76
+ /** README file path */
77
+ readme_file?: string;
78
+ /** Keywords for search */
79
+ keywords?: string[];
80
+ /** Categories */
81
+ categories?: string[];
82
+ /** License identifier (SPDX) */
83
+ license?: string;
84
+ /** License file path */
85
+ license_file?: string;
86
+ /** Repository URL */
87
+ repository?: string;
88
+ /** Badges */
89
+ badges?: Record<string, any>;
90
+ /** Native library link */
91
+ links?: string | null;
92
+ /** Minimum Rust version */
93
+ rust_version?: string;
94
+ }
95
+ /**
96
+ * Registry configuration (config.json)
97
+ * Required for sparse protocol support
98
+ */
99
+ export interface ICargoConfig {
100
+ /** Download URL template */
101
+ dl: string;
102
+ /** API base URL */
103
+ api: string;
104
+ /** Whether authentication is required for downloads */
105
+ 'auth-required'?: boolean;
106
+ }
107
+ /**
108
+ * Search result for a single crate
109
+ */
110
+ export interface ICargoSearchResult {
111
+ /** Crate name */
112
+ name: string;
113
+ /** Latest/maximum version */
114
+ max_version: string;
115
+ /** Description */
116
+ description: string;
117
+ }
118
+ /**
119
+ * Search response structure
120
+ */
121
+ export interface ICargoSearchResponse {
122
+ /** Array of matching crates */
123
+ crates: ICargoSearchResult[];
124
+ /** Metadata about results */
125
+ meta: {
126
+ /** Total number of results */
127
+ total: number;
128
+ };
129
+ }
130
+ /**
131
+ * Error response structure
132
+ */
133
+ export interface ICargoError {
134
+ /** Array of error details */
135
+ errors: Array<{
136
+ /** Error message */
137
+ detail: string;
138
+ }>;
139
+ }
140
+ /**
141
+ * Publish success response
142
+ */
143
+ export interface ICargoPublishResponse {
144
+ /** Warnings from validation */
145
+ warnings: {
146
+ /** Invalid categories */
147
+ invalid_categories: string[];
148
+ /** Invalid badges */
149
+ invalid_badges: string[];
150
+ /** Other warnings */
151
+ other: string[];
152
+ };
153
+ }
154
+ /**
155
+ * Yank/Unyank response
156
+ */
157
+ export interface ICargoYankResponse {
158
+ /** Success indicator */
159
+ ok: boolean;
160
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Cargo/crates.io registry type definitions
3
+ * Based on: https://doc.rust-lang.org/cargo/reference/registry-index.html
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5jYXJnby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NhcmdvL2ludGVyZmFjZXMuY2FyZ28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIn0=
@@ -4,7 +4,7 @@ import { BaseRegistry } from './core/classes.baseregistry.js';
4
4
  import type { IRegistryConfig, IRequestContext, IResponse } from './core/interfaces.core.js';
5
5
  /**
6
6
  * Main registry orchestrator
7
- * Routes requests to appropriate protocol handlers (OCI or NPM)
7
+ * Routes requests to appropriate protocol handlers (OCI, NPM, Maven, Cargo, or Composer)
8
8
  */
9
9
  export declare class SmartRegistry {
10
10
  private storage;
@@ -33,7 +33,7 @@ export declare class SmartRegistry {
33
33
  /**
34
34
  * Get a specific registry handler
35
35
  */
36
- getRegistry(protocol: 'oci' | 'npm'): BaseRegistry | undefined;
36
+ getRegistry(protocol: 'oci' | 'npm' | 'maven' | 'cargo' | 'composer'): BaseRegistry | undefined;
37
37
  /**
38
38
  * Check if the registry is initialized
39
39
  */
@@ -3,9 +3,12 @@ import { AuthManager } from './core/classes.authmanager.js';
3
3
  import { BaseRegistry } from './core/classes.baseregistry.js';
4
4
  import { OciRegistry } from './oci/classes.ociregistry.js';
5
5
  import { NpmRegistry } from './npm/classes.npmregistry.js';
6
+ import { MavenRegistry } from './maven/classes.mavenregistry.js';
7
+ import { CargoRegistry } from './cargo/classes.cargoregistry.js';
8
+ import { ComposerRegistry } from './composer/classes.composerregistry.js';
6
9
  /**
7
10
  * Main registry orchestrator
8
- * Routes requests to appropriate protocol handlers (OCI or NPM)
11
+ * Routes requests to appropriate protocol handlers (OCI, NPM, Maven, Cargo, or Composer)
9
12
  */
10
13
  export class SmartRegistry {
11
14
  storage;
@@ -43,6 +46,30 @@ export class SmartRegistry {
43
46
  await npmRegistry.init();
44
47
  this.registries.set('npm', npmRegistry);
45
48
  }
49
+ // Initialize Maven registry if enabled
50
+ if (this.config.maven?.enabled) {
51
+ const mavenBasePath = this.config.maven.basePath || '/maven';
52
+ const registryUrl = `http://localhost:5000${mavenBasePath}`; // TODO: Make configurable
53
+ const mavenRegistry = new MavenRegistry(this.storage, this.authManager, mavenBasePath, registryUrl);
54
+ await mavenRegistry.init();
55
+ this.registries.set('maven', mavenRegistry);
56
+ }
57
+ // Initialize Cargo registry if enabled
58
+ if (this.config.cargo?.enabled) {
59
+ const cargoBasePath = this.config.cargo.basePath || '/cargo';
60
+ const registryUrl = `http://localhost:5000${cargoBasePath}`; // TODO: Make configurable
61
+ const cargoRegistry = new CargoRegistry(this.storage, this.authManager, cargoBasePath, registryUrl);
62
+ await cargoRegistry.init();
63
+ this.registries.set('cargo', cargoRegistry);
64
+ }
65
+ // Initialize Composer registry if enabled
66
+ if (this.config.composer?.enabled) {
67
+ const composerBasePath = this.config.composer.basePath || '/composer';
68
+ const registryUrl = `http://localhost:5000${composerBasePath}`; // TODO: Make configurable
69
+ const composerRegistry = new ComposerRegistry(this.storage, this.authManager, composerBasePath, registryUrl);
70
+ await composerRegistry.init();
71
+ this.registries.set('composer', composerRegistry);
72
+ }
46
73
  this.initialized = true;
47
74
  }
48
75
  /**
@@ -65,6 +92,27 @@ export class SmartRegistry {
65
92
  return npmRegistry.handleRequest(context);
66
93
  }
67
94
  }
95
+ // Route to Maven registry
96
+ if (this.config.maven?.enabled && path.startsWith(this.config.maven.basePath)) {
97
+ const mavenRegistry = this.registries.get('maven');
98
+ if (mavenRegistry) {
99
+ return mavenRegistry.handleRequest(context);
100
+ }
101
+ }
102
+ // Route to Cargo registry
103
+ if (this.config.cargo?.enabled && path.startsWith(this.config.cargo.basePath)) {
104
+ const cargoRegistry = this.registries.get('cargo');
105
+ if (cargoRegistry) {
106
+ return cargoRegistry.handleRequest(context);
107
+ }
108
+ }
109
+ // Route to Composer registry
110
+ if (this.config.composer?.enabled && path.startsWith(this.config.composer.basePath)) {
111
+ const composerRegistry = this.registries.get('composer');
112
+ if (composerRegistry) {
113
+ return composerRegistry.handleRequest(context);
114
+ }
115
+ }
68
116
  // No matching registry
69
117
  return {
70
118
  status: 404,
@@ -110,4 +158,4 @@ export class SmartRegistry {
110
158
  }
111
159
  }
112
160
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zbWFydHJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5zbWFydHJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDaEIsT0FBTyxDQUFrQjtJQUN6QixXQUFXLENBQWM7SUFDekIsVUFBVSxHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xELE1BQU0sQ0FBa0I7SUFDeEIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVyQyxZQUFZLE1BQXVCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFFN0IscUJBQXFCO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxQiwwQkFBMEI7UUFDMUIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTlCLHFDQUFxQztRQUNyQyxJQUFJLElBQUks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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zbWFydHJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5zbWFydHJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUNoQixPQUFPLENBQWtCO0lBQ3pCLFdBQVcsQ0FBYztJQUN6QixVQUFVLEdBQThCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbEQsTUFBTSxDQUFrQjtJQUN4QixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXJDLFlBQVksTUFBdUI7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUk7UUFDZixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU3QixxQkFBcUI7UUFD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
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Composer Registry Implementation
3
+ * Compliant with Composer v2 repository API
4
+ */
5
+ import { BaseRegistry } from '../core/classes.baseregistry.js';
6
+ import type { RegistryStorage } from '../core/classes.registrystorage.js';
7
+ import type { AuthManager } from '../core/classes.authmanager.js';
8
+ import type { IRequestContext, IResponse, IAuthToken } from '../core/interfaces.core.js';
9
+ export declare class ComposerRegistry extends BaseRegistry {
10
+ private storage;
11
+ private authManager;
12
+ private basePath;
13
+ private registryUrl;
14
+ constructor(storage: RegistryStorage, authManager: AuthManager, basePath?: string, registryUrl?: string);
15
+ init(): Promise<void>;
16
+ getBasePath(): string;
17
+ handleRequest(context: IRequestContext): Promise<IResponse>;
18
+ protected checkPermission(token: IAuthToken | null, resource: string, action: string): Promise<boolean>;
19
+ private handlePackagesJson;
20
+ private handlePackageMetadata;
21
+ private handlePackageList;
22
+ private handlePackageDownload;
23
+ private handlePackageUpload;
24
+ private handlePackageDelete;
25
+ private handleVersionDelete;
26
+ }