Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 374469e37e | |||
| 9039613f7a | |||
| 4d13fac9f1 | |||
| 42209d235d |
13
changelog.md
13
changelog.md
@@ -1,5 +1,18 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-11-21 - 1.4.0 - feat(registrystorage)
|
||||
Add deleteMavenMetadata to RegistryStorage and update Maven DELETE test to expect 204 No Content
|
||||
|
||||
- Add deleteMavenMetadata(groupId, artifactId) to RegistryStorage to remove maven-metadata.xml.
|
||||
- Update Maven test to assert 204 No Content for DELETE responses (previously expected 200).
|
||||
|
||||
## 2025-11-21 - 1.3.1 - fix(maven)
|
||||
Pass request path to Maven checksum handler so checksum files are resolved correctly
|
||||
|
||||
- Call handleChecksumRequest with the full request path from MavenRegistry.handleRequest
|
||||
- Allows getChecksum to extract the checksum filename from the URL and fetch the correct checksum file from storage
|
||||
- Fixes 404s when requesting artifact checksum files (md5, sha1, sha256, sha512)
|
||||
|
||||
## 2025-11-21 - 1.3.0 - feat(core)
|
||||
Add Cargo and Composer registries with storage, auth and helpers
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@push.rocks/smartregistry",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"private": false,
|
||||
"description": "a registry for npm modules and oci images",
|
||||
"main": "dist_ts/index.js",
|
||||
|
||||
@@ -30,6 +30,14 @@ tap.test('Maven: should create registry instance', async () => {
|
||||
|
||||
expect(registry).toBeInstanceOf(SmartRegistry);
|
||||
expect(mavenToken).toBeTypeOf('string');
|
||||
|
||||
// Clean up any existing metadata from previous test runs
|
||||
const storage = registry.getStorage();
|
||||
try {
|
||||
await storage.deleteMavenMetadata(testGroupId, testArtifactId);
|
||||
} catch (error) {
|
||||
// Ignore error if metadata doesn't exist
|
||||
}
|
||||
});
|
||||
|
||||
tap.test('Maven: should upload POM file (PUT /{groupPath}/{artifactId}/{version}/*.pom)', async () => {
|
||||
@@ -336,7 +344,7 @@ tap.test('Maven: should delete an artifact (DELETE)', async () => {
|
||||
query: {},
|
||||
});
|
||||
|
||||
expect(response.status).toEqual(200);
|
||||
expect(response.status).toEqual(204); // 204 No Content is correct for DELETE
|
||||
|
||||
// Verify artifact was deleted
|
||||
const getResponse = await registry.handleRequest({
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartregistry',
|
||||
version: '1.3.0',
|
||||
version: '1.4.0',
|
||||
description: 'a registry for npm modules and oci images'
|
||||
}
|
||||
|
||||
@@ -348,6 +348,17 @@ export class RegistryStorage implements IStorageBackend {
|
||||
return this.putObject(path, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Maven metadata (maven-metadata.xml)
|
||||
*/
|
||||
public async deleteMavenMetadata(
|
||||
groupId: string,
|
||||
artifactId: string
|
||||
): Promise<void> {
|
||||
const path = this.getMavenMetadataPath(groupId, artifactId);
|
||||
return this.deleteObject(path);
|
||||
}
|
||||
|
||||
/**
|
||||
* List Maven versions for an artifact
|
||||
* Returns all version directories under the artifact path
|
||||
|
||||
@@ -85,7 +85,7 @@ export class MavenRegistry extends BaseRegistry {
|
||||
// Check if it's a checksum file
|
||||
if (coordinate.extension === 'md5' || coordinate.extension === 'sha1' ||
|
||||
coordinate.extension === 'sha256' || coordinate.extension === 'sha512') {
|
||||
return this.handleChecksumRequest(context.method, coordinate, token);
|
||||
return this.handleChecksumRequest(context.method, coordinate, token, path);
|
||||
}
|
||||
|
||||
// Handle artifact requests (JAR, POM, WAR, etc.)
|
||||
|
||||
Reference in New Issue
Block a user