diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 99c0223..37d5d6e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,4 +1,8 @@ version: 2 +registries: + google: + type: maven-repository + url: https://dl.google.com/dl/android/maven2 updates: - package-ecosystem: "github-actions" directory: "/" @@ -13,3 +17,5 @@ updates: assignees: - "hfhbd" rebase-strategy: "disabled" + registries: + - google diff --git a/.github/workflows/AndroidIntegrationTest.yml b/.github/workflows/AndroidIntegrationTest.yml index 8373516..c45d019 100644 --- a/.github/workflows/AndroidIntegrationTest.yml +++ b/.github/workflows/AndroidIntegrationTest.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: 21 - uses: gradle/actions/setup-gradle@v3 with: diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 612c6c1..a7a29b8 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -24,11 +24,11 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: 21 - uses: gradle/actions/setup-gradle@v3 - name: Publish - run: ./gradlew -Pversion=$version -Dorg.gradle.parallel=false --no-configuration-cache publish :closeAndReleaseStagingRepository + run: ./gradlew -Pversion=$version -Dorg.gradle.parallel=false --no-configuration-cache publish :closeAndReleaseStagingRepositories env: ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_PRIVATE_KEY }} ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2569eb3..26db199 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -20,10 +20,11 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: 21 - uses: gradle/actions/setup-gradle@v3 with: + validate-wrappers: true gradle-home-cache-cleanup: true - name: Build with Gradle run: ./gradlew build diff --git a/.github/workflows/Docs.yml b/.github/workflows/Docs.yml index 556cd96..ea695ea 100644 --- a/.github/workflows/Docs.yml +++ b/.github/workflows/Docs.yml @@ -21,11 +21,11 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - - uses: actions/configure-pages@v4 + - uses: actions/configure-pages@v5 - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: 21 - uses: gradle/actions/setup-gradle@v3 - name: Generate Docs diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index 33e8124..1ff3a8c 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: 21 - name: Generate and submit dependency graph uses: gradle/actions/dependency-submission@v3 diff --git a/.github/workflows/gradleWrapper.yml b/.github/workflows/gradleWrapper.yml deleted file mode 100644 index 097dc82..0000000 --- a/.github/workflows/gradleWrapper.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Gradle Wrapper Validation - -on: - pull_request: - paths: - - 'gradlew' - - 'gradlew.bat' - - 'gradle/wrapper/' - -jobs: - validateWrapper: - runs-on: ubuntu-latest - permissions: - contents: read - - steps: - - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v2 diff --git a/.gitignore b/.gitignore index 54772bb..12321c8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ build .idea local.properties .DS_Store +.kotlin diff --git a/detekt-baseline.xml b/detekt-baseline.xml index 1a34df6..929a06f 100644 --- a/detekt-baseline.xml +++ b/detekt-baseline.xml @@ -2,6 +2,7 @@ + FunctionNaming:Dsl.kt$@UUIDExperimentalAPI public fun UUIDv7(timeStamp: Instant = Clock.System.now(), random: Random = SecureRandom): UUID FunctionNaming:UUID7.kt$@UUIDExperimentalAPI public fun UUIDv7(timeStamp: Long, random: Random = SecureRandom): UUID MagicNumber:Encoding.kt$0xff MagicNumber:Encoding.kt$56 @@ -85,14 +86,16 @@ MagicNumber:UUID.kt$UUID.Version.NAME_BASED_MD5$3 MagicNumber:UUID.kt$UUID.Version.NAME_BASED_SHA1$5 MagicNumber:UUID.kt$UUID.Version.RANDOM_BASED$4 - MagicNumber:UUID7.kt$0x38 - MagicNumber:UUID7.kt$0x3fffffffffffffffL - MagicNumber:UUID7.kt$0x7000L - MagicNumber:UUID7.kt$0x80L - MagicNumber:UUID7.kt$12 MagicNumber:UUID7.kt$16 - MatchingDeclarationName:Parcelable.android.kt$Parcelable : Parcelable + MagicNumber:UUID7.kt$28672 + MagicNumber:UUID7.kt$4095 + MagicNumber:UUID7.kt$62 + MatchingDeclarationName:CommonParcelable.apple.kt$CommonParcelable + MatchingDeclarationName:CommonParcelable.js.kt$CommonParcelable + MatchingDeclarationName:CommonParcelable.jvm.kt$CommonParcelable + MatchingDeclarationName:CommonParcelable.linux.kt$CommonParcelable + MatchingDeclarationName:CommonParcelable.ming.kt$CommonParcelable TooManyFunctions:SHA1.kt$SHA1 - VariableNaming:UUID7.kt$val rand_a = random.nextBits(12).toLong() + VariableNaming:UUID7.kt$val rand_a = helper.timeStamp and 4095 diff --git a/gradle/build-logic/build.gradle.kts b/gradle/build-logic/build.gradle.kts index b19058b..4202fa6 100644 --- a/gradle/build-logic/build.gradle.kts +++ b/gradle/build-logic/build.gradle.kts @@ -5,6 +5,7 @@ plugins { dependencies { implementation(libs.plugins.kotlin.jvm.toDep()) implementation(libs.plugins.kotlin.serialization.toDep()) + implementation(libs.plugins.kotlin.parcelize.toDep()) implementation(libs.plugins.android.toDep()) implementation(libs.plugins.binary.toDep()) implementation(libs.plugins.publish.toDep()) diff --git a/gradle/build-logic/src/main/kotlin/kover.gradle.kts b/gradle/build-logic/src/main/kotlin/kover.gradle.kts index 988ac28..f3583b4 100644 --- a/gradle/build-logic/src/main/kotlin/kover.gradle.kts +++ b/gradle/build-logic/src/main/kotlin/kover.gradle.kts @@ -2,10 +2,9 @@ plugins { id("org.jetbrains.kotlinx.kover") } -koverReport { - defaults { +kover { + reports { verify { - onCheck = true rule { bound { minValue = 85 diff --git a/gradle/build-logic/src/main/kotlin/publish.gradle.kts b/gradle/build-logic/src/main/kotlin/publish.gradle.kts index 866ccab..60aef65 100644 --- a/gradle/build-logic/src/main/kotlin/publish.gradle.kts +++ b/gradle/build-logic/src/main/kotlin/publish.gradle.kts @@ -58,4 +58,6 @@ tasks.withType().configureEach { tasks.withType().configureEach { isPreserveFileTimestamps = false isReproducibleFileOrder = true + filePermissions {} + dirPermissions {} } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index feee8c1..629b379 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] -kotlin = "1.9.23" -serialization = "1.6.3" -exposed = "0.48.0" +kotlin = "2.0.0" +serialization = "1.7.1" +exposed = "0.52.0" [libraries] serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" } @@ -12,17 +12,22 @@ serialization-protobuf = { module = "org.jetbrains.kotlinx:kotlinx-serialization exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" } exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" } h2 = { module = "com.h2database:h2", version = "2.2.224" } -slf4j = { module = "org.slf4j:slf4j-simple", version = "2.0.12" } +slf4j = { module = "org.slf4j:slf4j-simple", version = "2.0.13" } -sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version = "2.0.1" } +sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version = "2.0.2" } + +datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version = "0.6.0" } + +androidx-test-runner = { module = "androidx.test:runner", version = "1.6.1" } [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } -android = { id = "com.android.application", version = "8.3.1" } +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +android = { id = "com.android.application", version = "8.5.0" } binary = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.14.0" } -publish = { id = "io.github.gradle-nexus.publish-plugin", version = "1.3.0" } +publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" } dokka = { id = "org.jetbrains.dokka", version = "1.9.20" } -licensee = { id = "app.cash.licensee", version = "1.9.1" } -kover = { id = "org.jetbrains.kotlinx.kover", version = "0.7.6" } -detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.5"} +licensee = { id = "app.cash.licensee", version = "1.11.0" } +kover = { id = "org.jetbrains.kotlinx.kover", version = "0.8.2" } +detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.6"} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd49..e644113 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a80b22c..b82aa23 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index a9de576..f4858df 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -26,6 +26,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -44,7 +49,20 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.20": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -52,6 +70,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@js-joda/core@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-3.2.0.tgz#3e61e21b7b2b8a6be746df1335cf91d70db2a273" + integrity sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg== + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -90,10 +113,10 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/json-schema@*", "@types/json-schema@^7.0.8": version "7.0.11" @@ -105,10 +128,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" @@ -123,10 +146,10 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" @@ -142,15 +165,15 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/ieee754@1.11.6": version "1.11.6" @@ -171,72 +194,72 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.1.0": +"@webpack-cli/configtest@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== -"@webpack-cli/info@^2.0.1": +"@webpack-cli/info@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== -"@webpack-cli/serve@^2.0.3": +"@webpack-cli/serve@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== @@ -251,11 +274,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - accepts@~1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -264,10 +282,10 @@ accepts@~1.3.4: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn@^8.7.1: version "8.8.2" @@ -384,15 +402,15 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.14.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.21.10: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" buffer-from@^1.0.0: version "1.1.2" @@ -417,10 +435,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449: - version "1.0.30001474" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" - integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== +caniuse-lite@^1.0.30001587: + version "1.0.30001608" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz#7ae6e92ffb300e4b4ec2f795e0abab456ec06cc0" + integrity sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA== chalk@^4.1.0: version "4.1.2" @@ -601,10 +619,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.284: - version "1.4.352" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" - integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== +electron-to-chromium@^1.4.668: + version "1.4.731" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.731.tgz#d3dc19f359045b750a1fb0bc42315a502d950187" + integrity sha512-+TqVfZjpRz2V/5SPpmJxq9qK620SC5SqCnxQIOi7i/U08ZDcTpKbT7Xjj9FU5CbXTMUb4fywbIr8C7cGv4hcjw== emoji-regex@^8.0.0: version "8.0.0" @@ -616,15 +634,15 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== +engine.io-parser@~5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.2.tgz#37b48e2d23116919a3453738c5720455e64e1c49" + integrity sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw== -engine.io@~6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.1.tgz#8056b4526a88e779f9c280d820422d4e3eeaaae5" - integrity sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw== +engine.io@~6.5.2: + version "6.5.4" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.4.tgz#6822debf324e781add2254e912f8568508850cdc" + integrity sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -634,13 +652,13 @@ engine.io@~6.4.1: cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" + engine.io-parser "~5.2.1" ws "~8.11.0" -enhanced-resolve@^5.13.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== +enhanced-resolve@^5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -836,17 +854,16 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" glob@^7.1.3, glob@^7.1.7: version "7.2.3" @@ -860,7 +877,7 @@ glob@^7.1.3, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -1069,19 +1086,19 @@ karma-sourcemap-loader@0.4.0: dependencies: graceful-fs "^4.2.10" -karma-webpack@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.0.tgz#2a2c7b80163fe7ffd1010f83f5507f95ef39f840" - integrity sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA== +karma-webpack@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.1.tgz#4eafd31bbe684a747a6e8f3e4ad373e53979ced4" + integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== dependencies: glob "^7.1.3" - minimatch "^3.0.4" + minimatch "^9.0.3" webpack-merge "^4.1.5" -karma@6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.2.tgz#a983f874cee6f35990c4b2dcc3d274653714de8e" - integrity sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ== +karma@6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.3.tgz#763e500f99597218bbb536de1a14acc4ceea7ce8" + integrity sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q== dependencies: "@colors/colors" "1.5.0" body-parser "^1.19.0" @@ -1102,7 +1119,7 @@ karma@6.4.2: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^4.4.1" + socket.io "^4.7.2" source-map "^0.6.1" tmp "^0.2.1" ua-parser-js "^0.7.30" @@ -1197,6 +1214,20 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.3: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.3, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -1209,10 +1240,10 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mocha@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== +mocha@10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -1221,13 +1252,12 @@ mocha@10.2.0: diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" - glob "7.2.0" + glob "8.1.0" he "1.2.0" js-yaml "4.1.0" log-symbols "4.1.0" minimatch "5.0.1" ms "2.1.3" - nanoid "3.3.3" serialize-javascript "6.0.0" strip-json-comments "3.1.1" supports-color "8.1.1" @@ -1251,11 +1281,6 @@ ms@2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -1266,10 +1291,10 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -1497,7 +1522,7 @@ schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^3.1.2: +schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -1560,37 +1585,37 @@ socket.io-adapter@~2.5.2: dependencies: ws "~8.11.0" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@^4.4.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.6.1.tgz#62ec117e5fce0692fa50498da9347cfb52c3bc70" - integrity sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA== +socket.io@^4.7.2: + version "4.7.5" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.5.tgz#56eb2d976aef9d1445f373a62d781a41c7add8f8" + integrity sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.4.1" + engine.io "~6.5.2" socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.1" + socket.io-parser "~4.2.4" source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -1671,21 +1696,21 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.16.8: - version "5.19.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" - integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== +terser@^5.26.0: + version "5.30.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.3.tgz#f1bb68ded42408c316b548e3ec2526d7dd03f4d2" + integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -1719,10 +1744,10 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== +typescript@5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== ua-parser-js@^0.7.30: version "0.7.35" @@ -1739,10 +1764,10 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -1769,23 +1794,23 @@ void-elements@^2.0.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -webpack-cli@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.0.tgz#abc4b1f44b50250f2632d8b8b536cfe2f6257891" - integrity sha512-a7KRJnCxejFoDpYTOwzm5o21ZXMaNqtRlvS183XzGDUPRdVEzJNImcQokqYZ8BNTnk9DkKiuWxw75+DCCoZ26w== +webpack-cli@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.0" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.3" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" colorette "^2.0.14" commander "^10.0.1" cross-spawn "^7.0.3" @@ -1816,34 +1841,34 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@5.82.0: - version "5.82.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.0.tgz#3c0d074dec79401db026b4ba0fb23d6333f88e7d" - integrity sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg== +webpack@5.91.0: + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.13.0" + enhanced-resolve "^5.16.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.2" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" webpack-sources "^3.2.3" which@^1.2.1: diff --git a/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api b/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api index 9786fcb..85dc776 100644 --- a/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api +++ b/kotlinx-uuid-core/api/android/kotlinx-uuid-core.api @@ -62,7 +62,7 @@ public final class kotlinx/uuid/Serializer$WrappedCurlyBrackets : kotlinx/uuid/S public static final field INSTANCE Lkotlinx/uuid/Serializer$WrappedCurlyBrackets; } -public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/lang/Comparable { +public final class kotlinx/uuid/UUID : android/os/Parcelable, java/lang/Comparable { public static final field CREATOR Landroid/os/Parcelable$Creator; public static final field Companion Lkotlinx/uuid/UUID$Companion; public fun ()V @@ -73,6 +73,7 @@ public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/la public synthetic fun (Lkotlinx/uuid/UUID$Version;JIJIILkotlin/jvm/internal/DefaultConstructorMarker;)V public synthetic fun compareTo (Ljava/lang/Object;)I public fun compareTo (Lkotlinx/uuid/UUID;)I + public final fun describeContents ()I public fun equals (Ljava/lang/Object;)Z public final fun getClockSequence ()I public final fun getNode ()J @@ -84,6 +85,7 @@ public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/la public final fun isRfcVariant ()Z public fun toString ()Ljava/lang/String; public final fun toString (Z)Ljava/lang/String; + public final fun writeToParcel (Landroid/os/Parcel;I)V } public final class kotlinx/uuid/UUID$Companion { @@ -92,6 +94,14 @@ public final class kotlinx/uuid/UUID$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class kotlinx/uuid/UUID$Creator : android/os/Parcelable$Creator { + public fun ()V + public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object; + public final fun createFromParcel (Landroid/os/Parcel;)Lkotlinx/uuid/UUID; + public synthetic fun newArray (I)[Ljava/lang/Object; + public final fun newArray (I)[Lkotlinx/uuid/UUID; +} + public final class kotlinx/uuid/UUID$Version : java/lang/Enum { public static final field DCE_SECURITY Lkotlinx/uuid/UUID$Version; public static final field NAME_BASED_MD5 Lkotlinx/uuid/UUID$Version; @@ -118,13 +128,3 @@ public final class kotlinx/uuid/UUIDKt { public static final fun toUUIDOrNull (Ljava/lang/String;)Lkotlinx/uuid/UUID; } -public abstract class kotlinx/uuid/internal/Parcelable : android/os/Parcelable { - public fun (JJ)V - public fun describeContents ()I - public fun writeToParcel (Landroid/os/Parcel;I)V -} - -public final class kotlinx/uuid/internal/Parcelable_androidKt { - public static final fun getCreator ()Landroid/os/Parcelable$Creator; -} - diff --git a/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api b/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api index 4a3c1ca..97d07cc 100644 --- a/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api +++ b/kotlinx-uuid-core/api/jvm/kotlinx-uuid-core.api @@ -67,8 +67,7 @@ public final class kotlinx/uuid/Serializer$WrappedCurlyBrackets : kotlinx/uuid/S public static final field INSTANCE Lkotlinx/uuid/Serializer$WrappedCurlyBrackets; } -public final class kotlinx/uuid/UUID : kotlinx/uuid/internal/Parcelable, java/lang/Comparable { - public static final field CREATOR Lkotlinx/uuid/internal/ParcelableCreator; +public final class kotlinx/uuid/UUID : java/lang/Comparable, kotlinx/uuid/internal/CommonParcelable { public static final field Companion Lkotlinx/uuid/UUID$Companion; public fun ()V public fun (IJIJI)V @@ -123,10 +122,6 @@ public final class kotlinx/uuid/UUIDKt { public static final fun toUUIDOrNull (Ljava/lang/String;)Lkotlinx/uuid/UUID; } -public abstract class kotlinx/uuid/internal/Parcelable { - public fun (JJ)V -} - -public abstract interface class kotlinx/uuid/internal/ParcelableCreator { +public abstract interface class kotlinx/uuid/internal/CommonParcelable { } diff --git a/kotlinx-uuid-core/build.gradle.kts b/kotlinx-uuid-core/build.gradle.kts index b0d20f6..ea084b7 100644 --- a/kotlinx-uuid-core/build.gradle.kts +++ b/kotlinx-uuid-core/build.gradle.kts @@ -11,22 +11,19 @@ plugins { id("dokkaLicensee") id("kover") id("com.android.library") + kotlin("plugin.parcelize") } kotlin { applyDefaultHierarchyTemplate { common { group("linuxDerivat") { - withAndroidNative() - withLinux() + group("androidNative") + group("linux") } } } - androidTarget { - instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) - } - sourceSets { commonMain { dependencies { @@ -56,10 +53,6 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } testOptions { managedDevices { localDevices { @@ -77,13 +70,18 @@ android { kotlin { androidTarget { publishAllLibraryVariants() + + instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) } sourceSets { named("androidInstrumentedTest") { dependencies { - implementation("androidx.test:runner:1.5.2") - implementation("androidx.test.ext:junit-ktx:1.1.4") + implementation(libs.androidx.test.runner) } } } + compilerOptions.freeCompilerArgs.addAll( + "-P", + "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=kotlinx.uuid.internal.CommonParcelize", + ) } diff --git a/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt b/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt index 2bd2dde..6c5c64f 100644 --- a/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt +++ b/kotlinx-uuid-core/src/androidInstrumentedTest/kotlin/kotlinx/uuid/internal/ParcelableTest.kt @@ -1,12 +1,10 @@ package kotlinx.uuid.internal import android.os.Parcel -import androidx.test.ext.junit.runners.* +import kotlinx.parcelize.parcelableCreator import kotlinx.uuid.* -import org.junit.runner.* import kotlin.test.* -@RunWith(AndroidJUnit4::class) class ParcelableTest { @Test fun testParcelable() { @@ -14,6 +12,6 @@ class ParcelableTest { val uuid = UUID(SOME_UUID_STRING) uuid.writeToParcel(parcel, uuid.describeContents()) parcel.setDataPosition(0) - assertEquals(uuid, UUID.CREATOR.createFromParcel(parcel)) + assertEquals(uuid, parcelableCreator().createFromParcel(parcel)) } } diff --git a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt new file mode 100644 index 0000000..b0f1a52 --- /dev/null +++ b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/CommonParcelable.android.kt @@ -0,0 +1,5 @@ +package kotlinx.uuid.internal + +import android.os.* + +public actual typealias CommonParcelable = Parcelable diff --git a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt b/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt deleted file mode 100644 index 120194b..0000000 --- a/kotlinx-uuid-core/src/androidMain/kotlin/kotlinx/uuid/internal/Parcelable.android.kt +++ /dev/null @@ -1,31 +0,0 @@ -@file:Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") - -package kotlinx.uuid.internal - -import android.os.* -import kotlinx.uuid.* - -public actual abstract class Parcelable actual constructor( - private val timeStampAndVersionRaw: Long, - private val clockSequenceVariantAndNodeRaw: Long -) : android.os.Parcelable { - override fun describeContents(): Int = 0 - override fun writeToParcel(parcel: Parcel, flags: Int) { - parcel.writeLong(timeStampAndVersionRaw) - parcel.writeLong(clockSequenceVariantAndNodeRaw) - } -} - -internal actual typealias ParcelableCreator = android.os.Parcelable.Creator - -public actual val creator: ParcelableCreator = object : android.os.Parcelable.Creator { - override fun createFromParcel(parcel: Parcel): UUID { - val timeStampAndVersionRaw = parcel.readLong() - val clockSequenceVariantAndNodeRaw = parcel.readLong() - return UUID(timeStampAndVersionRaw, clockSequenceVariantAndNodeRaw) - } - - override fun newArray(size: Int): Array { - return arrayOfNulls(size) - } -} diff --git a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt new file mode 100644 index 0000000..76c06b9 --- /dev/null +++ b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/CommonParcelable.apple.kt @@ -0,0 +1,3 @@ +package kotlinx.uuid.internal + +public actual interface CommonParcelable diff --git a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt b/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt deleted file mode 100644 index b4aef6c..0000000 --- a/kotlinx-uuid-core/src/appleMain/kotlin/kotlinx/uuid/internal/Parcelable.apple.kt +++ /dev/null @@ -1,13 +0,0 @@ -package kotlinx.uuid.internal - -import kotlinx.uuid.* - -@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual abstract class Parcelable actual constructor( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public actual interface ParcelableCreator - -internal actual val creator: ParcelableCreator = object : ParcelableCreator {} diff --git a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt index 9d04b8f..e6e1652 100644 --- a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt +++ b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID.kt @@ -12,11 +12,12 @@ import kotlin.jvm.* * This type represents a UUID as per RFC * See: https://tools.ietf.org/html/rfc4122 */ +@CommonParcelize @Serializable(with = Serializer.Default::class) public class UUID internal constructor( internal val timeStampAndVersionRaw: Long, internal val clockSequenceVariantAndNodeRaw: Long, -) : Parcelable(timeStampAndVersionRaw, clockSequenceVariantAndNodeRaw), Comparable { +) : CommonParcelable, Comparable { private constructor( helper: UUID ) : this( @@ -26,7 +27,7 @@ public class UUID internal constructor( /** * Creates an instance by the string [uuid] representation. - * An input string should consist of five hexademical parts + * An input string should consist of five hexadecimal parts * separated with the minus character, and optionally surrounded with curly brackets. * The space and tab characters are ignored at the end and at the beginning * and surrounding brackets and minus characters. @@ -206,9 +207,6 @@ public class UUID internal constructor( } private fun versionFor(id: Int): Version? = Version.entries.firstOrNull { it.id == id } - - @JvmField - public val CREATOR: ParcelableCreator = creator } } diff --git a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID7.kt b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID7.kt index be36623..09f27e1 100644 --- a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID7.kt +++ b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/UUID7.kt @@ -16,14 +16,14 @@ public fun UUIDv7(timeStamp: Long, random: Random = SecureRandom): UUID { require(timeStamp <= UNIX_48_TIMESTAMP) { "timeStamp $timeStamp must be <= 48 bits, was $timeStamp." } + val helper = random.nextUUID() val leftTimeStamp = timeStamp shl 16 - val rand_a = random.nextBits(12).toLong() - val timeStampAndVersionRaw = (leftTimeStamp or rand_a) and -0xf001L or 0x7000L - - // set variant to 4 or 5 - // we keep the lower variant bit random as it is defined as "don't care" - val clockSequenceVariantAndNodeRaw: Long = random.nextLong() and - 0x3fffffffffffffffL or (0x80L shl 0x38) + // set version to 0b0111 + val leftTimeStampAndVersion = leftTimeStamp or 28672 + val rand_a = helper.timeStamp and 4095 + val timeStampAndVersionRaw = leftTimeStampAndVersion or rand_a + // set variant to 0b10 + val clockSequenceVariantAndNodeRaw = (2L shl 62) or (helper.clockSequenceVariantAndNodeRaw ushr 2) return create(timeStampAndVersionRaw, clockSequenceVariantAndNodeRaw) } diff --git a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt index 0ef753a..15c6dd3 100644 --- a/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt +++ b/kotlinx-uuid-core/src/commonMain/kotlin/kotlinx/uuid/internal/Parcelable.kt @@ -1,13 +1,6 @@ package kotlinx.uuid.internal -import kotlinx.uuid.* +@Target(AnnotationTarget.CLASS) +internal annotation class CommonParcelize -@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public expect abstract class Parcelable( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public expect interface ParcelableCreator - -internal expect val creator: ParcelableCreator +public expect interface CommonParcelable diff --git a/kotlinx-uuid-core/src/commonTest/kotlin/kotlinx/uuid/UUIDv7Test.kt b/kotlinx-uuid-core/src/commonTest/kotlin/kotlinx/uuid/UUIDv7Test.kt index c6fb52b..ac3a68b 100644 --- a/kotlinx-uuid-core/src/commonTest/kotlin/kotlinx/uuid/UUIDv7Test.kt +++ b/kotlinx-uuid-core/src/commonTest/kotlin/kotlinx/uuid/UUIDv7Test.kt @@ -13,8 +13,7 @@ class UUIDv7Test { assertEquals(1645557742000, one.unixTimeStamp) assertEquals(1645557742000, two.unixTimeStamp) - assertEquals("017f22e2-79b0-735c-9e4a-5c16cd08736d", one.toString()) + assertEquals("017f22e2-79b0-7493-a342-1cdb22b5d84b", one.toString()) assertEquals(7, one.versionNumber) - assertEquals(4, one.variant) } } diff --git a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt new file mode 100644 index 0000000..76c06b9 --- /dev/null +++ b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/CommonParcelable.js.kt @@ -0,0 +1,3 @@ +package kotlinx.uuid.internal + +public actual interface CommonParcelable diff --git a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt b/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt deleted file mode 100644 index b4aef6c..0000000 --- a/kotlinx-uuid-core/src/jsMain/kotlin/kotlinx/uuid/internal/Parcelable.js.kt +++ /dev/null @@ -1,13 +0,0 @@ -package kotlinx.uuid.internal - -import kotlinx.uuid.* - -@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual abstract class Parcelable actual constructor( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public actual interface ParcelableCreator - -internal actual val creator: ParcelableCreator = object : ParcelableCreator {} diff --git a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt new file mode 100644 index 0000000..76c06b9 --- /dev/null +++ b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/CommonParcelable.jvm.kt @@ -0,0 +1,3 @@ +package kotlinx.uuid.internal + +public actual interface CommonParcelable diff --git a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt b/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt deleted file mode 100644 index 0f25577..0000000 --- a/kotlinx-uuid-core/src/jvmMain/kotlin/kotlinx/uuid/internal/Parcelable.jvm.kt +++ /dev/null @@ -1,15 +0,0 @@ -@file:Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") - -package kotlinx.uuid.internal - -import kotlinx.uuid.* - -public actual abstract class Parcelable actual constructor( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public actual interface ParcelableCreator - -internal actual val creator: ParcelableCreator = object : ParcelableCreator { -} diff --git a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt new file mode 100644 index 0000000..76c06b9 --- /dev/null +++ b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/CommonParcelable.linux.kt @@ -0,0 +1,3 @@ +package kotlinx.uuid.internal + +public actual interface CommonParcelable diff --git a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt b/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt deleted file mode 100644 index b4aef6c..0000000 --- a/kotlinx-uuid-core/src/linuxDerivatMain/kotlin/kotlinx/uuid/internal/Parcelable.linux.kt +++ /dev/null @@ -1,13 +0,0 @@ -package kotlinx.uuid.internal - -import kotlinx.uuid.* - -@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual abstract class Parcelable actual constructor( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public actual interface ParcelableCreator - -internal actual val creator: ParcelableCreator = object : ParcelableCreator {} diff --git a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt new file mode 100644 index 0000000..76c06b9 --- /dev/null +++ b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/CommonParcelable.ming.kt @@ -0,0 +1,3 @@ +package kotlinx.uuid.internal + +public actual interface CommonParcelable diff --git a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt b/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt deleted file mode 100644 index b4aef6c..0000000 --- a/kotlinx-uuid-core/src/mingwX64Main/kotlin/kotlinx/uuid/internal/Parcelable.ming.kt +++ /dev/null @@ -1,13 +0,0 @@ -package kotlinx.uuid.internal - -import kotlinx.uuid.* - -@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual abstract class Parcelable actual constructor( - timeStampAndVersionRaw: Long, - clockSequenceVariantAndNodeRaw: Long -) - -public actual interface ParcelableCreator - -internal actual val creator: ParcelableCreator = object : ParcelableCreator {} diff --git a/kotlinx-uuid-datetime/README.md b/kotlinx-uuid-datetime/README.md new file mode 100644 index 0000000..6100275 --- /dev/null +++ b/kotlinx-uuid-datetime/README.md @@ -0,0 +1,21 @@ +# Module kotlinx-uuid-datetime + +Provides support for UUIDv7 using kotlinx-datetime. + +```kotlin +dependencies { + implementation("app.softwork:kotlinx-uuid-datetime:LATEST") +} +``` + +UUIDv7 with the current timestamp using `Clock.System` and default SecureRandom can be created using: + +```kotlin +val uuid = UUIDv7() +``` + +When processing existing UUIDv7s, the timestamp bits can be interpreted as an Instant with millisecond precision using: + +```kotlin +UUIDv7().instant +``` diff --git a/kotlinx-uuid-datetime/api/kotlinx-uuid-datetime.api b/kotlinx-uuid-datetime/api/kotlinx-uuid-datetime.api new file mode 100644 index 0000000..ddfcd26 --- /dev/null +++ b/kotlinx-uuid-datetime/api/kotlinx-uuid-datetime.api @@ -0,0 +1,6 @@ +public final class kotlinx/uuid/datetime/DslKt { + public static final fun UUIDv7 (Lkotlinx/datetime/Instant;Lkotlin/random/Random;)Lkotlinx/uuid/UUID; + public static synthetic fun UUIDv7$default (Lkotlinx/datetime/Instant;Lkotlin/random/Random;ILjava/lang/Object;)Lkotlinx/uuid/UUID; + public static final fun getInstant (Lkotlinx/uuid/UUID;)Lkotlinx/datetime/Instant; +} + diff --git a/kotlinx-uuid-datetime/build.gradle.kts b/kotlinx-uuid-datetime/build.gradle.kts new file mode 100644 index 0000000..b30df21 --- /dev/null +++ b/kotlinx-uuid-datetime/build.gradle.kts @@ -0,0 +1,24 @@ +/* + * Copyright 2020-2021 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + * Copyright 2021 hfhbd and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("kotlinMPP") + id("publish") + id("dokkaLicensee") +} + +kotlin.sourceSets { + commonMain { + dependencies { + api(projects.kotlinxUuidCore) + api(libs.datetime) + } + } + commonTest { + dependencies { + implementation(kotlin("test")) + } + } +} diff --git a/kotlinx-uuid-datetime/src/commonMain/kotlin/kotlinx/uuid/datetime/Dsl.kt b/kotlinx-uuid-datetime/src/commonMain/kotlin/kotlinx/uuid/datetime/Dsl.kt new file mode 100644 index 0000000..572192b --- /dev/null +++ b/kotlinx-uuid-datetime/src/commonMain/kotlin/kotlinx/uuid/datetime/Dsl.kt @@ -0,0 +1,20 @@ +package kotlinx.uuid.datetime + +import kotlinx.datetime.Clock +import kotlinx.datetime.Instant +import kotlinx.uuid.SecureRandom +import kotlinx.uuid.UUID +import kotlinx.uuid.UUIDExperimentalAPI +import kotlinx.uuid.UUIDv7 +import kotlinx.uuid.unixTimeStamp +import kotlin.random.Random + +@UUIDExperimentalAPI +public fun UUIDv7(timeStamp: Instant = Clock.System.now(), random: Random = SecureRandom): UUID = + UUIDv7(timeStamp = timeStamp.toEpochMilliseconds(), random = random) + +/** + * The UUIDv7 48 bit big-endian unsigned number of Unix epoch timestamp in milliseconds + */ +@UUIDExperimentalAPI +public val UUID.instant: Instant get() = Instant.fromEpochMilliseconds(unixTimeStamp) diff --git a/kotlinx-uuid-datetime/src/commonTest/kotlin/kotlinx/uuid/datetime/InstantTest.kt b/kotlinx-uuid-datetime/src/commonTest/kotlin/kotlinx/uuid/datetime/InstantTest.kt new file mode 100644 index 0000000..ba2e95d --- /dev/null +++ b/kotlinx-uuid-datetime/src/commonTest/kotlin/kotlinx/uuid/datetime/InstantTest.kt @@ -0,0 +1,20 @@ +package kotlinx.uuid.datetime + +import kotlinx.datetime.Instant +import kotlinx.uuid.UUIDExperimentalAPI +import kotlin.random.Random +import kotlin.test.Test +import kotlin.test.assertEquals + +@OptIn(UUIDExperimentalAPI::class) +class InstantTest { + + @Test + fun testConversionInstant() { + val timestamp = Instant.parse("2020-02-20T10:21:42Z") + val uuid = UUIDv7(timeStamp = timestamp, random = Random(4242)) + assertEquals(timestamp, uuid.instant) + assertEquals("0170621e-0ef0-7493-a342-1cdb22b5d84b", uuid.toString()) + assertEquals(7, uuid.versionNumber) + } +} diff --git a/kotlinx-uuid-exposed/api/kotlinx-uuid-exposed.api b/kotlinx-uuid-exposed/api/kotlinx-uuid-exposed.api index 7e7514c..80ae5ee 100644 --- a/kotlinx-uuid-exposed/api/kotlinx-uuid-exposed.api +++ b/kotlinx-uuid-exposed/api/kotlinx-uuid-exposed.api @@ -23,8 +23,10 @@ public class kotlinx/uuid/exposed/KotlinxUUIDTable : org/jetbrains/exposed/dao/i public final class kotlinx/uuid/exposed/UUIDColumnType : org/jetbrains/exposed/sql/ColumnType { public fun ()V - public fun nonNullValueToString (Ljava/lang/Object;)Ljava/lang/String; - public fun notNullValueToDB (Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun nonNullValueToString (Ljava/lang/Object;)Ljava/lang/String; + public fun nonNullValueToString (Lkotlinx/uuid/UUID;)Ljava/lang/String; + public synthetic fun notNullValueToDB (Ljava/lang/Object;)Ljava/lang/Object; + public fun notNullValueToDB (Lkotlinx/uuid/UUID;)Ljava/lang/Object; public fun sqlType ()Ljava/lang/String; public synthetic fun valueFromDB (Ljava/lang/Object;)Ljava/lang/Object; public fun valueFromDB (Ljava/lang/Object;)Lkotlinx/uuid/UUID; diff --git a/kotlinx-uuid-exposed/src/main/kotlin/kotlinx/uuid/exposed/UUIDColumnType.kt b/kotlinx-uuid-exposed/src/main/kotlin/kotlinx/uuid/exposed/UUIDColumnType.kt index 83eefa9..adff91d 100644 --- a/kotlinx-uuid-exposed/src/main/kotlin/kotlinx/uuid/exposed/UUIDColumnType.kt +++ b/kotlinx-uuid-exposed/src/main/kotlin/kotlinx/uuid/exposed/UUIDColumnType.kt @@ -13,7 +13,7 @@ import java.nio.* * A [UUID] column type for registering in exposed tables. * @see kotlinxUUID to see how it is used */ -public class UUIDColumnType : ColumnType() { +public class UUIDColumnType : ColumnType() { override fun sqlType(): String = currentDialect.dataTypeProvider.uuidType() override fun valueFromDB(value: Any): UUID = when { @@ -25,9 +25,9 @@ public class UUIDColumnType : ColumnType() { else -> error("Unexpected value of type UUID: $value of ${value::class.qualifiedName}") } - override fun notNullValueToDB(value: Any): Any = currentDialect.dataTypeProvider.uuidToDB(valueToUUID(value)) + override fun notNullValueToDB(value: UUID): Any = currentDialect.dataTypeProvider.uuidToDB(valueToUUID(value)) - override fun nonNullValueToString(value: Any): String = "'${valueToUUID(value)}'" + override fun nonNullValueToString(value: UUID): String = "'${valueToUUID(value)}'" internal fun valueToUUID(value: Any): java.util.UUID = when (value) { is java.util.UUID -> value diff --git a/settings.gradle.kts b/settings.gradle.kts index 09498dd..362dfb0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,17 +14,20 @@ pluginManagement { plugins { id("mySettings") id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" - id("com.gradle.enterprise") version "3.16.2" + id("com.gradle.develocity") version "3.17.5" } -gradleEnterprise { +develocity { buildScan { - termsOfServiceUrl = "https://gradle.com/terms-of-service" - termsOfServiceAgree = "yes" - if (System.getenv("CI") != null) { - publishAlways() - tag("CI") + termsOfUseUrl.set("https://gradle.com/terms-of-service") + termsOfUseAgree.set("yes") + publishing { + val isCI = providers.environmentVariable("CI").isPresent + onlyIf { + isCI + } } + tag("CI") } } @@ -37,3 +40,4 @@ include(":kotlinx-uuid-core") include(":kotlinx-uuid-exposed") include(":kotlinx-uuid-sqldelight") +include(":kotlinx-uuid-datetime")