diff --git a/.gitignore b/.gitignore index 15bdb561..a1a289b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,37 +1,9 @@ -# Gradle files .gradle/ -.kotlin/ build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Log/OS Files -*.log - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -*.apk -output.json - -# IntelliJ *.iml .idea/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml - -# Keystore files -*.jks -*.keystore - -# Google Services (e.g. APIs or Firebase) -google-services.json - -# Android Profiling -*.hprof +local.properties +.kotlin/ gh-pages/* !gh-pages/publish.sh diff --git a/.kotlin-js-store/yarn.lock b/.kotlin-js-store/yarn.lock index 6ac1eb19..f7c28c07 100644 --- a/.kotlin-js-store/yarn.lock +++ b/.kotlin-js-store/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-regex@^5.0.1: version "5.0.1" @@ -42,14 +42,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - brace-expansion@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" @@ -64,7 +56,7 @@ braces@~3.0.2: dependencies: fill-range "^7.1.1" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -87,10 +79,10 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -123,27 +115,22 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: - ms "2.1.2" + ms "^2.1.3" decamelize@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== emoji-regex@^8.0.0: version "8.0.0" @@ -155,7 +142,7 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -167,7 +154,7 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -find-up@5.0.0: +find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -207,24 +194,23 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -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" has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -he@1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -281,47 +267,54 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -kmp-tor.resource-exec-tor.all@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.all/-/kmp-tor.resource-exec-tor.all-408.13.0.tgz#6e37151c29ff286fcf59a34db2b764ab2561dfa7" - integrity sha512-7oOKoAhllo6xP947ygXgulycZBnTnRf9p9/9eLvScwS5AMcR2MTQYjGIL+a+iUXQs4xKTfa9mMCf3Ei8JSJLPg== - dependencies: - kmp-tor.resource-exec-tor.linux-android "408.13.0" - kmp-tor.resource-exec-tor.linux-libc "408.13.0" - kmp-tor.resource-exec-tor.macos "408.13.0" - kmp-tor.resource-exec-tor.mingw "408.13.0" - -kmp-tor.resource-exec-tor.linux-android@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-android/-/kmp-tor.resource-exec-tor.linux-android-408.13.0.tgz#32b39c6c0b41ec8a02aa14aeb46f26648547e817" - integrity sha512-XDOipQAQJxtt41B8bRsk/nGDYJ1ItqFi++xSQKlfSkzZRbfh+ZIjyAWbe+EIOSTe1SzWgKRMGQVTV3Yq0sPSvw== - -kmp-tor.resource-exec-tor.linux-libc@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-libc/-/kmp-tor.resource-exec-tor.linux-libc-408.13.0.tgz#de75df9042ef29408cf417d3a8bec9aea3789859" - integrity sha512-K7E9/bSE85VyeaPjuZVfxWvVzYeEMTFNvmNwnOk/1CeT/gJYgNTkh7OThX2TTmmHGAEGpXYhr22pLA76dxP8Bw== - -kmp-tor.resource-exec-tor.macos@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.macos/-/kmp-tor.resource-exec-tor.macos-408.13.0.tgz#44bc56cbf559c8bed4ab163604ddd7c91f570511" - integrity sha512-JGsd24e4SoMBf5cMYJFAbZG4D66AODG9fCEwdF7xqfjgmsUVmNbzUyR0W3kFeHz4n1AdymnhxcE3kptEhSAGPg== - -kmp-tor.resource-exec-tor.mingw@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.mingw/-/kmp-tor.resource-exec-tor.mingw-408.13.0.tgz#df4e5acf63b2ca14c005aecfe2aa52275597e4e0" - integrity sha512-1Aeyl09Tp+629xFOQlPoULxNEIZlVoY9z/dG4QG270Qmss+QLpaWbHJ1IMIeqzSZmrTg73rvFjLSwuYDm3muSg== - -kmp-tor.resource-geoip@408.13.0: - version "408.13.0" - resolved "https://registry.yarnpkg.com/kmp-tor.resource-geoip/-/kmp-tor.resource-geoip-408.13.0.tgz#57f94a356782c2372a7ba67bd05148b6db0f42eb" - integrity sha512-6lxdb86o7J91sl8qcJn6e/VeGPtbgUG+IPRaw+1gALCTKdpjGpUrKDYY2Nk23bo+DOAGmgg24Pv9nTv9AcH4Jg== +kmp-tor.resource-exec-tor.all@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.all/-/kmp-tor.resource-exec-tor.all-408.13.1.tgz#59acf4cb0dab09013703a958c9b77d8dc20443e4" + integrity sha512-Vuj31GS3Fh5/TZnkBi283Qk+FVd09r8tJ76kQakgwDOFlGHWmK6ABecD9x/tvrA8HHIQWuzXvSg6SSzv2E8SbA== + dependencies: + kmp-tor.resource-exec-tor.linux-android "408.13.1" + kmp-tor.resource-exec-tor.linux-libc "408.13.1" + kmp-tor.resource-exec-tor.macos "408.13.1" + kmp-tor.resource-exec-tor.mingw "408.13.1" + +kmp-tor.resource-exec-tor.linux-android@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-android/-/kmp-tor.resource-exec-tor.linux-android-408.13.1.tgz#84bdc74d59d92e893de3339c0ba674805e37e815" + integrity sha512-fesyH6/hE1z9H4aG0q0Y4U9V45Q/cE805HmQmwUz+NZTXeOakAuQPuslLgpuyMlHZBdFpWJgwq6+pnZmKBFd4g== + +kmp-tor.resource-exec-tor.linux-libc@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.linux-libc/-/kmp-tor.resource-exec-tor.linux-libc-408.13.1.tgz#c692270c887cfd95a14418b7175c962be01c55bd" + integrity sha512-3TMJi+GG2DbyXiPRphPgGpa/F++l8b6JBB1qARQt12uzbgBvoSB+ddpCoEBOwhcvDzkeNUJfXvjFUhV1fTz9bg== + +kmp-tor.resource-exec-tor.macos@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.macos/-/kmp-tor.resource-exec-tor.macos-408.13.1.tgz#f461bf9eeec7740d6722c07e3999b74464e3ecff" + integrity sha512-Sg7phKEO3yVHjRonZHHdeu2finhR/K9iS/uVPqi88k0x5dNTG1Cc2y14WPjZRlqQPREufkB+jjyY+NxjylQgeQ== + +kmp-tor.resource-exec-tor.mingw@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-exec-tor.mingw/-/kmp-tor.resource-exec-tor.mingw-408.13.1.tgz#196243b3ba3fb8dff85bda28e86435906dcaa091" + integrity sha512-P0jdwV6fc3VtCJSM5wRazGNbUZOQANWScJopDOAR0s3S+s2tW2bsrclcR6lGJgg0y5VPMFkZsM2lAs7ngPq9Uw== + +kmp-tor.resource-geoip@408.13.1: + version "408.13.1" + resolved "https://registry.yarnpkg.com/kmp-tor.resource-geoip/-/kmp-tor.resource-geoip-408.13.1.tgz#3350bc9fd0c6ca8a1f272b8517b2b06d740eccc2" + integrity sha512-VZ99nFBLSQ/HJohWz5vIB4uPJ6cxaxwSwVpYSk2cQgTnzqP0rN0R35Ap1o5MIwnj4LRhqLTUvWz/Ky3ZY9++yQ== + +kotlin-web-helpers@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" + integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== + dependencies: + format-util "^1.0.5" locate-path@^6.0.0: version "6.0.0" @@ -330,7 +323,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -338,62 +331,44 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^5.0.1, minimatch@^5.1.6: + 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@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -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== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.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" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: +mocha@10.7.3: + version "10.7.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" + +ms@^2.1.3: version "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== - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -425,11 +400,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -459,10 +429,10 @@ safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -495,18 +465,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -514,6 +477,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -521,15 +491,15 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -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.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== wrap-ansi@^7.0.0: version "7.0.0" @@ -550,17 +520,12 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -570,7 +535,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/README.md b/README.md index 55935eb6..535cafe1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![badge-kotlin]][url-kotlin] [![badge-coroutines]][url-coroutines] -[![badge-endians]][url-endians] +[![badge-bitops]][url-bitops] [![badge-immutable]][url-immutable] [![badge-kmp-file]][url-kmp-file] @@ -227,11 +227,11 @@ dependencies { [badge-license]: https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat -[badge-coroutines]: https://img.shields.io/badge/kotlinx.coroutines-1.8.1-blue.svg?logo=kotlin -[badge-endians]: https://img.shields.io/badge/kotlincrypto.endians-0.3.1-blue.svg?style=flat -[badge-immutable]: https://img.shields.io/badge/immutable-0.1.4-blue.svg?style=flat -[badge-kmp-file]: https://img.shields.io/badge/kmp--file-0.1.1-blue.svg?style=flat -[badge-kotlin]: https://img.shields.io/badge/kotlin-1.9.24-blue.svg?logo=kotlin +[badge-coroutines]: https://img.shields.io/badge/kotlinx.coroutines-1.10.1-blue.svg?logo=kotlin +[badge-bitops]: https://img.shields.io/badge/kotlincrypto.bitops-0.1.2-blue.svg?style=flat +[badge-immutable]: https://img.shields.io/badge/immutable-0.2.0-blue.svg?style=flat +[badge-kmp-file]: https://img.shields.io/badge/kmp--file-0.2.0-blue.svg?style=flat +[badge-kotlin]: https://img.shields.io/badge/kotlin-2.1.10-blue.svg?logo=kotlin [badge-platform-android]: http://img.shields.io/badge/-android-6EDB8D.svg?style=flat @@ -254,7 +254,7 @@ dependencies { [url-latest-release]: https://github.com/05nelsonm/kmp-process/releases/latest [url-license]: https://www.apache.org/licenses/LICENSE-2.0 [url-coroutines]: https://github.com/Kotlin/kotlinx.coroutines -[url-endians]: https://github.com/KotlinCrypto/endians +[url-bitops]: https://github.com/KotlinCrypto/bitops [url-immutable]: https://github.com/05nelsonm/immutable [url-kmp-file]: https://github.com/05nelsonm/kmp-file [url-kotlin]: https://kotlinlang.org diff --git a/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt b/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt index 823ba616..63583a27 100644 --- a/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt +++ b/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ -import io.matthewnelson.kmp.configuration.ExperimentalKmpConfigurationApi import io.matthewnelson.kmp.configuration.extension.KmpConfigurationExtension import io.matthewnelson.kmp.configuration.extension.container.target.KmpConfigurationContainerDsl import org.gradle.api.Action @@ -41,10 +40,9 @@ fun KmpConfigurationExtension.configureShared( compileTargetCompatibility = JavaVersion.VERSION_1_8 // windows always throws a fit if not using Java 11. This disables - // compilations of module-info.java. Nobody deploys from Windows + // compilation of module-info.java. Nobody deploys from Windows // anyway... if (!HostManager.hostIsMingw) { - @OptIn(ExperimentalKmpConfigurationApi::class) java9ModuleInfoName = java9ModuleName } } diff --git a/build-logic/src/main/kotlin/dokka.gradle.kts b/build-logic/src/main/kotlin/dokka.gradle.kts index e1c9bf13..d5b10ad0 100644 --- a/build-logic/src/main/kotlin/dokka.gradle.kts +++ b/build-logic/src/main/kotlin/dokka.gradle.kts @@ -13,34 +13,38 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ -import org.jetbrains.dokka.DokkaConfiguration.Visibility -import org.jetbrains.dokka.gradle.DokkaTaskPartial +import org.jetbrains.dokka.gradle.DokkaExtension +import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import java.net.URI plugins { id("org.jetbrains.dokka") } -tasks.withType().configureEach { - suppressInheritedMembers = true +rootProject.dependencies { dokka(project(project.path)) } + +extensions.configure { + dokkaPublications.configureEach { + suppressInheritedMembers.set(true) + } dokkaSourceSets.configureEach { includes.from("README.md") - noStdlibLink = true + enableKotlinStdLibDocumentationLink.set(false) - externalDocumentationLink { - url = URI("https://kmp-file.matthewnelson.io/").toURL() + externalDocumentationLinks.create("kmp-file") { + url.set(URI("https://kmp-file.matthewnelson.io/")) } sourceLink { - localDirectory = rootDir - remoteUrl = URI("https://github.com/05nelsonm/kmp-process/tree/master").toURL() - remoteLineSuffix = "#L" + localDirectory.set(rootDir) + remoteUrl.set(URI("https://github.com/05nelsonm/kmp-process/tree/master")) + remoteLineSuffix.set("#L") } - documentedVisibilities.set(setOf( - Visibility.PUBLIC, - Visibility.PROTECTED, - )) + documentedVisibilities( + VisibilityModifier.Public, + VisibilityModifier.Protected, + ) } } diff --git a/gh-pages/publish.sh b/gh-pages/publish.sh index 99cce3f0..5b285945 100755 --- a/gh-pages/publish.sh +++ b/gh-pages/publish.sh @@ -15,21 +15,22 @@ set -e readonly DIR_SCRIPT="$( cd "$( dirname "$0" )" >/dev/null && pwd )" +readonly REPO_NAME="kmp-process" -trap 'rm -rf "$DIR_SCRIPT/kmp-process"' EXIT +trap 'rm -rf "$DIR_SCRIPT/$REPO_NAME"' EXIT cd "$DIR_SCRIPT" -git clone -b gh-pages --single-branch https://github.com/05nelsonm/kmp-process.git -rm -rf "$DIR_SCRIPT/kmp-process/"* -echo "kmp-process.matthewnelson.io" > "$DIR_SCRIPT/kmp-process/CNAME" +git clone -b gh-pages --single-branch https://github.com/05nelsonm/$REPO_NAME.git +rm -rf "$DIR_SCRIPT/$REPO_NAME/"* +echo "$REPO_NAME.matthewnelson.io" > "$DIR_SCRIPT/$REPO_NAME/CNAME" cd .. ./gradlew clean -DKMP_TARGETS_ALL -./gradlew dokkaHtmlMultiModule --no-build-cache -DKMP_TARGETS_ALL -cp -aR build/dokka/htmlMultiModule/* gh-pages/kmp-process +./gradlew dokkaGenerate --no-build-cache -DKMP_TARGETS_ALL +cp -aR build/dokka/html/* gh-pages/$REPO_NAME -cd "$DIR_SCRIPT/kmp-process" -sed -i "s|module:process|module:library/process|g" "package-list" +cd "$DIR_SCRIPT/$REPO_NAME" +sed -i "s|module:|module:library/|g" "package-list" git add --all git commit -S --message "Update dokka docs" diff --git a/gradle.properties b/gradle.properties index 73c3c60f..b1465f8b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,10 @@ kotlin.mpp.applyDefaultHierarchyTemplate=false kotlin.mpp.enableCInteropCommonization=true kotlin.mpp.stability.nowarn=true kotlin.native.ignoreDisabledTargets=true -kotlin.native.ignoreIncorrectDependencies=true +kotlin.suppressGradlePluginWarnings=IncorrectCompileOnlyDependencyWarning + +org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled +org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true SONATYPE_HOST=S01 RELEASE_SIGNING_ENABLED=true @@ -33,10 +36,10 @@ POM_DEVELOPER_ID=05nelsonm POM_DEVELOPER_NAME=Matthew Nelson POM_DEVELOPER_URL=https://github.com/05nelsonm/ -VERSION_NAME=0.1.3-SNAPSHOT +VERSION_NAME=0.2.0-SNAPSHOT # 0.1.0-alpha01 = 00 01 00 11 # 0.1.0-beta01 = 00 01 00 41 # 0.1.0-rc01 = 00 01 00 71 # 0.1.0 = 00 01 00 99 # 1.1.0 = 01 01 00 99 -VERSION_CODE=00010399 +VERSION_CODE=00020099 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0d64b483..3d5cbd25 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,43 +1,44 @@ [versions] -androidx-test-core = "1.5.0" -androidx-test-runner = "1.5.2" +#noinspection GradleDependency +androidx-test-core = "1.5.0" # Do not upgrade. Tests run for API 15+, where next version requires minSdk 19+ +#noinspection GradleDependency +androidx-test-runner = "1.5.2" # Do not upgrade. Tests run for API 15+, where next version requires minSdk 19+ -gradle-android = "8.2.2" -gradle-binary-compat = "0.16.3" -gradle-dokka = "1.9.20" -gradle-kmp-configuration = "0.3.2" -gradle-kotlin = "1.9.24" -gradle-publish-maven = "0.29.0" +gradle-android = "8.7.3" +gradle-binary-compat = "0.17.0" +gradle-dokka = "2.0.0" +gradle-kmp-configuration = "0.4.0" +gradle-kotlin = "2.1.10" +gradle-publish-maven = "0.30.0" -immutable = "0.1.4" +immutable = "0.2.0-SNAPSHOT" -kmp-file = "0.1.1" -kmp-tor-resource = "408.13.0" -kotlincrypto-endians = "0.3.1" -kotlinx-coroutines = "1.8.1" +kmp-file = "0.2.0-SNAPSHOT" +kmp-tor-resource = "408.13.1" +kotlincrypto-catalog = "0.6.1" # Utilized from settings.gradle.kts +kotlinx-coroutines = "1.10.1" [libraries] -gradle-android = { module = "com.android.tools.build:gradle", version.ref = "gradle-android" } -gradle-dokka = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "gradle-dokka" } -gradle-kmp-configuration = { module = "io.matthewnelson:gradle-kmp-configuration-plugin", version.ref = "gradle-kmp-configuration" } -gradle-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "gradle-kotlin" } -gradle-publish-maven = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "gradle-publish-maven" } +gradle-android = { module = "com.android.tools.build:gradle", version.ref = "gradle-android" } +gradle-dokka = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "gradle-dokka" } +gradle-kmp-configuration = { module = "io.matthewnelson:gradle-kmp-configuration-plugin", version.ref = "gradle-kmp-configuration" } +gradle-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "gradle-kotlin" } +gradle-publish-maven = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "gradle-publish-maven" } -immutable-collections = { module = "io.matthewnelson.immutable:collections", version.ref = "immutable" } +immutable-collections = { module = "io.matthewnelson.immutable:collections", version.ref = "immutable" } -kmp-file = { module = "io.matthewnelson.kmp-file:file", version.ref = "kmp-file" } -kotlincrypto-endians = { module = "org.kotlincrypto.endians:endians", version.ref = "kotlincrypto-endians" } -kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kmp-file = { module = "io.matthewnelson.kmp-file:file", version.ref = "kmp-file" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } # tests -androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test-core" } -androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidx-test-runner" } +androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test-core" } +androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidx-test-runner" } kmp-tor-resource-android-unit-test-tor = { module = "io.matthewnelson.kmp-tor:resource-android-unit-test-tor", version.ref = "kmp-tor-resource" } -kmp-tor-resource-exec-tor = { module = "io.matthewnelson.kmp-tor:resource-exec-tor", version.ref = "kmp-tor-resource" } -kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } +kmp-tor-resource-exec-tor = { module = "io.matthewnelson.kmp-tor:resource-exec-tor", version.ref = "kmp-tor-resource" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } [plugins] -android-library = { id = "com.android.library", version.ref = "gradle-android" } -binary-compat = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "gradle-binary-compat" } -dokka = { id = "org.jetbrains.dokka", version.ref = "gradle-dokka" } -kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "gradle-kotlin" } +android-library = { id = "com.android.library", version.ref = "gradle-android" } +binary-compat = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "gradle-binary-compat" } +dokka = { id = "org.jetbrains.dokka", version.ref = "gradle-dokka" } +kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "gradle-kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9d020d72..2e50557b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -5,5 +5,5 @@ zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME # https://gradle.org/release-checksums/ -distributionSha256Sum=f8b4f4772d302c8ff580bc40d0f56e715de69b163546944f787c87abf209c961 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip +distributionSha256Sum=296742a352f0b20ec14b143fb684965ad66086c7810b7b255dee216670716175 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip diff --git a/library/process-testing/src/commonTest/kotlin/io/matthewnelson/kmp/process/testing/ProcessBaseTest.kt b/library/process-testing/src/commonTest/kotlin/io/matthewnelson/kmp/process/testing/ProcessBaseTest.kt index 083bb3ba..0f7d98f3 100644 --- a/library/process-testing/src/commonTest/kotlin/io/matthewnelson/kmp/process/testing/ProcessBaseTest.kt +++ b/library/process-testing/src/commonTest/kotlin/io/matthewnelson/kmp/process/testing/ProcessBaseTest.kt @@ -32,7 +32,7 @@ import kotlin.time.Duration import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.seconds -@Suppress("DEPRECATION") +@Suppress("DEPRECATION", "UnusedReceiverParameter") abstract class ProcessBaseTest { protected open val IsAndroidInstrumentTest: Boolean = false @@ -213,6 +213,11 @@ abstract class ProcessBaseTest { @Test fun givenFeed_whenExceptionHandler_thenNotifies() = runTest(timeout = 5.seconds) { + if (IsWindows) { + println("Skipping...") + return@runTest + } + val shouldThrow = !IsAndroidInstrumentTest && !IsNodeJs var invocationError = 0 @@ -233,7 +238,7 @@ abstract class ProcessBaseTest { .stderr(Stdio.Pipe) .spawn() } catch (e: IOException) { - if (IsDarwinMobile || IsWindows) { + if (IsDarwinMobile) { println("Skipping...") return@runTest } diff --git a/library/process/api/process.klib.api b/library/process/api/process.klib.api index c1c33d02..4c578285 100644 --- a/library/process/api/process.klib.api +++ b/library/process/api/process.klib.api @@ -30,8 +30,6 @@ abstract fun interface io.matthewnelson.kmp.process/OutputFeed { // io.matthewne abstract fun onOutput(kotlin/String?) // io.matthewnelson.kmp.process/OutputFeed.onOutput|onOutput(kotlin.String?){}[0] sealed class Handler : io.matthewnelson.kmp.process/Blocking { // io.matthewnelson.kmp.process/OutputFeed.Handler|null[0] - constructor (io.matthewnelson.kmp.process/Stdio.Config) // io.matthewnelson.kmp.process/OutputFeed.Handler.|(io.matthewnelson.kmp.process.Stdio.Config){}[0] - final var isDestroyed // io.matthewnelson.kmp.process/OutputFeed.Handler.isDestroyed|{}isDestroyed[0] final fun (): kotlin/Boolean // io.matthewnelson.kmp.process/OutputFeed.Handler.isDestroyed.|(){}[0] final fun (kotlin/Boolean) // io.matthewnelson.kmp.process/OutputFeed.Handler.isDestroyed.|(kotlin.Boolean){}[0] @@ -50,8 +48,6 @@ abstract fun interface io.matthewnelson.kmp.process/OutputFeed { // io.matthewne } sealed class Waiter : io.matthewnelson.kmp.process/Blocking.Waiter { // io.matthewnelson.kmp.process/OutputFeed.Waiter|null[0] - constructor (io.matthewnelson.kmp.process/Process, kotlin/Boolean) // io.matthewnelson.kmp.process/OutputFeed.Waiter.|(io.matthewnelson.kmp.process.Process;kotlin.Boolean){}[0] - final suspend fun awaitStopAsync(): io.matthewnelson.kmp.process/Process // io.matthewnelson.kmp.process/OutputFeed.Waiter.awaitStopAsync|awaitStopAsync(){}[0] } } @@ -223,11 +219,7 @@ final value class io.matthewnelson.kmp.process/ReadBuffer { // io.matthewnelson. } sealed class io.matthewnelson.kmp.process/Blocking { // io.matthewnelson.kmp.process/Blocking|null[0] - constructor () // io.matthewnelson.kmp.process/Blocking.|(){}[0] - sealed class Waiter { // io.matthewnelson.kmp.process/Blocking.Waiter|null[0] - constructor (io.matthewnelson.kmp.process/Process) // io.matthewnelson.kmp.process/Blocking.Waiter.|(io.matthewnelson.kmp.process.Process){}[0] - final val process // io.matthewnelson.kmp.process/Blocking.Waiter.process|{}process[0] final fun (): io.matthewnelson.kmp.process/Process // io.matthewnelson.kmp.process/Blocking.Waiter.process.|(){}[0] @@ -276,8 +268,8 @@ sealed class io.matthewnelson.kmp.process/Stdio { // io.matthewnelson.kmp.proces final fun hashCode(): kotlin/Int // io.matthewnelson.kmp.process/Stdio.File.hashCode|hashCode(){}[0] final object Companion { // io.matthewnelson.kmp.process/Stdio.File.Companion|null[0] - final fun of(io.matthewnelson.kmp.file/File, kotlin/Boolean =...): io.matthewnelson.kmp.process/Stdio.File // io.matthewnelson.kmp.process/Stdio.File.Companion.of|of(io.matthewnelson.kmp.file.File;kotlin.Boolean){}[0] - final fun of(kotlin/String, kotlin/Boolean =...): io.matthewnelson.kmp.process/Stdio.File // io.matthewnelson.kmp.process/Stdio.File.Companion.of|of(kotlin.String;kotlin.Boolean){}[0] + final fun of(io.matthewnelson.kmp.file/File, kotlin/Boolean = ...): io.matthewnelson.kmp.process/Stdio.File // io.matthewnelson.kmp.process/Stdio.File.Companion.of|of(io.matthewnelson.kmp.file.File;kotlin.Boolean){}[0] + final fun of(kotlin/String, kotlin/Boolean = ...): io.matthewnelson.kmp.process/Stdio.File // io.matthewnelson.kmp.process/Stdio.File.Companion.of|of(kotlin.String;kotlin.Boolean){}[0] } } @@ -307,8 +299,6 @@ final class io.matthewnelson.kmp.process/AsyncWriteStream : io.matthewnelson.kmp // Targets: [native] sealed class io.matthewnelson.kmp.process/BufferedWriteStream { // io.matthewnelson.kmp.process/BufferedWriteStream|null[0] - constructor (io.matthewnelson.kmp.process.internal/WriteStream) // io.matthewnelson.kmp.process/BufferedWriteStream.|(io.matthewnelson.kmp.process.internal.WriteStream){}[0] - final fun close() // io.matthewnelson.kmp.process/BufferedWriteStream.close|close(){}[0] final fun flush() // io.matthewnelson.kmp.process/BufferedWriteStream.flush|flush(){}[0] final fun write(kotlin/ByteArray) // io.matthewnelson.kmp.process/BufferedWriteStream.write|write(kotlin.ByteArray){}[0] diff --git a/library/process/build.gradle.kts b/library/process/build.gradle.kts index 125b11f4..a4c2e562 100644 --- a/library/process/build.gradle.kts +++ b/library/process/build.gradle.kts @@ -76,10 +76,14 @@ kmpConfiguration { } findByName("unixMain")?.apply { dependencies { - implementation(libs.kotlincrypto.endians) + implementation(kotlincrypto.bitops.endian) } } + } + } + kotlin { + with(sourceSets) { val jvmMain = findByName("jvmMain") val nativeMain = findByName("nativeMain") @@ -96,6 +100,9 @@ kmpConfiguration { } } + } + + kotlin { val cinteropDir = projectDir .resolve("src") .resolve("nativeInterop") @@ -104,7 +111,6 @@ kmpConfiguration { targets.filterIsInstance() .glibc_versionCInterop(cinteropDir) .spawnCInterop(cinteropDir) - } } } @@ -117,7 +123,7 @@ fun List.glibc_versionCInterop( if (target.konanTarget.family != Family.LINUX) return@forEach target.compilations["main"].cinterops.create("glibc_version").apply { - defFile = cinteropDir.resolve("glibc_version.def") + definitionFile.set(cinteropDir.resolve("glibc_version.def")) } } @@ -133,7 +139,7 @@ fun List.spawnCInterop( if (!target.konanTarget.family.isAppleFamily) return@forEach target.compilations["main"].cinterops.create("spawn").apply { - defFile = cinteropDir.resolve("spawn.def") + definitionFile.set(cinteropDir.resolve("spawn.def")) } } diff --git a/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt b/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt index be4b6591..b95f47de 100644 --- a/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt +++ b/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt @@ -17,13 +17,11 @@ package io.matthewnelson.kmp.process.internal -import io.matthewnelson.kmp.file.IOException - internal expect abstract class ReadStream { - @Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) - internal open fun read(buf: ByteArray, offset: Int, len: Int): Int + //@Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) + open fun read(buf: ByteArray, offset: Int, len: Int): Int - @Throws(IOException::class) - internal fun read(buf: ByteArray): Int + //@Throws(IOException::class) + fun read(buf: ByteArray): Int } diff --git a/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt b/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt index 56f89f27..227e0a49 100644 --- a/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt +++ b/library/process/src/blockingMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt @@ -17,19 +17,17 @@ package io.matthewnelson.kmp.process.internal -import io.matthewnelson.kmp.file.IOException - internal expect abstract class WriteStream { - @Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) - internal open fun write(buf: ByteArray, offset: Int, len: Int) + //@Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) + open fun write(buf: ByteArray, offset: Int, len: Int) - @Throws(IOException::class) - internal fun write(buf: ByteArray) + //@Throws(IOException::class) + fun write(buf: ByteArray) - @Throws(IOException::class) - internal open fun close() + //@Throws(IOException::class) + open fun close() - @Throws(IOException::class) - internal open fun flush() + //@Throws(IOException::class) + open fun flush() } diff --git a/library/process/src/jsMain/kotlin/io/matthewnelson/kmp/process/internal/JsPlatform.kt b/library/process/src/jsMain/kotlin/io/matthewnelson/kmp/process/internal/JsPlatform.kt index 6b13a050..1dd40c13 100644 --- a/library/process/src/jsMain/kotlin/io/matthewnelson/kmp/process/internal/JsPlatform.kt +++ b/library/process/src/jsMain/kotlin/io/matthewnelson/kmp/process/internal/JsPlatform.kt @@ -66,6 +66,7 @@ internal inline fun ByteArray.toJsArray( return array } +@Suppress("NOTHING_TO_INLINE") internal inline fun ArrayBufferView.fill() { val len = byteLength if (len == 0) return diff --git a/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt b/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt index 79f41035..8bd81e2e 100644 --- a/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt +++ b/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/ReadStream.kt @@ -28,8 +28,8 @@ internal actual abstract class ReadStream private constructor( private val descriptor: StdioDescriptor, ) { - @Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) - internal actual open fun read(buf: ByteArray, offset: Int, len: Int): Int { + //@Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) + actual open fun read(buf: ByteArray, offset: Int, len: Int): Int { buf.checkBounds(offset, len) if (descriptor.isClosed) throw IOException("ReadStream is closed") if (len == 0) return 0 @@ -46,8 +46,8 @@ internal actual abstract class ReadStream private constructor( } } - @Throws(IOException::class) - internal actual fun read(buf: ByteArray): Int = read(buf, 0, buf.size) + //@Throws(IOException::class) + actual fun read(buf: ByteArray): Int = read(buf, 0, buf.size) internal companion object { diff --git a/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt b/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt index 0d2dff59..3b0933e1 100644 --- a/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt +++ b/library/process/src/nativeMain/kotlin/io/matthewnelson/kmp/process/internal/WriteStream.kt @@ -30,8 +30,8 @@ internal actual abstract class WriteStream private constructor( internal val isClosed: Boolean get() = descriptor.isClosed - @Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) - internal actual open fun write(buf: ByteArray, offset: Int, len: Int) { + //@Throws(IllegalArgumentException::class, IndexOutOfBoundsException::class, IOException::class) + actual open fun write(buf: ByteArray, offset: Int, len: Int) { buf.checkBounds(offset, len) if (descriptor.isClosed) throw IOException("WriteStream is closed") if (len == 0) return @@ -56,14 +56,14 @@ internal actual abstract class WriteStream private constructor( } } - @Throws(IOException::class) - internal actual fun write(buf: ByteArray) { write(buf, 0, buf.size) } + //@Throws(IOException::class) + actual fun write(buf: ByteArray) { write(buf, 0, buf.size) } - @Throws(IOException::class) - internal actual open fun close() { descriptor.close() } + //@Throws(IOException::class) + actual open fun close() { descriptor.close() } - @Throws(IOException::class) - internal actual open fun flush() {} + //@Throws(IOException::class) + actual open fun flush() {} internal companion object { diff --git a/library/process/src/unixMain/kotlin/io/matthewnelson/kmp/process/internal/PlatformBuilder.kt b/library/process/src/unixMain/kotlin/io/matthewnelson/kmp/process/internal/PlatformBuilder.kt index 650ad496..109e04f5 100644 --- a/library/process/src/unixMain/kotlin/io/matthewnelson/kmp/process/internal/PlatformBuilder.kt +++ b/library/process/src/unixMain/kotlin/io/matthewnelson/kmp/process/internal/PlatformBuilder.kt @@ -33,8 +33,8 @@ import io.matthewnelson.kmp.process.internal.stdio.StdioDescriptor.Pipe.Companio import io.matthewnelson.kmp.process.internal.stdio.StdioHandle import io.matthewnelson.kmp.process.internal.stdio.StdioHandle.Companion.openHandle import kotlinx.cinterop.* -import org.kotlincrypto.endians.BigEndian -import org.kotlincrypto.endians.BigEndian.Companion.toBigEndian +import org.kotlincrypto.bitops.endian.Endian.Big.beIntAt +import org.kotlincrypto.bitops.endian.Endian.Big.bePackIntoUnsafe import platform.posix.* // unixMain @@ -284,7 +284,7 @@ internal actual class PlatformBuilder private actual constructor() { if (type == null) { IOException("CLOEXEC pipe validation check failure") } else { - val errno = BigEndian(b[0], b[1], b[2], b[3]).toInt() + val errno = b.beIntAt(0) val msg = strerror(errno)?.toKString() ?: "errno: $errno" IOException("Child process $type failure. $msg") } @@ -319,7 +319,7 @@ internal actual class PlatformBuilder private actual constructor() { private fun onError(errno: Int, type: Byte) { val b = ByteArray(5) b[4] = type - errno.toBigEndian().copyInto(b) + errno.bePackIntoUnsafe(b, destOffset = 0) try { WriteStream.of(pipe).write(b) } catch (_: IOException) {} diff --git a/settings.gradle.kts b/settings.gradle.kts index 49dfb8dd..fe62c836 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,6 +8,26 @@ pluginManagement { } } +dependencyResolutionManagement { + @Suppress("UnstableApiUsage") + repositories { mavenCentral() } + + val vCatalogKC = rootDir + .resolve("gradle") + .resolve("libs.versions.toml") + .readLines() + .first { it.startsWith("kotlincrypto-catalog ") } + .substringAfter('"') + .substringBeforeLast('"') + + versionCatalogs { + create("kotlincrypto") { + // https://github.com/KotlinCrypto/version-catalog/blob/master/gradle/kotlincrypto.versions.toml + from("org.kotlincrypto:version-catalog:$vCatalogKC") + } + } +} + includeBuild("build-logic") @Suppress("PrivatePropertyName")