diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index f6e0ff0..927a3f4 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -66,7 +66,7 @@ body:
id: terms
attributes:
label: Code of Conduct
- description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/CS203_DSAA_template_java/blob/master/.github/code_of_conduct.md)
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/algorithm-template-java/blob/master/.github/code_of_conduct.md)
options:
- label: I agree to follow this project's Code of Conduct
- required: true
\ No newline at end of file
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
index c7d160f..3e2892f 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yaml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yaml
@@ -40,7 +40,7 @@ body:
id: terms
attributes:
label: Code of Conduct
- description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/CS203_DSAA_template_java/blob/master/.github/code_of_conduct.md)
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/algorithm-template-java/blob/master/.github/code_of_conduct.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index 2bef892..52c671d 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -1,4 +1,4 @@
-# @Github: https://github.com/Certseeds/CS203_DSAA_template_java
+# @Github: https://github.com/Certseeds/algorithm-template-java
# @Organization: SUSTech
# @Author: nanoseeds
# @Date: 2020-07-28 22:43:03
@@ -18,18 +18,18 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-22.04, ubuntu-latest ,windows-latest ]
+ os: [ ubuntu-latest ,windows-latest ]
steps:
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
# The Java version to make available on the path. Takes a whole or semver Java version,
# or 1.x syntax (e.g. 1.8 => Java 8.x).
# Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28
- name: Setup Java JDK
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v5
with:
- java-version: 11
+ java-version: 21
distribution: 'temurin'
cache: 'maven'
@@ -37,12 +37,7 @@ jobs:
run: javac -version; java -version
- name: windows clean build test
- if: ${{ runner.os == 'windows' }}
- run: ./mvnw.cmd clean compile test
-
- - name: unix-like clean build test
- if: ${{ runner.os != 'windows' }}
- run: chmod +x ./mvnw.sh && ./mvnw.sh clean compile test
+ run: mvn clean compile test
# This workflow contains a single job called "build"
build:
@@ -56,19 +51,19 @@ jobs:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
# ensure the path and files of project
- name: ensure the path and files of project
run: sudo apt install tree; tree
- name: Setup Java JDK
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v5
with:
# The Java version to make available on the path. Takes a whole or semver Java version,
#or 1.x syntax (e.g. 1.8 => Java 8.x).
# Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28
- java-version: 11
+ java-version: 21
distribution: 'temurin'
cache: 'maven'
@@ -76,23 +71,15 @@ jobs:
# working-directory: ./script
# run: javac ./file_producer.java; java file_producer
- - name: zip the packet
- working-directory: ./../
- run: |
- zip -r script_no_need.zip ./CS203_DSAA_template_java -x "*/.git/*"
- mv ./script_no_need.zip ./CS203_DSAA_template_java/script_no_need.zip
-
- - name: unzip the packet
- run: |
- unzip ./script_no_need.zip
- mkdir temp
- mv ./CS203_DSAA_template_java ./temp/CS203_DSAA_template_java
- mv ./temp ./CS203_DSAA_template_java
-
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: script_no_need
- path: CS203_DSAA_template_java
+ path: |
+ ./**
+ !.git/**
+ !**/.git/**
+ if-no-files-found: error
+ # 压缩只执行一次(由 upload-artifact 完成);无需预先 zip
# Runs a set of commands using the runners shell
- name: tree
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2daa377..4a38a1b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,4 +1,4 @@
-# @Github: https://github.com/Certseeds/CS203_DSAA_template_java
+# @Github: https://github.com/Certseeds/algorithm-template-java
# @Organization: SUSTech
# @Author: nanoseeds
# @Date: 2020-07-28 22:43:03
@@ -23,28 +23,27 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-22.04, ubuntu-latest ]
+ os: [ ubuntu-latest ]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
- name: Setup Java JDK
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v5
with:
- java-version: 11
+ java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: unix-like clean build test
- if: ${{ runner.os != 'windows' }}
- run: chmod +x ./mvnw.sh && ./mvnw.sh clean compile test
+ run: mvn clean compile test
# This workflow contains a single job called "build"
build:
name: publish release
- if: github.repository == 'Certseeds/CS203_DSAA_template_java'
+ if: github.repository == 'Certseeds/algorithm-template-java'
needs: test
runs-on: ubuntu-latest
@@ -52,12 +51,12 @@ jobs:
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
- name: Setup Java JDK
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v5
with:
- java-version: 11
+ java-version: 21
distribution: 'temurin'
cache: 'maven'
@@ -88,7 +87,7 @@ jobs:
working-directory: ./../
run: |
echo $(pwd)
- zip -r script_no_need.zip ./CS203_DSAA_template_java -x "*/.git/*"
+ zip -r script_no_need.zip ./algorithm-template-java -x "*/.git/*"
echo $(pwd)
- name: release
@@ -104,7 +103,7 @@ jobs:
release-branch:
name: publish release-branch
- if: github.repository == 'Certseeds/CS203_DSAA_template_java'
+ if: github.repository == 'Certseeds/algorithm-template-java'
needs: [ test, build ]
# The type of runner that the job will run on
runs-on: ubuntu-latest
@@ -113,7 +112,7 @@ jobs:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
- name: Branch name
id: branch_name
diff --git a/.husky/.gitattributes b/.husky/.gitattributes
deleted file mode 100644
index a6a1321..0000000
--- a/.husky/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-pre-commit text eol=lf
diff --git a/.husky/pre-commit b/.husky/pre-commit
deleted file mode 100755
index d7749d9..0000000
--- a/.husky/pre-commit
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-set -euox pipefail
-main() {
- ./mvnw.sh clean
- ./mvnw.sh compile
- ./mvnw.sh test
- sleep 1
- git add .
-}
-main
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 8116ec8..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-*.xml
-misc.xml
-workspace.xml
-compiler.xml
-encodings.xml
-!vcs.xml
-!.gitignore
diff --git a/.idea/codeStyles/.gitignore b/.idea/codeStyles/.gitignore
deleted file mode 100644
index 6ab90f2..0000000
--- a/.idea/codeStyles/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-!codeStyleConfig.xml
-!Project.xml
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 52cec35..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123..0000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.mvn/wrapper/.gitignore b/.mvn/wrapper/.gitignore
deleted file mode 100644
index a98d8b6..0000000
--- a/.mvn/wrapper/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-maven-wrapper.jar
-!maven-wrapper.properties
-!MavenWrapperDownloader.java
-!README.md
\ No newline at end of file
diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java
deleted file mode 100644
index 01b9aa5..0000000
--- a/.mvn/wrapper/MavenWrapperDownloader.java
+++ /dev/null
@@ -1,127 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// come from https://raw.githubusercontent.com/apache/maven-wrapper/master/maven-wrapper-distribution/src/resources/mvn/wrapper/MavenWrapperDownloader.java
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.Authenticator;
-import java.net.PasswordAuthentication;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.LinkOption;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.StandardOpenOption;
-import java.util.Properties;
-
-public final class MavenWrapperDownloader {
- private static final String WRAPPER_VERSION = "@@project.version@@";
-
- private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE"));
-
- /**
- * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
- */
- private static final String DEFAULT_DOWNLOAD_URL =
- "https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/" + WRAPPER_VERSION
- + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
-
- /**
- * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to use instead of the
- * default one.
- */
- private static final String MAVEN_WRAPPER_PROPERTIES_PATH = ".mvn/wrapper/maven-wrapper.properties";
-
- /**
- * Path where the maven-wrapper.jar will be saved to.
- */
- private static final String MAVEN_WRAPPER_JAR_PATH = ".mvn/wrapper/maven-wrapper.jar";
-
- /**
- * Name of the property which should be used to override the default download url for the wrapper.
- */
- private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
-
- public static void main(String[] args) {
- if (args.length == 0) {
- System.err.println(" - ERROR projectBasedir parameter missing");
- System.exit(1);
- }
-
- log(" - Downloader started");
- final String dir = args[0].replace("..", ""); // Sanitize path
- final Path projectBasedir = Paths.get(dir).toAbsolutePath().normalize();
- if (!Files.isDirectory(projectBasedir, LinkOption.NOFOLLOW_LINKS)) {
- System.err.println(" - ERROR projectBasedir not exists: " + projectBasedir);
- System.exit(1);
- }
-
- log(" - Using base directory: " + projectBasedir);
-
- // If the maven-wrapper.properties exists, read it and check if it contains a custom
- // wrapperUrl parameter.
- Path mavenWrapperPropertyFile = projectBasedir.resolve(MAVEN_WRAPPER_PROPERTIES_PATH);
- String url = readWrapperUrl(mavenWrapperPropertyFile);
-
- try {
- Path outputFile = projectBasedir.resolve(MAVEN_WRAPPER_JAR_PATH);
- createDirectories(outputFile.getParent());
- downloadFileFromURL(url, outputFile);
- log("Done");
- System.exit(0);
- } catch (IOException e) {
- System.err.println("- Error downloading");
- e.printStackTrace();
- System.exit(1);
- }
- }
-
- private static void downloadFileFromURL(String urlString, Path destination) throws IOException {
- log(" - Downloading to: " + destination);
- if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
- final String username = System.getenv("MVNW_USERNAME");
- final char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
- Authenticator.setDefault(new Authenticator() {
- @Override
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(username, password);
- }
- });
- }
- URL website = new URL(urlString);
- try (InputStream inStream = website.openStream()) {
- Files.copy(inStream, destination, StandardCopyOption.REPLACE_EXISTING);
- }
- log(" - Downloader complete");
- }
-
- private static void createDirectories(Path outputPath) throws IOException {
- if (!Files.isDirectory(outputPath, LinkOption.NOFOLLOW_LINKS)) {
- Path createDirectories = Files.createDirectories(outputPath);
- log(" - Directories created: " + createDirectories);
- }
- }
-
- private static String readWrapperUrl(Path mavenWrapperPropertyFile) {
- String url = DEFAULT_DOWNLOAD_URL;
- if (Files.exists(mavenWrapperPropertyFile, LinkOption.NOFOLLOW_LINKS)) {
- log(" - Reading property file: " + mavenWrapperPropertyFile);
- try (InputStream in = Files.newInputStream(mavenWrapperPropertyFile, StandardOpenOption.READ)) {
- Properties mavenWrapperProperties = new Properties();
- mavenWrapperProperties.load(in);
- url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, DEFAULT_DOWNLOAD_URL);
- } catch (IOException e) {
- System.err.println(" - ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
- }
- }
- log(" - Downloading from: " + url);
- return url;
- }
-
- private static void log(String msg) {
- if (VERBOSE) {
- System.out.println(msg);
- }
- }
-
-}
\ No newline at end of file
diff --git a/.mvn/wrapper/README.md b/.mvn/wrapper/README.md
deleted file mode 100644
index b51d2ad..0000000
--- a/.mvn/wrapper/README.md
+++ /dev/null
@@ -1 +0,0 @@
-find what is that in [https://maven.apache.org/wrapper/](https://maven.apache.org/wrapper/)
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 857641b..0000000
--- a/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
-#
\ No newline at end of file
diff --git a/2018fall/lab_2/lab_2_1129/pom.xml b/2018fall/lab_2/lab_2_1129/pom.xml
index d6d636a..6437b2e 100644
--- a/2018fall/lab_2/lab_2_1129/pom.xml
+++ b/2018fall/lab_2/lab_2_1129/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1129
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1129/src/Main.java b/2018fall/lab_2/lab_2_1129/src/Main.java
index 6c060be..1c48b73 100644
--- a/2018fall/lab_2/lab_2_1129/src/Main.java
+++ b/2018fall/lab_2/lab_2_1129/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1129/test/MainTest.java b/2018fall/lab_2/lab_2_1129/test/MainTest.java
index 988a6eb..489201f 100644
--- a/2018fall/lab_2/lab_2_1129/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1129/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1131/pom.xml b/2018fall/lab_2/lab_2_1131/pom.xml
index febcd3c..96770f6 100644
--- a/2018fall/lab_2/lab_2_1131/pom.xml
+++ b/2018fall/lab_2/lab_2_1131/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1131
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1131/src/Main.java b/2018fall/lab_2/lab_2_1131/src/Main.java
index 7f107ac..3e2b5ad 100644
--- a/2018fall/lab_2/lab_2_1131/src/Main.java
+++ b/2018fall/lab_2/lab_2_1131/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1131/test/MainTest.java b/2018fall/lab_2/lab_2_1131/test/MainTest.java
index 988a6eb..489201f 100644
--- a/2018fall/lab_2/lab_2_1131/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1131/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1132/pom.xml b/2018fall/lab_2/lab_2_1132/pom.xml
index 1304e77..ec1f0a2 100644
--- a/2018fall/lab_2/lab_2_1132/pom.xml
+++ b/2018fall/lab_2/lab_2_1132/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1132
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1132/src/Main.java b/2018fall/lab_2/lab_2_1132/src/Main.java
index de7a46f..9fe4940 100644
--- a/2018fall/lab_2/lab_2_1132/src/Main.java
+++ b/2018fall/lab_2/lab_2_1132/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1132/test/MainTest.java b/2018fall/lab_2/lab_2_1132/test/MainTest.java
index 988a6eb..489201f 100644
--- a/2018fall/lab_2/lab_2_1132/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1132/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1133/pom.xml b/2018fall/lab_2/lab_2_1133/pom.xml
index f40b668..b227d5a 100644
--- a/2018fall/lab_2/lab_2_1133/pom.xml
+++ b/2018fall/lab_2/lab_2_1133/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1133
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1133/src/Main.java b/2018fall/lab_2/lab_2_1133/src/Main.java
index 75a8a25..8eadd6b 100644
--- a/2018fall/lab_2/lab_2_1133/src/Main.java
+++ b/2018fall/lab_2/lab_2_1133/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1133/test/MainTest.java b/2018fall/lab_2/lab_2_1133/test/MainTest.java
index cc1b20a..609fc2e 100644
--- a/2018fall/lab_2/lab_2_1133/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1133/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1134/pom.xml b/2018fall/lab_2/lab_2_1134/pom.xml
index 59e31cc..005d21f 100644
--- a/2018fall/lab_2/lab_2_1134/pom.xml
+++ b/2018fall/lab_2/lab_2_1134/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1134
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1134/src/Main.java b/2018fall/lab_2/lab_2_1134/src/Main.java
index 23cd794..f90a1f3 100644
--- a/2018fall/lab_2/lab_2_1134/src/Main.java
+++ b/2018fall/lab_2/lab_2_1134/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1134/test/MainTest.java b/2018fall/lab_2/lab_2_1134/test/MainTest.java
index cc1b20a..609fc2e 100644
--- a/2018fall/lab_2/lab_2_1134/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1134/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1135/pom.xml b/2018fall/lab_2/lab_2_1135/pom.xml
index aecfa25..530c590 100644
--- a/2018fall/lab_2/lab_2_1135/pom.xml
+++ b/2018fall/lab_2/lab_2_1135/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1135
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1135/src/Main.java b/2018fall/lab_2/lab_2_1135/src/Main.java
index 7665062..5ee4e6e 100644
--- a/2018fall/lab_2/lab_2_1135/src/Main.java
+++ b/2018fall/lab_2/lab_2_1135/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1135/test/MainTest.java b/2018fall/lab_2/lab_2_1135/test/MainTest.java
index cc1b20a..609fc2e 100644
--- a/2018fall/lab_2/lab_2_1135/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1135/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/lab_2_1136/pom.xml b/2018fall/lab_2/lab_2_1136/pom.xml
index cf4e010..6a87dd0 100644
--- a/2018fall/lab_2/lab_2_1136/pom.xml
+++ b/2018fall/lab_2/lab_2_1136/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab2
+ nanoseeds.algorithm-template.2018fall.lab2
lab_2_1136
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_2/lab_2_1136/src/Main.java b/2018fall/lab_2/lab_2_1136/src/Main.java
index f05ee20..d8db15f 100644
--- a/2018fall/lab_2/lab_2_1136/src/Main.java
+++ b/2018fall/lab_2/lab_2_1136/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_2/lab_2_1136/test/MainTest.java b/2018fall/lab_2/lab_2_1136/test/MainTest.java
index cc1b20a..609fc2e 100644
--- a/2018fall/lab_2/lab_2_1136/test/MainTest.java
+++ b/2018fall/lab_2/lab_2_1136/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_2/pom.xml b/2018fall/lab_2/pom.xml
index 60f2b58..adb4bf0 100644
--- a/2018fall/lab_2/pom.xml
+++ b/2018fall/lab_2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
2018fall
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_2
${revision}
${project.groupId}.${project.artifactId}
@@ -26,7 +26,7 @@
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
test
diff --git a/2018fall/lab_3/lab_3_1138/pom.xml b/2018fall/lab_3/lab_3_1138/pom.xml
index 7afbded..d14d8db 100644
--- a/2018fall/lab_3/lab_3_1138/pom.xml
+++ b/2018fall/lab_3/lab_3_1138/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1138
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1138/src/Main.java b/2018fall/lab_3/lab_3_1138/src/Main.java
index aac6424..1328683 100644
--- a/2018fall/lab_3/lab_3_1138/src/Main.java
+++ b/2018fall/lab_3/lab_3_1138/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1138/test/MainTest.java b/2018fall/lab_3/lab_3_1138/test/MainTest.java
index 988a6eb..489201f 100644
--- a/2018fall/lab_3/lab_3_1138/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1138/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_3/lab_3_1139/pom.xml b/2018fall/lab_3/lab_3_1139/pom.xml
index 8732acf..923ccb8 100644
--- a/2018fall/lab_3/lab_3_1139/pom.xml
+++ b/2018fall/lab_3/lab_3_1139/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1139
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1139/src/Main.java b/2018fall/lab_3/lab_3_1139/src/Main.java
index 49bbdae..251ca6f 100644
--- a/2018fall/lab_3/lab_3_1139/src/Main.java
+++ b/2018fall/lab_3/lab_3_1139/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1139/test/MainTest.java b/2018fall/lab_3/lab_3_1139/test/MainTest.java
index 022bbc7..96257a5 100644
--- a/2018fall/lab_3/lab_3_1139/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1139/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/lab_3_1140/pom.xml b/2018fall/lab_3/lab_3_1140/pom.xml
index 2d52b8c..17a914a 100644
--- a/2018fall/lab_3/lab_3_1140/pom.xml
+++ b/2018fall/lab_3/lab_3_1140/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1140
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1140/src/Main.java b/2018fall/lab_3/lab_3_1140/src/Main.java
index a5975bd..01bc9e8 100644
--- a/2018fall/lab_3/lab_3_1140/src/Main.java
+++ b/2018fall/lab_3/lab_3_1140/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1140/test/MainTest.java b/2018fall/lab_3/lab_3_1140/test/MainTest.java
index b72cfac..8eca48e 100644
--- a/2018fall/lab_3/lab_3_1140/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1140/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/lab_3_1141/pom.xml b/2018fall/lab_3/lab_3_1141/pom.xml
index 1c3d14a..2bf25ac 100644
--- a/2018fall/lab_3/lab_3_1141/pom.xml
+++ b/2018fall/lab_3/lab_3_1141/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1141
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1141/src/Main.java b/2018fall/lab_3/lab_3_1141/src/Main.java
index 38470c7..878a342 100644
--- a/2018fall/lab_3/lab_3_1141/src/Main.java
+++ b/2018fall/lab_3/lab_3_1141/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1141/test/MainTest.java b/2018fall/lab_3/lab_3_1141/test/MainTest.java
index 022bbc7..96257a5 100644
--- a/2018fall/lab_3/lab_3_1141/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1141/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/lab_3_1142/pom.xml b/2018fall/lab_3/lab_3_1142/pom.xml
index b2ec5ec..b514ed2 100644
--- a/2018fall/lab_3/lab_3_1142/pom.xml
+++ b/2018fall/lab_3/lab_3_1142/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1142
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1142/src/Main.java b/2018fall/lab_3/lab_3_1142/src/Main.java
index 54c364b..051eb88 100644
--- a/2018fall/lab_3/lab_3_1142/src/Main.java
+++ b/2018fall/lab_3/lab_3_1142/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1142/test/MainTest.java b/2018fall/lab_3/lab_3_1142/test/MainTest.java
index 8dc27c5..547e21d 100644
--- a/2018fall/lab_3/lab_3_1142/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1142/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/lab_3_1143/pom.xml b/2018fall/lab_3/lab_3_1143/pom.xml
index 490064c..85db968 100644
--- a/2018fall/lab_3/lab_3_1143/pom.xml
+++ b/2018fall/lab_3/lab_3_1143/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1143
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1143/src/Main.java b/2018fall/lab_3/lab_3_1143/src/Main.java
index 7332586..dc2dd01 100644
--- a/2018fall/lab_3/lab_3_1143/src/Main.java
+++ b/2018fall/lab_3/lab_3_1143/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1143/test/MainTest.java b/2018fall/lab_3/lab_3_1143/test/MainTest.java
index 8dc27c5..547e21d 100644
--- a/2018fall/lab_3/lab_3_1143/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1143/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/lab_3_1144/pom.xml b/2018fall/lab_3/lab_3_1144/pom.xml
index 8cd5c6a..0132aa0 100644
--- a/2018fall/lab_3/lab_3_1144/pom.xml
+++ b/2018fall/lab_3/lab_3_1144/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.lab3
+ nanoseeds.algorithm-template.2018fall.lab3
lab_3_1144
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_3/lab_3_1144/src/Main.java b/2018fall/lab_3/lab_3_1144/src/Main.java
index 02d89c6..a739ad1 100644
--- a/2018fall/lab_3/lab_3_1144/src/Main.java
+++ b/2018fall/lab_3/lab_3_1144/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_3/lab_3_1144/test/MainTest.java b/2018fall/lab_3/lab_3_1144/test/MainTest.java
index ea59119..bd72b0d 100644
--- a/2018fall/lab_3/lab_3_1144/test/MainTest.java
+++ b/2018fall/lab_3/lab_3_1144/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_3/pom.xml b/2018fall/lab_3/pom.xml
index 43d0796..fcac31e 100644
--- a/2018fall/lab_3/pom.xml
+++ b/2018fall/lab_3/pom.xml
@@ -4,13 +4,13 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
2018fall
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_3
${revision}
${project.groupId}.${project.artifactId}
@@ -26,7 +26,7 @@
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
test
diff --git a/2018fall/lab_example/lab_example_1166/pom.xml b/2018fall/lab_example/lab_example_1166/pom.xml
index b2f8573..c434979 100644
--- a/2018fall/lab_example/lab_example_1166/pom.xml
+++ b/2018fall/lab_example/lab_example_1166/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1166
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1166/src/Main.java b/2018fall/lab_example/lab_example_1166/src/Main.java
index dec22cf..40a04e4 100644
--- a/2018fall/lab_example/lab_example_1166/src/Main.java
+++ b/2018fall/lab_example/lab_example_1166/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1166/test/MainTest.java b/2018fall/lab_example/lab_example_1166/test/MainTest.java
index 988a6eb..489201f 100644
--- a/2018fall/lab_example/lab_example_1166/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1166/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
diff --git a/2018fall/lab_example/lab_example_1167/pom.xml b/2018fall/lab_example/lab_example_1167/pom.xml
index 65bd710..bb5e421 100644
--- a/2018fall/lab_example/lab_example_1167/pom.xml
+++ b/2018fall/lab_example/lab_example_1167/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1167
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1167/src/Main.java b/2018fall/lab_example/lab_example_1167/src/Main.java
index 26fc208..c68db77 100644
--- a/2018fall/lab_example/lab_example_1167/src/Main.java
+++ b/2018fall/lab_example/lab_example_1167/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1167/test/MainTest.java b/2018fall/lab_example/lab_example_1167/test/MainTest.java
index 75feeeb..0ef5e3f 100644
--- a/2018fall/lab_example/lab_example_1167/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1167/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/lab_example_1168/pom.xml b/2018fall/lab_example/lab_example_1168/pom.xml
index 0693ba6..ce57e65 100644
--- a/2018fall/lab_example/lab_example_1168/pom.xml
+++ b/2018fall/lab_example/lab_example_1168/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1168
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1168/src/Main.java b/2018fall/lab_example/lab_example_1168/src/Main.java
index 2fca5da..ce7f0b4 100644
--- a/2018fall/lab_example/lab_example_1168/src/Main.java
+++ b/2018fall/lab_example/lab_example_1168/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1168/test/MainTest.java b/2018fall/lab_example/lab_example_1168/test/MainTest.java
index 75feeeb..0ef5e3f 100644
--- a/2018fall/lab_example/lab_example_1168/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1168/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/lab_example_1169/pom.xml b/2018fall/lab_example/lab_example_1169/pom.xml
index 1f86db7..0041b8d 100644
--- a/2018fall/lab_example/lab_example_1169/pom.xml
+++ b/2018fall/lab_example/lab_example_1169/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1169
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1169/src/Main.java b/2018fall/lab_example/lab_example_1169/src/Main.java
index 33b0cfe..9975500 100644
--- a/2018fall/lab_example/lab_example_1169/src/Main.java
+++ b/2018fall/lab_example/lab_example_1169/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1169/test/MainTest.java b/2018fall/lab_example/lab_example_1169/test/MainTest.java
index d64777e..4b4ef60 100644
--- a/2018fall/lab_example/lab_example_1169/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1169/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/lab_example_1170/pom.xml b/2018fall/lab_example/lab_example_1170/pom.xml
index 416f460..c171186 100644
--- a/2018fall/lab_example/lab_example_1170/pom.xml
+++ b/2018fall/lab_example/lab_example_1170/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1170
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1170/src/Main.java b/2018fall/lab_example/lab_example_1170/src/Main.java
index 0f3a4a9..3dd5d82 100644
--- a/2018fall/lab_example/lab_example_1170/src/Main.java
+++ b/2018fall/lab_example/lab_example_1170/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1170/test/MainTest.java b/2018fall/lab_example/lab_example_1170/test/MainTest.java
index 06c583e..224371e 100644
--- a/2018fall/lab_example/lab_example_1170/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1170/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/lab_example_1171/pom.xml b/2018fall/lab_example/lab_example_1171/pom.xml
index bb474e4..7625e06 100644
--- a/2018fall/lab_example/lab_example_1171/pom.xml
+++ b/2018fall/lab_example/lab_example_1171/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1171
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1171/src/Main.java b/2018fall/lab_example/lab_example_1171/src/Main.java
index 37cbf78..2979ff5 100644
--- a/2018fall/lab_example/lab_example_1171/src/Main.java
+++ b/2018fall/lab_example/lab_example_1171/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1171/test/MainTest.java b/2018fall/lab_example/lab_example_1171/test/MainTest.java
index 06c583e..224371e 100644
--- a/2018fall/lab_example/lab_example_1171/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1171/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/lab_example_1172/pom.xml b/2018fall/lab_example/lab_example_1172/pom.xml
index 9942521..00f8a3a 100644
--- a/2018fall/lab_example/lab_example_1172/pom.xml
+++ b/2018fall/lab_example/lab_example_1172/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.2018fall.example
+ nanoseeds.algorithm-template.2018fall.example
lab_example_1172
${revision}
${project.groupId}.${project.artifactId}
diff --git a/2018fall/lab_example/lab_example_1172/src/Main.java b/2018fall/lab_example/lab_example_1172/src/Main.java
index 4b250b4..9bf1651 100644
--- a/2018fall/lab_example/lab_example_1172/src/Main.java
+++ b/2018fall/lab_example/lab_example_1172/src/Main.java
@@ -1,9 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
-/*
-CS203_DSAA_template
-
-Copyright (C) 2023 nanos Certseeds
-*/
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/2018fall/lab_example/lab_example_1172/test/MainTest.java b/2018fall/lab_example/lab_example_1172/test/MainTest.java
index 06c583e..224371e 100644
--- a/2018fall/lab_example/lab_example_1172/test/MainTest.java
+++ b/2018fall/lab_example/lab_example_1172/test/MainTest.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2018-2025 nanoseeds
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.*;
diff --git a/2018fall/lab_example/pom.xml b/2018fall/lab_example/pom.xml
index 422472e..4099081 100644
--- a/2018fall/lab_example/pom.xml
+++ b/2018fall/lab_example/pom.xml
@@ -4,13 +4,13 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
2018fall
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java.2018fall
+ nanoseeds.algorithm-template.2018fall
lab_example
${revision}
${project.groupId}.${project.artifactId}
@@ -26,7 +26,7 @@
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
test
diff --git a/2018fall/pom.xml b/2018fall/pom.xml
index 3dfea9b..e30deab 100644
--- a/2018fall/pom.xml
+++ b/2018fall/pom.xml
@@ -5,12 +5,12 @@
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
2018fall
${revision}
${project.groupId}.${project.artifactId}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4777183..a83c9a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-## 0.0.5 (2023-04-27)
+## 0.0.5 (2023-04-27)
* feat: add 2018fall_lab_3 3162888
* feat: add 2018fall_lab3_1138 9e5d719
@@ -10,7 +10,7 @@
* feat: bump version to 0.0.5-SNAPSHOT b68eef6
* feat: update 2018fall_lab3_1143 and 2018fall_lab3's conclusion 4df0309
-## 0.0.4 (2023-04-08)
+## 0.0.4 (2023-04-08)
* feat: add 2018fall_lab2_1129 020ccf6
* feat: add lab_2_1131 and move lab_example to 2018fall subfolder 40481e2
@@ -30,9 +30,7 @@
* move lab_example to 2018fall submodule
-Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com>
-
-## 0.0.3 (2023-04-02)
+## 0.0.3 (2023-04-02)
* feat: add example folder for real-problem 62f2a28
* feat: add example_1166 9fd347b
@@ -54,15 +52,11 @@ Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com>
* LICENSE move to AGPL3+
-Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com>
-
* move reader to kattio-quickread
the origin one is not good enough, find a better one.
-Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com>
-
-## 0.0.2 (2023-03-23)
+## 0.0.2 (2023-03-23)
* feat: add changelog and update file permission b15cbda
* feat: bump version to 0.0.2 19cea06
@@ -73,7 +67,7 @@ Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com>
* feat: update build_tools for project-struct b6e9920
* fix: add relativePath in pom.xml to fix parse error 7adf88a
-## 0.0.1 (2022-05-15)
+## 0.0.1 (2022-05-15)
* feature: add build script d0066c4
* feature: add coc and bug_report.yaml ce7fbf5
diff --git a/README.md b/README.md
index 3c72cf2..4847a9c 100644
--- a/README.md
+++ b/README.md
@@ -1,76 +1,117 @@
-# CS203_DSAA_template_Java
+# algorithm-template-java
-# CS203_数据结构与算法分析_代码模板_Java
+本repo的目的: 提供一个
-1. 所有代码(*.cpp,*.hpp,etc)基于AGPL-3.0-or-later协议:限制最强的主流开源协议,
- + 从设计上只为了源码交付, 主要是为了保护copyleft.
- + 具体内容请看[`LICENSE_AGPL-3.0-or-later.md`](./LICENSE_AGPL_V3_0.md)
++ 较为简单
++ 开箱即用
++ 带有测试
++ 针对需要提交 OJ 的 lab 设计的, 基于 JDK11 的代码模板仓库, 方便同学们进行课程的学习
++ 同时会提供一些基本的算法框架
-2. 所有其他文件(主要是*.md)基于CC-BY-NC-SA-4.0(或以后版本)协议.
- + 相同方式共享-署名-非商业性使用的知识共享协议4.0或任何以后版本.
- + 署名(BY)-使用到相应内容的其他地方,应该加以注释,保留来源.
- + 非商业性使用(NC)-默认情况下,只要署名,可以在不盈利的情况下使用.(并不是指商业情况不能用,而是需要和原作者沟通)
- + 相同方式共享(SA)-使得协议具有传染性,只要其他内容采用了本repo的内容,就需要在署名的同时,保证其协议也是CC-BY-NC-SA-4.0 or later version.
- + 具体内容请看[`LICENSE_CC_BY_NC_SA_V4_0.md`](./LICENSE_CC_BY_NC_SA_V4_0.md)
+## 如何使用
-3. 本repo的目的:提供一个
- + 较为简单,
- + 开箱即用,
- + 带有测试,
- + 针对CS203_dsaa的lab设计的,基于Java11的代码模板仓库,方便同学们进行课程的学习.
- + 同时会提供一些基本的算法框架.
+### 环境准备
-## 如何使用
+下载最新 LTS 版本的 JDK, 推荐使用 JDK21
+
+``` powershell
+$ java -version
+openjdk version "21" LTS
+OpenJDK Runtime Environment Temurin-21 (build 21-LTS)
+OpenJDK 64-Bit Server VM Temurin-21 (build 21-LTS, mixed mode, sharing)
+```
+
+> 或者在 IDEA 中下载
+
+下载最新版本的 maven
+
+``` powershell
+$ mvn --version
+Apache Maven 3.9.11
+Maven home: ~\scoop\apps\maven\current
+Java version: 21, vendor: Eclipse Adoptium, runtime: ~\scoop\apps\temurin21-jdk\current
+Default locale: zh_CN, platform encoding: UTF-8
+OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
+```
+
+> 或者使用 IDEA 捆绑的 maven
+
+#### Java 版本策略(重要)
+
++ 本地开发与测试:推荐使用 JDK 21(IDEA 运行/调试更舒适)
++ 构建与提交:项目使用 Maven 以 Java 11 为编译目标(`--release 11`), 确保与远程 OJ(JDK 11)兼容
++ 说明:即使本地安装的是 JDK21, Maven 根据 `release=11` 仍会按照JDK11的API对源文件进行约束, 不用担心用了新的API, OJ上无法编译
+
+### 下载使用
+
++ 首先请到[release_latest](https://github.com/Certseeds/algorithm-template-java/releases/latest)下载 `script_no_need.zip`
++ 将其解压, 放到您的代码库中
+ + 也可以直接使用 GitHub 的 "Use this template" 或 Fork 仓库开始
+
+### 快速上手(5 分钟)
+
+1. 使用 IDEA 打开仓库, 等待 Maven 依赖下载完成
+2. 打开 `lab_welcome/lab_welcome_a/test/MainTest.java` 直接运行测试
+3. 修改 `lab_welcome/lab_welcome_a/src/Main.java` 的 `cal` 实现, 重新运行测试验证
+4. 提交到 OJ 时, 复制该题目的 `Main.java` 全文(包含嵌入的快读类)进行提交
-+ 首先请到[release_latest](https://github.com/Certseeds/CS203_DSAA_template_java/releases/latest)下载script_no_need.zip.
-+ 将其解压,放到某处.
-+ 执行代码和测试:
- + 使用IDEA打开文件夹,配置好Java环境与Maven的基础上,会自动识别`pom.xml`.之后可选择test或源文件进行执行.
- + `lab_${lab_number}/lab_${lab_number}_${ques_number}/src/Main.java`为将要提交的源文件.
- + `lab_${lab_number}/lab_${lab_number}_${ques_number}/test/MainTest.java`为对源文件进行测试的测试文件,目的为方便测试,同时便于分享测试用例.
+可选命令行(PowerShell):
-## 实际场景:
+```powershell
+# 运行根项目所有测试
+mvn -q test
-1. A+B: lab_00_A ,测试样例
+# 仅运行某一题(例如 lab_welcome_a)的测试
+mvn -q -pl lab_welcome/lab_welcome_a -am test
+```
-+ 这个问题较为简单,见[A+B](./lab_welcome/lab_welcome_a/src/Main.java).解决起来不复杂.
-+ 虽然手工一个一个输入,然后肉眼观察输出.但是如果我们希望严谨的测试,要100组测试数据,难道每次出新版本都要手动输入100次?
-显然,有更好的解决方式:使用测试框架.
-+ 在本repo,使用`Junit`测试框架.
-比如,我们有四组数据,第一组,第二组测试边界值,第三组使用随机数测试对偶性与正确性,第四组测试几个手动的随机值.
-参见[test_for_lab00_A](./lab_welcome/lab_welcome_a/test/MainTest.java).
-+ 这样一来,我们只需要每次修改完主文件之后,run `lab_welcome_a/test/MainTest.java`, 对其进行调用,就能验证其在所有的测试用例上的正确性.
-测试的结果也会出现在输出中.
+## 实际场景
-2. 文件输入输出重定向 part1:
+### A+B: lab_00_A , 测试样例
-+ 常见于tree,graph类的问题,debug需要的数据集都比较大,不方便直接写在代码中.
-+ 比如[判断二分图](./lab_welcome/lab_welcome_c/src/Main.java),一张图可以有几十上百个node,写在内部占用空间太大.
-+ 而在这里,使用`Redirect`对象,便可以省去手动输入的方式.
++ 这个问题较为简单, 见[A+B](./lab_welcome/lab_welcome_a/src/Main.java) 解决起来不复杂
+
++ 虽然手工一个一个输入, 然后肉眼观察输出.但是如果我们希望严谨的测试, 要100组测试数据, 难道每次出新版本都要手动输入100次?
+显然, 有更好的解决方式: 使用**测试框架**
+
++ 在本repo, 使用 `Junit`
+
+比如, 我们有四组数据, 第一组, 第二组测试边界值, 第三组使用随机数测试对偶性与正确性, 第四组测试几个手动的随机值
+
+参见[test_for_lab00_A](./lab_welcome/lab_welcome_a/test/MainTest.java)
+
++ 这样一来, 我们只需要每次修改完主文件之后, run `lab_welcome_a/test/MainTest.java`, 对其进行调用, 就能验证其在所有的测试用例上的正确性.
+测试的结果也会出现在输出中
+
+### 文件输入输出重定向 part1
+
++ 常见于tree, graph类的问题, debug需要的数据集都比较大, 不方便直接写在代码中
++ 比如[判断二分图](./lab_welcome/lab_welcome_c/src/Main.java), 一张图可以有几十上百个node, 写在内部占用空间太大
++ 而在这里, 使用`Redirect`对象, 便可以省去手动输入的方式
``` java
- try (Redirect redirect = Redirect.from(DATA_PATH,"01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义
- Main.output(Main.cal_warpper(Main.read())); // 执行
+ try (Redirect redirect = Redirect.from(DATA_PATH, "01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义
+ Main.output(Main.cal(Main.read())); // 执行
final Pair p = redirect.compare_double("01.data.out", "01.test.out"); // 获取两个文件中的字符串
assertEquals(p.getFirst().length(), p.getSecond().length()); // 比较长度
assertEquals(p.getFirst(), p.getSecond()); // 比较文本
}
```
- 只需要准备好输入的数据与结果,就可以从文件中读取,执行后判断结果是否符合预期.
- + test_1 为最简单的逐个判断,最简单,代码量最大.
- + test_2 则优化了一些,但是还是比较麻烦,for循环还需要了解测试样例的个数.
- + test_3 with tuple 则最优雅,修改起来的难度最小.
- + PS: 此处注意,引用文件的相对路径.
- + PS2: 模版文件中已经将前面`resources/`预制好,只需要填写文件名.
+ 只需要准备好输入的数据与结果, 就可以从文件中读取, 执行后判断结果是否符合预期
+ + test_1 为最简单的逐个判断, 最简单, 代码量最大
+ + test_2 则优化了一些, 但是还是比较麻烦, for循环还需要了解测试样例的个数
+ + test_3 with tuple 则最优雅, 修改起来的难度最小
+ + PS: 此处注意, 引用文件的相对路径
+ + PS2: 模版文件中已经将前面`resources/`预制好, 只需要填写文件名
-3. 文本输入输出重定向 part2:
+### 文本输入输出重定向 part2
-+ 一般来说,题目的输出不会太复杂,但是反例也不是没有.:比如专门考输出的[立体图](./lab_welcome/lab_welcome_d/src/Main.java)
-+ 这种情况下,使用c++的重定向输出就可以较为方便的对输入进行处理,同时保存输出方便调试.
++ 一般来说, 题目的输出不会太复杂, 但是反例也不是没有: 比如专门考输出的[立体图](./lab_welcome/lab_welcome_d/src/Main.java)
++ 这种情况下, 使用 Java 的标准输入/输出重定向就可以较为方便地处理输入, 同时保存输出便于调试
``` java
- try (Redirect redirect = Redirect.from(DATA_PATH,"01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义
+ try (Redirect redirect = Redirect.from(DATA_PATH, "01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义
Main.main(init_String);
final Pair p = redirect.compare_double("01.data.out", "01.test.out");
assertEquals(p.getFirst().length(), p.getSecond().length());
@@ -78,79 +119,86 @@
}
```
- 这样就将标准输出重定向到了`01.test.out`中,并与`01.data.out`比对.
- + 这里需要考虑的是,谨慎使用`println()`,因为`println()`的输出与平台有关,`print("\n")`比较方便和data.out比较.
+ 这样就将标准输出重定向到了`01.test.out`中, 并与`01.data.out`比对
+ + 这里需要考虑的是, 谨慎使用`println()`, 因为`println()`的输出与平台有关;推荐使用 `System.out.print('\n')` 来对齐与 data.out 的比较
-4. 快读.
+### 快读
-+ 一般来说,题目不会卡读入.
-+ 但是,当数据量上来之后,读取时间不容小看.
-+ 所以可以使用每个文件中自带的Reader类来进行快读.
++ 一般来说, 题目不会卡读入
++ 但是, 当数据量上来之后, 读取时间不容小看
++ 所以可以使用每个文件中自带的 Reader / FastReader 类来进行快读
++ 注意:多数 OJ 仅允许单文件提交, 因此快读类需嵌入到 `Main.java` 中, 不能抽到外部文件依赖
-### 实现细节
+## 实现细节
-使用两层子模块来抽象lab-question, 给每个question一个独立文件夹, 有利于在README.md里面撰写文档, 梳理思路.
+1. 使用两层子模块来抽象 lab-question , 给每个 question 一个独立文件夹, 有利于在 README.md 里面撰写文档, 梳理思路
+2. 使用子模块来实现, 每一个类内不需要加入 `package ...`路径, 这样可以直接复制 Main.java 全文到 OJ内, 方便实现
## 为什么要将 `读取` `数据处理` `输出` 分开?
-+ 便于理清思路,读完题目之后,不管别的,先把数据读入,输出的函数写好,方便后续写作.
++ 便于理清思路, 读完题目之后, 不管别的, 先把数据读入, 输出的函数写好, 方便后续写作
+ 交流代码逻辑的时候不会受到无关逻辑的影响
-+ 可以互相分享少量代码而不触及核心逻辑,方便协作.
-+ 便于使用测试.
-+ 便于使用替换快读与scanner.
++ 可以互相分享少量代码而不触及核心逻辑, 方便协作
++ 便于使用测试
++ 便于使用替换快读与scanner
## 为什么要选择Java做题
-1. SUSTech大一默认用java教学.
-2. java对字符串处理有一些预置方法,挺好用。
-3. 没了,欢迎补充.
+1. SUSTech 大一默认用 Java 教学
+2. Java 对字符串处理有一些预置方法, 挺好用
+3. 可以在 Windows 环境下开发, 完全不需要安装 MSVC/gcc 环境
+4. 没了, 欢迎补充
-## 为什么要选择C++做题.
+## ~~为什么要选择C++做题~~
1. C++是dalao们的选择: 直接去
+
+ [dalao1](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11710724&jresult=4)
+ [dalao2](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11612908&jresult=4)
+ [dalao3](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11712510&jresult=4)
-等等dalao的解题页面看看,会发现在排行榜榜首的人,绝大多数题目使用的都是C++.
-2. 速度.
+等等dalao的解题页面看看, 会发现在排行榜榜首的人, 绝大多数题目使用的都是C++
-+ oj内一般java的最大运行时间都会是c++的2倍,显然是暗示速度之间的差别.
-+ 其次,C++可以通过一些魔法操作,比如下文的优化等操作再获取一些时间上的优势.
+1. 速度
+
++ OJ 内一般 Java 的最大运行时间都会是 C++ 的 2 倍, 显然是暗示速度之间的差别
++ 其次, C++可以通过一些优化技巧, 比如下文的优化等操作再获取一些时间上的优势
### 对数据结构的友好性
-DSAA既然内含Data structure,就势必涉及到类似Node,Tree,Graph等等数据结构,这类数据结构使用C++写,比较方便理解.
+DSAA既然内含Data structure, 就势必涉及到类似Node, Tree, Graph等等数据结构, 这类数据结构使用C++写, 比较方便理解
### 对算法友好的性能
-作者写树和图相关的题目时,最头疼的就是Java的爆栈,有一段时间只要用递归就爆栈,相同算法修改为C++之后问题就消失了.
+作者写树和图相关的题目时, 最头疼的就是Java的爆栈, 有一段时间只要用递归就爆栈, 相同算法修改为C++之后问题就消失了
### 相关资源的丰富程度
-不管怎么说,c++是dalao的选择,所以在网络上搜索题目,得到的大多数答案都是C/C++,java的数量很少.
+不管怎么说, C++是 dalao 的选择, 所以在网络上搜索题目, 得到的大多数答案都是 C/C++, Java 的数量很少
## 最后
C++的CS203库:[CS203_DSAA_template](https://github.com/Certseeds/CS203_DSAA_template)
-TODO: 介绍使用Cyaron 生成数据.
+TODO: 介绍使用 Cyaron 生成数据
## 可能遇到的问题
-1. 提示找不到Jar包.
- 请安装maven作为依赖管理的工具.然后在IDEA中`文件`-`打开`-选择`CS203_DSAA_template_java\pom.xml`-确定-作为项目打开.
+1. 提示找不到Jar包
+ 请安装maven作为依赖管理的工具.然后在IDEA中`文件`-`打开`-选择`algorithm-template-java\pom.xml`-确定-作为项目打开
+
2. maven下载包很慢
需要给maven 换源 (`pom.xml`中已有换源操作)
-[][AGPL-3.0-or-later_Link]
-
-[][cc_by_nc_sa_4_0]
-
-[![CC BY-SA 4.0][cc_by_nc_sa_4_0_image]][cc_by_nc_sa_4_0]
+### copyleft 选择
-[AGPL-3.0-or-later_Link]: http://opensource.org/licenses/AGPL-3.0-or-later
-
-[cc_by_nc_sa_4_0]: https://creativecommons.org/licenses/by-nc-sa/4.0/
+1. 所有代码(*.java, etc) 基于AGPL-3.0-or-later协议: 限制最强的主流开源协议,
+ + 从设计上只为了源码交付
+ + 具体内容请看[`LICENSE_AGPL-3.0-or-later.md`](./LICENSE_AGPL_V3_0.md)
-[cc_by_nc_sa_4_0_image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
+2. 所有其他文件(主要是*.md)基于CC-BY-NC-SA-4.0(或以后版本)协议
+ + 相同方式共享-署名-非商业性使用的知识共享协议4.0或任何以后版本
+ + 署名(BY)-使用到相应内容的其他地方, 应该加以注释, 保留来源
+ + 非商业性使用(NC)-默认情况下, 只要署名, 可以在不盈利的情况下使用.(并不是指商业情况不能用, 而是需要和原作者沟通)
+ + 相同方式共享(SA)-使得协议具有传染性, 只要其他内容采用了本repo的内容, 就需要在署名的同时, 保证其协议也是CC-BY-NC-SA-4.0 or later version
+ + 具体内容请看[`LICENSE_CC_BY_NC_SA_V4_0.md`](./LICENSE_CC_BY_NC_SA_V4_0.md)
diff --git a/build_tools/pom.xml b/build_tools/pom.xml
index f12d867..24286d8 100644
--- a/build_tools/pom.xml
+++ b/build_tools/pom.xml
@@ -5,11 +5,11 @@
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
build_tools
${revision}
${project.groupId}.${project.artifactId}
diff --git a/build_tools/resources/template/java_template.java b/build_tools/resources/template/java_template.java
index c40ae0a..1434994 100644
--- a/build_tools/resources/template/java_template.java
+++ b/build_tools/resources/template/java_template.java
@@ -1,5 +1,6 @@
-import java.io.*;
import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
@@ -46,6 +47,18 @@ private static final class Reader {
private Reader() {
br = new BufferedReader(new InputStreamReader(System.in));
+ st = new StringTokenizer("");
+ }
+
+ public boolean hasNext() {
+ while (!st.hasMoreTokens()) {
+ String nextLine = nextLine();
+ if (nextLine == null) {
+ return false;
+ }
+ st = new StringTokenizer(nextLine);
+ }
+ return true;
}
String next() {
diff --git a/build_tools/resources/template/parent/top.xml b/build_tools/resources/template/parent/top.xml
index 123b4c4..0bec6fc 100644
--- a/build_tools/resources/template/parent/top.xml
+++ b/build_tools/resources/template/parent/top.xml
@@ -5,12 +5,12 @@
4.0.0
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
${project.artifactId}
${project.artifactId}
- 0.0.5
+ 0.0.6-SNAPSHOT
11
3.0.0
5.9.2
diff --git a/build_tools/resources/template/subpom/buttom.xml b/build_tools/resources/template/subpom/buttom.xml
index 31d4674..2c1e1c0 100644
--- a/build_tools/resources/template/subpom/buttom.xml
+++ b/build_tools/resources/template/subpom/buttom.xml
@@ -1,7 +1,7 @@
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
test
diff --git a/build_tools/resources/template/subpom/top.xml b/build_tools/resources/template/subpom/top.xml
index 9028e6b..8916c4a 100644
--- a/build_tools/resources/template/subpom/top.xml
+++ b/build_tools/resources/template/subpom/top.xml
@@ -5,12 +5,12 @@
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_%1$s
${revision}
${project.groupId}.${project.artifactId}
diff --git a/build_tools/resources/template/subsubpom.xml b/build_tools/resources/template/subsubpom.xml
index 2a228b2..75ca16b 100644
--- a/build_tools/resources/template/subsubpom.xml
+++ b/build_tools/resources/template/subsubpom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_%1$s
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.%1$s
+ nanoseeds.algorithm-template.%1$s
lab_%1$s_%2$s
${revision}
${project.groupId}.${project.artifactId}
diff --git a/build_tools/src/producer/base.java b/build_tools/src/producer/base.java
index 32acf78..817f004 100644
--- a/build_tools/src/producer/base.java
+++ b/build_tools/src/producer/base.java
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2020-2025 nanoseeds
package producer;
import java.io.IOException;
diff --git a/build_tools/src/producer/constant.java b/build_tools/src/producer/constant.java
index 6f92654..eca088f 100644
--- a/build_tools/src/producer/constant.java
+++ b/build_tools/src/producer/constant.java
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2020-2025 nanoseeds
package producer;
public enum constant {
diff --git a/build_tools/src/producer/file_producer.java b/build_tools/src/producer/file_producer.java
index 165dc63..8fc9658 100644
--- a/build_tools/src/producer/file_producer.java
+++ b/build_tools/src/producer/file_producer.java
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2020-2025 nanoseeds
package producer;
import java.io.File;
diff --git a/build_tools/src/producer/lab.java b/build_tools/src/producer/lab.java
index 07796dd..6f337ab 100644
--- a/build_tools/src/producer/lab.java
+++ b/build_tools/src/producer/lab.java
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2020-2025 nanoseeds
package producer;
import java.io.IOException;
diff --git a/build_tools/src/producer/question.java b/build_tools/src/producer/question.java
index a8cd29f..28e0f21 100644
--- a/build_tools/src/producer/question.java
+++ b/build_tools/src/producer/question.java
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// SPDX-FileCopyrightText: 2020-2025 nanoseeds
+
package producer;
import java.io.IOException;
diff --git a/changelog.config.ts b/changelog.config.ts
deleted file mode 100644
index 2c0d1da..0000000
--- a/changelog.config.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-// @ts-ignore
-module.exports = {
- linkReferences: false
-}
diff --git a/include/pom.xml b/include/pom.xml
index ef1235a..4d5d8e9 100644
--- a/include/pom.xml
+++ b/include/pom.xml
@@ -5,11 +5,11 @@
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
${project.groupId}.${project.artifactId}
@@ -17,16 +17,4 @@
${project.basedir}/src
-
-
- org.slf4j
- slf4j-jdk14
- 2.0.7
-
-
- org.projectlombok
- lombok
- 1.18.24
-
-
diff --git a/lab_welcome/lab_welcome_a/pom.xml b/lab_welcome/lab_welcome_a/pom.xml
index 77e2697..7973fe0 100644
--- a/lab_welcome/lab_welcome_a/pom.xml
+++ b/lab_welcome/lab_welcome_a/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_welcome
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.welcome
+ nanoseeds.algorithm-template.welcome
lab_welcome_a
${revision}
${project.groupId}.${project.artifactId}
diff --git a/lab_welcome/lab_welcome_b/pom.xml b/lab_welcome/lab_welcome_b/pom.xml
index ca400b3..7a5e54d 100644
--- a/lab_welcome/lab_welcome_b/pom.xml
+++ b/lab_welcome/lab_welcome_b/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_welcome
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.welcome
+ nanoseeds.algorithm-template.welcome
lab_welcome_b
${revision}
${project.groupId}.${project.artifactId}
diff --git a/lab_welcome/lab_welcome_c/pom.xml b/lab_welcome/lab_welcome_c/pom.xml
index bad50a4..45594b2 100644
--- a/lab_welcome/lab_welcome_c/pom.xml
+++ b/lab_welcome/lab_welcome_c/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_welcome
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.welcome
+ nanoseeds.algorithm-template.welcome
lab_welcome_c
${revision}
${project.groupId}.${project.artifactId}
diff --git a/lab_welcome/lab_welcome_c/test/MainTest.java b/lab_welcome/lab_welcome_c/test/MainTest.java
index 15bc615..9533c98 100644
--- a/lab_welcome/lab_welcome_c/test/MainTest.java
+++ b/lab_welcome/lab_welcome_c/test/MainTest.java
@@ -11,6 +11,7 @@
import java.util.List;
@Slf4j
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public final class MainTest {
private static final String[] init_String = new String[0];
private static final String DATA_PATH = "resources/";
diff --git a/lab_welcome/lab_welcome_d/pom.xml b/lab_welcome/lab_welcome_d/pom.xml
index e85b330..e46c087 100644
--- a/lab_welcome/lab_welcome_d/pom.xml
+++ b/lab_welcome/lab_welcome_d/pom.xml
@@ -4,12 +4,12 @@
4.0.0
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_welcome
${revision}
./../pom.xml
- nanoseeds.CS203_DSAA_template_java.welcome
+ nanoseeds.algorithm-template.welcome
lab_welcome_d
${revision}
${project.groupId}.${project.artifactId}
diff --git a/lab_welcome/pom.xml b/lab_welcome/pom.xml
index f4cb6d3..07909cd 100644
--- a/lab_welcome/pom.xml
+++ b/lab_welcome/pom.xml
@@ -5,12 +5,12 @@
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
./../pom.xml
pom
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
lab_welcome
${revision}
${project.groupId}.${project.artifactId}
@@ -23,7 +23,7 @@
- nanoseeds.CS203_DSAA_template_java
+ nanoseeds.algorithm-template
test_include_package
${revision}
test
diff --git a/mvnw.cmd b/mvnw.cmd
deleted file mode 100755
index abb7c32..0000000
--- a/mvnw.cmd
+++ /dev/null
@@ -1,188 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
-if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
-
-FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
- IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
-if exist %WRAPPER_JAR% (
- if "%MVNW_VERBOSE%" == "true" (
- echo Found %WRAPPER_JAR%
- )
-) else (
- if not "%MVNW_REPOURL%" == "" (
- SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
- )
- if "%MVNW_VERBOSE%" == "true" (
- echo Couldn't find %WRAPPER_JAR%, downloading it ...
- echo Downloading from: %DOWNLOAD_URL%
- )
-
- powershell -Command "&{"^
- "$webclient = new-object System.Net.WebClient;"^
- "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
- "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
- "}"^
- "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
- "}"
- if "%MVNW_VERBOSE%" == "true" (
- echo Finished downloading %WRAPPER_JAR%
- )
-)
-@REM End of extension
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% ^
- %JVM_CONFIG_MAVEN_PROPS% ^
- %MAVEN_OPTS% ^
- %MAVEN_DEBUG_OPTS% ^
- -classpath %WRAPPER_JAR% ^
- "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
- %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
-if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%"=="on" pause
-
-if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
-
-cmd /C exit /B %ERROR_CODE%
diff --git a/mvnw.sh b/mvnw.sh
deleted file mode 100755
index eaa3d30..0000000
--- a/mvnw.sh
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-# JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-# M2_HOME - location of maven2's installed home dir
-# MAVEN_OPTS - parameters passed to the Java VM when running Maven
-# e.g. to debug Maven itself, use
-# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
- if [ -f /usr/local/etc/mavenrc ] ; then
- . /usr/local/etc/mavenrc
- fi
-
- if [ -f /etc/mavenrc ] ; then
- . /etc/mavenrc
- fi
-
- if [ -f "$HOME/.mavenrc" ] ; then
- . "$HOME/.mavenrc"
- fi
-
-fi
-
-# OS specific support. $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- MINGW*) mingw=true;;
- Darwin*) darwin=true
- # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
- # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
- if [ -z "$JAVA_HOME" ]; then
- if [ -x "/usr/libexec/java_home" ]; then
- export JAVA_HOME="`/usr/libexec/java_home`"
- else
- export JAVA_HOME="/Library/Java/Home"
- fi
- fi
- ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
- if [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
- ## resolve links - $0 may be a link to maven's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- M2_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- M2_HOME=`cd "$M2_HOME" && pwd`
-
- cd "$saveddir"
- # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --unix "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Mingw, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME="`(cd "$M2_HOME"; pwd)`"
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
-fi
-
-if [ -z "$JAVA_HOME" ]; then
- javaExecutable="`which javac`"
- if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
- # readlink(1) is not available as standard on Solaris 10.
- readLink=`which readlink`
- if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
- if $darwin ; then
- javaHome="`dirname \"$javaExecutable\"`"
- javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
- else
- javaExecutable="`readlink -f \"$javaExecutable\"`"
- fi
- javaHome="`dirname \"$javaExecutable\"`"
- javaHome=`expr "$javaHome" : '\(.*\)/bin'`
- JAVA_HOME="$javaHome"
- export JAVA_HOME
- fi
- fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="`\\unset -f command; \\command -v java`"
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly." >&2
- echo " We cannot execute $JAVACMD" >&2
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-
- if [ -z "$1" ]
- then
- echo "Path not specified to find_maven_basedir"
- return 1
- fi
-
- basedir="$1"
- wdir="$1"
- while [ "$wdir" != '/' ] ; do
- if [ -d "$wdir"/.mvn ] ; then
- basedir=$wdir
- break
- fi
- # workaround for JBEAP-8937 (on Solaris 10/Sparc)
- if [ -d "${wdir}" ]; then
- wdir=`cd "$wdir/.."; pwd`
- fi
- # end of workaround
- done
- echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
- if [ -f "$1" ]; then
- echo "$(tr -s '\n' ' ' < "$1")"
- fi
-}
-
-BASE_DIR=`find_maven_basedir "$(pwd)"`
-if [ -z "$BASE_DIR" ]; then
- exit 1;
-fi
-
-##########################################################################################
-# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
-# This allows using the maven wrapper in projects that prohibit checking in binary data.
-##########################################################################################
-if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Found .mvn/wrapper/maven-wrapper.jar"
- fi
-else
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
- fi
- if [ -n "$MVNW_REPOURL" ]; then
- jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
- else
- jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
- fi
- while IFS="=" read key value; do
- case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
- esac
- done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Downloading from: $jarUrl"
- fi
- wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
- if $cygwin; then
- wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
- fi
-
- if command -v wget > /dev/null; then
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Found wget ... using wget"
- fi
- if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
- else
- wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
- fi
- elif command -v curl > /dev/null; then
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Found curl ... using curl"
- fi
- if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- curl -o "$wrapperJarPath" "$jarUrl" -f
- else
- curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
- fi
-
- else
- if [ "$MVNW_VERBOSE" = true ]; then
- echo "Falling back to using Java to download"
- fi
- javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
- # For Cygwin, switch paths to Windows format before running javac
- if $cygwin; then
- javaClass=`cygpath --path --windows "$javaClass"`
- fi
- if [ -e "$javaClass" ]; then
- if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
- if [ "$MVNW_VERBOSE" = true ]; then
- echo " - Compiling MavenWrapperDownloader.java ..."
- fi
- # Compiling the Java class
- ("$JAVA_HOME/bin/javac" "$javaClass")
- fi
- if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
- # Running the downloader
- if [ "$MVNW_VERBOSE" = true ]; then
- echo " - Running MavenWrapperDownloader.java ..."
- fi
- ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
- fi
- fi
- fi
-fi
-##########################################################################################
-# End of extension
-##########################################################################################
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
-if [ "$MVNW_VERBOSE" = true ]; then
- echo $MAVEN_PROJECTBASEDIR
-fi
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --path --windows "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- [ -n "$MAVEN_PROJECTBASEDIR" ] &&
- MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
- $MAVEN_OPTS \
- $MAVEN_DEBUG_OPTS \
- -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
- "-Dmaven.home=${M2_HOME}" \
- "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
- ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/package.json b/package.json
deleted file mode 100644
index 21529c9..0000000
--- a/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "CS203_DSAA_template_java",
- "version": "0.0.5",
- "description": "Template for CS203-DSAA Based on OpenJDK11 and Maven Monorepo",
- "main": "index.js",
- "scripts": {
- "prepare": "husky install",
- "preinstall": "npx only-allow pnpm -y",
- "changelog": "conventional-changelog -i CHANGELOG.md -s --context changelog.config.ts"
- },
- "keywords": [
- "java",
- "template-project",
- "data-structures-and-algorithms",
- "cs203"
- ],
- "author": "Certseeds",
- "license": "AGPL-3.0-or-later",
- "devDependencies": {
- "conventional-changelog-cli": "^2.2.2",
- "husky": "^8.0.3"
- }
-}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
deleted file mode 100644
index bbff1f5..0000000
--- a/pnpm-lock.yaml
+++ /dev/null
@@ -1,1090 +0,0 @@
-lockfileVersion: 5.4
-
-specifiers:
- conventional-changelog-cli: ^2.2.2
- husky: ^8.0.3
-
-devDependencies:
- conventional-changelog-cli: 2.2.2
- husky: 8.0.3
-
-packages:
-
- /@babel/code-frame/7.18.6:
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.18.6
- dev: true
-
- /@babel/helper-validator-identifier/7.19.1:
- resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/highlight/7.18.6:
- resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.19.1
- chalk: 2.4.2
- js-tokens: 4.0.0
- dev: true
-
- /@hutson/parse-repository-url/3.0.2:
- resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@types/minimist/1.2.2:
- resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
- dev: true
-
- /@types/normalize-package-data/2.4.1:
- resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
- dev: true
-
- /JSONStream/1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
- dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
- dev: true
-
- /add-stream/1.0.0:
- resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
- dev: true
-
- /ansi-regex/5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
- dev: true
-
- /ansi-styles/3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
- dependencies:
- color-convert: 1.9.3
- dev: true
-
- /ansi-styles/4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
- dependencies:
- color-convert: 2.0.1
- dev: true
-
- /array-ify/1.0.0:
- resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
- dev: true
-
- /arrify/1.0.1:
- resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /camelcase-keys/6.2.2:
- resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
- engines: {node: '>=8'}
- dependencies:
- camelcase: 5.3.1
- map-obj: 4.3.0
- quick-lru: 4.0.1
- dev: true
-
- /camelcase/5.3.1:
- resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
- engines: {node: '>=6'}
- dev: true
-
- /chalk/2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- engines: {node: '>=4'}
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
- dev: true
-
- /cliui/7.0.4:
- resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
- dev: true
-
- /color-convert/1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- dependencies:
- color-name: 1.1.3
- dev: true
-
- /color-convert/2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
- dependencies:
- color-name: 1.1.4
- dev: true
-
- /color-name/1.1.3:
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- dev: true
-
- /color-name/1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- dev: true
-
- /compare-func/2.0.0:
- resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
- dependencies:
- array-ify: 1.0.0
- dot-prop: 5.3.0
- dev: true
-
- /conventional-changelog-angular/5.0.13:
- resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
- engines: {node: '>=10'}
- dependencies:
- compare-func: 2.0.0
- q: 1.5.1
- dev: true
-
- /conventional-changelog-atom/2.0.8:
- resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-cli/2.2.2:
- resolution: {integrity: sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- add-stream: 1.0.0
- conventional-changelog: 3.1.25
- lodash: 4.17.21
- meow: 8.1.2
- tempfile: 3.0.0
- dev: true
-
- /conventional-changelog-codemirror/2.0.8:
- resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-conventionalcommits/4.6.3:
- resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==}
- engines: {node: '>=10'}
- dependencies:
- compare-func: 2.0.0
- lodash: 4.17.21
- q: 1.5.1
- dev: true
-
- /conventional-changelog-core/4.2.4:
- resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==}
- engines: {node: '>=10'}
- dependencies:
- add-stream: 1.0.0
- conventional-changelog-writer: 5.0.1
- conventional-commits-parser: 3.2.4
- dateformat: 3.0.3
- get-pkg-repo: 4.2.1
- git-raw-commits: 2.0.11
- git-remote-origin-url: 2.0.0
- git-semver-tags: 4.1.1
- lodash: 4.17.21
- normalize-package-data: 3.0.3
- q: 1.5.1
- read-pkg: 3.0.0
- read-pkg-up: 3.0.0
- through2: 4.0.2
- dev: true
-
- /conventional-changelog-ember/2.0.9:
- resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-eslint/3.0.9:
- resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-express/2.0.6:
- resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-jquery/3.0.11:
- resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==}
- engines: {node: '>=10'}
- dependencies:
- q: 1.5.1
- dev: true
-
- /conventional-changelog-jshint/2.0.9:
- resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==}
- engines: {node: '>=10'}
- dependencies:
- compare-func: 2.0.0
- q: 1.5.1
- dev: true
-
- /conventional-changelog-preset-loader/2.3.4:
- resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==}
- engines: {node: '>=10'}
- dev: true
-
- /conventional-changelog-writer/5.0.1:
- resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- conventional-commits-filter: 2.0.7
- dateformat: 3.0.3
- handlebars: 4.7.7
- json-stringify-safe: 5.0.1
- lodash: 4.17.21
- meow: 8.1.2
- semver: 6.3.0
- split: 1.0.1
- through2: 4.0.2
- dev: true
-
- /conventional-changelog/3.1.25:
- resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==}
- engines: {node: '>=10'}
- dependencies:
- conventional-changelog-angular: 5.0.13
- conventional-changelog-atom: 2.0.8
- conventional-changelog-codemirror: 2.0.8
- conventional-changelog-conventionalcommits: 4.6.3
- conventional-changelog-core: 4.2.4
- conventional-changelog-ember: 2.0.9
- conventional-changelog-eslint: 3.0.9
- conventional-changelog-express: 2.0.6
- conventional-changelog-jquery: 3.0.11
- conventional-changelog-jshint: 2.0.9
- conventional-changelog-preset-loader: 2.3.4
- dev: true
-
- /conventional-commits-filter/2.0.7:
- resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==}
- engines: {node: '>=10'}
- dependencies:
- lodash.ismatch: 4.4.0
- modify-values: 1.0.1
- dev: true
-
- /conventional-commits-parser/3.2.4:
- resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- JSONStream: 1.3.5
- is-text-path: 1.0.1
- lodash: 4.17.21
- meow: 8.1.2
- split2: 3.2.2
- through2: 4.0.2
- dev: true
-
- /core-util-is/1.0.3:
- resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
- dev: true
-
- /dargs/7.0.0:
- resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
- engines: {node: '>=8'}
- dev: true
-
- /dateformat/3.0.3:
- resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
- dev: true
-
- /decamelize-keys/1.1.1:
- resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- decamelize: 1.2.0
- map-obj: 1.0.1
- dev: true
-
- /decamelize/1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /dot-prop/5.3.0:
- resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
- engines: {node: '>=8'}
- dependencies:
- is-obj: 2.0.0
- dev: true
-
- /emoji-regex/8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- dev: true
-
- /error-ex/1.3.2:
- resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
- dependencies:
- is-arrayish: 0.2.1
- dev: true
-
- /escalade/3.1.1:
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
- engines: {node: '>=6'}
- dev: true
-
- /escape-string-regexp/1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
- dev: true
-
- /find-up/2.1.0:
- resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
- engines: {node: '>=4'}
- dependencies:
- locate-path: 2.0.0
- dev: true
-
- /find-up/4.1.0:
- resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
- engines: {node: '>=8'}
- dependencies:
- locate-path: 5.0.0
- path-exists: 4.0.0
- dev: true
-
- /function-bind/1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
- dev: true
-
- /get-caller-file/2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
- dev: true
-
- /get-pkg-repo/4.2.1:
- resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==}
- engines: {node: '>=6.9.0'}
- hasBin: true
- dependencies:
- '@hutson/parse-repository-url': 3.0.2
- hosted-git-info: 4.1.0
- through2: 2.0.5
- yargs: 16.2.0
- dev: true
-
- /git-raw-commits/2.0.11:
- resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- dargs: 7.0.0
- lodash: 4.17.21
- meow: 8.1.2
- split2: 3.2.2
- through2: 4.0.2
- dev: true
-
- /git-remote-origin-url/2.0.0:
- resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==}
- engines: {node: '>=4'}
- dependencies:
- gitconfiglocal: 1.0.0
- pify: 2.3.0
- dev: true
-
- /git-semver-tags/4.1.1:
- resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- meow: 8.1.2
- semver: 6.3.0
- dev: true
-
- /gitconfiglocal/1.0.0:
- resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==}
- dependencies:
- ini: 1.3.8
- dev: true
-
- /graceful-fs/4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- dev: true
-
- /handlebars/4.7.7:
- resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
- engines: {node: '>=0.4.7'}
- hasBin: true
- dependencies:
- minimist: 1.2.8
- neo-async: 2.6.2
- source-map: 0.6.1
- wordwrap: 1.0.0
- optionalDependencies:
- uglify-js: 3.17.4
- dev: true
-
- /hard-rejection/2.1.0:
- resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
- engines: {node: '>=6'}
- dev: true
-
- /has-flag/3.0.0:
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
- engines: {node: '>=4'}
- dev: true
-
- /has/1.0.3:
- resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
- engines: {node: '>= 0.4.0'}
- dependencies:
- function-bind: 1.1.1
- dev: true
-
- /hosted-git-info/2.8.9:
- resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
- dev: true
-
- /hosted-git-info/4.1.0:
- resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
- engines: {node: '>=10'}
- dependencies:
- lru-cache: 6.0.0
- dev: true
-
- /husky/8.0.3:
- resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
- engines: {node: '>=14'}
- hasBin: true
- dev: true
-
- /indent-string/4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- engines: {node: '>=8'}
- dev: true
-
- /inherits/2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- dev: true
-
- /ini/1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- dev: true
-
- /is-arrayish/0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- dev: true
-
- /is-core-module/2.11.0:
- resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
- dependencies:
- has: 1.0.3
- dev: true
-
- /is-fullwidth-code-point/3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
- dev: true
-
- /is-obj/2.0.0:
- resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
- engines: {node: '>=8'}
- dev: true
-
- /is-plain-obj/1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /is-text-path/1.0.1:
- resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
- engines: {node: '>=0.10.0'}
- dependencies:
- text-extensions: 1.9.0
- dev: true
-
- /isarray/1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
- dev: true
-
- /js-tokens/4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- dev: true
-
- /json-parse-better-errors/1.0.2:
- resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
- dev: true
-
- /json-parse-even-better-errors/2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- dev: true
-
- /json-stringify-safe/5.0.1:
- resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
- dev: true
-
- /jsonparse/1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
- dev: true
-
- /kind-of/6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /lines-and-columns/1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
- dev: true
-
- /load-json-file/4.0.0:
- resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
- engines: {node: '>=4'}
- dependencies:
- graceful-fs: 4.2.11
- parse-json: 4.0.0
- pify: 3.0.0
- strip-bom: 3.0.0
- dev: true
-
- /locate-path/2.0.0:
- resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
- engines: {node: '>=4'}
- dependencies:
- p-locate: 2.0.0
- path-exists: 3.0.0
- dev: true
-
- /locate-path/5.0.0:
- resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
- engines: {node: '>=8'}
- dependencies:
- p-locate: 4.1.0
- dev: true
-
- /lodash.ismatch/4.4.0:
- resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
- dev: true
-
- /lodash/4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
- dev: true
-
- /lru-cache/6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- engines: {node: '>=10'}
- dependencies:
- yallist: 4.0.0
- dev: true
-
- /map-obj/1.0.1:
- resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /map-obj/4.3.0:
- resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
- engines: {node: '>=8'}
- dev: true
-
- /meow/8.1.2:
- resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
- engines: {node: '>=10'}
- dependencies:
- '@types/minimist': 1.2.2
- camelcase-keys: 6.2.2
- decamelize-keys: 1.1.1
- hard-rejection: 2.1.0
- minimist-options: 4.1.0
- normalize-package-data: 3.0.3
- read-pkg-up: 7.0.1
- redent: 3.0.0
- trim-newlines: 3.0.1
- type-fest: 0.18.1
- yargs-parser: 20.2.9
- dev: true
-
- /min-indent/1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
- dev: true
-
- /minimist-options/4.1.0:
- resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
- engines: {node: '>= 6'}
- dependencies:
- arrify: 1.0.1
- is-plain-obj: 1.1.0
- kind-of: 6.0.3
- dev: true
-
- /minimist/1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- dev: true
-
- /modify-values/1.0.1:
- resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /neo-async/2.6.2:
- resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- dev: true
-
- /normalize-package-data/2.5.0:
- resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
- dependencies:
- hosted-git-info: 2.8.9
- resolve: 1.22.1
- semver: 5.7.1
- validate-npm-package-license: 3.0.4
- dev: true
-
- /normalize-package-data/3.0.3:
- resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
- engines: {node: '>=10'}
- dependencies:
- hosted-git-info: 4.1.0
- is-core-module: 2.11.0
- semver: 7.3.8
- validate-npm-package-license: 3.0.4
- dev: true
-
- /p-limit/1.3.0:
- resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
- engines: {node: '>=4'}
- dependencies:
- p-try: 1.0.0
- dev: true
-
- /p-limit/2.3.0:
- resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
- engines: {node: '>=6'}
- dependencies:
- p-try: 2.2.0
- dev: true
-
- /p-locate/2.0.0:
- resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
- engines: {node: '>=4'}
- dependencies:
- p-limit: 1.3.0
- dev: true
-
- /p-locate/4.1.0:
- resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
- engines: {node: '>=8'}
- dependencies:
- p-limit: 2.3.0
- dev: true
-
- /p-try/1.0.0:
- resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
- engines: {node: '>=4'}
- dev: true
-
- /p-try/2.2.0:
- resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
- engines: {node: '>=6'}
- dev: true
-
- /parse-json/4.0.0:
- resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
- engines: {node: '>=4'}
- dependencies:
- error-ex: 1.3.2
- json-parse-better-errors: 1.0.2
- dev: true
-
- /parse-json/5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
- dependencies:
- '@babel/code-frame': 7.18.6
- error-ex: 1.3.2
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
- dev: true
-
- /path-exists/3.0.0:
- resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
- engines: {node: '>=4'}
- dev: true
-
- /path-exists/4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
- dev: true
-
- /path-parse/1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- dev: true
-
- /path-type/3.0.0:
- resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
- engines: {node: '>=4'}
- dependencies:
- pify: 3.0.0
- dev: true
-
- /pify/2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /pify/3.0.0:
- resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
- engines: {node: '>=4'}
- dev: true
-
- /process-nextick-args/2.0.1:
- resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
- dev: true
-
- /q/1.5.1:
- resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
- engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
- dev: true
-
- /quick-lru/4.0.1:
- resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
- engines: {node: '>=8'}
- dev: true
-
- /read-pkg-up/3.0.0:
- resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
- engines: {node: '>=4'}
- dependencies:
- find-up: 2.1.0
- read-pkg: 3.0.0
- dev: true
-
- /read-pkg-up/7.0.1:
- resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
- engines: {node: '>=8'}
- dependencies:
- find-up: 4.1.0
- read-pkg: 5.2.0
- type-fest: 0.8.1
- dev: true
-
- /read-pkg/3.0.0:
- resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
- engines: {node: '>=4'}
- dependencies:
- load-json-file: 4.0.0
- normalize-package-data: 2.5.0
- path-type: 3.0.0
- dev: true
-
- /read-pkg/5.2.0:
- resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
- engines: {node: '>=8'}
- dependencies:
- '@types/normalize-package-data': 2.4.1
- normalize-package-data: 2.5.0
- parse-json: 5.2.0
- type-fest: 0.6.0
- dev: true
-
- /readable-stream/2.3.8:
- resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
- dependencies:
- core-util-is: 1.0.3
- inherits: 2.0.4
- isarray: 1.0.0
- process-nextick-args: 2.0.1
- safe-buffer: 5.1.2
- string_decoder: 1.1.1
- util-deprecate: 1.0.2
- dev: true
-
- /readable-stream/3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- dev: true
-
- /redent/3.0.0:
- resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
- engines: {node: '>=8'}
- dependencies:
- indent-string: 4.0.0
- strip-indent: 3.0.0
- dev: true
-
- /require-directory/2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /resolve/1.22.1:
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
- hasBin: true
- dependencies:
- is-core-module: 2.11.0
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
- dev: true
-
- /safe-buffer/5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
- dev: true
-
- /safe-buffer/5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: true
-
- /semver/5.7.1:
- resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
- hasBin: true
- dev: true
-
- /semver/6.3.0:
- resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
- hasBin: true
- dev: true
-
- /semver/7.3.8:
- resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- lru-cache: 6.0.0
- dev: true
-
- /source-map/0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
- dev: true
-
- /spdx-correct/3.2.0:
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
- dependencies:
- spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.13
- dev: true
-
- /spdx-exceptions/2.3.0:
- resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
- dev: true
-
- /spdx-expression-parse/3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
- dependencies:
- spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.13
- dev: true
-
- /spdx-license-ids/3.0.13:
- resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==}
- dev: true
-
- /split/1.0.1:
- resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
- dependencies:
- through: 2.3.8
- dev: true
-
- /split2/3.2.2:
- resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
- dependencies:
- readable-stream: 3.6.2
- dev: true
-
- /string-width/4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
- dev: true
-
- /string_decoder/1.1.1:
- resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
- dependencies:
- safe-buffer: 5.1.2
- dev: true
-
- /string_decoder/1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- dependencies:
- safe-buffer: 5.2.1
- dev: true
-
- /strip-ansi/6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
- dependencies:
- ansi-regex: 5.0.1
- dev: true
-
- /strip-bom/3.0.0:
- resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
- engines: {node: '>=4'}
- dev: true
-
- /strip-indent/3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
- engines: {node: '>=8'}
- dependencies:
- min-indent: 1.0.1
- dev: true
-
- /supports-color/5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- engines: {node: '>=4'}
- dependencies:
- has-flag: 3.0.0
- dev: true
-
- /supports-preserve-symlinks-flag/1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
- dev: true
-
- /temp-dir/2.0.0:
- resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
- engines: {node: '>=8'}
- dev: true
-
- /tempfile/3.0.0:
- resolution: {integrity: sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==}
- engines: {node: '>=8'}
- dependencies:
- temp-dir: 2.0.0
- uuid: 3.4.0
- dev: true
-
- /text-extensions/1.9.0:
- resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
- engines: {node: '>=0.10'}
- dev: true
-
- /through/2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
-
- /through2/2.0.5:
- resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
- dependencies:
- readable-stream: 2.3.8
- xtend: 4.0.2
- dev: true
-
- /through2/4.0.2:
- resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
- dependencies:
- readable-stream: 3.6.2
- dev: true
-
- /trim-newlines/3.0.1:
- resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
- engines: {node: '>=8'}
- dev: true
-
- /type-fest/0.18.1:
- resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
- engines: {node: '>=10'}
- dev: true
-
- /type-fest/0.6.0:
- resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
- engines: {node: '>=8'}
- dev: true
-
- /type-fest/0.8.1:
- resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
- engines: {node: '>=8'}
- dev: true
-
- /uglify-js/3.17.4:
- resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
- engines: {node: '>=0.8.0'}
- hasBin: true
- requiresBuild: true
- dev: true
- optional: true
-
- /util-deprecate/1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- dev: true
-
- /uuid/3.4.0:
- resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
- deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
- hasBin: true
- dev: true
-
- /validate-npm-package-license/3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- dependencies:
- spdx-correct: 3.2.0
- spdx-expression-parse: 3.0.1
- dev: true
-
- /wordwrap/1.0.0:
- resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
- dev: true
-
- /wrap-ansi/7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- dev: true
-
- /xtend/4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
- dev: true
-
- /y18n/5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
- dev: true
-
- /yallist/4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
- dev: true
-
- /yargs-parser/20.2.9:
- resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
- engines: {node: '>=10'}
- dev: true
-
- /yargs/16.2.0:
- resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
- engines: {node: '>=10'}
- dependencies:
- cliui: 7.0.4
- escalade: 3.1.1
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 20.2.9
- dev: true
diff --git a/pom.xml b/pom.xml
index 690e539..59abd01 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,24 +5,45 @@
4.0.0
nanoseeds
- CS203_DSAA_template_java
+ algorithm-template
${revision}
${project.artifactId}
${project.artifactId}
- 0.0.5
+ 0.0.6
11
- 3.0.0
- 5.9.2
- 1.0.16
+ 3.5.4
+ 5.13.4
+ 1.0.20
${java.version}
${java.version}
+ ${java.version}
UTF-8
+ 3.14.0
${maven.compiler.encoding}
pom
2020
+ https://github.com/Certseeds/algorithm-template-java
+
+
+
+ AGPL-3.0-or-later
+ https://spdx.org/licenses/AGPL-3.0-or-later.html
+ repo
+
+
+
+
+ GitHub Issues
+ https://github.com/Certseeds/algorithm-template-java/issues
+
+
+ GitHub Actions
+ https://github.com/Certseeds/algorithm-template-java/actions
+
+
org.junit.jupiter
@@ -36,6 +57,18 @@
${junit.version}
test
+
+ org.slf4j
+ slf4j-jdk14
+ 2.0.17
+ test
+
+
+ org.projectlombok
+ lombok
+ 1.18.42
+ test
+
@@ -51,13 +84,21 @@
- clean
-
+ clean
flatten
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.plugin.version}
+
+
+ ${java.version}
+
+