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")