@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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/cargo/classes.cargoregistry.d.ts +79 -0
- package/dist_ts/cargo/classes.cargoregistry.js +490 -0
- package/dist_ts/cargo/index.d.ts +5 -0
- package/dist_ts/cargo/index.js +6 -0
- package/dist_ts/cargo/interfaces.cargo.d.ts +160 -0
- package/dist_ts/cargo/interfaces.cargo.js +6 -0
- package/dist_ts/classes.smartregistry.d.ts +2 -2
- package/dist_ts/classes.smartregistry.js +50 -2
- package/dist_ts/composer/classes.composerregistry.d.ts +26 -0
- package/dist_ts/composer/classes.composerregistry.js +366 -0
- package/dist_ts/composer/helpers.composer.d.ts +35 -0
- package/dist_ts/composer/helpers.composer.js +120 -0
- package/dist_ts/composer/index.d.ts +7 -0
- package/dist_ts/composer/index.js +8 -0
- package/dist_ts/composer/interfaces.composer.d.ts +102 -0
- package/dist_ts/composer/interfaces.composer.js +6 -0
- package/dist_ts/core/classes.authmanager.d.ts +46 -1
- package/dist_ts/core/classes.authmanager.js +121 -12
- package/dist_ts/core/classes.registrystorage.d.ts +103 -0
- package/dist_ts/core/classes.registrystorage.js +253 -1
- package/dist_ts/core/interfaces.core.d.ts +4 -1
- package/dist_ts/index.d.ts +4 -1
- package/dist_ts/index.js +8 -2
- package/dist_ts/maven/classes.mavenregistry.d.ts +35 -0
- package/dist_ts/maven/classes.mavenregistry.js +407 -0
- package/dist_ts/maven/helpers.maven.d.ts +68 -0
- package/dist_ts/maven/helpers.maven.js +286 -0
- package/dist_ts/maven/index.d.ts +6 -0
- package/dist_ts/maven/index.js +7 -0
- package/dist_ts/maven/interfaces.maven.d.ts +116 -0
- package/dist_ts/maven/interfaces.maven.js +6 -0
- package/package.json +3 -2
- package/readme.md +288 -14
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/cargo/classes.cargoregistry.ts +604 -0
- package/ts/cargo/index.ts +6 -0
- package/ts/cargo/interfaces.cargo.ts +169 -0
- package/ts/classes.smartregistry.ts +56 -2
- package/ts/composer/classes.composerregistry.ts +475 -0
- package/ts/composer/helpers.composer.ts +139 -0
- package/ts/composer/index.ts +8 -0
- package/ts/composer/interfaces.composer.ts +111 -0
- package/ts/core/classes.authmanager.ts +145 -12
- package/ts/core/classes.registrystorage.ts +334 -0
- package/ts/core/interfaces.core.ts +4 -1
- package/ts/index.ts +10 -1
- package/ts/maven/classes.mavenregistry.ts +580 -0
- package/ts/maven/helpers.maven.ts +346 -0
- package/ts/maven/index.ts +7 -0
- 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
|
|
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
|
|
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,
|
|
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
|
+
}
|