package org.carlspring.strongbox.testing.artifact;

import org.carlspring.strongbox.artifact.generator.NpmArtifactGenerator;
import org.carlspring.strongbox.storage.Storage;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import org.apache.maven.model.Repository;
import org.springframework.core.annotation.AliasFor;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * @author Yuri Zaytsev
 *
 */
@Documented
@Retention(RUNTIME)
@Target({ PARAMETER, ANNOTATION_TYPE})
@TestArtifact(generator = NpmArtifactGenerator.class, strategy = NpmArtifactGeneratorStrategy.class)
public @interface NpmTestArtifact
{
    /**
     * {@link Storage} ID.
     */
    @AliasFor(annotation = TestArtifact.class)
    String storageId() default "storage0";

    /**
     * {@link Repository} ID.1
     */
    @AliasFor(annotation = TestArtifact.class)
    String repositoryId() default "releases";

    /**
     * Layout specific artifact URI.
     */
    @AliasFor(annotation = TestArtifact.class)
    String resource() default "";

    /**
     * The {@link org.carlspring.strongbox.artifact.coordinates.NpmArtifactCoordinates} name.
     */
    @AliasFor(annotation = TestArtifact.class)
    String id() default "";

    /**
     * The {@link org.carlspring.strongbox.artifact.coordinates.NpmArtifactCoordinates} version.
     */
    @AliasFor(annotation = TestArtifact.class)
    String[] versions() default {};

    /**
     * The {@link org.carlspring.strongbox.artifact.coordinates.NpmArtifactCoordinates} extension.
     */
    String extension() default "tgz";

    /**
     * The {@link org.carlspring.strongbox.artifact.coordinates.NpmArtifactCoordinates} scope.
     */
    String scope() default "";
}

@@ -938,9 +938,12 @@
 rage
-0
+-npm
 %22;%0A%0A
@@ -1071,16 +1071,20 @@
 efault %22
+npm-
 releases

Update NpmTestArtifact.java