From 304819dfe9d5f75674dcee02ee7e5a468f53c0cf Mon Sep 17 00:00:00 2001 From: Ajay Ghanwat Date: Wed, 22 Jul 2026 18:42:20 +0530 Subject: [PATCH] release: WRNexusJS 0.3.1 --- .publish/ai/package.json | 2 +- .publish/authz/package.json | 2 +- .publish/cli/package.json | 26 +++++++++---------- .publish/compiler/package.json | 4 +-- .publish/core/package.json | 2 +- .publish/csr/package.json | 4 +-- .publish/db/package.json | 2 +- .publish/dev-server/package.json | 30 +++++++++++----------- .publish/dev-toolbar/package.json | 2 +- .publish/encryption/package.json | 2 +- .publish/helpers/package.json | 4 +-- .publish/i18n/package.json | 4 +-- .publish/jwt/package.json | 2 +- .publish/mobile/package.json | 4 +-- .publish/native/package.json | 2 +- .publish/oauth/package.json | 2 +- .publish/plugin/package.json | 4 +-- .publish/pubsub/package.json | 2 +- .publish/queue/package.json | 2 +- .publish/reactive/package.json | 2 +- .publish/router/package.json | 6 ++--- .publish/ssr/package.json | 4 +-- .publish/styles/package.json | 8 +++--- .publish/syntax/package.json | 2 +- .publish/test/package.json | 2 +- .publish/tracking/package.json | 2 +- .publish/ui/package.json | 4 +-- .publish/uploader/package.json | 4 +-- .publish/validation/package.json | 2 +- current-test-failure-files.zip | Bin 29013 -> 0 bytes packages/ai/package.json | 2 +- packages/authz/package.json | 2 +- packages/cli/package.json | 2 +- packages/cli/src/update.ts | 23 ++++++++++++++--- packages/cli/test/update.test.ts | 40 +++++++++++++++++++++++++++++- packages/compiler/package.json | 2 +- packages/core/package.json | 2 +- packages/csr/package.json | 2 +- packages/db/package.json | 2 +- packages/dev-server/package.json | 2 +- packages/dev-toolbar/package.json | 2 +- packages/encryption/package.json | 2 +- packages/helpers/package.json | 2 +- packages/i18n/package.json | 2 +- packages/jwt/package.json | 2 +- packages/mobile/package.json | 2 +- packages/native/package.json | 2 +- packages/oauth/package.json | 2 +- packages/plugin/package.json | 2 +- packages/pubsub/package.json | 2 +- packages/queue/package.json | 2 +- packages/reactive/package.json | 2 +- packages/router/package.json | 2 +- packages/ssr/package.json | 2 +- packages/styles/package.json | 2 +- packages/syntax/package.json | 2 +- packages/test/package.json | 2 +- packages/tracking/package.json | 2 +- packages/ui/package.json | 2 +- packages/uploader/package.json | 2 +- packages/validation/package.json | 2 +- update-package-versions.mjs | 2 +- 62 files changed, 158 insertions(+), 103 deletions(-) delete mode 100644 current-test-failure-files.zip diff --git a/.publish/ai/package.json b/.publish/ai/package.json index 03cb2a28..68b7b4f3 100644 --- a/.publish/ai/package.json +++ b/.publish/ai/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ai", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "Zero-dependency Claude (Anthropic) client for WrNexus apps.", "license": "MIT", diff --git a/.publish/authz/package.json b/.publish/authz/package.json index 2fe4636d..c7600ef3 100644 --- a/.publish/authz/package.json +++ b/.publish/authz/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/authz", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/authz — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/cli/package.json b/.publish/cli/package.json index dac6eb0e..f23758ca 100644 --- a/.publish/cli/package.json +++ b/.publish/cli/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/cli", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/cli — part of the WrNexus framework.", "license": "MIT", @@ -28,18 +28,18 @@ "wrnexus": "./dist/index.js" }, "dependencies": { - "@wrnexus/core": "^0.3.0", - "@wrnexus/router": "^0.3.0", - "@wrnexus/csr": "^0.3.0", - "@wrnexus/compiler": "^0.3.0", - "@wrnexus/styles": "^0.3.0", - "@wrnexus/dev-server": "^0.3.0", - "@wrnexus/ui": "^0.3.0", - "@wrnexus/validation": "^0.3.0", - "@wrnexus/i18n": "^0.3.0", - "@wrnexus/db": "^0.3.0", - "@wrnexus/plugin": "^0.3.0", - "@wrnexus/syntax": "^0.3.0" + "@wrnexus/core": "^0.3.1", + "@wrnexus/router": "^0.3.1", + "@wrnexus/csr": "^0.3.1", + "@wrnexus/compiler": "^0.3.1", + "@wrnexus/styles": "^0.3.1", + "@wrnexus/dev-server": "^0.3.1", + "@wrnexus/ui": "^0.3.1", + "@wrnexus/validation": "^0.3.1", + "@wrnexus/i18n": "^0.3.1", + "@wrnexus/db": "^0.3.1", + "@wrnexus/plugin": "^0.3.1", + "@wrnexus/syntax": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/compiler/package.json b/.publish/compiler/package.json index a3d2daf1..986ed4dc 100644 --- a/.publish/compiler/package.json +++ b/.publish/compiler/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/compiler", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/compiler — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/syntax": "^0.3.0" + "@wrnexus/syntax": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/core/package.json b/.publish/core/package.json index 180a135f..7d451c88 100644 --- a/.publish/core/package.json +++ b/.publish/core/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/core", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/core — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/csr/package.json b/.publish/csr/package.json index 366de983..a0807e04 100644 --- a/.publish/csr/package.json +++ b/.publish/csr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/csr", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/csr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/db/package.json b/.publish/db/package.json index afb4d416..c50af377 100644 --- a/.publish/db/package.json +++ b/.publish/db/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/db", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/db — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/dev-server/package.json b/.publish/dev-server/package.json index 240a0afe..ef3dcb0d 100644 --- a/.publish/dev-server/package.json +++ b/.publish/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-server", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/dev-server — part of the WrNexus framework.", "license": "MIT", @@ -25,20 +25,20 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0", - "@wrnexus/dev-toolbar": "^0.3.0", - "@wrnexus/router": "^0.3.0", - "@wrnexus/ssr": "^0.3.0", - "@wrnexus/csr": "^0.3.0", - "@wrnexus/compiler": "^0.3.0", - "@wrnexus/styles": "^0.3.0", - "@wrnexus/ui": "^0.3.0", - "@wrnexus/validation": "^0.3.0", - "@wrnexus/i18n": "^0.3.0", - "@wrnexus/db": "^0.3.0", - "@wrnexus/pubsub": "^0.3.0", - "@wrnexus/uploader": "^0.3.0", - "@wrnexus/plugin": "^0.3.0" + "@wrnexus/core": "^0.3.1", + "@wrnexus/dev-toolbar": "^0.3.1", + "@wrnexus/router": "^0.3.1", + "@wrnexus/ssr": "^0.3.1", + "@wrnexus/csr": "^0.3.1", + "@wrnexus/compiler": "^0.3.1", + "@wrnexus/styles": "^0.3.1", + "@wrnexus/ui": "^0.3.1", + "@wrnexus/validation": "^0.3.1", + "@wrnexus/i18n": "^0.3.1", + "@wrnexus/db": "^0.3.1", + "@wrnexus/pubsub": "^0.3.1", + "@wrnexus/uploader": "^0.3.1", + "@wrnexus/plugin": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/dev-toolbar/package.json b/.publish/dev-toolbar/package.json index b8e45e86..43a4c6e8 100644 --- a/.publish/dev-toolbar/package.json +++ b/.publish/dev-toolbar/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-toolbar", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/dev-toolbar — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/encryption/package.json b/.publish/encryption/package.json index 260b91d9..05246b51 100644 --- a/.publish/encryption/package.json +++ b/.publish/encryption/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/encryption", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/encryption — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/helpers/package.json b/.publish/helpers/package.json index fcc94b61..7168e223 100644 --- a/.publish/helpers/package.json +++ b/.publish/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/helpers", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "Safe convenience helpers for WrNexus request contexts and common application flows.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/i18n/package.json b/.publish/i18n/package.json index ac1f0acf..563b407c 100644 --- a/.publish/i18n/package.json +++ b/.publish/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/i18n", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/i18n — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/jwt/package.json b/.publish/jwt/package.json index 4c46b665..5c6fcd46 100644 --- a/.publish/jwt/package.json +++ b/.publish/jwt/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/jwt", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/jwt — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/mobile/package.json b/.publish/mobile/package.json index 8794f3b9..e54060fb 100644 --- a/.publish/mobile/package.json +++ b/.publish/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/mobile", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/mobile — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/native": "^0.3.0" + "@wrnexus/native": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/native/package.json b/.publish/native/package.json index d8dea1ec..91bbe052 100644 --- a/.publish/native/package.json +++ b/.publish/native/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/native", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/native — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/oauth/package.json b/.publish/oauth/package.json index a9551fea..51ce2a1f 100644 --- a/.publish/oauth/package.json +++ b/.publish/oauth/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/oauth", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/oauth — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/plugin/package.json b/.publish/plugin/package.json index 9de3770f..cdb9d4c2 100644 --- a/.publish/plugin/package.json +++ b/.publish/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/plugin", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/plugin — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/syntax": "^0.3.0" + "@wrnexus/syntax": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/pubsub/package.json b/.publish/pubsub/package.json index 75602e10..25da172d 100644 --- a/.publish/pubsub/package.json +++ b/.publish/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/pubsub", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/pubsub — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/queue/package.json b/.publish/queue/package.json index 3827c3e3..953843bd 100644 --- a/.publish/queue/package.json +++ b/.publish/queue/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/queue", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/queue — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/reactive/package.json b/.publish/reactive/package.json index 689ea8e5..c56539b9 100644 --- a/.publish/reactive/package.json +++ b/.publish/reactive/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/reactive", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/reactive — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/router/package.json b/.publish/router/package.json index c043ee8b..cd3a9831 100644 --- a/.publish/router/package.json +++ b/.publish/router/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/router", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/router — part of the WrNexus framework.", "license": "MIT", @@ -21,8 +21,8 @@ } }, "dependencies": { - "@wrnexus/compiler": "^0.3.0", - "@wrnexus/core": "^0.3.0" + "@wrnexus/compiler": "^0.3.1", + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/ssr/package.json b/.publish/ssr/package.json index bbbe6c1b..1a6c1c53 100644 --- a/.publish/ssr/package.json +++ b/.publish/ssr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ssr", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/ssr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/styles/package.json b/.publish/styles/package.json index c8b64dc8..493e4683 100644 --- a/.publish/styles/package.json +++ b/.publish/styles/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/styles", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/styles — part of the WrNexus framework.", "license": "MIT", @@ -21,9 +21,9 @@ } }, "dependencies": { - "@wrnexus/uploader": "^0.3.0", - "@wrnexus/core": "^0.3.0", - "@wrnexus/plugin": "^0.3.0" + "@wrnexus/uploader": "^0.3.1", + "@wrnexus/core": "^0.3.1", + "@wrnexus/plugin": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/syntax/package.json b/.publish/syntax/package.json index f4ddac45..0933c2c9 100644 --- a/.publish/syntax/package.json +++ b/.publish/syntax/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/syntax", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/syntax — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/test/package.json b/.publish/test/package.json index b0bdbd1f..1985493b 100644 --- a/.publish/test/package.json +++ b/.publish/test/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/test", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/test — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/tracking/package.json b/.publish/tracking/package.json index 5660594f..d2cefa12 100644 --- a/.publish/tracking/package.json +++ b/.publish/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/tracking", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/tracking — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/ui/package.json b/.publish/ui/package.json index de9a0718..9f72c245 100644 --- a/.publish/ui/package.json +++ b/.publish/ui/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ui", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/ui — part of the WrNexus framework.", "license": "MIT", @@ -25,7 +25,7 @@ "./ui.css": "./ui.css" }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist", diff --git a/.publish/uploader/package.json b/.publish/uploader/package.json index 4f9ae1bc..88587df6 100644 --- a/.publish/uploader/package.json +++ b/.publish/uploader/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/uploader", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/uploader — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.3.0" + "@wrnexus/core": "^0.3.1" }, "files": [ "dist" diff --git a/.publish/validation/package.json b/.publish/validation/package.json index 1a1644ee..13ab440d 100644 --- a/.publish/validation/package.json +++ b/.publish/validation/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/validation", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "description": "@wrnexus/validation — part of the WrNexus framework.", "license": "MIT", diff --git a/current-test-failure-files.zip b/current-test-failure-files.zip deleted file mode 100644 index e601686bca553edc00eb4ce938233b20eb54946f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29013 zcmV(!K;^$sO9KQH000080Be8tT&PJHiAps901?;#015yA0Ap`tWoKn>E_8G4eeH4^ zIg;RiJq28=uvu-2vS;@8W+Y2mw_CIAKDWEW^7P)Fq%limNvbhLa;l1wHEKreuX})t zdxm?kd6LU700~qTDZB07xrosZn^grQ5b3i(`s>* zkImUFHC8UBb#aw5wCf_jF->Sw^X=R3UqM?XqEY7cqMR~>%*?Zk9DrWUXVZLIGnjwP zui^JzG8haJ4~8(BO}C!W*M0uX74YX>{$XA&T@|QM=O1eGK8GQ?&dW1E|H|~Zlqo86 zwSc~laJXir?M2GqvU#zWJe$HO?yL5Xj^1pKCIz%jsF<^2I>!F+=suvb&Eutf^Ciz7+x;0f^0%}`T0d=1L_|lx`_2|+(h9R1c^O6CK7{I6% zz*#xFsn$WL>f1@n98Uq^NiofN3aC(ZnddSG=ZonGC%g(O3Bt4K26+21ekvH#UkZs(5F21YXcT~mH$CT8<#a;FXV_%Kb$K72)N?<8^yHF%kylMn>RGq zUkf?jZ5VTv*O#;Lj;y#{cr(xHOZ|K{8{g_@nN0s`sarUz9C)BXXs&8&G%MfdWe0>8 z_kmE1J8Hj%r8vgXz6TaKm2PGTjwNMS^)D==d7EAI>g>X{m+rub%qBT33IxI|%54AX z`1#iVJjH*qt-n6m`u)4j)2}wS2X$W6SUV-~+h2WU4y#cHbDo*&Y_fnAH36)VA<(+a z%y_mqo8()6Sk8wE`OiB&xNmN=Q+xx{OU}1`nx0Gz*hhQ z1k9v>smvx}U+q`v?`3^8S=n7I;E_5xA*@c|FG>CDp}ZaHmnWMick+JoPWs@`AkHT^ zjH+rS3h-Tx*vU54-M%OQ^s^IrjN#*y{)98t!(RX&Imq#8-=KhLw)V4G08O74C?QqL zRCfTc$322Wobmzw8jw6R4vJs1#?gcz}KKr{#xV-)tcI5#~HJhfO1 z&E_4wd2Y$K=Ne6yd&%aVB4GML&8N#`2rLUk(M^H!NmZiOK*|9VGzrLyWJf)-@Qh!f z91Px#n#D#zF*k}yvP&;ufV0Jec4NHVCH8xJ4tFs%+82ai@3nn<{ej^6hNY`)?kuPFY3#5DR_0YGM*8Eo-C2i^=>YKi2J~cr(PnnZpCYaK%puOkf_iAid^+lUL81^5Af@o z{Jc8C9YPPEd>00^Z9u79rH(gHn+(9>UY84bQCaV;^OcNzWsLyA(m)&6Nee$D?`xOCJ{S5sgHTKT4G)unc5M zcOd}Poh8x%m6mVZzXO?!9crSB#a1!f2iEj*e6Wr#EIBa#A%j5jz}?47XyXHvc;d-} z+s$$CsaclfSJ_-ijc^{$kYDb_GQkZe(L(8v`q?OvW1lR`gy#nY4u5!dI4Gv0$zq&W zy#$1Bx?%SdGMHFnH$bVF!ZtOV5LWS$@?ibQ1<1O}GWBV9JFKxnGv6Kk@Or=lT%6zb zjvbHh8{gh(OkyjgfuI4RfH$tdYqoICfOoj5d;B=A#TZ%nfmFv6_~%&xYa`J#NMwXk zYV*!c`qDK;Yz<08;HeHm2b#5&tU`wyt~bn3O!4%0Q{FyTi;Ju@!@GLteSQlv5SJ&K z2cA`Pm~d(iHtO&#*&o{RtS@Q%Cz}{tiL=RdUg_QL!2AHE5HRh>hi*4s8Q4k#fuGl) z2Gz3#yc!QS0=2PPoK8y0Zvl79|ChtKv; zNhXY_FTD}1jO1a0JdyVaKn?Qt8NbC%0K62H-*?0@C$ZX0?ZBgskE@^p9t{&)lx_|8 zj*i}>j8sKE^Sio$-C+;BQ~^$%*Uz|f`$+V}<97go(X1Rlv#fJ5eLtPuO!qYnA7WdG z58IX=Rc1(Vhd_V87m?obsv^rqR+HrkWWOOwg+0vdtj=IEgoJG;pbydov#09(s5Lja0A_Zec#oVSP8q@=r6oQAJg$gQp59mFSA!OzuVsBKxZ_sb*eNOQ*9n!@goEVBOpl2| z?61PU6b~fs$h@xVBdJW88mRwFHbCO@8AGT{Z+JHXg`r*!`$m33q2DZrDVCfysR;U2 zmbXkFOg)Y;EJZRW`P+Z|A5+cDbhZVXZMID!o6X5?#_JQ>%0O2kQ?0Bu&79xo`Mfek z4Lfwuq|9qjZh193&WyDe(=A5f4339W$5Oa~{u4%SF9>G>1e4b=gZ8uQ(e1%f) z;_$=#@IyX&UX~!nf0o^y-(f+8XxZb}n@iLqdc7;!wt(!)N5pxY^#R*{yoZDFsvtDQ z(ttSh%@ypDU`t>rGGG%|$4^fm+>cG9ZkdJ6tx{nb5aIHhv_+Y9>o}iOc?>^kr-y(+ zER$WeWM#~y!%*Pr_{pgljdnvBO>MM~n9@oc%fQ*zg`xE-w279B3DR1{{9K31KntHr1)bQX z!9E4K4=US=D)5lcbhAa%1JxW=EUZz<*=R%v%+-(-z6OXrIyQ6%eJw^@csn5OPMa&F zyCkwj2CR$9vtSA>n;{&M91$GZ$Drr|8Y!vDN+2Lh+CjWLZvnsrHd3c&sJ(>8Y1{yv zin$tOgF=M@zbS*%c`<>pS2ihsbnyVOBR=JtvjbPQWLFVH2kmu*qMZu7D`9Sy<~{=A8-EX!1KE`9Ry3?5Sl(lx zOd6h$LesD^_E67ZL;yYMf)g3z;@X5W5lId=6JLVyk4rq;h6eX# zvP0qx4&n!wS>>7@)U#LUA@d@u@?IL7`dwFG8l=LKCPHx3*u~cVkEsh!(kEYSTh${W z>bIIN#OeTw&)q-aat4K~q8${lq$|{n(18S*RfY=J-~QwO!n+3F3bvUDmaGZ%5%%Gv z$60mEZ6H%=3G^@|4K6i@64)?#1q{p(iwsFBB2?H~`YoT@ir!p;f@g+RRSpA(7&hS* zvctws0i&k%IktA7PdCvnRwTHXF!g|0O zv@Ntj{l)nwkvlMOBk~&FPP6jXEdZVlafK^NG!2xC`VyU`vgzpZQN=y!$yR50w}W~u zVgaxF242HH@dm9r)4V_{bvj_Ifx2sJ^$1r*6IIt#nxZy`y+43(HWbW6M0-QO12!4_6UnkZ$?o6)TB6>dyWG+EvO62fh?`X zJ&F?f>aw!$T&=?f9XqqVax|-TIRwPCl={BNi(OZ$4ZpLNek|AEm{0O6Qel<8+R<~X z$OWBmY=zp+nQ{72#Dp6XJcO#8-yNQ*xCfw>4RS5@A74Ztvw7h^exJ?VIY8`;w~wW1 z)8t95PbjZH*Y0oJch_XC_U)!)zjM;3!pJ1W*o5Z^WY-1_9Qh)&1s{)?G1~>tVyK6G zG24E@W|Nc{YX%HrTEnhz!h!}^{55)0Gpx{?t#7KEY(9r&j&xbn6`SOpbVDCmlbxe+ ziwqHf(_qDJ53Rr5#7~2-)?{4ypnZFY$9~N{Ut|(J`S9e)zrT5X`25AUn|Iuh7aL3b z8hYV$Z3-jBoaq(`!xeuyy`GIoxZ91$REQY=6d~JJqvk6`wDuL@Y#%Ib^rJn7>{jQ+ zYrlU3a&{%}({qx~s3MLjHBC&S*_5qed&E zb*+qiE4tE4&=WSo={^{c<2?~Q9~mSvLC zk8S-~*m+9R15LeR@XP&SMCoD}SwS2?xSld9H;2_nQby${qiRq_2h?9e8P&ZhqxxjZ z2y~F3Hg6p16K)BEZ$_&iRHPs9>VQiJ{8>1&pUx2FG(;gVWc^aI*}Nk{Sw=RRHq~l{ zh!Q)+iX%SJ{mgRz?^zd%m9Q^wx@{R+XAu>;NI%m0shV+w`uRw+4H-v-A7v&5MRdp? zD@})J`D~@X*JR}QOcXe(KkShC%Yr(KPJe<9HytFwg)Y7uL}6;n3R__V|tKg8!ru-3@_=;y(UKJT@YrN*WDM z=ya|q^B>FEytjD=L@-iS+e;yKbX}wI z2>txC`_$=H925%uWFmyMql{E(nM>~;+d7HPby$(rJ-vwifJIFqYgp?nEX2CrQP?eB zKF{2v|9{HL>W6cCxaW0hWRAcSL~{zZdHd#x)0eagGZ+j;$VL1c+rSR(SdL)la}0&> zTIaxiLSy{#X-fAqsg+YD^_O1nu0P!Cw5!4D9iP-Z-}Wv|KLZ25AMf@m;90xGw;Q*e z@Csv_AaSV%#Ptt+wuPidCa@r{%V&fMmM1D!G6d@H5jV>*V$eKJk0j z!R>o857K+5aNAGv0>3Up{9&8)f_AK5=djf(W@Xc`+kQQjiVdpSRo)YWjuWS_uT%c2 z6}zmmFTZoG(wEQCk#st%t>dQXJw<&x*s$DrrCAQWP7WT_J1M)KoGj&%Y~<0_Y( z7R^jfPpHf;{=PNi8Ttoi<2o6L!08`EtTvwtIj2`D8mi8JrAyC)+=7ruJ?)*XYLbk5jq;5+J)8FP^1sv_NW{ zf?->N7V}9l!V{%7TfB#{^!{9|FxaLl(2spFZysc- z@>6T|W2c?)7p0rDS`4`uesCH#>nd(hdXjJ@oYoQ%eP81fPNvjdHr%IdM;nUq8@_sS zMC-iQ&RLvy3~RgSPRgoyMNwXohsln;yoR9{=m{^a!NY!HFRoF%hlCzEz$Vl5goHd6^ zKM3E_caeC|f4I*^o@|QV2~u8L^~Tw}=CanwWA?s4Z4B;6^3a$4;Rr9E z%}Q9_{8_&d71!%P!DW(7>-zTiSFOD+g(BR zEwV}R*W4a*u@CzL>lpL!A*&RicLGPVS6pD~XJ>!TN9x!sGDk3tx-GV*-1v%&vN+je zcZXDTitU@o`Ck^OIzd^qD2v2_ zWs!|ZMp#(#0z`nmWmgSm@4M9BghVE-IaGd2ZpfTxXc}Za9c^@rihQ~d7C**4Ua z5G3flJ&}u#Tlk$7^+aoj_*yCR*_Ex3`*X*wo-n zK2;FjsFh&kwsY*IWwi<*9S2>(4W0F9Ozl)Qs3kC8#AXh$<$755GGMzf>W4;;hMhx! z!=B6KJjXp;<6@ZVl)tIl45=tkF!Zs(t;V~l-)7b2sw?t%#sMncB_3~l_}$Z|qu-B5 z|7CYWIY}1o^h16=lMD57Glkzier$)Gp#5o23L!7T0FKY=9$%E%^@a98YlZD?akZHA z@I@a`c=GhglP6Dq|J%5aRKV=-@0%y-pq>e@{_Vd+GUoDj%uyL%jstzWRjgcQv{)jk zz`b}6*zS;ajK7$d^F4BWNBSvS!Ad$=#FzAwcNwtM%3D%$=ohQbqC?2FbgaR@*H%Fr zEGV&pk9}HO4V^Q&3jXSEL=ju?%uTwo+}XTSZ6lXTTM&=Hvskyw@7*&mslf^U=T7IrJKu(QoLOFs2JV*E`v*Im^-hgQ@F z7|PL87qENTBn@4k+E3|SJI)WO{lGpd=aqA8`aIax%PyVFkGM&Xx99iSf;XMfD)vST zH{))XpwE3!67oJw(4zp8pAj{y_i!U>8q`a7HOV6AZzXcs;r6!K+S=lcwvS5+uTG|$ zcT#Jqyxycd1#|%EmXTE4Hb;j);QI{?ItV3-WpTG~7c)sy7xhGQLu;t1@|juo*^9#b zCSC3hQ%#9X;%QfV{JE_~RoTMqfZ;U`Sox=p?@pftOI(3*?lBn;&W}ln`}@G z@ej1)8NAPL$w~pUFvgIBufVx z9idt5c7(ld=!hPNwQmt}q{6a7ZIvCxuiY`A@_d@I(e5)jK6z~i<3$S={IEh~#L~jU!4+c9mjs$+ zRqU@xCxPh0P7|=>SCc!HvI>ISYQZJM=T?p-QYSR%2O6|kRMfK5bLx)60(xpI&^#}* zGo%jHg8o{gj+cQ=?86NnQO=LJg}R(g#^e@|ynBZZ`v3ipNAJG*AFrQ(|MJDVqZdE? zc=+yJ670W}p94Wbl`sZ}{tah>o!5Ld&gl|FZmV)kewEmkcZpE<0)#}GjM-{aNK1;2 zR8-znDQZ!VIJ9{X^^RV(sJrYFmh7X>0Ie-grq4KDuf=+(PuR_8336@<` zjBv}rVBfPnwSXFpYIxnkOG4Dq**iyvp?GvQ9!wm_S;Ai79T#F5?q&>ygJ+N&2d?GX zOYi2g02x6?v#)=6OOekcLd-xooLtati4d(;`uG;+v>37A6iMpWu;+@h@;F9X;J`d= zj24v_q)Cu+c(!*m&)2OdeBuYdZh>?@r-&`c7_bH=^W;pzV8E|o$|v$vGHrtNW5X=ZFIL-q zfz@i7?67<`7J)W}rm%zSEFiY^B^xwX6ePW86(qa86;QjwSa%L>9Ha>xx#Ln{3stLJ zvg$=lHuk+@COl1^KWv|z0XEK0!ZS8+&5tl?2&Lwkt`83+Vk_Qk`Chb%tZJ2af_1>!wbb2?X+u})tqfCaCuyzL*8TgeMvFB{~Zs}~^5mrk_v$o$ftd7|t zn_bdDHdKg(*b)y^qKVQ1Vo;&!Zk?KN!RXt2obVWa)o2E)Ztch-O{1+!GMt$Xu2u!|?Ex|5m8~+BsX3kbkcm4Ne=^ z9AxR^9T-@v-jGPvVdB=Uu6wSle=H>PkA?Ip3rRZkg_n?wO0Wv-zLzYyvuxb0&9NEc z6_$|=441e5ezDa`-DPD1Mj#g1Mfy{q$+c+}VNzk%f_-y!`}N&*ERL}B`o_(;Zl%>s zccx;;pb&?x`?5`WlAXIBfR98v-o!gVt$TUZOgGl3wREX@mO3&%&uBqbDeqj!T7IQU zOQ$*}0N5-25Dx1eF-MwO!07$tzR`kNhTe-^{5%@E=W;~DoLP60@BYyPd#ii2QjLgl z1J|&zqsxd~8ra$ww-j@kO~(^FW@8h(8{2u&Hn8rK+nB;rpU?KYV+#&_|K`Oz3b-KK zgXKHC4Fr|_rN7|xDk#fO-cu7l@it^5-rxAdc(Py+H3r7Bv+IKe3fJ@J1cfutQdhMl zBuD5KFa}@Il=~KiAXasc62@H9Xi}l?)*4Ws&_nv$S zvPGeXqo-m=HkVa8tB9Io#0 z!XvMIGSh#E|?(!(!x5%$BFh>Scjh3llc&Bj) zEiE`50D_Yv+p)cJB}ukyURUzNC`Rri$Yl(`t6~NE6BY9cV}N{j1X78z9@LeY-AtXG zZOraM6fJKw%gYhRJR@^5+8IHXv5DAj2IPt^T9y$Wo{mA49;cj{-r77Kk~M*1_vtLP zI>muXK7#^!BTPIZH{gjTFhAekYMad2*V(`jb zCLE#orYveoj)U_!-nyBUJYd@#r>YpEMg6>>NQN^RDY`V|Wl|+=soUH;CcL+UOV4Nd z#Flx?fcFjAta+W41v*1jK4d420X68;@?f`Jeg`=gzy)5Ft&7zUB(RrI3{fB(nt9wL zQx{K@q1iS=`U-Njy}-CAbIuik^AS6nQKsBKfPBUP1sl$BUJe-0Z~l$~nEJ6L;pqEK zE&3;D`M{67PPHeVKeB7z{?keIRZkMWzS}%KKDpUE{VK(m2Rr?)Z|T8F^|+YAKfU9V z>g4G3@j(jZ;ThTu-eO72AWJdWML=Eq{iJuGzH&F+tXqJ+sx1Ac!0Mv4;L~qT`_kvD zypdr>iC~e4{Q|nrJK>WmwC(sGL8!AmQ-b~3pM4#KB5QgFpP^Hg%)Uui7wG6 z!)vn-!T^c(a-8zUz%$$+?ugBRD(O#E?o)M_)ne;?&>ryh*p?QE()jYJBDo;&h8ue+ zdti?F*MKP;gB;iw9C6qez~@s6%$xFmZty{FTIO$%`ByF(6kfzW%Q@2&;(Sm`x_P z7A;Vo_~&hrPo%qKNflJ4i!13nXft*k&lVRK)Co*2NJR0R$wCeqNzP_kD8)A_q06wc3!4^iF%)EnO9=PPo~3WY0T;_z)0xA1_0+o1R8t3-kGRQ=}Z}{kYgpEz;qwlD@`KZnIiM`nutkKrKzjIQyoXF|?!z zI*XjUg4E>70l=LnnXeasZ#g(GXIF8MDF+NV+M+)HU83#_C7AK{U;a6YcBCRqNnHvn z#f{m^AB@4v*KZHs{0I`EEw4}*HzLeR=kK|7Y=fhKHaaLdN;sQLlKo|MWb*rYmG}r4 z>{p_$R!KT-J+J64^KDigqAJ-ERsExb@2riMBRF&wZjW8l#L~yDY5DfWV%CIhwZ^O2 zh@q_sRMXW57iq@2dbP|N`+boe_wQ!r0_ywxL$A8LcKF*zsdZ!<**VAzM#as`Fr%sD z*|2IV>!xHOg8d5HgAkOr9`$SR2{!}(Ek}+|cm_&w=iqWjtFfN(i z&_+AdX$e#E*ki|5gyr-+7k6qjE72aoUaw?v{A*s$%y-#!b~GxBdEK73qnWoEKw$DSY^_ zMXdFWE)(|imA0dp9?EKC?GQi*z=W>#7AZ0sTa&AY7aCJRTb@vwUfA@K0caN=V26gr zQ$29b(X?f>?j%mrvZeD~oeh%8s_wGMJW9z!S&(r}hgpiBzy5|3x)%O=4VjfP56|UX zr3}dZ_N>OCJ1qqvcUKWSC|1vDw2G;rZQlTmCks3RLDFlcd8LoZ{u4_a;Q-2mX(hYv zG_fipno&_$i7z#yuyQR-q58PlUMJ1+;^dpQ6!Rd=(}J__TYi(>tZFy_-U(zK`r2FI zvuFBrvS}LU_}ulGYKy8(E?7Hfc#;v>NgA-ixLwJkJ-V>9u)Fqj;u1;`h0`#b;B4t=)d?rvlU!`mHRQT>?6y;0EK5bR;tO&y_0x@>}>km(mxMmpV? zW4Q+rWcOjm3|mMJIClf?{ma;CIu(=VVREewTLgMiL z!o-QRw)RXs3_25-H$6(&WrvWq=ef|)`W&_;aJ2sHf=A22A`x4|Jl2}q@fQS&UX%Rs z(+Js5|0iXJ>`V&z|5rXpe?B3zJe%`Odkfn-f}SvC?3q;*bLtG5Ts$x;t~bM3S30T8 z7p>`Fr1gHCzgZ_af&+)9R!bZusb=td$%)RUO=dYiFg^6A6pZj@p|#h!kz7n~%546P zJzQ701UmDUhtZx;I9VZXH5=Yk=xrVc+&A(CPuckWGKo|Buy$sL6vfXtpVyaKzd^@u z;9`%GN1)dvj}rWMn1qSqY+1P|3U9qB=97arSw5Aa{z4_a1oK;5xti+KhXxA#I=siG zOm5V@@Om9LiE2AV6864v9=0`IMhd^H89_DtLXDPJSytfYz|r9UY&>F*lJI$`@U%_g z*R|dEAdqNi@*h9mZTY;kpSQNu@C&ub(Ln3GqR!GZms+}09@p|ogFFyOtdBkIo2{qT zT3`bq##!Yv<%dTpL9NF`GqwB{x}V+Jkj5>knd1a$u-^WDmA3$%~QCD@%Prv)B$McQ`gLnhES!Yd8v+hY^8(g}e+ z>3N{y*rR(-6s?{-Tl}IAdL@CrLKmKZCv^c2WE`~-m@}KBBKa!ZRH$)LK#8|lcsA{Y zpFcfn-SS)Y$5vgo-yB|>t%;9cRGuatPEJC(Vjvg{U*TxxZt6_j)Rv{mrD$>)ZFIN} zo1Dp|w~6yGtxLkRIs;RjqNtIdNF_V6j5A~asm@(wf!go@Y#ZH+Y#mug3ZhOhuhe=+ zXaNF_L#Ul=M|&L=b?QHTtku#VuTjh1PwUw05r}Jaw;W`FdXTNl^Mr9`!$C(1?ij)F zlj_qKP6A~!Ky{{n8rsZ-`FQyS(m#nU{zZd#Q2>efrCQ>5o}2Zxd1BdeL+Z0pt#9WO z2-lt?ppfw{t>YP`w#h%>-gvygnepZANd?oVOnAY`m@P%Ncdmt8Y)k<~C@zgMZ1CGH zj4taMS&!n|SMbWs0^YHr$OX&wv#tc9z3d#yNUmeT)VlcX%^E%yLvCSc9q>MaG-9%7 zHoB5HcKp_?y=Ut=+IkGy*_x(F)%LepWn;-5#wN)abj0v%c(T^n!9CiFQEq%0waZI!}U8pTi5d&@&t?T9#BaL-3FW`Jm>rIj-4f9a@?A+axuwgL`S+B#psh-3v z-uhWLCK8x^Y7uQiQ^i2}G)~-oW%WLysTF9Ofbv5_RkrL^#81yh7@7HyJFPMS>gpKL zhZS6EVaQqOqe|`=btwF^`%6SCjqi4n^aoA>ICLB7&y@GtcC9n7^(Uu5j8;}xBE$}C z?v*aNHE{FFfZ1O%iu0xRc|z-6!w*UY%92)tI?d2~+@84;cTBT1G_j$tmQq{NFh0`c+J4~gbM<}lG$3ly-)u)#K%Tdky0f}cwVQ5eiX_yI0b&|5HHk;0-w+RPc;Sd$;2dj^r z&_*2kC~6cS-4X#*RuDG&!+9^nB31ot75~gkLKWbydmK>OMx&qu{0m!MA)TA7fANzu|;YnaQfP;yR(xEJV+e`I_4`_A@4A+kSXjQ+FL@%b6j-&eAx zNXuF=1(vPKu=vP2N^4-_2#0wK0J}x5WZAy}+ZeaBKXArxht>K=r(L^w56FrdEXGU8ECV{xxlCdrv` zB5>?=I_CzpO4(q3tR~sW1MTBWhYh*U58|n17WJ#nZ#4@` zKMHN#t`%U|tR-oJv;)kXc5%AHP+< z5Ax8}BAXO{<-`o^{vr4`22vC$mk>eOB_olQxKBw#c=`HTA@)@%;#;T4Youyu0EiXc zC?`W#u7;iaw;b!N;mro5D^^fjS$0@e0E3^WD37qVt|{^22s%&_Rkrhy~T5m zfl0|W0vm_B<*qK)V;g$VIKOJocjd!Tv`&Qk=q$_%A6WsLciyfZA~R&$M<7pE1xEjj zQdI%Fxty_wA=%;8<%uAEuy3Ln2blQE9>)R3h-VzQH$7RZxV?(I34T=VU~v4@N7?<^ zhG7nq`|#`OCD)h)1DwoI4w! zqUa2;WAJC+<~Q|Ztj>;`*8z1nwb041<@$}io5VM8v@eCfWhB0wK35HXitgR$J2w{Q zGIm}J!clZC(cr$8H2FX|$ggVgew}EJrzouY#x+uq!~;=L8&a#gN8Ytzp3;^E{0&vk zU>aTkkNd!INV~oI{*M63;_TW0001TWnp7NWX>DaLbaUl>?RMKnvfzI|1%x{jlNL$YPR{+1toS(oxbeM7oVA>pot2arA|VN5 z2w(uvimuIb_96BO_er*@`m3tD0aA9d_uO61#3F(2>gww1>gwvM>b-mS?j-k;Z<_kL z&6}jjvw2s%&y!|Vb;VVljDD<(s!Ja3yH|^%$?01=o zcJG&8uA3_VZPo6Xs?AXp?0L?~^l)+Rl-kzopc4X z`nD}Ds;nH1-zIGhMUu;`O#oPNwXB=2O}ZL7+SVl?Yx=fY;w$K$>v%HiE&(n0fBqYE zt-MLDu_N7Op1hqwuirwSu9ig!$mUl?*N*oQQj)l?9j5adNW7oipCnawmG38af4iGv zk$hfeP439uc3GDvbp<_WS7%+5=L}X|O&{g&^Q!w=1Kiz3Ao>G?h_w*F6_f#5B-A)T zs}icnfOYwA-C>&lwrm&-`^ifM1WP>yD&zO_x-4N#2pCk$+qS4H1`$XxE$ey-|ID+p zJxtHCHvh-3rhjki3fsUc$U1Fubo4s;@DI@E%QcKjezjLri~P6beO9jWRzgIUn$Fwi zFfA4#qFvTpIQlBSpvDn+aw^e?f zyjWFpY~t+%;Q?|UO#{G^v%n^JpbkOPd~hQ`Tg_cFgfZPAi}K4uHW7no$Hp9(Kz{VCjpu_ z$yt7xy)WwKB>>2(ISkNYf>{1F&)$8XEl1-6UGNH-E?<13%fGJc&XhgMJ6CR*6WxDW z!YJn7*7ZA6NdUK;BFY7f)cGft)B+k2Q+fO<8Byo_dxfSa+ZPo#-bT&b|expI_cA8sds#RH)E1cml@2V=O{Kt zICf80ZC78Z->GS5VQHUEk`ESRL*4aQx3C7b#u+*KWo%p8+v6~a@6YmNRb}r1Ms`-_ zD8jCas<_I^8ohjIN@ITHMt!5|3fFsKaAezdvZ2r#R5%TJ+ z1zrxztBw@s$tcFSV_?Q^)l{lf4{LYLDpv)5UFEC%`(obIUDmz}X5|13J3TBXs}8`c zCry*x%+8zoY82@e^rk8Dc4USm+Vy#vXU)hjF#`en9HceF6QSKWWECn62n4``-W}gR zJrFN1p#l5y0egug-NCA}qJ_1lf@RmIr)5%t0{A(GBF^WC^iGOXTBqv@nN1N_;dBn{ zmM?&R6)4x@T7O#`CZ@lV)nEmOX?BDQ?T?D-N3@J_Sp&;Z2FM?pxs`SGnJ#tU3f*)l zcy*IF;eLYE=$~m!M+(BM%&Uv;a!f)np;d3h7(p$fhsk}@1NGohB5I45ySwzuk&m!A zrgx_nnZ!VtUuMly=CZNzbq%aNU^X!2#}5cv-+Zy2{6oPJRhS z+zAlh27nCH!zFMDUo1^vI7N0%ND_!JU5k`-}m+)W8Pukt_V^b7NoY ztco2M-l|IN$+Zz5V-;k-lM_%m0ptODpM!S63uzD`=9;}=v$M+Gv-O=wLwD1=NJP^t z?0ng;leekF&@?r_{Dh{`4*-p5&%5P!DqW|juTQ6Xl;F|*adHN`@ON&uIoPVyPNbCO z)!A~@UXENh)GnVG3UnPegJ8efn&%HsXYH~qK%1U`WW9o|kyEdr98kr~Eci78F?mIb z&veyvUY=`^Tsk#ye@Tk#;}tD$>- zQuV!PQu}o56uKl~vo^AH;?Tq5=JU0EucbX}(3O@v#oL7K>Pfpd!!4*{^J81)9@JvuR8VlKCMn^>>iJTIztR#) z_7CC6rb#9!c}Xv$C>SBZgpy(PwUrTM$2b&pqk3bDiorrze^|@(;K18AbTJX9EXYMw zbVVjCNTk+N^Yn@dxYb!Z2cYD-n9^PlNCI@YBg=7+4Ni1C-pvIDhsulUd^ zYmd|a*>1$^2IBLiyv}Y~G>4-V8?C=pwrnr!Zk9ZO7Ga(@c|%4rP(T)#mXUk=I^I9LtIRiyShYP6LPm;j$Q`Xmc^8?BhbKo++0{Y zz|*YFN8FI1QDL=l4lB$s}v~PWF*-1vX(qBG%*}Z6a?h?>>5JQH6BVQWT9vN1g^H zkVlYXDG;!5tjR&Fqu@04!=`k}t93J?6Hcg$^Q?V*hzIHJ_;TC}U1^%>;kDamu)`Rg zN&JrtIOxUoRS))56(N`^1hj}h^7z@nxx)hKdG(H*9H#EaRFYXpvqqPSS2YX}5UF~Jgf{M3`2>WW>dzfTHPcrZqna;>Y;#Y(+Y-!E}DkX_T7vh@CjIM8D?EX*+ zamOCG7(uUdihe6!&1O4`oT2Wo3O3hNs7heK5$4wTy+XAVPHYcJa|a6{7AjTcWg$n? z(mM+Hh-Qzpd~^!8BGUwyAItXRY)d4;TjqT)qPGFj8pJCXTx?5Fd<1a2c1Qe$r|7eU zmU6@xi?`Y*>_})rR?1)k8{)8gi`WSV>w$tCM7R)?P521Vo9kp9dcj@Mc zAZ2!^51RBko@O9v)0iT7TPZRDEcXZ_iCIWFFVO3#Wi|iMww}GfZ0XA2N&CeSApN}Q z`k0Vg#cGkiW{W@uCApFwv4)Zgvt5GFl2{mcMA9#?IlX24p*(7{^t=bF;%u|2aih$F zk_Ri6i+|F>hu~XiOPs+#a-MhgUBVJAZ-gVuTcE2>PMI47JNyeXmB+|cU*;2yM6Hk} zV{L?zU%Qab&MwV0)eOL)xa_%7toy)!i4g~&jU`#{n5zLrZ z$AcY~GO)mjo6WF;{H@vupI24cEW|zQSO}J(R#EMDH8H zfGD!W-ikt7#JEQ`8jW0OJDFdY&mXT|tiR0*|A5lGXEMJho?+lks@Jb!ubg3E9td^51sVe+?q1QS~J_HbeN`#|!y~b4eX8M-9 zjEKc^*R^JfGW5qJs|z z;-1A$DP2_m;Yk9Q9?u6R(=&qf)#O3FM`ymi|5?;vya$ab3E>?HH3u8h;R>Ts%;hO% zMQQ#Ro%(_Q}_mPrAo=~>n=ho6~UU@Qw zZ&miP`A|2Go|xLU!eTduaYkWu(k>#^13u0PZWwmT5%|Kd7-2=x!?A;ycSa)#L^m5m z6tQ7uQ3lB@lg$T*)d9Qaw~!T^4XdS#`nGSarC9s$X51baDDjI|lbS2er9qpuo*Qbc zen)5ht|7Zo{=rFfBf=dmWwqZ<44u0M%!kwc(+}?7*ctf;BRbKj3NgDG3mXEd7~l1x zRwvKGSwj(o`$|{#KW`@LbDKz0;uC5WWOk7s1Jq7+a&4HhWGC#bMWD!y$i5f2h!HOkTB%}{xXVT_PxHaKE4 z)=jak$&)_MB(jQ%v3+YKsbj`Rs78m=lA2-X@8hqA3kIK7@m|!`fJ#CV;&fS+^jH~l zxnM91bWTQ-&x?r6V$s?nf=y4&AMf{iWAs^q(}mQS#G;A>*zDHH!o3gfUeXSA&Tu-> zi{v@ySx||jart=O*ti^;4Y4x6+yv%4osvs<6JX|J|3&|s*m4CBc+On$&ZSVfL6jZ+ zt4VC|1?Zc|gUU+}ZUzy$=-0P=&+oP9&`I)jBFZN0$yh%ARQROE<%ku=;o zy&1cz&e8u3NqjYooy#QhV-C*xVq2+TUtwj5GJ{ei;%D-I07+g?_&cGS^E9mPOPD@> z?4^;GZA_o6FqrYjfv#TOHxcbs3~e1;F4q>#pn;uwhzLA}2a>mmM z@?CDI-O=7@Xn|>tCGUW^Xw^L|g+gDtAFuGFh9MrX*r@q7+Nz}QVbgTEcaX?Bf|w*k z+3h2Ghbw-|I19xvSJyw3k>WRK1YD8RX`(%qNmZhlI&+Ztw9SO~R}Sm@Bow z;?X`Ko_x>FMjhyfG0LI~Qxr!0q14KFp<+2bcM{~*=wBOK^}_iC3hEgx^e;6xPVEqD-s>`l;kSQmCf$>Qesm`f~5P_j@HPc5B ziHr@C2kOBJf7kk?iRO2xp;g>8s8d+seApK!2nfTTaKLpj3#L_EO)GmQ48iT%Ru*}9 zG?XOWAN-kSJXO;6>H~})dz{2}Nr~=Y z2k*i>9W7>!PNWfu)2kF6(XwcLp$%kO#cC&oJ+HTM_WB`uzf~j#GLY(O<8oS(9^@Hw zleMf-9?*<_O4{^y$DJ<_y7kM19boOL>WU&ka*VID5HxXlF}NURtT13PQSpqY5a`;Q zzt~Q!FEFIwG#MPjFkWDemz)Xw4#m2=@WzLq!eCwAOMg|Ec=^_Haqh+n%R=| zx}siwkikG;b>X%~otb!Vq2PQwD%}*FiAAIIfeF+R!_vvrcjwz69bv0{rcD zdw1g`Yp^790paiE^^C6VDXDtA(kaASxz->x)HrTXoEK6}t^O&Ac#2g`$i&#Z0y%sZ z`(8!>j-OsVNE(~b?+#Hn_%^qfb&V%`A5MfS1d1!CiTTYl&s@qJyJprkMG^x2iDLV! z68Nr}zq{Z&JET&Z0WY~W{FhCVE3UeNfkhMaPz!zs++5EWG%6>)u(UrO*MYHN!9Og6 zd4nLSOPgBCs{QI|96qH`_Lr$bqJoHqDNZ%G@sZd2%*?C!D!Q}3oPcnAK$266t_Y!L@Tk~6F z+Fh}&U4Xpw2oBQ^EF|+k7pY2-7bL))46I->A~D2fH6QVlyvk>vMWdd~q(;Qf*Q>|d zfthj(Dtp2Hkqd;}$0I69#E+41Dc`WR(Ni{dFH-Z~Bg+K@HL-^c>u5VcfvmPS1pCez zi;Q>(*}gJs5%Ih_uBHYmL$4+T37`dW6N=oI-0)2Q*+nH9u=?6$Da)H>I_*f6D{#2l zK+kuxOA4@GbiZjMkYuUSR)?Kp7gFBsR@%Stj0&idhlqwmUGGqZsuL`e5~Q4tJr|g2 zCM+Fy7dQi442wOI_w1a>q9LBmfm0!_B8L89!GJ@a_taG*%kjC)z%UB1pvB!U^uk&_ zllVSPMTC2XohPzDe{9T|C!Zt)Q_&^@+(V&*`f+B!-l4N$p2OC*-CJ$|8c`$s9@8Rp zU@PWWul~7-%Y-($ePOL&`l+5gmrqw>#RHbeg-1F zb{Ek-JQfRhnaXA)stCTH@S$qj9sxTzoW?$={*DBc`|gov2Ro z`m-tuF|`H*!;`=r63MxPK&6;X1-#3C#7}dKS19D}!VG)qhgrb4tt@wCbN6G<3`BJ# zu2ktZxgdK6gZCH<^80Lciq(l|aj=?$e*v#q^WSOQ^`!%2W1mKo@pq1YZBLL;R$~8* zL$r_74Vghn_te(pVWFmsbKK`^C%%w@#y+IAfTzDxA;&w6iGrc(xFhcT(F(F`Zf&3VWGsYeRw$R)r-!xZ?lK#E@f_7 zL?%`!n#4vniDGM}UN(wws|%9hTTY2py075n4%VA{Hop;C4sZ18*RHVQFR4XpUD<8i zH6Hgz&)BMiYynjq@A*dMh3tmv^1@brLY^wLKviIr7WJLG&FO02E-^z}*mOzOnkvw~ zN1fvXW;Wik3Tz$=-}fuGnId2Gibv0T$rL-0u!IUP50KB~YBdL2G{%QFqKiz`p&1_m zf5f<0HvcCvUrK6QcCBw^1oYhHz3p8z%Qr%~!(aR(o}rHApXNScy@$QKA2q^Rf%R5k zMs?U>Cis8@{un|Lu@@#V4^Li?rJ@)M@;rDBtN0pq{@&sKz}`{im|_}j-Ag+9RKY#m zQj)#B;{C~lBI#;&5ZXd~i+p@_Ia8w*ho@6t)Ew9g$VI4=cNoH3gXv-?rfqY53{f9W zyJnkfNDq3{gD1$DJ2J9!!Oa<_LJ?Q^jcAPpjgKd)hTD{jz_Sb>0uqZON#(1^O`>(D zCX-#(#f8U2+>Zs(9tYsiwCyZy@}j8I6}#d%KNTsq)~hx`4Tg5b>-Z>a`vSqyJ7o4PWD}9XYqMYLOTDN7FT^ev{YRIAyv9 zcd#fiBnKEaP8qKKLj+g?o4T2$Bp57LlB#COxLk;>alI$G5})MIJZDR`g~nT=A;?ZD@Bm+JSA#Cl}Ylzf1fD`tY~TEdnQwFbw*4 zy5|COzb3d!C^Th;yv8VV)xN|T?Z`b}R-fulM(0mm8q~oh%LF@$e+eN0bROk1@J3I< z=`_vbw{345`&T;9e?gxY6Og1cu3*E?VD&9%7>s?x$u*JD1ddJp;ho1+ti6NjgIQ6P zLc?2R`Kkv@?8bcasPC<*N1kYBSNMAV{xFDi4wT!)wsX=*k#J82an*uhR^q5I$Jd5D z_|&fnYRE%whR52-(~A&juqf>=FUU`~9n8(;X2Sgt49ssk0SO*?IUFi9RdsbRrOTfw1c&h)#Aw_opr|LNGhQXTaYTDDkDs~jBNFwkOA$1Y z(xY~p>P4H>ErO0A73Vtp#(DJkCk}b?!iP)fOO9Ae?4WVMfPRpliqo|+2
KYhg{)0 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: string[][ return commands; } +export function blockingVerificationChecks(checks: DoctorCheck[]): DoctorCheck[] { + return checks.filter((check) => !check.ok && check.level !== "warning"); +} + function verifyApp(app: UpdatedApp): boolean { const health = inspectProject(app.root); - const failed = health.filter((check) => !check.ok && check.name !== "configuration"); + const failed = blockingVerificationChecks(health); + if (failed.length) { - for (const check of failed) console.error(` ✗ ${check.name}: ${check.detail}`); + for (const check of failed) { + console.error(` ✗ ${check.name}: ${check.detail}`); + } + return false; } diff --git a/packages/cli/test/update.test.ts b/packages/cli/test/update.test.ts index b0f17522..9bff360a 100644 --- a/packages/cli/test/update.test.ts +++ b/packages/cli/test/update.test.ts @@ -2,7 +2,7 @@ import { expect, test } from "bun:test"; import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { updateApp, verificationCommands } from "../src/update.ts"; +import { blockingVerificationChecks, updateApp, verificationCommands } from "../src/update.ts"; test("updateApp migrates project files without marking an unverified update complete", () => { const root = mkdtempSync(join(tmpdir(), "wrnexus-update-")); @@ -188,3 +188,41 @@ test("0.3 WRN source normalization is conservative and idempotent", async () => expect(migrated).toContain("data-config={{ nested: true }}"); expect(migrateWrnSource(migrated)).toBe(migrated); }); +test("update verification allows pending marker and configuration warnings", () => { + expect( + blockingVerificationChecks([ + { + name: "update marker", + ok: false, + detail: "project last migrated to 0.2.79", + level: "warning", + }, + { + name: "configuration", + ok: false, + detail: "No wrnexus.config file; framework defaults will be used", + level: "warning", + }, + ]), + ).toEqual([]); +}); + +test("update verification still blocks real doctor errors", () => { + const fatal = { + name: "WRN language", + ok: false, + detail: "10 files, 1 errors, 0 warnings", + }; + + expect( + blockingVerificationChecks([ + fatal, + { + name: "update marker", + ok: false, + detail: "project last migrated to 0.2.79", + level: "warning", + }, + ]), + ).toEqual([fatal]); +}); diff --git a/packages/compiler/package.json b/packages/compiler/package.json index b5c8685b..004568d8 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/compiler", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/core/package.json b/packages/core/package.json index 706fc930..2638d37a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/core", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/csr/package.json b/packages/csr/package.json index 3605c647..c62ab515 100644 --- a/packages/csr/package.json +++ b/packages/csr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/csr", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/db/package.json b/packages/db/package.json index f90bc510..60da766e 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/db", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/dev-server/package.json b/packages/dev-server/package.json index 38e58ac3..76a3b853 100644 --- a/packages/dev-server/package.json +++ b/packages/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-server", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/dev-toolbar/package.json b/packages/dev-toolbar/package.json index c2cf283d..eb185f60 100644 --- a/packages/dev-toolbar/package.json +++ b/packages/dev-toolbar/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-toolbar", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "sideEffects": false, diff --git a/packages/encryption/package.json b/packages/encryption/package.json index 06b4f8b0..c50c73d6 100644 --- a/packages/encryption/package.json +++ b/packages/encryption/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/encryption", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/helpers/package.json b/packages/helpers/package.json index 5f1bfa76..b049bb82 100644 --- a/packages/helpers/package.json +++ b/packages/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/helpers", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "description": "Safe convenience helpers for WrNexus request contexts and common application flows.", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 6858f657..0256066c 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/i18n", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/jwt/package.json b/packages/jwt/package.json index 34aa0ce3..90c76d9e 100644 --- a/packages/jwt/package.json +++ b/packages/jwt/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/jwt", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 5dee7ac1..6de197f4 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/mobile", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/native/package.json b/packages/native/package.json index 1246a911..3bf2f0e2 100644 --- a/packages/native/package.json +++ b/packages/native/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/native", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/oauth/package.json b/packages/oauth/package.json index 6afd06ff..936294fd 100644 --- a/packages/oauth/package.json +++ b/packages/oauth/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/oauth", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 850d9970..a5ca6e5f 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/plugin", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index a63086ec..17fd7f3b 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/pubsub", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/queue/package.json b/packages/queue/package.json index 09bb86b2..d98e9a3f 100644 --- a/packages/queue/package.json +++ b/packages/queue/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/queue", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/reactive/package.json b/packages/reactive/package.json index b356f707..59fa2b74 100644 --- a/packages/reactive/package.json +++ b/packages/reactive/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/reactive", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/router/package.json b/packages/router/package.json index 482b9307..ec06fc8a 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/router", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/ssr/package.json b/packages/ssr/package.json index 90d4b903..379de43b 100644 --- a/packages/ssr/package.json +++ b/packages/ssr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ssr", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/styles/package.json b/packages/styles/package.json index 2d8493b9..ed7d6f95 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/styles", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/syntax/package.json b/packages/syntax/package.json index d5af1819..b95cc54e 100644 --- a/packages/syntax/package.json +++ b/packages/syntax/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/syntax", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "main": "src/index.ts", "exports": { diff --git a/packages/test/package.json b/packages/test/package.json index d4083c7e..d6f9a585 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/test", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/tracking/package.json b/packages/tracking/package.json index 0e2526ce..515739ef 100644 --- a/packages/tracking/package.json +++ b/packages/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/tracking", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/ui/package.json b/packages/ui/package.json index 36547a85..edfe7bfb 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ui", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/uploader/package.json b/packages/uploader/package.json index cb34d543..7b9e580d 100644 --- a/packages/uploader/package.json +++ b/packages/uploader/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/uploader", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/packages/validation/package.json b/packages/validation/package.json index d97b0d1b..cfbc5ac9 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/validation", - "version": "0.3.0", + "version": "0.3.1", "private": true, "type": "module", "main": "src/index.ts", diff --git a/update-package-versions.mjs b/update-package-versions.mjs index 182ff409..36f19c1a 100644 --- a/update-package-versions.mjs +++ b/update-package-versions.mjs @@ -1,7 +1,7 @@ import { existsSync, readdirSync, readFileSync, writeFileSync } from "node:fs"; import { join } from "node:path"; -const version = "0.3.0"; +const version = "0.3.1"; const dependencyGroups = [ "dependencies",