From 112edf104615c0bfd05531d616ab3363cbf071b5 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Sun, 26 Oct 2025 22:31:35 -0400 Subject: [PATCH 01/39] correcting broken validate-compat.ts --- bun.lock | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 124 insertions(+) diff --git a/bun.lock b/bun.lock index 5d48136..6fbc1e4 100644 --- a/bun.lock +++ b/bun.lock @@ -5,6 +5,7 @@ "name": "create-absolutejs", "dependencies": { "@clack/prompts": "0.11.0", + "jq": "^1.7.2", "picocolors": "1.1.1", }, "devDependencies": { @@ -34,6 +35,8 @@ "packages": { "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + "@asamuzakjp/css-color": ["@asamuzakjp/css-color@4.0.5", "", { "dependencies": { "@csstools/css-calc": "^2.1.4", "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", "lru-cache": "^11.2.1" } }, "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], @@ -46,6 +49,18 @@ "@clack/prompts": ["@clack/prompts@0.11.0", "", { "dependencies": { "@clack/core": "0.5.0", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw=="], + "@csstools/color-helpers": ["@csstools/color-helpers@5.1.0", "", {}, "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA=="], + + "@csstools/css-calc": ["@csstools/css-calc@2.1.4", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ=="], + + "@csstools/css-color-parser": ["@csstools/css-color-parser@3.1.0", "", { "dependencies": { "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="], + + "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], + + "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.0.14", "", { "peerDependencies": { "postcss": "^8.4" } }, "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q=="], + + "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], @@ -224,16 +239,30 @@ "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + "asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="], + + "assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + "aws-sign2": ["aws-sign2@0.7.0", "", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="], + + "aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], + + "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], @@ -254,6 +283,8 @@ "caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], + "caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], @@ -262,12 +293,26 @@ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "contextify": ["contextify@0.1.15", "", { "dependencies": { "bindings": "^1.2.1", "nan": "^2.1.0" } }, "sha512-NpM4b6u5Mzig1/ux3ReVv42L/og3WcKKvkmTWxZpIjhZ/S23BViWZD/7hds9LGNzEL3W9ItfoZ+p6eRhCQMH6Q=="], + + "core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], + + "cssom": ["cssom@0.2.5", "", {}, "sha512-b9ecqKEfWrNcyzx5+1nmcfi80fPp8dVM8rlAh7fFK14PZbNjp++gRjyZTZfLJQa/Lw0qeCJho7WBIl0nw0v6HA=="], + + "cssstyle": ["cssstyle@5.3.1", "", { "dependencies": { "@asamuzakjp/css-color": "^4.0.3", "@csstools/css-syntax-patches-for-csstree": "^1.0.14", "css-tree": "^3.1.0" } }, "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ=="], + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="], + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], @@ -282,6 +327,8 @@ "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], "drizzle-kit": ["drizzle-kit@0.31.1", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.2", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q=="], @@ -290,6 +337,8 @@ "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + "ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], + "electron-to-chromium": ["electron-to-chromium@1.5.182", "", {}, "sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA=="], "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], @@ -350,6 +399,10 @@ "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "extsprintf": ["extsprintf@1.3.0", "", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], @@ -362,6 +415,8 @@ "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="], + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], @@ -372,6 +427,10 @@ "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + "forever-agent": ["forever-agent@0.6.1", "", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="], + + "form-data": ["form-data@2.3.3", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="], + "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], @@ -388,6 +447,8 @@ "get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="], + "getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], @@ -398,6 +459,10 @@ "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + "har-schema": ["har-schema@2.0.0", "", {}, "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="], + + "har-validator": ["har-validator@5.1.5", "", { "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -412,6 +477,10 @@ "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "htmlparser": ["htmlparser@1.7.7", "", {}, "sha512-zpK66ifkT0fauyFh2Mulrq4AqGTucxGtOhZ8OjkbSfcCpkqQEI8qRkY0tSQSJNAQ4HUZkgWaU4fK4EH6SVH9PQ=="], + + "http-signature": ["http-signature@1.2.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ=="], + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], @@ -466,6 +535,8 @@ "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], @@ -476,16 +547,30 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="], + + "jq": ["jq@1.7.2", "", { "dependencies": { "jsdom": "0.2.x", "xmlhttprequest": "1.3.x" }, "bin": { "jq": "./bin/jq" } }, "sha512-kWnotlfk7S8HVTzgVlmTjVwhOh2iJCQtx0kZSZwq2+qLIuCD92eslezwWR9a+lPNhe1s43VHFrqQMRB57nq36g=="], + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "jsbn": ["jsbn@0.1.1", "", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="], + + "jsdom": ["jsdom@0.2.19", "", { "dependencies": { "cssom": "0.2.x", "cssstyle": ">=0.2.3", "htmlparser": "1.x", "request": "2.x" }, "optionalDependencies": { "contextify": "0.1.x" } }, "sha512-wN7SnERzYuz0bfuKnHK1Mbjb2/wt86TTS3SoCMy63EjAhhnFYuoBEUNO3QkDvm9zzPt3Fp+BwdeUX9XjtMuGyA=="], + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + "json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + "jsprim": ["jsprim@1.4.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], @@ -496,20 +581,30 @@ "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + "lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="], + "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "nan": ["nan@2.23.0", "", {}, "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ=="], + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], @@ -518,6 +613,8 @@ "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + "oauth-sign": ["oauth-sign@0.9.0", "", {}, "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="], + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], @@ -546,6 +643,8 @@ "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], @@ -562,8 +661,12 @@ "prettier-plugin-svelte": ["prettier-plugin-svelte@3.4.0", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ=="], + "psl": ["psl@1.15.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="], + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "qs": ["qs@6.5.3", "", {}, "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], @@ -572,6 +675,8 @@ "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + "request": ["request@2.88.2", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="], + "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], @@ -584,12 +689,16 @@ "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], "safe-regex": ["safe-regex@2.1.1", "", { "dependencies": { "regexp-tree": "~0.1.1" } }, "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A=="], "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], @@ -618,6 +727,8 @@ "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + "sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="], + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], @@ -640,10 +751,16 @@ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "tough-cookie": ["tough-cookie@2.5.0", "", { "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="], + "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], + + "tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], @@ -666,6 +783,10 @@ "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="], + + "verror": ["verror@1.10.0", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="], + "vue": ["vue@3.5.17", "", { "dependencies": { "@vue/compiler-dom": "3.5.17", "@vue/compiler-sfc": "3.5.17", "@vue/runtime-dom": "3.5.17", "@vue/server-renderer": "3.5.17", "@vue/shared": "3.5.17" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g=="], "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], @@ -680,6 +801,8 @@ "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + "xmlhttprequest": ["xmlhttprequest@1.3.0", "", {}, "sha512-Ul4hDMW1hOOQsMMJ9jBiAzQ0GUcozhT2O+7bNj+SyJRzz+AxWb3a34zbJGBZ7/G/+ncsdZkG+IRaLxHHa+jQXQ=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], "zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="], diff --git a/package.json b/package.json index 08ffc2c..f56fe16 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ }, "dependencies": { "@clack/prompts": "0.11.0", + "jq": "^1.7.2", "picocolors": "1.1.1" }, "description": "A CLI tool to create a new AbsoluteJS project", From a38bd1883de73a974522248ba551c356b2f11321 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Sun, 26 Oct 2025 22:32:25 -0400 Subject: [PATCH 02/39] correcting compat.json --- tests/compat.json | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/tests/compat.json b/tests/compat.json index e69de29..5433ab7 100644 --- a/tests/compat.json +++ b/tests/compat.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "_meta": { + "version": 1, + "source": "extracted from CLI and curated manually", + "notes": [ + "Angular excluded for now", + "Auth 'none' works", + "Add constraints as we validate combinations" + ] + }, + "frameworks": [ + { "name": "react", "status": "works" }, + { "name": "svelte", "status": "works" }, + { "name": "vue", "status": "unknown" }, + { "name": "angular","status": "excluded", "reason": "out of scope for sprint" } + ], + "databases": { + "engines": [ + { "name": "sqlite", "status": "works" }, + { "name": "postgres", "status": "works" }, + { "name": "mysql", "status": "unknown" } + ] + }, + "orms": [ + { "name": "drizzle", "status": "works" }, + { "name": "prisma", "status": "unknown" } + ], + "hosts": [ + { "name": "vercel", "status": "works" }, + { "name": "netlify", "status": "unknown" }, + { "name": "docker", "status": "works" } + ], + "auth": { + "providers": [ + { "name": "none", "status": "works" }, + { "name": "clerk", "status": "unknown" }, + { "name": "authjs", "status": "unknown" }, + { "name": "supabase", "status": "unknown" } + ] + }, + "formatters": [ + { "name": "biome", "status": "works" }, + { "name": "prettier","status": "unknown" } + ], + "rules": [ + { + "when": { "orm": "prisma", "db.engine": "sqlite" }, + "status": "works", + "note": "Validate: prisma client generates and runs with sqlite. Keep until E2E confirms." + }, + { + "when": { "orm": "prisma", "db.engine": "mysql" }, + "status": "unknown", + "note": "Mark after scaffold+smoke test." + }, + { + "when": { "framework": "angular" }, + "status": "excluded", + "note": "Angular out." + }, + { + "when": { "auth.provider": "none" }, + "status": "works", + "note": "Baseline path for tests." + } + ] +} From 87c4421c97d9fd73ed1740b6069733d64dc48a24 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Mon, 27 Oct 2025 18:46:38 -0400 Subject: [PATCH 03/39] deleted 2 files, removed script from package.json --- tests/compat.json | 68 ---------------- tests/validate-compat.ts | 169 --------------------------------------- 2 files changed, 237 deletions(-) delete mode 100644 tests/compat.json delete mode 100644 tests/validate-compat.ts diff --git a/tests/compat.json b/tests/compat.json deleted file mode 100644 index 5433ab7..0000000 --- a/tests/compat.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "_meta": { - "version": 1, - "source": "extracted from CLI and curated manually", - "notes": [ - "Angular excluded for now", - "Auth 'none' works", - "Add constraints as we validate combinations" - ] - }, - "frameworks": [ - { "name": "react", "status": "works" }, - { "name": "svelte", "status": "works" }, - { "name": "vue", "status": "unknown" }, - { "name": "angular","status": "excluded", "reason": "out of scope for sprint" } - ], - "databases": { - "engines": [ - { "name": "sqlite", "status": "works" }, - { "name": "postgres", "status": "works" }, - { "name": "mysql", "status": "unknown" } - ] - }, - "orms": [ - { "name": "drizzle", "status": "works" }, - { "name": "prisma", "status": "unknown" } - ], - "hosts": [ - { "name": "vercel", "status": "works" }, - { "name": "netlify", "status": "unknown" }, - { "name": "docker", "status": "works" } - ], - "auth": { - "providers": [ - { "name": "none", "status": "works" }, - { "name": "clerk", "status": "unknown" }, - { "name": "authjs", "status": "unknown" }, - { "name": "supabase", "status": "unknown" } - ] - }, - "formatters": [ - { "name": "biome", "status": "works" }, - { "name": "prettier","status": "unknown" } - ], - "rules": [ - { - "when": { "orm": "prisma", "db.engine": "sqlite" }, - "status": "works", - "note": "Validate: prisma client generates and runs with sqlite. Keep until E2E confirms." - }, - { - "when": { "orm": "prisma", "db.engine": "mysql" }, - "status": "unknown", - "note": "Mark after scaffold+smoke test." - }, - { - "when": { "framework": "angular" }, - "status": "excluded", - "note": "Angular out." - }, - { - "when": { "auth.provider": "none" }, - "status": "works", - "note": "Baseline path for tests." - } - ] -} diff --git a/tests/validate-compat.ts b/tests/validate-compat.ts deleted file mode 100644 index 734fce5..0000000 --- a/tests/validate-compat.ts +++ /dev/null @@ -1,169 +0,0 @@ -// Run with: bun run tests/validate-compat.ts -// Purpose: Validate tests/compat.json for structure, statuses, and rule references. - -import fs from "node:fs"; - -// ---- Types to make intent explicit ----------------------------------------- - -type Status = "works" | "unknown" | "excluded"; - -type Item = { - name: string; // canonical option key, e.g., "react" - status: Status; // current support status - reason?: string; // optional human note for exclusions -}; - -type Rule = { - // Minimal keys to describe a constraint. Examples: - // { "framework": "angular" } - // { "orm": "drizzle", "db.engine": "mysql" } - when: Record; - status: Status; // how to treat this combination - note?: string; // optional explanation -}; - -type Compat = { - _meta?: unknown; - frameworks: Item[]; - databases: { - engines: Item[]; - hosts?: Item[]; // optional but recommended - }; - orms: Item[]; - auth: { providers: Item[] }; - formatters: Item[]; - rules?: Rule[]; -}; - -// ---- Helpers ---------------------------------------------------------------- - -const readJSON = (path: string): T => - JSON.parse(fs.readFileSync(path, "utf8")) as T; - -// Build a fast lookup Set for a list of items. -const toNameSet = (items: Item[] | undefined) => - new Set((items ?? []).map((x) => x.name)); - -// Assert utility. Throws with a clear message. -function assert(condition: unknown, message: string): asserts condition { - if (!condition) throw new Error(message); -} - -// Pretty-print a set; useful in error messages. -const list = (s: Set) => [...s].sort().join(", "); - -// Validate a single status value. -const isStatus = (x: any): x is Status => - x === "works" || x === "unknown" || x === "excluded"; - -// ---- Load compat.json ------------------------------------------------------- - -const compat = readJSON("tests/compat.json"); - -// ---- 1) Required top-level sections ---------------------------------------- - -assert(Array.isArray(compat.frameworks), "Missing 'frameworks' array."); -assert(compat.databases?.engines, "Missing 'databases.engines' array."); -assert(Array.isArray(compat.orms), "Missing 'orms' array."); -assert(compat.auth?.providers, "Missing 'auth.providers' array."); -assert(Array.isArray(compat.formatters), "Missing 'formatters' array."); - -// ---- 2) Validate item shapes and statuses ---------------------------------- - -function validateItemArray(name: string, items: Item[]) { - for (const it of items) { - assert(typeof it.name === "string" && it.name.length > 0, `[${name}] item missing valid 'name'.`); - assert(isStatus(it.status), `[${name}] '${it.name}' has invalid status '${(it as any).status}'. Use works|unknown|excluded.`); - } -} - -validateItemArray("frameworks", compat.frameworks); -validateItemArray("databases.engines", compat.databases.engines); -validateItemArray("orms", compat.orms); -validateItemArray("auth.providers", compat.auth.providers); -validateItemArray("formatters", compat.formatters); -if (compat.databases.hosts) validateItemArray("databases.hosts", compat.databases.hosts); - -// ---- 3) Build name lookup sets for cross-references ------------------------- - -const F = toNameSet(compat.frameworks); -const DE = toNameSet(compat.databases.engines); -const H = toNameSet(compat.databases.hosts ?? []); -const O = toNameSet(compat.orms); -const A = toNameSet(compat.auth.providers); -const FM = toNameSet(compat.formatters); - -// Sanity: must not be empty. -assert(F.size > 0, "No frameworks defined."); -assert(DE.size > 0, "No database engines defined."); -assert(O.size > 0, "No ORMs defined."); -assert(A.size > 0, "No auth providers defined."); -assert(FM.size > 0, "No formatters defined."); - -// ---- 4) Validate rules[] references ---------------------------------------- - -for (const r of compat.rules ?? []) { - assert(r.when && typeof r.when === "object", "Rule missing 'when' object."); - assert(isStatus(r.status), `Rule has invalid status '${(r as any).status}'.`); - - for (const [k, v] of Object.entries(r.when)) { - // We accept a limited vocabulary of keys to avoid silent typos. - switch (k) { - case "framework": - assert(F.has(v), `Rule references unknown framework '${v}'. Known: ${list(F)}`); - break; - case "db.engine": - assert(DE.has(v), `Rule references unknown db.engine '${v}'. Known: ${list(DE)}`); - break; - case "db.host": - assert(H.has(v), `Rule references unknown db.host '${v}'. Known: ${list(H)}`); - break; - case "orm": - assert(O.has(v), `Rule references unknown orm '${v}'. Known: ${list(O)}`); - break; - case "auth.provider": - assert(A.has(v), `Rule references unknown auth.provider '${v}'. Known: ${list(A)}`); - break; - case "formatter": - assert(FM.has(v), `Rule references unknown formatter '${v}'. Known: ${list(FM)}`); - break; - default: - throw new Error( - `Rule uses unsupported key '${k}'. Allowed keys: framework | db.engine | db.host | orm | auth.provider | formatter` - ); - } - } -} - -// ---- 5) Optional coherence checks (low-cost, high value) ------------------- - -// Example: If a host exists, its "none" entry should exist in engines or hosts. -// Not hard requirements, but they guard common mistakes. - -if (H.size > 0) { - assert(DE.has("none"), "Recommended: include engine 'none' for clarity."); - assert(H.has("none"), "Recommended: include host 'none' for clarity."); -} - -// Example: Angular must be excluded per project policy. -// If you ever flip this, remove the check. -{ - const angular = compat.frameworks.find((x) => x.name === "angular"); - assert( - !angular || angular.status === "excluded", - "Policy: 'angular' must be status: 'excluded'." - ); -} - -// Example: Auth baseline must include 'none' as works. -{ - const noneAuth = compat.auth.providers.find((x) => x.name === "none"); - assert( - noneAuth && noneAuth.status === "works", - "Policy: auth.providers must include { name: 'none', status: 'works' }." - ); -} - -// ---- 6) If we got here, file is valid -------------------------------------- - -console.log("compat.json validated"); From f27e90b90d1a33c510833efcee2ec1d2b62530fa Mon Sep 17 00:00:00 2001 From: jrs239 Date: Mon, 27 Oct 2025 20:12:02 -0400 Subject: [PATCH 04/39] tests: replace compat validator with bun:test suite using src/data.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removed static compat.json validator - Added compat.test.ts powered by Bun’s built-in test runner - Tests import real data from src/data.ts for frameworks, DBs, ORMs, hosts, and auth providers - Added host↔engine and ORM↔engine subset checks - Skipped scaffold smoke tests pending e2e setup --- src/generators/db/scaffoldDocker.ts | 1 + tests/compat.test.ts | 119 ++++++++++++++++++++++++++++ tsconfig.json | 2 +- 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 tests/compat.test.ts diff --git a/src/generators/db/scaffoldDocker.ts b/src/generators/db/scaffoldDocker.ts index 42d353c..4d563c1 100644 --- a/src/generators/db/scaffoldDocker.ts +++ b/src/generators/db/scaffoldDocker.ts @@ -42,6 +42,7 @@ export const scaffoldDocker = async ({ ); if (databaseEngine === 'mongodb') { + // ...work... } else { const { wait, cli } = initTemplates[databaseEngine]; const usesAuth = authProvider !== undefined && authProvider !== 'none'; diff --git a/tests/compat.test.ts b/tests/compat.test.ts new file mode 100644 index 0000000..f223ef3 --- /dev/null +++ b/tests/compat.test.ts @@ -0,0 +1,119 @@ +// Run: bun test +// Purpose: validate compatibility using src/data + real guards, no scaffolding. + +/* eslint-disable import/no-unused-modules */ +import { describe, it, expect, test } from "bun:test"; +import { + availableFrontends, + availableAuthProviders, + availableDatabaseEngines, + availableDatabaseHosts, + availableORMs, + availableCodeQualityTools, + availableDrizzleDialects, + availablePrismaDialects, +} from "../src/data"; +import { isDrizzleDialect, isPrismaDialect } from "../src/typeGuards"; + +export {}; + +// ---------- helpers ----------------------------------------------------------- +// Mirrors host↔engine rules in parseCommandLineOptions. +const hostAllowsEngine = (host: string, engine: string) => { + if (host === "turso") return engine === "sqlite"; + if (host === "neon") return engine === "postgresql"; + if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; + if (host === "none") return true; + + return true; // unknown host, no restriction +}; + +// ---------- integrity checks -------------------------------------------------- +describe("option integrity (from src/data.ts)", () => { + it("frontends non-empty", () => { + expect(availableFrontends.length).toBeGreaterThan(0); + }); + + it("auth providers include none", () => { + expect(availableAuthProviders).toContain("none"); + }); + + it("engines include none", () => { + expect(availableDatabaseEngines).toContain("none"); + }); + + it("hosts include none", () => { + expect(availableDatabaseHosts).toContain("none"); + }); + + it("orms include none", () => { + expect(availableORMs).toContain("none"); + }); + + it("formatters include at least one known tool", () => { + expect( + availableCodeQualityTools.includes("biome") || + availableCodeQualityTools.includes("eslint+prettier") + ).toBeTrue(); + }); +}); + +// ---------- host ↔ engine rules ---------------------------------------------- +describe("host ↔ engine compatibility", () => { + for (const host of availableDatabaseHosts) { + it(`host ${host}: only allows its whitelist`, () => { + for (const eng of availableDatabaseEngines) { + // Expected truth based on our rule helper + const expected = hostAllowsEngine(host, eng); + // Our test just checks the rule function behaves as expected. + expect(hostAllowsEngine(host, eng)).toBe(expected); + } + }); + } +}); + +// ---------- ORM ↔ engine dialect subsets ------------------------------------- +// We assert subset relations, not "all engines are valid". +describe("ORM dialect subsets", () => { + it("Drizzle dialects ⊆ available engines", () => { + for (const eng of availableDrizzleDialects) { + expect(availableDatabaseEngines).toContain(eng); + expect(isDrizzleDialect(eng)).toBeTrue(); + } + }); + + it("engines not in Drizzle set are rejected by Drizzle guard", () => { + for (const eng of availableDatabaseEngines) { + if (eng === "none") continue; + const shouldBe = availableDrizzleDialects.includes(eng); + expect(isDrizzleDialect(eng)).toBe(shouldBe); + } + }); + + it("Prisma dialects ⊆ available engines", () => { + for (const eng of availablePrismaDialects) { + expect(availableDatabaseEngines).toContain(eng); + expect(isPrismaDialect(eng)).toBeTrue(); + } + }); + + it("engines not in Prisma set are rejected by Prisma guard", () => { + for (const eng of availableDatabaseEngines) { + if (eng === "none") continue; + const shouldBe = availablePrismaDialects.includes(eng); + expect(isPrismaDialect(eng)).toBe(shouldBe); + } + }); +}); + +// ---------- smoke scaffold (disabled for now) -------------------------------- +// Real scaffolding touches FS, templates, env. Keep it out of unit runs. +test.skip("scaffold smoke: react + drizzle + sqlite + auth none", () => { + expect(true).toBe(true); +}); + +test.skip("scaffold smoke: html only, no db, no orm, no auth", () => { + expect(true).toBe(true); +}); + +export {}; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index f876c6c..d04515a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -31,5 +31,5 @@ "absolutejs-project", "src/templates/htmx/htmx.*.min.js" ], - "include": ["src/**/*"] + "include": ["src/**/*", "tests/**/*"] } From cc8ffa0ffb9a34548b0bc9d0f46fd218947ef137 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Mon, 27 Oct 2025 21:11:03 -0400 Subject: [PATCH 05/39] set up modular test structure for frontend backend db and auth, cleaned up eslint errors and added small fixes so all tests run smooth with bun test --- tests/modules/auth/auth.spec.ts | 9 ++++ tests/modules/backend/backend.elysia.spec.ts | 7 +++ tests/modules/db/db.spec.ts | 43 +++++++++++++++++++ tests/modules/frontend/frontend.react.spec.ts | 9 ++++ 4 files changed, 68 insertions(+) create mode 100644 tests/modules/auth/auth.spec.ts create mode 100644 tests/modules/backend/backend.elysia.spec.ts create mode 100644 tests/modules/db/db.spec.ts create mode 100644 tests/modules/frontend/frontend.react.spec.ts diff --git a/tests/modules/auth/auth.spec.ts b/tests/modules/auth/auth.spec.ts new file mode 100644 index 0000000..ba8c250 --- /dev/null +++ b/tests/modules/auth/auth.spec.ts @@ -0,0 +1,9 @@ +/* eslint-disable import/no-unused-modules */ +import { describe, it, expect } from "bun:test"; +import { availableAuthProviders } from "../../../src/data"; + +describe("auth", () => { + it("includes none", () => { + expect(availableAuthProviders).toContain("none"); + }); +}); diff --git a/tests/modules/backend/backend.elysia.spec.ts b/tests/modules/backend/backend.elysia.spec.ts new file mode 100644 index 0000000..37411a1 --- /dev/null +++ b/tests/modules/backend/backend.elysia.spec.ts @@ -0,0 +1,7 @@ +/* eslint-disable import/no-unused-modules */ +import { describe, it, expect } from "bun:test"; +describe("backend: elysia", () => { + it("placeholder", () => { + expect(true).toBeTrue(); + }); +}); diff --git a/tests/modules/db/db.spec.ts b/tests/modules/db/db.spec.ts new file mode 100644 index 0000000..f2d97c2 --- /dev/null +++ b/tests/modules/db/db.spec.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unused-modules */ +import { describe, it, expect } from "bun:test"; +import { + availableDatabaseEngines, + availableDatabaseHosts, + availableDrizzleDialects, + availablePrismaDialects +} from "../../../src/data"; +import { isDrizzleDialect, isPrismaDialect } from "../../../src/typeGuards"; + +describe("db engines exist", () => { + it("includes none", () => { + expect(availableDatabaseEngines).toContain("none"); + }); +}); + +describe("db host rules (subset checks)", () => { + const hostAllows = (host:string, engine:string) => { + if (host === "turso") return engine === "sqlite"; + if (host === "neon") return engine === "postgresql"; + if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; + + return true; + }; + + for (const h of availableDatabaseHosts) { + it(`host ${h} has coherent engine rules`, () => { + for (const engine of availableDatabaseEngines) { + // assertion documents the rule but does not require scaffold + expect(hostAllows(h, engine)).toBe(hostAllows(h, engine)); + } + }); + } +}); + +describe("ORM dialect guards", () => { + it("drizzle dialects are recognized", () => { + for (const dialect of availableDrizzleDialects) expect(isDrizzleDialect(dialect)).toBeTrue(); + }); + it("prisma dialects are recognized", () => { + for (const dialect of availablePrismaDialects) expect(isPrismaDialect(dialect)).toBeTrue(); + }); +}); diff --git a/tests/modules/frontend/frontend.react.spec.ts b/tests/modules/frontend/frontend.react.spec.ts new file mode 100644 index 0000000..e4a1641 --- /dev/null +++ b/tests/modules/frontend/frontend.react.spec.ts @@ -0,0 +1,9 @@ +/* eslint-disable import/no-unused-modules */ +import { describe, it, expect } from "bun:test"; +import { availableFrontends } from "../../../src/data"; + +describe("frontend: react", () => { + it("react is available", () => { + expect(availableFrontends).toContain("react"); + }); +}); From 59bf0b06b8472617dd17739d780028652e021d58 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Mon, 27 Oct 2025 23:52:52 -0400 Subject: [PATCH 06/39] Replace the circular test with table-driven explicit cases --- tests/compat.test.ts | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/tests/compat.test.ts b/tests/compat.test.ts index f223ef3..c135a9d 100644 --- a/tests/compat.test.ts +++ b/tests/compat.test.ts @@ -60,16 +60,27 @@ describe("option integrity (from src/data.ts)", () => { // ---------- host ↔ engine rules ---------------------------------------------- describe("host ↔ engine compatibility", () => { - for (const host of availableDatabaseHosts) { - it(`host ${host}: only allows its whitelist`, () => { - for (const eng of availableDatabaseEngines) { - // Expected truth based on our rule helper - const expected = hostAllowsEngine(host, eng); - // Our test just checks the rule function behaves as expected. - expect(hostAllowsEngine(host, eng)).toBe(expected); - } - }); - } + const cases: Array<{ host: string; eng: string; ok: boolean }> = [ + { host: "turso", eng: "sqlite", ok: true }, + { host: "turso", eng: "postgresql", ok: false }, + { host: "turso", eng: "mysql", ok: false }, + + { host: "neon", eng: "postgresql", ok: true }, + { host: "neon", eng: "sqlite", ok: false }, + { host: "neon", eng: "mysql", ok: false }, + + { host: "planetscale", eng: "mysql", ok: true }, + { host: "planetscale", eng: "postgresql", ok: true }, // per current rule helper + { host: "planetscale", eng: "sqlite", ok: false }, + + { host: "none", eng: "sqlite", ok: true }, + { host: "none", eng: "postgresql", ok: true }, + { host: "none", eng: "mysql", ok: true }, + ]; + + it.each(cases)("host %s with engine %s => %s", ({ host, eng, ok }) => { + expect(hostAllowsEngine(host, eng)).toBe(ok); + }); }); // ---------- ORM ↔ engine dialect subsets ------------------------------------- From d262a2cb779058c5c057ebd5c81ba8a45fb8ec73 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Tue, 28 Oct 2025 00:04:32 -0400 Subject: [PATCH 07/39] fix: make db tests better and fix eslint errors - replace useless test with actual db host/engine checks - rename ok -> isAllowed to make eslint happy - add missing types and remove unused import --- tests/compat.test.ts | 36 ++++++++++++++++++------------------ tests/modules/db/db.spec.ts | 23 ++++++++++++++++------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/tests/compat.test.ts b/tests/compat.test.ts index c135a9d..e63a68e 100644 --- a/tests/compat.test.ts +++ b/tests/compat.test.ts @@ -60,26 +60,26 @@ describe("option integrity (from src/data.ts)", () => { // ---------- host ↔ engine rules ---------------------------------------------- describe("host ↔ engine compatibility", () => { - const cases: Array<{ host: string; eng: string; ok: boolean }> = [ - { host: "turso", eng: "sqlite", ok: true }, - { host: "turso", eng: "postgresql", ok: false }, - { host: "turso", eng: "mysql", ok: false }, - - { host: "neon", eng: "postgresql", ok: true }, - { host: "neon", eng: "sqlite", ok: false }, - { host: "neon", eng: "mysql", ok: false }, - - { host: "planetscale", eng: "mysql", ok: true }, - { host: "planetscale", eng: "postgresql", ok: true }, // per current rule helper - { host: "planetscale", eng: "sqlite", ok: false }, - - { host: "none", eng: "sqlite", ok: true }, - { host: "none", eng: "postgresql", ok: true }, - { host: "none", eng: "mysql", ok: true }, + const cases: Array<{ host: string; eng: string; isAllowed: boolean }> = [ + { eng: "sqlite", host: "turso", isAllowed: true }, + { eng: "postgresql", host: "turso", isAllowed: false }, + { eng: "mysql", host: "turso", isAllowed: false }, + + { eng: "postgresql", host: "neon", isAllowed: true }, + { eng: "sqlite", host: "neon", isAllowed: false }, + { eng: "mysql", host: "neon", isAllowed: false }, + + { eng: "mysql", host: "planetscale", isAllowed: true }, + { eng: "postgresql", host: "planetscale", isAllowed: true }, + { eng: "sqlite", host: "planetscale", isAllowed: false }, + + { eng: "sqlite", host: "none", isAllowed: true }, + { eng: "postgresql", host: "none", isAllowed: true }, + { eng: "mysql", host: "none", isAllowed: true }, ]; - it.each(cases)("host %s with engine %s => %s", ({ host, eng, ok }) => { - expect(hostAllowsEngine(host, eng)).toBe(ok); + it.each(cases)("host %s with engine %s => %s", ({ host, eng, isAllowed }) => { + expect(hostAllowsEngine(host, eng)).toBe(isAllowed); }); }); diff --git a/tests/modules/db/db.spec.ts b/tests/modules/db/db.spec.ts index f2d97c2..eec95c7 100644 --- a/tests/modules/db/db.spec.ts +++ b/tests/modules/db/db.spec.ts @@ -2,7 +2,6 @@ import { describe, it, expect } from "bun:test"; import { availableDatabaseEngines, - availableDatabaseHosts, availableDrizzleDialects, availablePrismaDialects } from "../../../src/data"; @@ -23,12 +22,22 @@ describe("db host rules (subset checks)", () => { return true; }; - for (const h of availableDatabaseHosts) { - it(`host ${h} has coherent engine rules`, () => { - for (const engine of availableDatabaseEngines) { - // assertion documents the rule but does not require scaffold - expect(hostAllows(h, engine)).toBe(hostAllows(h, engine)); - } + const cases: Array<{ host: string; engine: string; expected: boolean }> = [ + { engine: "sqlite", expected: true, host: "turso" }, + { engine: "postgresql", expected: false, host: "turso" }, + { engine: "postgresql", expected: true, host: "neon" }, + { engine: "sqlite", expected: false, host: "neon" }, + { engine: "mysql", expected: true, host: "planetscale" }, + { engine: "postgresql", expected: true, host: "planetscale" }, + { engine: "sqlite", expected: false, host: "planetscale" }, + { engine: "sqlite", expected: true, host: "none" }, + { engine: "postgresql", expected: true, host: "none" }, + { engine: "mysql", expected: true, host: "none" } + ]; + + for (const { host, engine, expected } of cases) { + it(`host ${host} with engine ${engine} => ${expected}`, () => { + expect(hostAllows(host, engine)).toBe(expected); }); } }); From ec14a8ee3a653edb4a964470a4ae721851708eb1 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Tue, 28 Oct 2025 00:23:07 -0400 Subject: [PATCH 08/39] refactor: extract shared host-engine validation logic - Move host-engine validation to tests/utils/hostRules.ts - Update both test files to use shared logic - Remove duplicate export statement from compat.test.ts --- tests/compat.test.ts | 15 ++------------- tests/modules/db/db.spec.ts | 10 ++-------- tests/utils/hostRules.ts | 10 ++++++++++ 3 files changed, 14 insertions(+), 21 deletions(-) create mode 100644 tests/utils/hostRules.ts diff --git a/tests/compat.test.ts b/tests/compat.test.ts index e63a68e..fd7d874 100644 --- a/tests/compat.test.ts +++ b/tests/compat.test.ts @@ -17,16 +17,7 @@ import { isDrizzleDialect, isPrismaDialect } from "../src/typeGuards"; export {}; -// ---------- helpers ----------------------------------------------------------- -// Mirrors host↔engine rules in parseCommandLineOptions. -const hostAllowsEngine = (host: string, engine: string) => { - if (host === "turso") return engine === "sqlite"; - if (host === "neon") return engine === "postgresql"; - if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; - if (host === "none") return true; - - return true; // unknown host, no restriction -}; +import { hostAllowsEngine } from "./utils/hostRules"; // ---------- integrity checks -------------------------------------------------- describe("option integrity (from src/data.ts)", () => { @@ -125,6 +116,4 @@ test.skip("scaffold smoke: react + drizzle + sqlite + auth none", () => { test.skip("scaffold smoke: html only, no db, no orm, no auth", () => { expect(true).toBe(true); -}); - -export {}; \ No newline at end of file +}); \ No newline at end of file diff --git a/tests/modules/db/db.spec.ts b/tests/modules/db/db.spec.ts index eec95c7..489781f 100644 --- a/tests/modules/db/db.spec.ts +++ b/tests/modules/db/db.spec.ts @@ -6,6 +6,7 @@ import { availablePrismaDialects } from "../../../src/data"; import { isDrizzleDialect, isPrismaDialect } from "../../../src/typeGuards"; +import { hostAllowsEngine } from "../../utils/hostRules"; describe("db engines exist", () => { it("includes none", () => { @@ -14,13 +15,6 @@ describe("db engines exist", () => { }); describe("db host rules (subset checks)", () => { - const hostAllows = (host:string, engine:string) => { - if (host === "turso") return engine === "sqlite"; - if (host === "neon") return engine === "postgresql"; - if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; - - return true; - }; const cases: Array<{ host: string; engine: string; expected: boolean }> = [ { engine: "sqlite", expected: true, host: "turso" }, @@ -37,7 +31,7 @@ describe("db host rules (subset checks)", () => { for (const { host, engine, expected } of cases) { it(`host ${host} with engine ${engine} => ${expected}`, () => { - expect(hostAllows(host, engine)).toBe(expected); + expect(hostAllowsEngine(host, engine)).toBe(expected); }); } }); diff --git a/tests/utils/hostRules.ts b/tests/utils/hostRules.ts new file mode 100644 index 0000000..01797b8 --- /dev/null +++ b/tests/utils/hostRules.ts @@ -0,0 +1,10 @@ +/** + * Validates if a database engine is allowed for a given host. + * Shared validation logic for compatibility testing. + */ +export const hostAllowsEngine = (host: string, engine: string): boolean => { + if (host === "turso") return engine === "sqlite"; + if (host === "neon") return engine === "postgresql"; + if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; + return true; // 'none' or unknown host allows any engine +}; \ No newline at end of file From 88542a727f42df65f72f3f857f37f3447bc8708a Mon Sep 17 00:00:00 2001 From: jrs239 Date: Tue, 28 Oct 2025 00:27:02 -0400 Subject: [PATCH 09/39] fixed ESlint error: Explicit return types are disallowed; rely on TypeScript's inference instead absolute/no-explicit-return-type --- tests/utils/hostRules.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/utils/hostRules.ts b/tests/utils/hostRules.ts index 01797b8..4dafe42 100644 --- a/tests/utils/hostRules.ts +++ b/tests/utils/hostRules.ts @@ -2,9 +2,10 @@ * Validates if a database engine is allowed for a given host. * Shared validation logic for compatibility testing. */ -export const hostAllowsEngine = (host: string, engine: string): boolean => { +export const hostAllowsEngine = (host: string, engine: string) => { if (host === "turso") return engine === "sqlite"; if (host === "neon") return engine === "postgresql"; if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; + return true; // 'none' or unknown host allows any engine }; \ No newline at end of file From 9fc29845e18578bd39ddacb5460a2c2fac89c734 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:05:25 -0400 Subject: [PATCH 10/39] harness task 2 files --- tests/harness/checks.ts | 63 ++++++++++++++ tests/harness/constants.ts | 56 ++++++++++++ tests/harness/exec.ts | 64 ++++++++++++++ tests/harness/run-harness.ts | 159 +++++++++++++++++++++++++++++++++++ 4 files changed, 342 insertions(+) create mode 100644 tests/harness/checks.ts create mode 100644 tests/harness/constants.ts create mode 100644 tests/harness/exec.ts create mode 100644 tests/harness/run-harness.ts diff --git a/tests/harness/checks.ts b/tests/harness/checks.ts new file mode 100644 index 0000000..a5235d5 --- /dev/null +++ b/tests/harness/checks.ts @@ -0,0 +1,63 @@ +import { existsSync, readFileSync } from 'fs'; +import { join } from 'path'; + +type CheckResult = { ok: boolean; msg: string }; + +export function dirExists(path: string, name: string): CheckResult { + const exists = existsSync(path); + return { + ok: exists, + msg: exists ? `${name}` : `Missing dir: ${name}`, + }; +} + +export function fileExists(path: string, name: string): CheckResult { + const exists = existsSync(path); + return { + ok: exists, + msg: exists ? ` ${name}` : `Missing file: ${name}`, + }; +} + +export function hasDeps(pkgPath: string, deps: string[]): CheckResult { + if (!existsSync(pkgPath)) { + return { ok: false, msg: 'package.json not found' }; + } + + try { + const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); + const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; + const missing = deps.filter(d => !allDeps[d]); + + if (missing.length === 0) { + return { ok: true, msg: `All ${deps.length} deps present` }; + } + return { ok: false, msg: `Missing deps: ${missing.join(', ')}` }; + } catch (e) { + return { ok: false, msg: `Failed to parse package.json: ${e}` }; + } +} + +export function hasEnvVars(envPath: string, vars: string[]): CheckResult { + if (!existsSync(envPath)) { + return { ok: false, msg: '.env not found' }; + } + + const content = readFileSync(envPath, 'utf-8'); + const missing = vars.filter(v => !content.includes(v)); + + if (missing.length === 0) { + return { ok: true, msg: `All ${vars.length} env vars present` }; + } + return { ok: false, msg: `Missing env vars: ${missing.join(', ')}` }; +} + +export function hasBuildOutput(projectPath: string): CheckResult { + const dist = existsSync(join(projectPath, 'dist')); + const build = existsSync(join(projectPath, 'build')); + + if (dist || build) { + return { ok: true, msg: `Build output (${dist ? 'dist' : 'build'})` }; + } + return { ok: false, msg: 'No build output (checked dist/ and build/)' }; +} \ No newline at end of file diff --git a/tests/harness/constants.ts b/tests/harness/constants.ts new file mode 100644 index 0000000..c1caa24 --- /dev/null +++ b/tests/harness/constants.ts @@ -0,0 +1,56 @@ +import { join } from 'path'; + +export const COMBO = { + frontend: 'react', + backend: 'elysia', + database: 'postgresql', + orm: 'prisma', + auth: 'absolute-auth', + host: 'neon', +}; + +export const FLAGS = [ + '--react', + '--db', 'postgresql', + '--orm', 'prisma', + '--auth', 'absolute-auth', + '--db-host', 'neon', + '--skip', + '--install', +]; + +export const PROJECT_NAME = 'test-scaffold'; +export const REPO_ROOT = process.cwd(); +export const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); +export const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); + +export const TIMEOUTS = { + scaffold: 60_000, + install: 120_000, + build: 120_000, +}; + +export const EXPECTED = { + dirs: [ + 'src', + 'src/frontend', + 'src/backend', + 'db', + ], + files: [ + 'package.json', + '.env', + 'tsconfig.json', + 'src/backend/server.ts', + 'db/schema.ts', + ], + deps: [ + '@prisma/client', + 'react', + 'react-dom', + 'elysia', + '@absolutejs/absolute', + '@absolutejs/auth', + ], + envVars: ['DATABASE_URL'], +}; \ No newline at end of file diff --git a/tests/harness/exec.ts b/tests/harness/exec.ts new file mode 100644 index 0000000..d46061c --- /dev/null +++ b/tests/harness/exec.ts @@ -0,0 +1,64 @@ +import { spawn } from 'bun'; + +type ExecResult = { + ok: boolean; + code: number; + stdout: string; + stderr: string; +}; + +export async function exec( + cmd: string, + args: string[], + cwd: string, + timeoutMs?: number, +): Promise { + const fullCmd = `${cmd} ${args.join(' ')}`; + console.log(`\x1b[90m$ ${fullCmd}\x1b[0m`); + + const proc = spawn({ + cmd: [cmd, ...args], + cwd, + stdout: 'pipe', + stderr: 'pipe', + }); + + let timedOut = false; + const timer = timeoutMs + ? setTimeout(() => { + timedOut = true; + proc.kill(); + }, timeoutMs) + : undefined; + + const stdout = await new Response(proc.stdout).text(); + const stderr = await new Response(proc.stderr).text(); + const code = await proc.exited; + + if (timer) clearTimeout(timer); + + if (timedOut) { + return { + ok: false, + code: 124, + stdout, + stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, + }; + } + + return { + ok: code === 0, + code, + stdout, + stderr, + }; +} + +export function runCLI( + cliPath: string, + flags: string[], + projectName: string, + timeout: number, +): Promise { + return exec('bun', ['run', cliPath, ...flags, projectName], process.cwd(), timeout); +} \ No newline at end of file diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts new file mode 100644 index 0000000..d34e16f --- /dev/null +++ b/tests/harness/run-harness.ts @@ -0,0 +1,159 @@ +import { rmSync, existsSync } from 'fs'; +import { join } from 'path'; +import { + COMBO, + FLAGS, + PROJECT_NAME, + CLI_PATH, + OUTPUT_PATH, + TIMEOUTS, + EXPECTED, +} from './constants'; +import { exec, runCLI } from './exec'; +import { + dirExists, + fileExists, + hasDeps, + hasEnvVars, + hasBuildOutput, +} from './checks'; + +const phase = (name: string) => console.log(`${name}`); +const info = (msg: string) => console.log(` ${msg}`); +const error = (msg: string) => console.error(`${msg}`); +const success = (msg: string) => console.log(`${msg}`); + +let failed = false; +const results: { phase: string; checks: Array<{ ok: boolean; msg: string }> }[] = []; + +function runChecks(phaseName: string, checks: Array<{ ok: boolean; msg: string }>) { + results.push({ phase: phaseName, checks }); + + for (const check of checks) { + if (check.ok) { + success(check.msg); + } else { + error(check.msg); + failed = true; + } + } + + if (checks.some(c => !c.ok)) { + throw new Error(`${phaseName} failed`); + } +} + +async function cleanup() { + phase('CLEANUP'); + if (existsSync(OUTPUT_PATH)) { + info(`Removing old project: ${PROJECT_NAME}`); + rmSync(OUTPUT_PATH, { recursive: true, force: true }); + } + info(`Testing combo: ${COMBO.frontend} + ${COMBO.orm} + ${COMBO.database}`); +} + +async function scaffold() { + phase('SCAFFOLD'); + const result = await runCLI(CLI_PATH, FLAGS, PROJECT_NAME, TIMEOUTS.scaffold); + + if (!result.ok) { + error(`CLI failed with exit code ${result.code}`); + if (result.stderr) console.error(result.stderr); + throw new Error('Scaffolding failed'); + } + + success(`Project created: ${PROJECT_NAME}`); +} + +async function validate() { + phase('VALIDATE'); + + const checks = [ + ...EXPECTED.dirs.map(d => dirExists(join(OUTPUT_PATH, d), d)), + ...EXPECTED.files.map(f => fileExists(join(OUTPUT_PATH, f), f)), + hasDeps(join(OUTPUT_PATH, 'package.json'), EXPECTED.deps), + hasEnvVars(join(OUTPUT_PATH, '.env'), EXPECTED.envVars), + ]; + + runChecks('Validation', checks); +} + +async function install() { + phase('INSTALL'); + const result = await exec('bun', ['install'], OUTPUT_PATH, TIMEOUTS.install); + + if (!result.ok) { + error(`Install failed with exit code ${result.code}`); + if (result.stderr) console.error(result.stderr); + throw new Error('Install failed'); + } + const checks = [ + dirExists(join(OUTPUT_PATH, 'node_modules'), 'node_modules'), + fileExists(join(OUTPUT_PATH, 'bun.lockb'), 'bun.lockb'), + ]; + + runChecks('Install', checks); +} + +async function build() { + phase('BUILD'); + const result = await exec('bun', ['run', 'build'], OUTPUT_PATH, TIMEOUTS.build); + + if (!result.ok) { + error(`Build failed with exit code ${result.code}`); + if (result.stderr) console.error(result.stderr); + throw new Error('Build failed'); + } + + const checks = [hasBuildOutput(OUTPUT_PATH)]; + runChecks('Build', checks); +} + +function summary() { + phase('SUMMARY'); + + const totalChecks = results.reduce((sum, r) => sum + r.checks.length, 0); + const passed = results.reduce((sum, r) => sum + r.checks.filter(c => c.ok).length, 0); + + console.log(`\n Total: ${totalChecks} checks`); + console.log(` Passed: ${passed}`); + console.log(` Failed: ${totalChecks - passed}`); + + if (failed) { + error('\n HARNESS FAILED\n'); + console.log('Failed checks:'); + for (const r of results) { + const failedChecks = r.checks.filter(c => !c.ok); + if (failedChecks.length > 0) { + console.log(`\n${r.phase}:`); + failedChecks.forEach(c => error(` ${c.msg}`)); + } + } + } else { + success('\n ALL TESTS PASSED\n'); + info(`Project location: ${OUTPUT_PATH}`); + } +} + +async function main() { + console.log('═'.repeat(60)); + console.log('AbsoluteJS Scaffold Test Harness'); + console.log('React + Elysia + PostgreSQL + Prisma + Citra'); + console.log('═'.repeat(60)); + + try { + await cleanup(); + await scaffold(); + await validate(); + await install(); + await build(); + } catch (e) { + error(`\nAborted: ${e instanceof Error ? e.message : e}`); + } finally { + summary(); + } + + process.exit(failed ? 1 : 0); +} + +main(); \ No newline at end of file From ea0449aeba0a97ceb03bf2df8bacae9e29e15b14 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:27:49 -0400 Subject: [PATCH 11/39] Delete tests/harness/checks.ts --- tests/harness/checks.ts | 63 ----------------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 tests/harness/checks.ts diff --git a/tests/harness/checks.ts b/tests/harness/checks.ts deleted file mode 100644 index a5235d5..0000000 --- a/tests/harness/checks.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { existsSync, readFileSync } from 'fs'; -import { join } from 'path'; - -type CheckResult = { ok: boolean; msg: string }; - -export function dirExists(path: string, name: string): CheckResult { - const exists = existsSync(path); - return { - ok: exists, - msg: exists ? `${name}` : `Missing dir: ${name}`, - }; -} - -export function fileExists(path: string, name: string): CheckResult { - const exists = existsSync(path); - return { - ok: exists, - msg: exists ? ` ${name}` : `Missing file: ${name}`, - }; -} - -export function hasDeps(pkgPath: string, deps: string[]): CheckResult { - if (!existsSync(pkgPath)) { - return { ok: false, msg: 'package.json not found' }; - } - - try { - const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); - const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; - const missing = deps.filter(d => !allDeps[d]); - - if (missing.length === 0) { - return { ok: true, msg: `All ${deps.length} deps present` }; - } - return { ok: false, msg: `Missing deps: ${missing.join(', ')}` }; - } catch (e) { - return { ok: false, msg: `Failed to parse package.json: ${e}` }; - } -} - -export function hasEnvVars(envPath: string, vars: string[]): CheckResult { - if (!existsSync(envPath)) { - return { ok: false, msg: '.env not found' }; - } - - const content = readFileSync(envPath, 'utf-8'); - const missing = vars.filter(v => !content.includes(v)); - - if (missing.length === 0) { - return { ok: true, msg: `All ${vars.length} env vars present` }; - } - return { ok: false, msg: `Missing env vars: ${missing.join(', ')}` }; -} - -export function hasBuildOutput(projectPath: string): CheckResult { - const dist = existsSync(join(projectPath, 'dist')); - const build = existsSync(join(projectPath, 'build')); - - if (dist || build) { - return { ok: true, msg: `Build output (${dist ? 'dist' : 'build'})` }; - } - return { ok: false, msg: 'No build output (checked dist/ and build/)' }; -} \ No newline at end of file From f630c4b85a3c294893e102e89a0043a9551fdd2e Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:27:58 -0400 Subject: [PATCH 12/39] Delete tests/harness/constants.ts --- tests/harness/constants.ts | 56 -------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 tests/harness/constants.ts diff --git a/tests/harness/constants.ts b/tests/harness/constants.ts deleted file mode 100644 index c1caa24..0000000 --- a/tests/harness/constants.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { join } from 'path'; - -export const COMBO = { - frontend: 'react', - backend: 'elysia', - database: 'postgresql', - orm: 'prisma', - auth: 'absolute-auth', - host: 'neon', -}; - -export const FLAGS = [ - '--react', - '--db', 'postgresql', - '--orm', 'prisma', - '--auth', 'absolute-auth', - '--db-host', 'neon', - '--skip', - '--install', -]; - -export const PROJECT_NAME = 'test-scaffold'; -export const REPO_ROOT = process.cwd(); -export const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); -export const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); - -export const TIMEOUTS = { - scaffold: 60_000, - install: 120_000, - build: 120_000, -}; - -export const EXPECTED = { - dirs: [ - 'src', - 'src/frontend', - 'src/backend', - 'db', - ], - files: [ - 'package.json', - '.env', - 'tsconfig.json', - 'src/backend/server.ts', - 'db/schema.ts', - ], - deps: [ - '@prisma/client', - 'react', - 'react-dom', - 'elysia', - '@absolutejs/absolute', - '@absolutejs/auth', - ], - envVars: ['DATABASE_URL'], -}; \ No newline at end of file From 1f4942bc6e86587ffe8f9bc0624782a1057323bf Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:28:07 -0400 Subject: [PATCH 13/39] Delete tests/harness/exec.ts --- tests/harness/exec.ts | 64 ------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 tests/harness/exec.ts diff --git a/tests/harness/exec.ts b/tests/harness/exec.ts deleted file mode 100644 index d46061c..0000000 --- a/tests/harness/exec.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { spawn } from 'bun'; - -type ExecResult = { - ok: boolean; - code: number; - stdout: string; - stderr: string; -}; - -export async function exec( - cmd: string, - args: string[], - cwd: string, - timeoutMs?: number, -): Promise { - const fullCmd = `${cmd} ${args.join(' ')}`; - console.log(`\x1b[90m$ ${fullCmd}\x1b[0m`); - - const proc = spawn({ - cmd: [cmd, ...args], - cwd, - stdout: 'pipe', - stderr: 'pipe', - }); - - let timedOut = false; - const timer = timeoutMs - ? setTimeout(() => { - timedOut = true; - proc.kill(); - }, timeoutMs) - : undefined; - - const stdout = await new Response(proc.stdout).text(); - const stderr = await new Response(proc.stderr).text(); - const code = await proc.exited; - - if (timer) clearTimeout(timer); - - if (timedOut) { - return { - ok: false, - code: 124, - stdout, - stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, - }; - } - - return { - ok: code === 0, - code, - stdout, - stderr, - }; -} - -export function runCLI( - cliPath: string, - flags: string[], - projectName: string, - timeout: number, -): Promise { - return exec('bun', ['run', cliPath, ...flags, projectName], process.cwd(), timeout); -} \ No newline at end of file From 77d9c39cd33cefe84727df69cf869d617cc566a6 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 01:29:39 -0400 Subject: [PATCH 14/39] Refactor run-harness.ts for improved structure --- tests/harness/run-harness.ts | 207 ++++++++++++++++++++++++++++++----- 1 file changed, 182 insertions(+), 25 deletions(-) diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts index d34e16f..ce6d255 100644 --- a/tests/harness/run-harness.ts +++ b/tests/harness/run-harness.ts @@ -1,32 +1,188 @@ -import { rmSync, existsSync } from 'fs'; +import { spawn } from 'bun'; +import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; -import { - COMBO, - FLAGS, - PROJECT_NAME, - CLI_PATH, - OUTPUT_PATH, - TIMEOUTS, - EXPECTED, -} from './constants'; -import { exec, runCLI } from './exec'; -import { - dirExists, - fileExists, - hasDeps, - hasEnvVars, - hasBuildOutput, -} from './checks'; - -const phase = (name: string) => console.log(`${name}`); + +const COMBO = { + frontend: 'react', + backend: 'elysia', + database: 'postgresql', + orm: 'prisma', + auth: 'absoluteAuth', + host: 'neon', +}; + +const FLAGS = [ + '--react', + '--db', 'postgresql', + '--orm', 'prisma', + '--auth', 'absoluteAuth', + '--db-host', 'neon', + '--skip', + '--install', +]; + +const PROJECT_NAME = 'test-scaffold'; +const REPO_ROOT = process.cwd(); +const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); +const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); + +const TIMEOUTS = { + scaffold: 180_000, + install: 180_000, + build: 180_000, +}; + +const EXPECTED = { + dirs: ['src', 'src/frontend', 'src/backend', 'db'], + files: [ + 'package.json', + '.env', + 'tsconfig.json', + 'src/backend/server.ts', + 'db/schema.ts', + ], + deps: [ + '@prisma/client', + 'react', + 'react-dom', + 'elysia', + '@absolutejs/absolute', + '@absolutejs/auth', + ], + envVars: ['DATABASE_URL'], +}; + +type ExecResult = { + ok: boolean; + code: number; + stdout: string; + stderr: string; +}; + +type CheckResult = { + ok: boolean; + msg: string; +}; + +const phase = (name: string) => console.log(`\n\x1b[1m\x1b[36m▶ ${name}\x1b[0m`); const info = (msg: string) => console.log(` ${msg}`); -const error = (msg: string) => console.error(`${msg}`); -const success = (msg: string) => console.log(`${msg}`); +const error = (msg: string) => console.error(`\x1b[31m ${msg}\x1b[0m`); +const success = (msg: string) => console.log(`\x1b[32m ${msg}\x1b[0m`); + +async function exec( + cmd: string, + args: string[], + cwd: string, + timeoutMs?: number, +): Promise { + const fullCmd = `${cmd} ${args.join(' ')}`; + console.log(`\x1b[90m$ ${fullCmd}\x1b[0m`); + + const proc = spawn({ + cmd: [cmd, ...args], + cwd, + stdout: 'pipe', + stderr: 'pipe', + }); + + let timedOut = false; + const timer = timeoutMs + ? setTimeout(() => { + timedOut = true; + proc.kill(); + }, timeoutMs) + : undefined; + + const stdout = await new Response(proc.stdout).text(); + const stderr = await new Response(proc.stderr).text(); + const code = await proc.exited; + + if (timer) clearTimeout(timer); + + if (timedOut) { + return { + ok: false, + code: 124, + stdout, + stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, + }; + } + + return { ok: code === 0, code, stdout, stderr }; +} + +function runCLI( + cliPath: string, + flags: string[], + projectName: string, + timeout: number, +): Promise { + return exec('bun', ['run', cliPath, projectName, ...flags], process.cwd(), timeout); +} + +function dirExists(path: string, name: string): CheckResult { + const exists = existsSync(path); + return { + ok: exists, + msg: exists ? `✓ ${name}` : `✗ Missing dir: ${name}`, + }; +} + +function fileExists(path: string, name: string): CheckResult { + const exists = existsSync(path); + return { + ok: exists, + msg: exists ? `✓ ${name}` : `✗ Missing file: ${name}`, + }; +} + +function hasDeps(pkgPath: string, deps: string[]): CheckResult { + if (!existsSync(pkgPath)) { + return { ok: false, msg: '✗ package.json not found' }; + } + + try { + const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); + const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; + const missing = deps.filter(d => !allDeps[d]); + + if (missing.length === 0) { + return { ok: true, msg: `All ${deps.length} deps present` }; + } + return { ok: false, msg: `Missing deps: ${missing.join(', ')}` }; + } catch (e) { + return { ok: false, msg: `Failed to parse package.json: ${e}` }; + } +} + +function hasEnvVars(envPath: string, vars: string[]): CheckResult { + if (!existsSync(envPath)) { + return { ok: false, msg: '✗ .env not found' }; + } + + const content = readFileSync(envPath, 'utf-8'); + const missing = vars.filter(v => !content.includes(v)); + + if (missing.length === 0) { + return { ok: true, msg: `All ${vars.length} env vars present` }; + } + return { ok: false, msg: `Missing env vars: ${missing.join(', ')}` }; +} + +function hasBuildOutput(projectPath: string): CheckResult { + const dist = existsSync(join(projectPath, 'dist')); + const build = existsSync(join(projectPath, 'build')); + + if (dist || build) { + return { ok: true, msg: `Build output (${dist ? 'dist' : 'build'})` }; + } + return { ok: false, msg: 'No build output (checked dist/ and build/)' }; +} let failed = false; -const results: { phase: string; checks: Array<{ ok: boolean; msg: string }> }[] = []; +const results: { phase: string; checks: CheckResult[] }[] = []; -function runChecks(phaseName: string, checks: Array<{ ok: boolean; msg: string }>) { +function runChecks(phaseName: string, checks: CheckResult[]) { results.push({ phase: phaseName, checks }); for (const check of checks) { @@ -87,6 +243,7 @@ async function install() { if (result.stderr) console.error(result.stderr); throw new Error('Install failed'); } + const checks = [ dirExists(join(OUTPUT_PATH, 'node_modules'), 'node_modules'), fileExists(join(OUTPUT_PATH, 'bun.lockb'), 'bun.lockb'), @@ -156,4 +313,4 @@ async function main() { process.exit(failed ? 1 : 0); } -main(); \ No newline at end of file +main(); From 07340b16be6a92b7fbc3b38687e05faec06373a1 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:23:00 -0400 Subject: [PATCH 15/39] Update ORM from Prisma to Drizzle --- tests/harness/run-harness.ts | 119 +++++++++-------------------------- 1 file changed, 28 insertions(+), 91 deletions(-) diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts index ce6d255..d850bd5 100644 --- a/tests/harness/run-harness.ts +++ b/tests/harness/run-harness.ts @@ -6,17 +6,23 @@ const COMBO = { frontend: 'react', backend: 'elysia', database: 'postgresql', - orm: 'prisma', - auth: 'absoluteAuth', + orm: 'drizzle', + auth: 'absoluteAuth', host: 'neon', + codeQuality: 'eslint+prettier', + tailwind: true, + git: true, }; - const FLAGS = [ '--react', '--db', 'postgresql', - '--orm', 'prisma', - '--auth', 'absoluteAuth', + '--orm', 'drizzle', + '--auth', 'absoluteAuth', '--db-host', 'neon', + '--eslint+prettier', + '--tailwind', + '--directory', 'default', + '--git', '--skip', '--install', ]; @@ -25,58 +31,43 @@ const PROJECT_NAME = 'test-scaffold'; const REPO_ROOT = process.cwd(); const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); - const TIMEOUTS = { scaffold: 180_000, install: 180_000, - build: 180_000, }; - const EXPECTED = { dirs: ['src', 'src/frontend', 'src/backend', 'db'], files: [ 'package.json', - '.env', 'tsconfig.json', 'src/backend/server.ts', - 'db/schema.ts', + 'db/schema.ts', ], deps: [ - '@prisma/client', + 'drizzle-orm', 'react', - 'react-dom', 'elysia', '@absolutejs/absolute', '@absolutejs/auth', ], - envVars: ['DATABASE_URL'], }; - type ExecResult = { ok: boolean; code: number; stdout: string; stderr: string; }; - type CheckResult = { ok: boolean; msg: string; }; - const phase = (name: string) => console.log(`\n\x1b[1m\x1b[36m▶ ${name}\x1b[0m`); const info = (msg: string) => console.log(` ${msg}`); -const error = (msg: string) => console.error(`\x1b[31m ${msg}\x1b[0m`); -const success = (msg: string) => console.log(`\x1b[32m ${msg}\x1b[0m`); - -async function exec( - cmd: string, - args: string[], - cwd: string, - timeoutMs?: number, -): Promise { +const error = (msg: string) => console.error(`[31m ${msg}[0m`); +const success = (msg: string) => console.log(`[32m ${msg}[0m`); +async function exec(cmd: string, args: string[], cwd: string, timeoutMs?: number): Promise { const fullCmd = `${cmd} ${args.join(' ')}`; - console.log(`\x1b[90m$ ${fullCmd}\x1b[0m`); + console.log(`[90m$ ${fullCmd}[0m`); const proc = spawn({ cmd: [cmd, ...args], @@ -86,12 +77,10 @@ async function exec( }); let timedOut = false; - const timer = timeoutMs - ? setTimeout(() => { - timedOut = true; - proc.kill(); - }, timeoutMs) - : undefined; + const timer = timeoutMs ? setTimeout(() => { + timedOut = true; + proc.kill(); + }, timeoutMs) : undefined; const stdout = await new Response(proc.stdout).text(); const stderr = await new Response(proc.stderr).text(); @@ -111,12 +100,7 @@ async function exec( return { ok: code === 0, code, stdout, stderr }; } -function runCLI( - cliPath: string, - flags: string[], - projectName: string, - timeout: number, -): Promise { +function runCLI(cliPath: string, flags: string[], projectName: string, timeout: number): Promise { return exec('bun', ['run', cliPath, projectName, ...flags], process.cwd(), timeout); } @@ -124,7 +108,7 @@ function dirExists(path: string, name: string): CheckResult { const exists = existsSync(path); return { ok: exists, - msg: exists ? `✓ ${name}` : `✗ Missing dir: ${name}`, + msg: exists ? `${name}` : `Missing dir: ${name}`, }; } @@ -132,13 +116,14 @@ function fileExists(path: string, name: string): CheckResult { const exists = existsSync(path); return { ok: exists, - msg: exists ? `✓ ${name}` : `✗ Missing file: ${name}`, + msg: exists ? `${name}` : `Missing file: ${name}`, }; } +// verify all required dependencies are in package.json function hasDeps(pkgPath: string, deps: string[]): CheckResult { if (!existsSync(pkgPath)) { - return { ok: false, msg: '✗ package.json not found' }; + return { ok: false, msg: 'package.json not found' }; } try { @@ -155,30 +140,6 @@ function hasDeps(pkgPath: string, deps: string[]): CheckResult { } } -function hasEnvVars(envPath: string, vars: string[]): CheckResult { - if (!existsSync(envPath)) { - return { ok: false, msg: '✗ .env not found' }; - } - - const content = readFileSync(envPath, 'utf-8'); - const missing = vars.filter(v => !content.includes(v)); - - if (missing.length === 0) { - return { ok: true, msg: `All ${vars.length} env vars present` }; - } - return { ok: false, msg: `Missing env vars: ${missing.join(', ')}` }; -} - -function hasBuildOutput(projectPath: string): CheckResult { - const dist = existsSync(join(projectPath, 'dist')); - const build = existsSync(join(projectPath, 'build')); - - if (dist || build) { - return { ok: true, msg: `Build output (${dist ? 'dist' : 'build'})` }; - } - return { ok: false, msg: 'No build output (checked dist/ and build/)' }; -} - let failed = false; const results: { phase: string; checks: CheckResult[] }[] = []; @@ -228,54 +189,33 @@ async function validate() { ...EXPECTED.dirs.map(d => dirExists(join(OUTPUT_PATH, d), d)), ...EXPECTED.files.map(f => fileExists(join(OUTPUT_PATH, f), f)), hasDeps(join(OUTPUT_PATH, 'package.json'), EXPECTED.deps), - hasEnvVars(join(OUTPUT_PATH, '.env'), EXPECTED.envVars), ]; - runChecks('Validation', checks); } async function install() { phase('INSTALL'); const result = await exec('bun', ['install'], OUTPUT_PATH, TIMEOUTS.install); - if (!result.ok) { error(`Install failed with exit code ${result.code}`); if (result.stderr) console.error(result.stderr); throw new Error('Install failed'); } - const checks = [ dirExists(join(OUTPUT_PATH, 'node_modules'), 'node_modules'), - fileExists(join(OUTPUT_PATH, 'bun.lockb'), 'bun.lockb'), + fileExists(join(OUTPUT_PATH, 'bun.lock'), 'bun.lock'), ]; runChecks('Install', checks); } -async function build() { - phase('BUILD'); - const result = await exec('bun', ['run', 'build'], OUTPUT_PATH, TIMEOUTS.build); - - if (!result.ok) { - error(`Build failed with exit code ${result.code}`); - if (result.stderr) console.error(result.stderr); - throw new Error('Build failed'); - } - - const checks = [hasBuildOutput(OUTPUT_PATH)]; - runChecks('Build', checks); -} - function summary() { phase('SUMMARY'); - const totalChecks = results.reduce((sum, r) => sum + r.checks.length, 0); const passed = results.reduce((sum, r) => sum + r.checks.filter(c => c.ok).length, 0); - console.log(`\n Total: ${totalChecks} checks`); console.log(` Passed: ${passed}`); console.log(` Failed: ${totalChecks - passed}`); - if (failed) { error('\n HARNESS FAILED\n'); console.log('Failed checks:'); @@ -295,7 +235,7 @@ function summary() { async function main() { console.log('═'.repeat(60)); console.log('AbsoluteJS Scaffold Test Harness'); - console.log('React + Elysia + PostgreSQL + Prisma + Citra'); + console.log('React + Elysia + PostgreSQL + Drizzle + Absolute-Auth'); console.log('═'.repeat(60)); try { @@ -303,14 +243,11 @@ async function main() { await scaffold(); await validate(); await install(); - await build(); } catch (e) { error(`\nAborted: ${e instanceof Error ? e.message : e}`); } finally { summary(); } - process.exit(failed ? 1 : 0); } - main(); From 8b22369408a2e02e98a7a84da0fb5c576ac26e27 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:27:27 -0400 Subject: [PATCH 16/39] Refactor logging functions in run-harness.ts Updated logging functions to simplify output formatting. --- tests/harness/run-harness.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts index d850bd5..ec4be15 100644 --- a/tests/harness/run-harness.ts +++ b/tests/harness/run-harness.ts @@ -61,13 +61,13 @@ type CheckResult = { ok: boolean; msg: string; }; -const phase = (name: string) => console.log(`\n\x1b[1m\x1b[36m▶ ${name}\x1b[0m`); -const info = (msg: string) => console.log(` ${msg}`); -const error = (msg: string) => console.error(`[31m ${msg}[0m`); -const success = (msg: string) => console.log(`[32m ${msg}[0m`); +const phase = (name: string) => console.log(`${name}`); +const info = (msg: string) => console.log(`${msg}`); +const error = (msg: string) => console.error(`${msg}`); +const success = (msg: string) => console.log(`${msg}`); async function exec(cmd: string, args: string[], cwd: string, timeoutMs?: number): Promise { const fullCmd = `${cmd} ${args.join(' ')}`; - console.log(`[90m$ ${fullCmd}[0m`); + console.log(`${fullCmd}`); const proc = spawn({ cmd: [cmd, ...args], @@ -119,8 +119,6 @@ function fileExists(path: string, name: string): CheckResult { msg: exists ? `${name}` : `Missing file: ${name}`, }; } - -// verify all required dependencies are in package.json function hasDeps(pkgPath: string, deps: string[]): CheckResult { if (!existsSync(pkgPath)) { return { ok: false, msg: 'package.json not found' }; From abc394c993fb02323e225d28044436510ab4723d Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 28 Oct 2025 23:05:47 -0400 Subject: [PATCH 17/39] Database Host Scaffolding Tests files --- tests/modules/hosts/neon-test.ts | 88 +++++++++ tests/modules/hosts/planetscale-test.ts | 90 ++++++++++ tests/modules/hosts/test-hosts.ts | 230 ++++++++++++++++++++++++ tests/modules/hosts/turso-test.ts | 89 +++++++++ 4 files changed, 497 insertions(+) create mode 100644 tests/modules/hosts/neon-test.ts create mode 100644 tests/modules/hosts/planetscale-test.ts create mode 100644 tests/modules/hosts/test-hosts.ts create mode 100644 tests/modules/hosts/turso-test.ts diff --git a/tests/modules/hosts/neon-test.ts b/tests/modules/hosts/neon-test.ts new file mode 100644 index 0000000..52d6990 --- /dev/null +++ b/tests/modules/hosts/neon-test.ts @@ -0,0 +1,88 @@ +import { describe, expect, test } from 'bun:test'; +import { spawn } from 'bun'; +import { existsSync, readFileSync, rmSync } from 'fs'; +import { join } from 'path'; + +const PROJECT_NAME = 'neon-test'; +describe('Neon Host Tests', () => { + test('cleanup before tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + }); + test('should create project with neon host', async () => { + const command = [ + 'bun', + 'run', + 'src/index.ts', + PROJECT_NAME, + '--react', + '--db', + 'postgresql', + '--orm', + 'drizzle', + '--db-host', + 'neon', + '--auth', + 'none', + '--eslint+prettier', + '--tailwind', + '--directory', + 'default', + '--skip', + '--no-install', + '--no-git', + ]; + const proc = spawn({ + cmd: command, + cwd: process.cwd(), + stdout: 'pipe', + stderr: 'pipe', + }); + const exitCode = await proc.exited; + expect(exitCode).toBe(0); + }); + test('project folder should exist', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + expect(existsSync(projectPath)).toBe(true); + }); + test('package.json should have @neondatabase/serverless', () => { + const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); + const pkgContent = readFileSync(pkgPath, 'utf-8'); + const pkg = JSON.parse(pkgContent); + const allDeps = { + ...pkg.dependencies, + ...pkg.devDependencies, + }; + expect(allDeps['@neondatabase/serverless']).toBeDefined(); + }); + test('.env should NOT exist for hosted database (neon)', () => { + const envPath = join(process.cwd(), PROJECT_NAME, '.env'); + expect(existsSync(envPath)).toBe(false); + }); + test('drizzle.config.ts should exist and reference DATABASE_URL', () => { + const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); + expect(existsSync(drizzlePath)).toBe(true); + const drizzleContent = readFileSync(drizzlePath, 'utf-8'); + expect(drizzleContent).toContain('DATABASE_URL'); + expect(drizzleContent).toContain('env.DATABASE_URL'); + }); + test('db/schema.ts should exist', () => { + const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); + expect(existsSync(schemaPath)).toBe(true); + }); + test('server.ts should have correct neon import', () => { + const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); + expect(existsSync(serverPath)).toBe(true); + const serverContent = readFileSync(serverPath, 'utf-8'); + expect(serverContent).toContain('@neondatabase/serverless'); + }); + test('cleanup after tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + expect(existsSync(projectPath)).toBe(false); + }); +}); \ No newline at end of file diff --git a/tests/modules/hosts/planetscale-test.ts b/tests/modules/hosts/planetscale-test.ts new file mode 100644 index 0000000..e999e50 --- /dev/null +++ b/tests/modules/hosts/planetscale-test.ts @@ -0,0 +1,90 @@ +import { describe, expect, test } from 'bun:test'; +import { spawn } from 'bun'; +import { existsSync, readFileSync, rmSync } from 'fs'; +import { join } from 'path'; + +const PROJECT_NAME = 'planetscale-test'; +describe('PlanetScale Host Tests', () => { + test('cleanup before tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + }); + test('should create project with planetscale host', async () => { + const command = [ + 'bun', + 'run', + 'src/index.ts', + PROJECT_NAME, + '--react', + '--db', + 'mysql', + '--orm', + 'drizzle', + '--db-host', + 'planetscale', + '--auth', + 'none', + '--eslint+prettier', + '--tailwind', + '--directory', + 'default', + '--skip', + '--no-install', + '--no-git', + ]; + const proc = spawn({ + cmd: command, + cwd: process.cwd(), + stdout: 'pipe', + stderr: 'pipe', + }); + const exitCode = await proc.exited; + expect(exitCode).toBe(0); + }); + test('project folder should exist', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + expect(existsSync(projectPath)).toBe(true); + }); + test('package.json should have @planetscale/database', () => { + const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); + const pkgContent = readFileSync(pkgPath, 'utf-8'); + const pkg = JSON.parse(pkgContent); + + const allDeps = { + ...pkg.dependencies, + ...pkg.devDependencies, + }; + expect(allDeps['@planetscale/database']).toBeDefined(); + }); + test('.env should NOT exist for hosted database (planetscale)', () => { + const envPath = join(process.cwd(), PROJECT_NAME, '.env'); + expect(existsSync(envPath)).toBe(false); + }); + test('drizzle.config.ts should exist and reference DATABASE_URL', () => { + const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); + expect(existsSync(drizzlePath)).toBe(true); + const drizzleContent = readFileSync(drizzlePath, 'utf-8'); + expect(drizzleContent).toContain('DATABASE_URL'); + expect(drizzleContent).toContain('env.DATABASE_URL'); + }); + test('db/schema.ts should exist', () => { + const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); + expect(existsSync(schemaPath)).toBe(true); + }); + test('server.ts should have correct planetscale import', () => { + const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); + expect(existsSync(serverPath)).toBe(true); + + const serverContent = readFileSync(serverPath, 'utf-8'); + expect(serverContent).toContain('@planetscale/database'); + }); + test('cleanup after tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + expect(existsSync(projectPath)).toBe(false); + }); +}); \ No newline at end of file diff --git a/tests/modules/hosts/test-hosts.ts b/tests/modules/hosts/test-hosts.ts new file mode 100644 index 0000000..8f1ed0c --- /dev/null +++ b/tests/modules/hosts/test-hosts.ts @@ -0,0 +1,230 @@ +import { spawn } from 'bun'; +import { existsSync, readFileSync, rmSync } from 'fs'; +import { join } from 'path'; +const HOSTS = [ + { + name: 'neon', + dbEngine: 'postgresql', + package: '@neondatabase/serverless', + }, + { + name: 'planetscale', + dbEngine: 'mysql', + package: '@planetscale/database', + }, + { + name: 'turso', + dbEngine: 'sqlite', + package: '@libsql/client', + }, +]; +const TIMEOUT = 60_000; +async function testHost(host: { name: string; dbEngine: string; package: string; }) { + const projectName = `test-${host.name}`; + console.log(`Testing: ${host.name.toUpperCase()}`); + cleanup(projectName); + const command = [ + 'bun', + 'run', + 'src/index.ts', + projectName, + '--react', + '--db', + host.dbEngine, + '--orm', + 'drizzle', + '--db-host', + host.name, + '--auth', + 'none', + '--eslint+prettier', + '--tailwind', + '--directory', + 'default', + '--skip', + '--no-install', + '--no-git', + ]; + + console.log('\n Step 1 - Running CLI: '); + const proc = spawn({ + cmd: command, + cwd: process.cwd(), + stdout: 'pipe', + stderr: 'pipe', + }); + + let timedOut = false; + const timer = setTimeout(() => { + timedOut = true; + proc.kill(); + }, TIMEOUT); + + const exitCode = await proc.exited; + clearTimeout(timer); + + if (timedOut) { + console.log('Failed: Timed out'); + return false; + } + + if (exitCode !== 0) { + console.log('Failed: CLI returned error'); + const stderr = await new Response(proc.stderr).text(); + if (stderr) { + console.log('Error output: ', stderr.substring(0, 200)); + } + return false; + } + console.log('CLI completed successfully'); + + console.log('\n Step 2 - Checking project folder: '); + const projectPath = join(process.cwd(), projectName); + if (!existsSync(projectPath)) { + console.log('Failed: No project folder'); + return false; + } + console.log('Project folder exists'); + + console.log('\n Step 3 - Checking package.json: '); + const pkgPath = join(projectPath, 'package.json'); + if (!existsSync(pkgPath)) { + console.log('Failed: No package.json'); + return false; + } + + const pkgContent = readFileSync(pkgPath, 'utf-8'); + const pkg = JSON.parse(pkgContent); + const allDeps = { + ...pkg.dependencies, + ...pkg.devDependencies, + }; + + if (!allDeps[host.package]) { + console.log(`Failed: Missing ${host.package}`); + console.log('Available packages:', Object.keys(allDeps).filter(p => p.includes('data'))); + return false; + } + console.log(`Has ${host.package}`); + + console.log('\n Step 4 - Checking .env file (hosted databases should NOT have .env): '); + const envPath = join(projectPath, '.env'); + if (existsSync(envPath)) { + console.log(`Failed: .env file should NOT exist for hosted database (${host.name})`); + console.log('Hosted databases expect DATABASE_URL to be provided by the user'); + return false; + } + console.log('Correctly no .env file for hosted database'); + + console.log('\n Step 5 - Checking drizzle.config.ts: '); + const drizzlePath = join(projectPath, 'drizzle.config.ts'); + if (!existsSync(drizzlePath)) { + console.log('Failed: No drizzle.config.ts'); + return false; + } + + const drizzleContent = readFileSync(drizzlePath, 'utf-8'); + if (!drizzleContent.includes('DATABASE_URL')) { + console.log('Failed: drizzle.config.ts missing DATABASE_URL reference'); + return false; + } + + if (!drizzleContent.includes('env.DATABASE_URL')) { + console.log(' Warning: drizzle.config.ts should reference env.DATABASE_URL'); + } + console.log(' drizzle.config.ts exists and references DATABASE_URL'); + + console.log('\n Step 6 - Checking db/schema.ts: '); + const schemaPath = join(projectPath, 'db', 'schema.ts'); + if (!existsSync(schemaPath)) { + console.log(' Failed: No db/schema.ts'); + return false; + } + console.log(' db/schema.ts exists'); + + console.log('\n Step 7 - Checking server.ts: '); + const serverPath = join(projectPath, 'src', 'backend', 'server.ts'); + if (!existsSync(serverPath)) { + console.log(' Failed: No server.ts'); + return false; + } + + const serverContent = readFileSync(serverPath, 'utf-8'); + let hasCorrectImport = false; + + if (host.name === 'neon' && serverContent.includes('@neondatabase/serverless')) { + hasCorrectImport = true; + } else if (host.name === 'planetscale' && serverContent.includes('@planetscale/database')) { + hasCorrectImport = true; + } else if (host.name === 'turso' && serverContent.includes('@libsql/client')) { + hasCorrectImport = true; + } + + if (!hasCorrectImport) { + console.log(` Failed: server.ts missing ${host.package} import`); + return false; + } + console.log(' server.ts has correct database import'); + + console.log(`${host.name.toUpperCase()} - ALL CHECKS PASSED`); + + return true; +} + +function cleanup(projectName: string) { + const projectPath = join(process.cwd(), projectName); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } +} + +async function runAllTests() { + console.log('DATABASE HOST CONFIGURATION TEST SUITE'); + console.log(`\nTesting ${HOSTS.length} hosted database providers`); + console.log('\n Hosted databases (neon, planetscale, turso) do NOT'); + console.log('generate .env files. Users must provide DATABASE_URL in their'); + console.log('production environment. Tests verify configuration files are'); + console.log('set up to expect DATABASE_URL from the environment.\n'); + + const results = []; + + for (const host of HOSTS) { + const passed = await testHost(host); + results.push({ + name: host.name, + passed: passed, + }); + } + console.log('TEST SUMMARY'); + + let passCount = 0; + let failCount = 0; + + for (const result of results) { + if (result.passed) { + console.log(`${result.name.padEnd(15)} - PASSED`); + passCount++; + } else { + console.log(`${result.name.padEnd(15)} - FAILED`); + failCount++; + } + } + console.log(`Total: ${results.length} | Passed: ${passCount} | Failed: ${failCount}`); + + console.log('\n🧹 Cleaning up test artifacts...'); + for (const host of HOSTS) { + cleanup(`test-${host.name}`); + } + console.log('Cleanup complete\n'); + + if (failCount > 0) { + console.error('Some tests failed'); + process.exit(1); + } else { + console.log('All tests passed!'); + console.log('\n Database host configuration verification complete!\n'); + process.exit(0); + } +} + +runAllTests(); \ No newline at end of file diff --git a/tests/modules/hosts/turso-test.ts b/tests/modules/hosts/turso-test.ts new file mode 100644 index 0000000..597b529 --- /dev/null +++ b/tests/modules/hosts/turso-test.ts @@ -0,0 +1,89 @@ +import { describe, expect, test } from 'bun:test'; +import { spawn } from 'bun'; +import { existsSync, readFileSync, rmSync } from 'fs'; +import { join } from 'path'; + +const PROJECT_NAME = 'turso-test'; +describe('Turso Host Tests', () => { + test('cleanup before tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + }); + test('should create project with turso host', async () => { + const command = [ + 'bun', + 'run', + 'src/index.ts', + PROJECT_NAME, + '--react', + '--db', + 'sqlite', + '--orm', + 'drizzle', + '--db-host', + 'turso', + '--auth', + 'none', + '--eslint+prettier', + '--tailwind', + '--directory', + 'default', + '--skip', + '--no-install', + '--no-git', + ]; + const proc = spawn({ + cmd: command, + cwd: process.cwd(), + stdout: 'pipe', + stderr: 'pipe', + }); + const exitCode = await proc.exited; + expect(exitCode).toBe(0); + }); + test('project folder should exist', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + expect(existsSync(projectPath)).toBe(true); + }); + test('package.json should have @libsql/client', () => { + const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); + const pkgContent = readFileSync(pkgPath, 'utf-8'); + const pkg = JSON.parse(pkgContent); + const allDeps = { + ...pkg.dependencies, + ...pkg.devDependencies, + }; + expect(allDeps['@libsql/client']).toBeDefined(); + }); + test('.env should NOT exist for hosted database (turso)', () => { + const envPath = join(process.cwd(), PROJECT_NAME, '.env'); + expect(existsSync(envPath)).toBe(false); + }); + test('drizzle.config.ts should exist and reference DATABASE_URL', () => { + const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); + expect(existsSync(drizzlePath)).toBe(true); + const drizzleContent = readFileSync(drizzlePath, 'utf-8'); + expect(drizzleContent).toContain('DATABASE_URL'); + expect(drizzleContent).toContain('env.DATABASE_URL'); + }); + test('db/schema.ts should exist', () => { + const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); + expect(existsSync(schemaPath)).toBe(true); + }); + test('server.ts should have correct turso import', () => { + const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); + expect(existsSync(serverPath)).toBe(true); + + const serverContent = readFileSync(serverPath, 'utf-8'); + expect(serverContent).toContain('@libsql/client'); + }); + test('cleanup after tests', () => { + const projectPath = join(process.cwd(), PROJECT_NAME); + if (existsSync(projectPath)) { + rmSync(projectPath, { recursive: true, force: true }); + } + expect(existsSync(projectPath)).toBe(false); + }); +}); \ No newline at end of file From 0551be180157616f62ee07137d9a202d759ab71d Mon Sep 17 00:00:00 2001 From: jrs239 Date: Wed, 29 Oct 2025 01:45:47 -0400 Subject: [PATCH 18/39] cleaned eslint errors --- eslint.config.mjs | 9 +- src/commands/initializeGit.ts | 27 +- src/utils/checkGitInstalled.ts | 11 + test-scaffold/.gitignore | 52 ++ test-scaffold/.prettierignore | 4 + test-scaffold/.prettierrc.json | 9 + test-scaffold/README.md | 35 ++ test-scaffold/bun.lock | 497 ++++++++++++++++++ test-scaffold/db/schema.ts | 18 + test-scaffold/drizzle.config.ts | 15 + test-scaffold/eslint.config.mjs | 243 +++++++++ test-scaffold/package.json | 30 ++ test-scaffold/postcss.config.ts | 8 + .../src/backend/assets/ico/favicon.ico | Bin 0 -> 189506 bytes .../backend/assets/png/absolutejs-temp.png | Bin 0 -> 437067 bytes .../src/backend/assets/svg/react.svg | 1 + .../src/backend/handlers/userHandlers.ts | 49 ++ test-scaffold/src/backend/server.ts | 75 +++ test-scaffold/src/constants.ts | 2 + test-scaffold/src/frontend/components/App.tsx | 52 ++ .../src/frontend/components/Dropdown.tsx | 18 + .../src/frontend/components/Head.tsx | 34 ++ .../src/frontend/pages/ReactExample.tsx | 18 + test-scaffold/src/frontend/styles/colors.ts | 11 + .../src/frontend/styles/react-example.css | 147 ++++++ test-scaffold/src/frontend/styles/reset.css | 84 +++ test-scaffold/tailwind.config.ts | 7 + test-scaffold/tsconfig.json | 98 ++++ tests/harness/run-harness.ts | 274 +++++----- tests/modules/hosts/neon-test.ts | 24 +- tests/modules/hosts/planetscale-test.ts | 19 +- tests/modules/hosts/test-hosts.ts | 160 +++--- tests/modules/hosts/turso-test.ts | 19 +- tsconfig.json | 2 +- 34 files changed, 1816 insertions(+), 236 deletions(-) create mode 100644 src/utils/checkGitInstalled.ts create mode 100644 test-scaffold/.gitignore create mode 100644 test-scaffold/.prettierignore create mode 100644 test-scaffold/.prettierrc.json create mode 100644 test-scaffold/README.md create mode 100644 test-scaffold/bun.lock create mode 100644 test-scaffold/db/schema.ts create mode 100644 test-scaffold/drizzle.config.ts create mode 100644 test-scaffold/eslint.config.mjs create mode 100644 test-scaffold/package.json create mode 100644 test-scaffold/postcss.config.ts create mode 100644 test-scaffold/src/backend/assets/ico/favicon.ico create mode 100644 test-scaffold/src/backend/assets/png/absolutejs-temp.png create mode 100644 test-scaffold/src/backend/assets/svg/react.svg create mode 100644 test-scaffold/src/backend/handlers/userHandlers.ts create mode 100644 test-scaffold/src/backend/server.ts create mode 100644 test-scaffold/src/constants.ts create mode 100644 test-scaffold/src/frontend/components/App.tsx create mode 100644 test-scaffold/src/frontend/components/Dropdown.tsx create mode 100644 test-scaffold/src/frontend/components/Head.tsx create mode 100644 test-scaffold/src/frontend/pages/ReactExample.tsx create mode 100644 test-scaffold/src/frontend/styles/colors.ts create mode 100644 test-scaffold/src/frontend/styles/react-example.css create mode 100644 test-scaffold/src/frontend/styles/reset.css create mode 100644 test-scaffold/tailwind.config.ts create mode 100644 test-scaffold/tsconfig.json diff --git a/eslint.config.mjs b/eslint.config.mjs index d1479c3..bef8910 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -16,7 +16,14 @@ const __dirname = dirname(fileURLToPath(import.meta.url)); export default defineConfig([ { - ignores: ['dist/**', 'absolutejs-project/**', '**/*/htmx.*.min.js'] + ignores: [ + 'dist/**', + 'absolutejs-project/**', + '**/*/htmx.*.min.js', + 'test-scaffold/**/*.json', + 'test-scaffold/**/*.config.*', + 'test-scaffold/.prettierrc.*' + ] }, pluginJs.configs.recommended, diff --git a/src/commands/initializeGit.ts b/src/commands/initializeGit.ts index 08847b8..704c5c7 100644 --- a/src/commands/initializeGit.ts +++ b/src/commands/initializeGit.ts @@ -1,18 +1,33 @@ import { spinner } from '@clack/prompts'; import { $ } from 'bun'; import { green, red } from 'picocolors'; +import { abort } from '../utils/abort'; +import { checkGitInstalled } from '../utils/checkGitInstalled'; + +const initializeRepository = async (projectName: string, spin: ReturnType) => { + spin.stop(); + spin.start('Initializing git repository…'); + + await $`git init -b main`.cwd(projectName).quiet(); + await $`git add -A`.cwd(projectName).quiet(); + await $`git commit -m "Initial commit"`.cwd(projectName).quiet(); + + spin.stop(green('Git repo initialized')); +}; export const initializeGit = async (projectName: string) => { const spin = spinner(); try { - spin.start('Initializing git repository…'); - - await $`git init -b main`.cwd(projectName).quiet(); - await $`git add -A`.cwd(projectName).quiet(); - await $`git commit -m "Initial commit"`.cwd(projectName).quiet(); + spin.start('Checking git availability...'); + const isGitInstalled = await checkGitInstalled(); + + if (!isGitInstalled) { + spin.stop(red('Git is not installed. Please install git before proceeding.'), 1); + abort(); + } - spin.stop(green('Git repo initialized')); + await initializeRepository(projectName, spin); } catch (err) { spin.stop(red('Failed to initialize git'), 1); throw err; diff --git a/src/utils/checkGitInstalled.ts b/src/utils/checkGitInstalled.ts new file mode 100644 index 0000000..42b8bb1 --- /dev/null +++ b/src/utils/checkGitInstalled.ts @@ -0,0 +1,11 @@ +import { $ } from 'bun'; + +export const checkGitInstalled = async () => { + try { + await $`git --version`.quiet(); + + return true; + } catch { + return false; + } +}; \ No newline at end of file diff --git a/test-scaffold/.gitignore b/test-scaffold/.gitignore new file mode 100644 index 0000000..cad3335 --- /dev/null +++ b/test-scaffold/.gitignore @@ -0,0 +1,52 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# misc +.DS_Store +*.pem +/build/*.js +/example/build/ +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +**/*.env + +# vercel +.vercel + +**/*.trace +**/*.zip +**/*.tar.gz +**/*.tgz +**/*.log +package-lock.json +**/*.bun +**/*.lockb + +/db/migrations/meta +/db/migrations/*.sql + +#local build files +**/build/src/ +/build +/drizzle + +# index files +**/indexes/* + +# dist folder +/dist \ No newline at end of file diff --git a/test-scaffold/.prettierignore b/test-scaffold/.prettierignore new file mode 100644 index 0000000..d5ddef8 --- /dev/null +++ b/test-scaffold/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +build +*.min.js \ No newline at end of file diff --git a/test-scaffold/.prettierrc.json b/test-scaffold/.prettierrc.json new file mode 100644 index 0000000..1707240 --- /dev/null +++ b/test-scaffold/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "endOfLine": "auto", + "printWidth": 80, + "semi": true, + "singleQuote": true, + "tabWidth": 4, + "trailingComma": "none", + "useTabs": true +} diff --git a/test-scaffold/README.md b/test-scaffold/README.md new file mode 100644 index 0000000..9600897 --- /dev/null +++ b/test-scaffold/README.md @@ -0,0 +1,35 @@ +# `` + +> ⚡️ This project was scaffolded with the **AbsoluteJS CLI** — your one-stop tool for bootstrapping modern TypeScript & JavaScript applications. + +--- + +## Overview + +This boilerplate gives you a head-start with: + +- ✅ **TypeScript** or **JavaScript** support +- 🔍 **ESLint + Prettier** (or Biome, coming soon) +- 🎨 **Tailwind CSS** integration (optional) +- 📦 A sensible project layout (frontend & backend folders) +- 📄 Preconfigured `tsconfig.json`, `eslint.config.mjs`, and Prettier settings +- ⚙️ Git initialization ready to go + +--- + +## Getting Started + +```bash +# 1. Enter your project folder +cd + +# 2. Install dependencies +# (using your package manager of choice: npm, yarn, pnpm, or bun) +bun install + +# 3. Start the development server +bun run dev + +# 4. Build for production +bun run build +``` diff --git a/test-scaffold/bun.lock b/test-scaffold/bun.lock new file mode 100644 index 0000000..2c1ccf8 --- /dev/null +++ b/test-scaffold/bun.lock @@ -0,0 +1,497 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "test-scaffold", + "dependencies": { + "@absolutejs/absolute": "0.12.3", + "@absolutejs/auth": "0.20.3", + "@elysiajs/static": "1.4.0", + "@neondatabase/serverless": "1.0.0", + "drizzle-orm": "0.41.0", + "elysia": "1.4.9", + "react": "19.2.0", + }, + "devDependencies": { + "@tailwindcss/cli": "4.1.7", + "@types/react": "19.2.0", + "autoprefixer": "10.4.21", + "eslint": "9.27.0", + "postcss": "8.5.3", + "prettier": "3.5.3", + "tailwindcss": "4.1.7", + }, + }, + }, + "packages": { + "@absolutejs/absolute": ["@absolutejs/absolute@0.12.3", "", { "peerDependencies": { "elysia": "^1.3.0", "react": "^19.1.0", "react-dom": "^19.1.0", "svelte": "^5.35.2", "vue": "^3.5.17" } }, "sha512-7I/2yFvRZ+41vpvQ7cSbVrGNsLe1waMu3uKxc91NhWPz21Zk1j7MT0cfg+zcnYqsgh8rKL3mxNFvb0KwErCR6A=="], + + "@absolutejs/auth": ["@absolutejs/auth@0.20.3", "", { "dependencies": { "citra": "0.25.9" }, "peerDependencies": { "elysia": ">= 1.3.8" } }, "sha512-GgUw2rOz0AxBNKlKwFBQAVBf1Hm5FWLAQN0+Orz9xpRbqasQ18EikNFueY6LK4K6PrutHyhvl+mMepiGOaGC8A=="], + + "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], + + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + + "@elysiajs/static": ["@elysiajs/static@1.4.0", "", { "dependencies": { "node-cache": "^5.1.2" }, "peerDependencies": { "elysia": ">= 1.4.0" } }, "sha512-ejZIgmRRethfBrr1iKEca4iBqGjVGppveyVyM0LG7JUhnxns9NtFTC6UQoQLUkRzMRlF65veQg32jwMS01dwzA=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.20.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.2.3", "", {}, "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg=="], + + "@eslint/core": ["@eslint/core@0.14.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + + "@eslint/js": ["@eslint/js@9.27.0", "", {}, "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.5", "", { "dependencies": { "@eslint/core": "^0.15.2", "levn": "^0.4.1" } }, "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@neondatabase/serverless": ["@neondatabase/serverless@1.0.0", "", { "dependencies": { "@types/node": "^22.10.2", "@types/pg": "^8.8.0" } }, "sha512-XWmEeWpBXIoksZSDN74kftfTnXFEGZ3iX8jbANWBc+ag6dsiQuvuR4LgB0WdCOKMb5AQgjqgufc0TgAsZubUYw=="], + + "@parcel/watcher": ["@parcel/watcher@2.5.1", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-freebsd-x64": "2.5.1", "@parcel/watcher-linux-arm-glibc": "2.5.1", "@parcel/watcher-linux-arm-musl": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", "@parcel/watcher-linux-arm64-musl": "2.5.1", "@parcel/watcher-linux-x64-glibc": "2.5.1", "@parcel/watcher-linux-x64-musl": "2.5.1", "@parcel/watcher-win32-arm64": "2.5.1", "@parcel/watcher-win32-ia32": "2.5.1", "@parcel/watcher-win32-x64": "2.5.1" } }, "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg=="], + + "@parcel/watcher-android-arm64": ["@parcel/watcher-android-arm64@2.5.1", "", { "os": "android", "cpu": "arm64" }, "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA=="], + + "@parcel/watcher-darwin-arm64": ["@parcel/watcher-darwin-arm64@2.5.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw=="], + + "@parcel/watcher-darwin-x64": ["@parcel/watcher-darwin-x64@2.5.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg=="], + + "@parcel/watcher-freebsd-x64": ["@parcel/watcher-freebsd-x64@2.5.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ=="], + + "@parcel/watcher-linux-arm-glibc": ["@parcel/watcher-linux-arm-glibc@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA=="], + + "@parcel/watcher-linux-arm-musl": ["@parcel/watcher-linux-arm-musl@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q=="], + + "@parcel/watcher-linux-arm64-glibc": ["@parcel/watcher-linux-arm64-glibc@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w=="], + + "@parcel/watcher-linux-arm64-musl": ["@parcel/watcher-linux-arm64-musl@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg=="], + + "@parcel/watcher-linux-x64-glibc": ["@parcel/watcher-linux-x64-glibc@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A=="], + + "@parcel/watcher-linux-x64-musl": ["@parcel/watcher-linux-x64-musl@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg=="], + + "@parcel/watcher-win32-arm64": ["@parcel/watcher-win32-arm64@2.5.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw=="], + + "@parcel/watcher-win32-ia32": ["@parcel/watcher-win32-ia32@2.5.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ=="], + + "@parcel/watcher-win32-x64": ["@parcel/watcher-win32-x64@2.5.1", "", { "os": "win32", "cpu": "x64" }, "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA=="], + + "@sinclair/typebox": ["@sinclair/typebox@0.34.41", "", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], + + "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.6", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ=="], + + "@tailwindcss/cli": ["@tailwindcss/cli@4.1.7", "", { "dependencies": { "@parcel/watcher": "^2.5.1", "@tailwindcss/node": "4.1.7", "@tailwindcss/oxide": "4.1.7", "enhanced-resolve": "^5.18.1", "mri": "^1.2.0", "picocolors": "^1.1.1", "tailwindcss": "4.1.7" }, "bin": { "tailwindcss": "dist/index.mjs" } }, "sha512-hJNjpov/UiJc9ZWH4j/eEQxqklADrD/71s+t8Y0wbyQVAwtLkSp+MeC/sHTb03X+28rfbe0fRXkiBsf73/IwPg=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.1.7", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", "tailwindcss": "4.1.7" } }, "sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.7", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.4.3" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.7", "@tailwindcss/oxide-darwin-arm64": "4.1.7", "@tailwindcss/oxide-darwin-x64": "4.1.7", "@tailwindcss/oxide-freebsd-x64": "4.1.7", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.7", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.7", "@tailwindcss/oxide-linux-arm64-musl": "4.1.7", "@tailwindcss/oxide-linux-x64-gnu": "4.1.7", "@tailwindcss/oxide-linux-x64-musl": "4.1.7", "@tailwindcss/oxide-wasm32-wasi": "4.1.7", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.7", "@tailwindcss/oxide-win32-x64-msvc": "4.1.7" } }, "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.7", "", { "os": "android", "cpu": "arm64" }, "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7", "", { "os": "linux", "cpu": "arm" }, "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.7", "", { "os": "linux", "cpu": "x64" }, "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.7", "", { "os": "linux", "cpu": "x64" }, "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.7", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@emnapi/wasi-threads": "^1.0.2", "@napi-rs/wasm-runtime": "^0.2.9", "@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, "cpu": "none" }, "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.7", "", { "os": "win32", "cpu": "x64" }, "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/node": ["@types/node@22.18.13", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A=="], + + "@types/pg": ["@types/pg@8.15.6", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ=="], + + "@types/react": ["@types/react@19.2.0", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA=="], + + "@vue/compiler-core": ["@vue/compiler-core@3.5.22", "", { "dependencies": { "@babel/parser": "^7.28.4", "@vue/shared": "3.5.22", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ=="], + + "@vue/compiler-dom": ["@vue/compiler-dom@3.5.22", "", { "dependencies": { "@vue/compiler-core": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA=="], + + "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.22", "", { "dependencies": { "@babel/parser": "^7.28.4", "@vue/compiler-core": "3.5.22", "@vue/compiler-dom": "3.5.22", "@vue/compiler-ssr": "3.5.22", "@vue/shared": "3.5.22", "estree-walker": "^2.0.2", "magic-string": "^0.30.19", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ=="], + + "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.22", "", { "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww=="], + + "@vue/reactivity": ["@vue/reactivity@3.5.22", "", { "dependencies": { "@vue/shared": "3.5.22" } }, "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A=="], + + "@vue/runtime-core": ["@vue/runtime-core@3.5.22", "", { "dependencies": { "@vue/reactivity": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ=="], + + "@vue/runtime-dom": ["@vue/runtime-dom@3.5.22", "", { "dependencies": { "@vue/reactivity": "3.5.22", "@vue/runtime-core": "3.5.22", "@vue/shared": "3.5.22", "csstype": "^3.1.3" } }, "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww=="], + + "@vue/server-renderer": ["@vue/server-renderer@3.5.22", "", { "dependencies": { "@vue/compiler-ssr": "3.5.22", "@vue/shared": "3.5.22" }, "peerDependencies": { "vue": "3.5.22" } }, "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ=="], + + "@vue/shared": ["@vue/shared@3.5.22", "", {}, "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.20", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.27.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001751", "", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], + + "citra": ["citra@0.25.9", "", {}, "sha512-0JXw3wTB0B2PAaRl4TDyc/2ewlNu3Hznr5FeeySjHFLAwlMd37qM/nQKtqsb1hQhIAUk0NqNFqJ4jtNclSamKA=="], + + "clone": ["clone@2.1.2", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="], + + "drizzle-orm": ["drizzle-orm@0.41.0", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-7A4ZxhHk9gdlXmTdPj/lREtP+3u8KvZ4yEN6MYVxBzZGex5Wtdc+CWSbu7btgF6TB0N+MNPrvW7RKBbxJchs/Q=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.242", "", {}, "sha512-msZ7SYGFpXkm/iUizlMrm/FPNeYo8uSltQccLVFO3fV4RN2JWGdG7Aatztxtw3uDWp3DkupfkrosLjUnhY+iOw=="], + + "elysia": ["elysia@1.4.9", "", { "dependencies": { "cookie": "^1.0.2", "exact-mirror": "0.2.2", "fast-decode-uri-component": "^1.0.1" }, "peerDependencies": { "@sinclair/typebox": ">= 0.34.0 < 1", "file-type": ">= 20.0.0", "openapi-types": ">= 12.0.0", "typescript": ">= 5.0.0" }, "optionalPeers": ["file-type", "typescript"] }, "sha512-BWNhA8DoKQvlQTjAUkMAmNeso24U+ibZxY/8LN96qSDK/6eevaX59r3GISow699JPxSnFY3gLMUzJzCLYVtbvg=="], + + "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.27.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.27.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrap": ["esrap@2.1.1", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-ebTT9B6lOtZGMgJ3o5r12wBacHctG7oEWazIda8UlPfA3HD/Wrv8FdXoVo73vzdpwCxNyXjPauyN2bbJzMkB9A=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "exact-mirror": ["exact-mirror@0.2.2", "", { "peerDependencies": { "@sinclair/typebox": "^0.34.15" }, "optionalPeers": ["@sinclair/typebox"] }, "sha512-CrGe+4QzHZlnrXZVlo/WbUZ4qQZq8C0uATQVGVgXIrNXgHDBBNFD1VRfssRA2C9t3RYvh3MadZSdg2Wy7HBoQA=="], + + "fast-decode-uri-component": ["fast-decode-uri-component@1.0.1", "", {}, "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + + "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], + + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.1", "", { "os": "linux", "cpu": "arm" }, "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="], + + "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + + "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], + + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="], + + "node-cache": ["node-cache@5.1.2", "", { "dependencies": { "clone": "2.x" } }, "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg=="], + + "node-releases": ["node-releases@2.0.26", "", {}, "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA=="], + + "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + + "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="], + + "pg-protocol": ["pg-protocol@1.10.3", "", {}, "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ=="], + + "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], + + "postgres-bytea": ["postgres-bytea@1.0.0", "", {}, "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="], + + "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="], + + "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.5.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "react": ["react@19.2.0", "", {}, "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ=="], + + "react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "svelte": ["svelte@5.43.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-1sRxVbgJAB+UGzwkc3GUoiBSzEOf0jqzccMaVoI2+pI+kASUe9qubslxace8+Mzhqw19k4syTA5niCIJwfXpOA=="], + + "tailwindcss": ["tailwindcss@4.1.7", "", {}, "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg=="], + + "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], + + "tar": ["tar@7.5.1", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "vue": ["vue@3.5.22", "", { "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/compiler-sfc": "3.5.22", "@vue/runtime-dom": "3.5.22", "@vue/server-renderer": "3.5.22", "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + + "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.15.2", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg=="], + + "@tailwindcss/oxide/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" }, "bundled": true }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@vue/compiler-sfc/postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + + "lightningcss/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + } +} diff --git a/test-scaffold/db/schema.ts b/test-scaffold/db/schema.ts new file mode 100644 index 0000000..10dd975 --- /dev/null +++ b/test-scaffold/db/schema.ts @@ -0,0 +1,18 @@ +import { NeonHttpDatabase } from 'drizzle-orm/neon-http'; +import { pgTable, varchar, timestamp, jsonb } from 'drizzle-orm/pg-core'; + +export const users = pgTable('users', { + auth_sub: varchar({ length: 255 }).primaryKey(), + created_at: timestamp().notNull().defaultNow(), + metadata: jsonb().$type>().default({}) +}); + +export const schema = { + users +}; + +export type SchemaType = typeof schema; +export type DatabaseType = NeonHttpDatabase; + +export type User = typeof users.$inferSelect; +export type NewUser = typeof users.$inferInsert; diff --git a/test-scaffold/drizzle.config.ts b/test-scaffold/drizzle.config.ts new file mode 100644 index 0000000..8603d56 --- /dev/null +++ b/test-scaffold/drizzle.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'drizzle-kit'; +import { env } from 'process'; + +if (!env.DATABASE_URL) { + throw new Error('DATABASE_URL must be set in the environment variables'); +} + +export default defineConfig({ + dbCredentials: { + url: env.DATABASE_URL + }, + dialect: 'postgresql', + out: 'db/migrations', + schema: 'db/schema.ts' +}); diff --git a/test-scaffold/eslint.config.mjs b/test-scaffold/eslint.config.mjs new file mode 100644 index 0000000..bba2ef1 --- /dev/null +++ b/test-scaffold/eslint.config.mjs @@ -0,0 +1,243 @@ +// eslint.config.mjs +import { dirname } from 'path'; +import { fileURLToPath } from 'url'; +import pluginJs from '@eslint/js'; +import stylisticTs from '@stylistic/eslint-plugin-ts'; +import tsParser from '@typescript-eslint/parser'; +import { defineConfig } from 'eslint/config'; +import absolutePlugin from 'eslint-plugin-absolute'; +import importPlugin from 'eslint-plugin-import'; +import jsxA11yPlugin from 'eslint-plugin-jsx-a11y'; +import promisePlugin from 'eslint-plugin-promise'; +import reactPlugin from 'eslint-plugin-react'; +import reactCompilerPlugin from 'eslint-plugin-react-compiler'; +import reactHooksPlugin from 'eslint-plugin-react-hooks'; +import securityPlugin from 'eslint-plugin-security'; +import globals from 'globals'; +import tseslint from 'typescript-eslint'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +export default defineConfig([ + pluginJs.configs.recommended, + + ...tseslint.configs.recommended, + + { + files: ['**/*.{ts,tsx}'], + languageOptions: { + globals: globals.browser, + parser: tsParser, + parserOptions: { + createDefaultProgram: true, + project: './tsconfig.json', + tsconfigRootDir: __dirname + } + } + }, + + { + files: ['**/*.{ts,tsx}'], + plugins: { '@stylistic/ts': stylisticTs }, + rules: { + '@stylistic/ts/padding-line-between-statements': [ + 'error', + { blankLine: 'always', next: 'return', prev: '*' } + ] + } + }, + + { + files: ['**/*.{js,mjs,cjs,ts,tsx,jsx}'], + ignores: ['example/build/**'], + plugins: { + absolute: absolutePlugin, + import: importPlugin, + promise: promisePlugin, + security: securityPlugin + }, + rules: { + 'absolute/explicit-object-types': 'error', + 'absolute/localize-react-props': 'error', + 'absolute/max-depth-extended': ['error', 1], + 'absolute/max-jsxnesting': ['error', 5], + 'absolute/min-var-length': [ + 'error', + { allowedVars: ['_', 'id', 'db', 'OK'], minLength: 3 } + ], + 'absolute/no-button-navigation': 'error', + 'absolute/no-explicit-return-type': 'error', + 'absolute/no-inline-prop-types': 'error', + 'absolute/no-multi-style-objects': 'error', + 'absolute/no-nested-jsx-return': 'error', + 'absolute/no-or-none-component': 'error', + 'absolute/no-transition-cssproperties': 'error', + 'absolute/no-type-cast': 'error', + 'absolute/no-unnecessary-div': 'error', + 'absolute/no-unnecessary-key': 'error', + 'absolute/no-useless-function': 'error', + 'absolute/seperate-style-files': 'error', + 'absolute/sort-exports': [ + 'error', + { + caseSensitive: true, + natural: true, + order: 'asc', + variablesBeforeFunctions: true + } + ], + 'absolute/sort-keys-fixable': [ + 'error', + { + caseSensitive: true, + natural: true, + order: 'asc', + variablesBeforeFunctions: true + } + ], + 'arrow-body-style': ['error', 'as-needed'], + 'consistent-return': 'error', + eqeqeq: 'error', + 'func-style': [ + 'error', + 'expression', + { allowArrowFunctions: true } + ], + 'import/no-cycle': 'error', + 'import/no-default-export': 'error', + 'import/no-relative-packages': 'error', + 'import/no-unused-modules': ['error', { missingExports: true }], + 'import/order': ['error', { alphabetize: { order: 'asc' } }], + 'no-await-in-loop': 'error', + 'no-console': ['error', { allow: ['warn', 'error'] }], + 'no-debugger': 'error', + 'no-duplicate-case': 'error', + 'no-duplicate-imports': 'error', + 'no-else-return': 'error', + 'no-empty-function': 'error', + 'no-empty-pattern': 'error', + 'no-empty-static-block': 'error', + 'no-fallthrough': 'error', + 'no-floating-decimal': 'error', + 'no-global-assign': 'error', + 'no-implicit-coercion': 'error', + 'no-implicit-globals': 'error', + 'no-loop-func': 'error', + 'no-magic-numbers': [ + 'warn', + { detectObjects: false, enforceConst: true, ignore: [0, 1] } + ], + 'no-misleading-character-class': 'error', + 'no-nested-ternary': 'error', + 'no-new-native-nonconstructor': 'error', + 'no-new-wrappers': 'error', + 'no-param-reassign': 'error', + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + importNames: ['default'], + message: + 'Import only named React exports for tree-shaking.', + name: 'react' + }, + { + importNames: ['default'], + message: 'Import only the required Bun exports.', + name: 'bun' + } + ] + } + ], + 'no-return-await': 'error', + 'no-shadow': 'error', + 'no-undef': 'error', + 'no-unneeded-ternary': 'error', + 'no-unreachable': 'error', + 'no-useless-assignment': 'error', + 'no-useless-concat': 'error', + 'no-useless-return': 'error', + 'no-var': 'error', + 'prefer-arrow-callback': 'error', + 'prefer-const': 'error', + 'prefer-destructuring': [ + 'error', + { array: true, object: true }, + { enforceForRenamedProperties: false } + ], + 'prefer-template': 'error', + 'promise/always-return': 'warn', + 'promise/avoid-new': 'warn', + 'promise/catch-or-return': 'error', + 'promise/no-callback-in-promise': 'warn', + 'promise/no-nesting': 'warn', + 'promise/no-promise-in-callback': 'warn', + 'promise/no-return-wrap': 'error', + 'promise/param-names': 'error' + } + }, + { + files: ['example/**/*.{js,jsx,ts,tsx}'], + plugins: { + 'jsx-a11y': jsxA11yPlugin, + react: reactPlugin, + 'react-compiler': reactCompilerPlugin, + 'react-hooks': reactHooksPlugin + }, + rules: { + 'jsx-a11y/prefer-tag-over-role': 'error', + 'react-compiler/react-compiler': 'error', + 'react-hooks/exhaustive-deps': 'warn', + 'react-hooks/rules-of-hooks': 'error', + 'react/checked-requires-onchange-or-readonly': 'error', + 'react/destructuring-assignment': ['error', 'always'], + 'react/jsx-filename-extension': ['error', { extensions: ['.tsx'] }], + 'react/jsx-no-leaked-render': 'error', + 'react/jsx-no-target-blank': 'error', + 'react/jsx-no-useless-fragment': 'error', + 'react/jsx-pascal-case': ['error', { allowAllCaps: true }], + 'react/no-multi-comp': 'error', + 'react/no-unknown-property': 'off', + 'react/react-in-jsx-scope': 'off', + 'react/self-closing-comp': 'error' + }, + settings: { + react: { version: 'detect' } + } + }, + { + files: [ + 'example/server.ts', + 'example/indexes/*.tsx', + 'example/db/migrate.ts' + ], + rules: { + 'import/no-unused-modules': 'off' + } + }, + { + files: ['example/db/migrate.ts', 'example/utils/absoluteAuthConfig.ts'], + rules: { + 'no-console': 'off' + } + }, + { + files: ['eslint.config.mjs'], + rules: { + 'no-magic-numbers': 'off' + } + }, + { + files: ['eslint.config.mjs'], + rules: { + 'import/no-default-export': 'off' + } + }, + { + files: ['example/db/schema.ts'], + rules: { + 'absolute/explicit-object-types': 'off' + } + } +]); diff --git a/test-scaffold/package.json b/test-scaffold/package.json new file mode 100644 index 0000000..fb04f81 --- /dev/null +++ b/test-scaffold/package.json @@ -0,0 +1,30 @@ +{ + "dependencies": { + "@absolutejs/absolute": "0.12.3", + "@elysiajs/static": "1.4.0", + "elysia": "1.4.9", + "@absolutejs/auth": "0.20.3", + "react": "19.2.0", + "drizzle-orm": "0.41.0", + "@neondatabase/serverless": "1.0.0" + }, + "devDependencies": { + "eslint": "9.27.0", + "prettier": "3.5.3", + "autoprefixer": "10.4.21", + "postcss": "8.5.3", + "tailwindcss": "4.1.7", + "@tailwindcss/cli": "4.1.7", + "@types/react": "19.2.0" + }, + "name": "test-scaffold", + "scripts": { + "dev": "bash -c 'trap \"exit 0\" INT; bun run --watch src/backend/server.ts'", + "format": "prettier --write \"./**/*.{js,ts,css,json,mjs,md,jsx,tsx}\"", + "lint": "eslint ./src", + "test": "echo \"Error: no test specified\" && exit 1", + "typecheck": "bun run tsc --noEmit" + }, + "type": "module", + "version": "0.0.0" +} diff --git a/test-scaffold/postcss.config.ts b/test-scaffold/postcss.config.ts new file mode 100644 index 0000000..e7102a8 --- /dev/null +++ b/test-scaffold/postcss.config.ts @@ -0,0 +1,8 @@ +import autoprefixer from 'autoprefixer'; +import tailwindcss from 'tailwindcss'; + +const config = { + plugins: [tailwindcss, autoprefixer] +}; + +export default config; diff --git a/test-scaffold/src/backend/assets/ico/favicon.ico b/test-scaffold/src/backend/assets/ico/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..75f35ebb0b5501d5440fdd2bf36daa4c638cd5c6 GIT binary patch literal 189506 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�vs?W2B<9Bd`1518r||ZtP#eIy8rnd0C+z1` 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 literal 0 HcmV?d00001 diff --git a/test-scaffold/src/backend/assets/png/absolutejs-temp.png b/test-scaffold/src/backend/assets/png/absolutejs-temp.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8117282aec0c16742f38b7eebc680b73b1806d GIT binary patch literal 437067 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 z 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 z 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.}%)`-p21*ovHAI$Ni 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

@2)_j0^ zc-q4%-jo-}tjuZ~&Y|viy-dEY+h|lKQ_IcaR~m~78r=VdyD}5`eK_bQ9B!+%); z**7ks-=#k}`AFXZtOkztJg)tUygJ=_Reyt97(vcV3)aZBU20#%zecr5L`Ov#SX9R} zTDagnvA9tq<&A$(-^VY)9LFs*-O9}x9mr5u4bt!Y^{Z2R0Dz2O;KHGOL{z!={OD-iY3Fmnm7j$#6%rVox?py=uE!rf zL64|Wd)j-01=niSmpehqXYlsSpJUDV^5p8aNj-vFf|@Q(kW{p-yPINlRuTCOT$4Dx z#1=qlu;_NbT_WDZxTeZmk@Q|KV<3Pto)OcMV2(*S5B==7kDrop5tCEw`tOOMb=~)@ z1ByCa)-y8q>t4@pJ1PGed|a~X_hYeTzOo7@F1nJh^uBg_Z57?q($sludH+%dc`BXu z05#uUJ1HCQd}|S0+$gb4!iYh7aFUM}f9e=iqq5zw!I^Ox`8;PbW0F!T8J8Ko%m0Yv zo1_8@i*P7q$clB%#fG$zVQOz6!Q{a9YH=iiN82iYhE&`6tt7UKJOr-uRP@JC1peFY z^y4U_v)CPRjqx8;vFf-o*%o@n{k`=q+l(`B>O-gF{3 zQF1{KJY;KdU1E}Jbr+$WT~@-n^7X0x{O_E$zd!~h4tC{S?VOaAL!QGUY1pdl9Hqsa z3|t6_x!~NDf;Q#*i`~V;ZrwDuV7)PQuLB`_oaN%)y5!cj_2WM~DZ?<4I@GxJ zZCP813u0wq?=-`hO1b!(<{q{w%~kPW$Ng|bbn$h#emfl>m5~igy_K8gqpvnyOcc%9670d@ z%u^e@Da<72pMpF|r}zooW>xm6q;vKU)O?!qNgd$N8AmgZPl?^1c?g5q0;he3vEGCz z@>7?vL=cCG-p|)IGBWxC>7~pH+Sy*NygIl!cHO_tqkiaO^=&vis6P%vrQQ>q;KQik z%c7~4okENkW-$;^Z``ZLIi%dl8)>D(7MiQ?RaV*5oKtAhGbj7Pv|_%#ER|Q$mEDW5 zi~LmcL(-C}NJH@5K6O4kCj>mH0Ed*BfaH~S&)YH6f=7}W7Miq+vU2)$GdjY zek*&oOkp)>upon{*5l{sVLw81+XHzYotw&^KdG+5D*^|C_)h6r1RKpWsNePpI;pUN zvWfeEX3QjdK-TpL z5j3nvI5mJ%_~@;=s&<5SLrwFe^0MzQccx2bj(Qn`10ZFV=LtcF`8*P$L2JbTXEiJzonIQ{0y+&TlIlfz`fmY5~ zQvD%!r3DW6`umK&R@^KyHE$RY2wVg&9vA)eby|?_)hiaSg!~K*x}ID;@=oB}K#=i& zfm_oOzsKQ<=-kY~dWtP*1ZDxeg|k&4OlB%WjZNFHErVV@dwe-9cf}OE#~>H5d;&pF z{QWW#;x)5z=D`VK0NP5m7 zn|6-X3xf*;dO6NII@{SVw|46T$;t~oSoR=lB}-t)RN{H zr^(wt2XH;4)8!^RSfD5#%1S8Cmhf_|Ydu=bhGLe7pP?EUkiLJbOK4ZM3}@Tf8@ZtC zcQYMYj5B_Y=S6iJBS3xh}Y>`Y`=YU*qf82zBII6>Azi}9j0I|%s-Vu`w9K>qW;_q&2muIe#^ zpQ{cJ)}=98n2vMvt8J3tf5G5yJjfSO5ES

+ ); +}; diff --git a/test-scaffold/src/frontend/components/Dropdown.tsx b/test-scaffold/src/frontend/components/Dropdown.tsx new file mode 100644 index 0000000..fb4a4ce --- /dev/null +++ b/test-scaffold/src/frontend/components/Dropdown.tsx @@ -0,0 +1,18 @@ +import { useState } from 'react'; + +export const Dropdown = () => { + const [isOpen, setIsOpen] = useState(false); + + return ( +
setIsOpen(true)} + onPointerLeave={() => setIsOpen(false)} + open={isOpen} + > + Pages + +
+ ); +}; diff --git a/test-scaffold/src/frontend/components/Head.tsx b/test-scaffold/src/frontend/components/Head.tsx new file mode 100644 index 0000000..a705a8a --- /dev/null +++ b/test-scaffold/src/frontend/components/Head.tsx @@ -0,0 +1,34 @@ +type HeadProps = { + title?: string; + description?: string; + icon?: string; + font?: string; + cssPath?: string; +}; + +export const Head = ({ + title = 'AbsoluteJS + React', + description = 'AbsoluteJS React Example', + icon = '/assets/ico/favicon.ico', + font = 'Poppins', + cssPath +}: HeadProps) => ( + + + {title} + + + + + + + {cssPath && } + +); diff --git a/test-scaffold/src/frontend/pages/ReactExample.tsx b/test-scaffold/src/frontend/pages/ReactExample.tsx new file mode 100644 index 0000000..111b78d --- /dev/null +++ b/test-scaffold/src/frontend/pages/ReactExample.tsx @@ -0,0 +1,18 @@ +import { App } from '../components/App'; +import { Dropdown } from '../components/Dropdown'; +import { Head } from '../components/Head'; + +type ReactExampleProps = { initialCount: number; cssPath: string }; + +export const ReactExample = ({ initialCount, cssPath }: ReactExampleProps) => ( + + + +
+ AbsoluteJS + +
+ + + +); diff --git a/test-scaffold/src/frontend/styles/colors.ts b/test-scaffold/src/frontend/styles/colors.ts new file mode 100644 index 0000000..7806c19 --- /dev/null +++ b/test-scaffold/src/frontend/styles/colors.ts @@ -0,0 +1,11 @@ +export const primaryColor = '#5FBEEB'; +export const secondaryColor = '#35d5a2'; +export const tertiaryColor = '#ff4b91'; + +export const lightPrimaryColor = '#ffffff'; +export const lightSecondaryColor = '#f5f5f5'; +export const lightTertiaryColor = '#e0e0e0'; + +export const darkPrimaryColor = '#1a1a1a'; +export const darkSecondaryColor = '#2c2c2c'; +export const darkTertiaryColor = '#3c3c3c'; diff --git a/test-scaffold/src/frontend/styles/react-example.css b/test-scaffold/src/frontend/styles/react-example.css new file mode 100644 index 0000000..a33dc67 --- /dev/null +++ b/test-scaffold/src/frontend/styles/react-example.css @@ -0,0 +1,147 @@ +@import url('../styles/reset.css'); + +header { + align-items: center; + background-color: #1a1a1a; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + display: flex; + justify-content: space-between; + padding: 2rem; + text-align: center; +} + +header a { + position: relative; + color: #5fbeeb; + text-decoration: none; +} + +header a::after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background: linear-gradient(90deg, #5fbeeb 0%, #35d5a2 50%, #ff4b91 100%); + transform: scaleX(0); + transform-origin: left; + transition: transform 0.25s ease-in-out; +} + +header a:hover::after { + transform: scaleX(1); +} + +h1 { + font-size: 2.5rem; + margin-top: 2rem; +} + +.logo { + height: 8rem; + width: 8rem; + will-change: filter; + transition: filter 300ms; +} + +.logo:hover { + filter: drop-shadow(0 0 2rem #5fbeeb); +} + +.logo.react:hover { + filter: drop-shadow(0 0 2rem #61dafbaa); +} + +nav { + display: flex; + gap: 4rem; + justify-content: center; +} + +header details { + position: relative; +} + +header details summary { + list-style: none; + appearance: none; + -webkit-appearance: none; + cursor: pointer; + user-select: none; + color: #5fbeeb; + font-size: 1.5rem; + font-weight: 500; + padding: 0.5rem 1rem; +} + +header summary::after { + content: '▼'; + display: inline-block; + margin-left: 0.5rem; + font-size: 0.75rem; + transition: transform 0.3s ease; +} + +header details[open] summary::after { + transform: rotate(180deg); +} + +header details nav { + position: absolute; + top: 100%; + right: -0.5rem; + display: flex; + flex-direction: column; + gap: 0.75rem; + background: rgba(185, 185, 185, 0.1); + backdrop-filter: blur(4px); + border: 1px solid #5fbeeb; + border-radius: 1rem; + padding: 1rem 1.5rem; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); + opacity: 0; + transform: translateY(-8px); + pointer-events: none; + transition: + opacity 0.3s ease, + transform 0.3s ease; + z-index: 1000; +} + +header details[open] nav { + opacity: 1; + transform: translateY(0); + pointer-events: auto; +} + +header details nav a { + font-size: 1.1rem; + padding: 0.25rem 0; + white-space: nowrap; +} + +@media (prefers-color-scheme: light) { + header { + background-color: #ffffff; + } + + button { + background-color: #ffffff; + } +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} diff --git a/test-scaffold/src/frontend/styles/reset.css b/test-scaffold/src/frontend/styles/reset.css new file mode 100644 index 0000000..60be479 --- /dev/null +++ b/test-scaffold/src/frontend/styles/reset.css @@ -0,0 +1,84 @@ +* { + box-sizing: border-box; + line-height: 1.5; + margin: 0; + padding: 0; +} + +html { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + height: 100%; +} + +body { + background-color: #2c2c2c; + color: #f5f5f5; + color-scheme: light dark; + display: flex; + flex-direction: column; + font-synthesis: none; + font-weight: 400; + height: 100%; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +main { + align-items: center; + display: flex; + flex: 1; + flex-direction: column; + justify-content: center; + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.1; +} + +p { + font-size: 1.2rem; + max-width: 1280px; +} + +a { + color: #5fbeeb; + font-size: 1.5rem; + font-weight: 500; + position: relative; + text-decoration: none; +} + +button { + background-color: #1a1a1a; + border: 1px solid transparent; + border-radius: 0.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + cursor: pointer; + font-family: inherit; + font-size: 1.1rem; + font-weight: 500; + margin: 2rem 0; + padding: 0.6rem 1.2rem; + transition: border-color 0.25s; +} +button:hover { + border-color: #5fbeeb; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + body { + background-color: #f5f5f5; + color: #1a1a1a; + } +} diff --git a/test-scaffold/tailwind.config.ts b/test-scaffold/tailwind.config.ts new file mode 100644 index 0000000..a4cdf4f --- /dev/null +++ b/test-scaffold/tailwind.config.ts @@ -0,0 +1,7 @@ +import type { Config } from 'tailwindcss'; + +const config: Config = { + content: ['./src/frontend/**/*.{js,ts,jsx,tsx,mdx}'] +}; + +export default config; diff --git a/test-scaffold/tsconfig.json b/test-scaffold/tsconfig.json new file mode 100644 index 0000000..da8ee02 --- /dev/null +++ b/test-scaffold/tsconfig.json @@ -0,0 +1,98 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ "forceConsistentCasingInFileNames": true, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + /* Ensure that casing is correct in imports. */ "jsx": "react-jsx", // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + /* Specify what JSX code is generated. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + /* Modules */ + "module": "ESNext", // "rootDir": "./", /* Specify the root folder within your source files. */ + /* Specify what module code is generated. */ "moduleResolution": "bundler", // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + /* Specify how TypeScript looks up a file from a given module specifier. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + "noUncheckedIndexedAccess": true, // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + /* Add 'undefined' to a type when accessed using an index. */ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Type Checking */, + /* Skip type checking all .d.ts files. */ "strict": true /* Visit https://aka.ms/tsconfig to read more about this file */, + /* Enable all strict type-checking options. */ /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + /* Language and Environment */ + "target": "ESNext" + /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ /* Skip type checking all .d.ts files. */ + } +} diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts index ec4be15..879ce36 100644 --- a/tests/harness/run-harness.ts +++ b/tests/harness/run-harness.ts @@ -1,79 +1,70 @@ -import { spawn } from 'bun'; +/* eslint-disable import/no-unused-modules */ import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; +import { spawn } from 'bun'; -const COMBO = { - frontend: 'react', - backend: 'elysia', - database: 'postgresql', - orm: 'drizzle', - auth: 'absoluteAuth', - host: 'neon', - codeQuality: 'eslint+prettier', - tailwind: true, - git: true, +// Allow process usage in test environment +declare const process: { + cwd(): string; + env: Record; + exit(code: number): never; }; -const FLAGS = [ - '--react', - '--db', 'postgresql', - '--orm', 'drizzle', - '--auth', 'absoluteAuth', - '--db-host', 'neon', - '--eslint+prettier', - '--tailwind', - '--directory', 'default', - '--git', - '--skip', - '--install', -]; + +const SCAFFOLD_NAME = 'test-scaffold'; +const PROJECT_PATH = join(process.cwd(), SCAFFOLD_NAME); + +// Test configuration removed - using direct flags instead +// Test configuration const PROJECT_NAME = 'test-scaffold'; const REPO_ROOT = process.cwd(); const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); +// Time constants in milliseconds +const SECONDS_PER_MINUTE = 60; +const MS_PER_SECOND = 1000; +const MINUTE_MS = SECONDS_PER_MINUTE * MS_PER_SECOND; +const TIMEOUT_MINUTES = 3; +const INSTALL_TIMEOUT_MS = TIMEOUT_MINUTES * MINUTE_MS; +const SCAFFOLD_TIMEOUT_MS = TIMEOUT_MINUTES * MINUTE_MS; + +interface Timeouts { + install: number; + scaffold: number; +} + +interface Expected { + deps: string[]; + dirs: string[]; + files: string[]; +} + +const FLAGS = ['--react', '--db', 'postgresql', '--orm', 'drizzle', '--auth', 'absoluteAuth', + '--db-host', 'neon', '--eslint+prettier', '--tailwind', '--directory', 'default', '--git', + '--skip', '--install']; + const TIMEOUTS = { - scaffold: 180_000, - install: 180_000, -}; + install: INSTALL_TIMEOUT_MS, + scaffold: SCAFFOLD_TIMEOUT_MS, +} satisfies Timeouts; + const EXPECTED = { + deps: ['drizzle-orm', 'react', 'elysia', '@absolutejs/absolute', '@absolutejs/auth'], dirs: ['src', 'src/frontend', 'src/backend', 'db'], - files: [ - 'package.json', - 'tsconfig.json', - 'src/backend/server.ts', - 'db/schema.ts', - ], - deps: [ - 'drizzle-orm', - 'react', - 'elysia', - '@absolutejs/absolute', - '@absolutejs/auth', - ], -}; -type ExecResult = { - ok: boolean; - code: number; - stdout: string; - stderr: string; -}; -type CheckResult = { - ok: boolean; - msg: string; -}; + files: ['package.json', 'tsconfig.json', 'src/backend/server.ts', 'db/schema.ts'], +} satisfies Expected; +interface CheckResult { msg: string; ok: boolean; } + const phase = (name: string) => console.log(`${name}`); const info = (msg: string) => console.log(`${msg}`); const error = (msg: string) => console.error(`${msg}`); const success = (msg: string) => console.log(`${msg}`); -async function exec(cmd: string, args: string[], cwd: string, timeoutMs?: number): Promise { +const exec = async (cmd: string, args: string[], cwd: string, timeoutMs?: number) => { const fullCmd = `${cmd} ${args.join(' ')}`; console.log(`${fullCmd}`); const proc = spawn({ - cmd: [cmd, ...args], - cwd, - stdout: 'pipe', - stderr: 'pipe', + cmd: [cmd, ...args], cwd, stderr: 'pipe', stdout: 'pipe', }); let timedOut = false; @@ -90,84 +81,76 @@ async function exec(cmd: string, args: string[], cwd: string, timeoutMs?: number if (timedOut) { return { - ok: false, - code: 124, - stdout, - stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, + code: 124, ok: false, stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, stdout, }; } - return { ok: code === 0, code, stdout, stderr }; + return { code, ok: code === 0, stderr, stdout }; } -function runCLI(cliPath: string, flags: string[], projectName: string, timeout: number): Promise { - return exec('bun', ['run', cliPath, projectName, ...flags], process.cwd(), timeout); -} +const runCLI = (cliPath: string, flags: string[], projectName: string, timeout: number) => + exec('bun', ['run', cliPath, projectName, ...flags], process.cwd(), timeout); -function dirExists(path: string, name: string): CheckResult { - const exists = existsSync(path); - return { - ok: exists, - msg: exists ? `${name}` : `Missing dir: ${name}`, - }; -} +const checkExists = (path: string, name: string, type: 'file' | 'dir') => { + const pathExists = existsSync(path); -function fileExists(path: string, name: string): CheckResult { - const exists = existsSync(path); return { - ok: exists, - msg: exists ? `${name}` : `Missing file: ${name}`, - }; -} -function hasDeps(pkgPath: string, deps: string[]): CheckResult { + msg: pathExists ? `${name}` : `Missing ${type}: ${name}`, + ok: pathExists, + } as const; +}; + +const dirExists = (path: string, name: string) => checkExists(path, name, 'dir'); +const fileExists = (path: string, name: string) => checkExists(path, name, 'file'); + +const hasDeps = (pkgPath: string, deps: string[]) => { if (!existsSync(pkgPath)) { - return { ok: false, msg: 'package.json not found' }; + return { msg: 'package.json not found', ok: false } as const; } try { const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; - const missing = deps.filter(d => !allDeps[d]); + const missing = deps.filter(dep => !allDeps[dep]); - if (missing.length === 0) { - return { ok: true, msg: `All ${deps.length} deps present` }; - } - return { ok: false, msg: `Missing deps: ${missing.join(', ')}` }; - } catch (e) { - return { ok: false, msg: `Failed to parse package.json: ${e}` }; + return missing.length === 0 + ? { msg: `All ${deps.length} deps present`, ok: true } as const + : { msg: `Missing deps: ${missing.join(', ')}`, ok: false } as const; + } catch (err) { + return { msg: `Failed to parse package.json: ${err}`, ok: false } as const; } } let failed = false; const results: { phase: string; checks: CheckResult[] }[] = []; -function runChecks(phaseName: string, checks: CheckResult[]) { - results.push({ phase: phaseName, checks }); +const runChecks = (phaseName: string, checks: CheckResult[]) => { + results.push({ checks, phase: phaseName }); - for (const check of checks) { + checks.forEach(check => { if (check.ok) { success(check.msg); - } else { - error(check.msg); - failed = true; + + return; } - } - - if (checks.some(c => !c.ok)) { + + error(check.msg); + failed = true; + }); + + if (checks.every(check => !check.ok)) { throw new Error(`${phaseName} failed`); } } -async function cleanup() { - phase('CLEANUP'); - if (existsSync(OUTPUT_PATH)) { - info(`Removing old project: ${PROJECT_NAME}`); - rmSync(OUTPUT_PATH, { recursive: true, force: true }); +const cleanup = () => { + console.log('Cleaning up previous test runs...'); + if (existsSync(PROJECT_PATH)) { + rmSync(PROJECT_PATH, { recursive: true }); } - info(`Testing combo: ${COMBO.frontend} + ${COMBO.orm} + ${COMBO.database}`); -} +}; -async function scaffold() { +const scaffold = async () => { phase('SCAFFOLD'); const result = await runCLI(CLI_PATH, FLAGS, PROJECT_NAME, TIMEOUTS.scaffold); @@ -178,71 +161,90 @@ async function scaffold() { } success(`Project created: ${PROJECT_NAME}`); -} +}; -async function validate() { +const validate = async (): Promise => { phase('VALIDATE'); - const checks = [ - ...EXPECTED.dirs.map(d => dirExists(join(OUTPUT_PATH, d), d)), - ...EXPECTED.files.map(f => fileExists(join(OUTPUT_PATH, f), f)), - hasDeps(join(OUTPUT_PATH, 'package.json'), EXPECTED.deps), - ]; + const allChecks = [ + ...EXPECTED.dirs.map(dir => dirExists(join(OUTPUT_PATH, dir), dir)), + ...EXPECTED.files.map(file => fileExists(join(OUTPUT_PATH, file), file)), + ] as const; + + const depCheck = hasDeps(join(OUTPUT_PATH, 'package.json'), EXPECTED.deps); + const checks = [...allChecks, depCheck]; + runChecks('Validation', checks); -} +}; -async function install() { +const install = async (): Promise => { phase('INSTALL'); const result = await exec('bun', ['install'], OUTPUT_PATH, TIMEOUTS.install); + if (!result.ok) { - error(`Install failed with exit code ${result.code}`); if (result.stderr) console.error(result.stderr); - throw new Error('Install failed'); + throw new Error(`Install failed with exit code ${result.code}`); } + const checks = [ dirExists(join(OUTPUT_PATH, 'node_modules'), 'node_modules'), fileExists(join(OUTPUT_PATH, 'bun.lock'), 'bun.lock'), ]; runChecks('Install', checks); -} +}; + +const printFailedChecks = () => { + error('\n HARNESS FAILED\n'); + console.log('Failed checks:'); + + results + .filter(result => result.checks.some(check => !check.ok)) + .forEach(result => { + console.log(`\n${result.phase}:`); + result.checks + .filter(check => !check.ok) + .forEach(check => error(` ${check.msg}`)); + }); +}; -function summary() { +const printSuccess = () => { + success('\n ALL TESTS PASSED\n'); + info(`Project location: ${OUTPUT_PATH}`); +}; + +const summary = () => { phase('SUMMARY'); - const totalChecks = results.reduce((sum, r) => sum + r.checks.length, 0); - const passed = results.reduce((sum, r) => sum + r.checks.filter(c => c.ok).length, 0); + const totalChecks = results.reduce((sum, result) => sum + result.checks.length, 0); + const passed = results.reduce((sum, result) => sum + result.checks.filter(check => check.ok).length, 0); + console.log(`\n Total: ${totalChecks} checks`); console.log(` Passed: ${passed}`); console.log(` Failed: ${totalChecks - passed}`); + if (failed) { - error('\n HARNESS FAILED\n'); - console.log('Failed checks:'); - for (const r of results) { - const failedChecks = r.checks.filter(c => !c.ok); - if (failedChecks.length > 0) { - console.log(`\n${r.phase}:`); - failedChecks.forEach(c => error(` ${c.msg}`)); - } - } - } else { - success('\n ALL TESTS PASSED\n'); - info(`Project location: ${OUTPUT_PATH}`); + printFailedChecks(); + + return; } -} + + printSuccess(); +}; -async function main() { - console.log('═'.repeat(60)); +const main = async () => { + const SEPARATOR_LENGTH = 60; + console.log('═'.repeat(SEPARATOR_LENGTH)); console.log('AbsoluteJS Scaffold Test Harness'); console.log('React + Elysia + PostgreSQL + Drizzle + Absolute-Auth'); - console.log('═'.repeat(60)); + console.log('═'.repeat(SEPARATOR_LENGTH)); try { await cleanup(); await scaffold(); await validate(); await install(); - } catch (e) { - error(`\nAborted: ${e instanceof Error ? e.message : e}`); + } catch (err) { + error(`\nAborted: ${err instanceof Error ? err.message : String(err)}`); } finally { summary(); } diff --git a/tests/modules/hosts/neon-test.ts b/tests/modules/hosts/neon-test.ts index 52d6990..4a14b8a 100644 --- a/tests/modules/hosts/neon-test.ts +++ b/tests/modules/hosts/neon-test.ts @@ -1,14 +1,18 @@ -import { describe, expect, test } from 'bun:test'; -import { spawn } from 'bun'; +/* eslint-disable import/no-unused-modules */ import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; +import { spawn } from 'bun'; +import { describe, expect, test } from 'bun:test'; + +// Allow process usage in test environment +declare const process: { cwd(): string; env: Record }; const PROJECT_NAME = 'neon-test'; describe('Neon Host Tests', () => { test('cleanup before tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } }); test('should create project with neon host', async () => { @@ -35,10 +39,7 @@ describe('Neon Host Tests', () => { '--no-git', ]; const proc = spawn({ - cmd: command, - cwd: process.cwd(), - stdout: 'pipe', - stderr: 'pipe', + cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', }); const exitCode = await proc.exited; expect(exitCode).toBe(0); @@ -50,8 +51,11 @@ describe('Neon Host Tests', () => { test('package.json should have @neondatabase/serverless', () => { const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg = JSON.parse(pkgContent); - const allDeps = { + const pkg: { + dependencies?: Record; + devDependencies?: Record; + } = JSON.parse(pkgContent); + const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies, }; @@ -81,7 +85,7 @@ describe('Neon Host Tests', () => { test('cleanup after tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } expect(existsSync(projectPath)).toBe(false); }); diff --git a/tests/modules/hosts/planetscale-test.ts b/tests/modules/hosts/planetscale-test.ts index e999e50..1f1ace4 100644 --- a/tests/modules/hosts/planetscale-test.ts +++ b/tests/modules/hosts/planetscale-test.ts @@ -1,14 +1,18 @@ -import { describe, expect, test } from 'bun:test'; -import { spawn } from 'bun'; +/* eslint-disable import/no-unused-modules */ import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; +import { spawn } from 'bun'; +import { describe, expect, test } from 'bun:test'; + +// Allow process usage in test environment +declare const process: { cwd(): string; env: Record }; const PROJECT_NAME = 'planetscale-test'; describe('PlanetScale Host Tests', () => { test('cleanup before tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } }); test('should create project with planetscale host', async () => { @@ -35,10 +39,7 @@ describe('PlanetScale Host Tests', () => { '--no-git', ]; const proc = spawn({ - cmd: command, - cwd: process.cwd(), - stdout: 'pipe', - stderr: 'pipe', + cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', }); const exitCode = await proc.exited; expect(exitCode).toBe(0); @@ -52,7 +53,7 @@ describe('PlanetScale Host Tests', () => { const pkgContent = readFileSync(pkgPath, 'utf-8'); const pkg = JSON.parse(pkgContent); - const allDeps = { + const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies, }; @@ -83,7 +84,7 @@ describe('PlanetScale Host Tests', () => { test('cleanup after tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } expect(existsSync(projectPath)).toBe(false); }); diff --git a/tests/modules/hosts/test-hosts.ts b/tests/modules/hosts/test-hosts.ts index 8f1ed0c..410fa74 100644 --- a/tests/modules/hosts/test-hosts.ts +++ b/tests/modules/hosts/test-hosts.ts @@ -1,29 +1,46 @@ -import { spawn } from 'bun'; +/* eslint-disable import/no-unused-modules */ import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; -const HOSTS = [ +import { spawn } from 'bun'; + +// Allow process usage in test environment +declare const process: { + cwd(): string; + env: Record; + exit(code: number): never; +}; + +interface HostConfig { + name: string; + dbEngine: string; + package: string; +} + +const HOSTS: HostConfig[] = [ { - name: 'neon', - dbEngine: 'postgresql', - package: '@neondatabase/serverless', + dbEngine: 'postgresql', name: 'neon', package: '@neondatabase/serverless', }, { - name: 'planetscale', - dbEngine: 'mysql', - package: '@planetscale/database', + dbEngine: 'mysql', name: 'planetscale', package: '@planetscale/database', }, { - name: 'turso', - dbEngine: 'sqlite', - package: '@libsql/client', + dbEngine: 'sqlite', name: 'turso', package: '@libsql/client', }, ]; -const TIMEOUT = 60_000; -async function testHost(host: { name: string; dbEngine: string; package: string; }) { +const TIMEOUT_MINUTES = 1; +const MS_PER_MINUTE = 60_000; +const TIMEOUT = TIMEOUT_MINUTES * MS_PER_MINUTE; + +interface TestResult { name: string; passed: boolean; } + +const testHost = async (host: HostConfig): Promise => { const projectName = `test-${host.name}`; - console.log(`Testing: ${host.name.toUpperCase()}`); + const fail = () => ({ name: host.name, passed: false }); + const success = () => ({ name: host.name, passed: true }); + + console.log(`Testing: ${host.name.toUpperCase()}`); cleanup(projectName); - const command = [ + const command: string[] = [ 'bun', 'run', 'src/index.ts', @@ -48,10 +65,7 @@ async function testHost(host: { name: string; dbEngine: string; package: string; console.log('\n Step 1 - Running CLI: '); const proc = spawn({ - cmd: command, - cwd: process.cwd(), - stdout: 'pipe', - stderr: 'pipe', + cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', }); let timedOut = false; @@ -63,46 +77,57 @@ async function testHost(host: { name: string; dbEngine: string; package: string; const exitCode = await proc.exited; clearTimeout(timer); - if (timedOut) { + const checkTimeout = () => { + if (!timedOut) return true; console.log('Failed: Timed out'); + return false; - } + }; - if (exitCode !== 0) { + const checkExitCode = async () => { + if (exitCode === 0) return true; console.log('Failed: CLI returned error'); const stderr = await new Response(proc.stderr).text(); if (stderr) { - console.log('Error output: ', stderr.substring(0, 200)); + const MAX_ERROR_LENGTH = 200; + console.log('Error output: ', stderr.substring(0, MAX_ERROR_LENGTH)); } - return false; - } + + return { name: host.name, passed: false }; + }; + + if (!checkTimeout()) return fail(); + if (!await checkExitCode()) return fail(); console.log('CLI completed successfully'); console.log('\n Step 2 - Checking project folder: '); const projectPath = join(process.cwd(), projectName); if (!existsSync(projectPath)) { console.log('Failed: No project folder'); - return false; + + return { name: host.name, passed: false }; } - console.log('Project folder exists'); + console.log(' Project folder exists'); console.log('\n Step 3 - Checking package.json: '); const pkgPath = join(projectPath, 'package.json'); if (!existsSync(pkgPath)) { console.log('Failed: No package.json'); + return false; } const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg = JSON.parse(pkgContent); - const allDeps = { + const pkg: { dependencies?: Record; devDependencies?: Record } = JSON.parse(pkgContent); + const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies, }; if (!allDeps[host.package]) { console.log(`Failed: Missing ${host.package}`); - console.log('Available packages:', Object.keys(allDeps).filter(p => p.includes('data'))); + console.log('Available packages:', Object.keys(allDeps).filter(packageName => packageName.includes('data'))); + return false; } console.log(`Has ${host.package}`); @@ -112,6 +137,7 @@ async function testHost(host: { name: string; dbEngine: string; package: string; if (existsSync(envPath)) { console.log(`Failed: .env file should NOT exist for hosted database (${host.name})`); console.log('Hosted databases expect DATABASE_URL to be provided by the user'); + return false; } console.log('Correctly no .env file for hosted database'); @@ -120,12 +146,14 @@ async function testHost(host: { name: string; dbEngine: string; package: string; const drizzlePath = join(projectPath, 'drizzle.config.ts'); if (!existsSync(drizzlePath)) { console.log('Failed: No drizzle.config.ts'); + return false; } const drizzleContent = readFileSync(drizzlePath, 'utf-8'); if (!drizzleContent.includes('DATABASE_URL')) { console.log('Failed: drizzle.config.ts missing DATABASE_URL reference'); + return false; } @@ -138,6 +166,7 @@ async function testHost(host: { name: string; dbEngine: string; package: string; const schemaPath = join(projectPath, 'db', 'schema.ts'); if (!existsSync(schemaPath)) { console.log(' Failed: No db/schema.ts'); + return false; } console.log(' db/schema.ts exists'); @@ -146,6 +175,7 @@ async function testHost(host: { name: string; dbEngine: string; package: string; const serverPath = join(projectPath, 'src', 'backend', 'server.ts'); if (!existsSync(serverPath)) { console.log(' Failed: No server.ts'); + return false; } @@ -162,23 +192,24 @@ async function testHost(host: { name: string; dbEngine: string; package: string; if (!hasCorrectImport) { console.log(` Failed: server.ts missing ${host.package} import`); + return false; } console.log(' server.ts has correct database import'); console.log(`${host.name.toUpperCase()} - ALL CHECKS PASSED`); - return true; + return success(); } -function cleanup(projectName: string) { +const cleanup = (projectName: string) => { const projectPath = join(process.cwd(), projectName); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } -} +}; -async function runAllTests() { +const runAllTests = async () => { console.log('DATABASE HOST CONFIGURATION TEST SUITE'); console.log(`\nTesting ${HOSTS.length} hosted database providers`); console.log('\n Hosted databases (neon, planetscale, turso) do NOT'); @@ -186,45 +217,46 @@ async function runAllTests() { console.log('production environment. Tests verify configuration files are'); console.log('set up to expect DATABASE_URL from the environment.\n'); - const results = []; - - for (const host of HOSTS) { - const passed = await testHost(host); - results.push({ - name: host.name, - passed: passed, - }); + interface TestResult { + name: string; + passed: boolean; } + + const runTestForHost = async (host: HostConfig): Promise => + testHost(host); + + const results: TestResult[] = await Promise.all(HOSTS.map(runTestForHost)); + console.log('TEST SUMMARY'); - let passCount = 0; - let failCount = 0; - - for (const result of results) { - if (result.passed) { - console.log(`${result.name.padEnd(15)} - PASSED`); - passCount++; - } else { - console.log(`${result.name.padEnd(15)} - FAILED`); - failCount++; - } - } - console.log(`Total: ${results.length} | Passed: ${passCount} | Failed: ${failCount}`); + const PAD_WIDTH = 15; + const DEFAULT_COUNTS = { failed: 0, passed: 0 }; + + const summary = results.reduce((acc, result) => ({ + failed: acc.failed + (result.passed ? 0 : 1), + passed: acc.passed + (result.passed ? 1 : 0), + }), DEFAULT_COUNTS); + + console.log(`\nResults: ${summary.passed} passed, ${summary.failed} failed\n`); + + results.forEach(result => { + console.log(`${result.name.padEnd(PAD_WIDTH)} - ${result.passed ? 'PASSED' : 'FAILED'}`); + }); + + console.log(`Total: ${results.length} | Passed: ${summary.passed} | Failed: ${summary.failed}`); console.log('\n🧹 Cleaning up test artifacts...'); - for (const host of HOSTS) { - cleanup(`test-${host.name}`); - } + await Promise.all(HOSTS.map(host => cleanup(`test-${host.name}`))); console.log('Cleanup complete\n'); - if (failCount > 0) { + if (summary.failed > 0) { console.error('Some tests failed'); process.exit(1); - } else { - console.log('All tests passed!'); - console.log('\n Database host configuration verification complete!\n'); - process.exit(0); } + + console.log('All tests passed!'); + console.log('\n Database host configuration verification complete!\n'); + process.exit(0); } runAllTests(); \ No newline at end of file diff --git a/tests/modules/hosts/turso-test.ts b/tests/modules/hosts/turso-test.ts index 597b529..c843569 100644 --- a/tests/modules/hosts/turso-test.ts +++ b/tests/modules/hosts/turso-test.ts @@ -1,14 +1,18 @@ -import { describe, expect, test } from 'bun:test'; -import { spawn } from 'bun'; +/* eslint-disable import/no-unused-modules */ import { existsSync, readFileSync, rmSync } from 'fs'; import { join } from 'path'; +import { spawn } from 'bun'; +import { describe, expect, test } from 'bun:test'; + +// Allow process usage in test environment +declare const process: { cwd(): string; env: Record }; const PROJECT_NAME = 'turso-test'; describe('Turso Host Tests', () => { test('cleanup before tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } }); test('should create project with turso host', async () => { @@ -35,10 +39,7 @@ describe('Turso Host Tests', () => { '--no-git', ]; const proc = spawn({ - cmd: command, - cwd: process.cwd(), - stdout: 'pipe', - stderr: 'pipe', + cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', }); const exitCode = await proc.exited; expect(exitCode).toBe(0); @@ -51,7 +52,7 @@ describe('Turso Host Tests', () => { const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); const pkgContent = readFileSync(pkgPath, 'utf-8'); const pkg = JSON.parse(pkgContent); - const allDeps = { + const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies, }; @@ -82,7 +83,7 @@ describe('Turso Host Tests', () => { test('cleanup after tests', () => { const projectPath = join(process.cwd(), PROJECT_NAME); if (existsSync(projectPath)) { - rmSync(projectPath, { recursive: true, force: true }); + rmSync(projectPath, { force: true, recursive: true }); } expect(existsSync(projectPath)).toBe(false); }); diff --git a/tsconfig.json b/tsconfig.json index d04515a..8f2fe5e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -31,5 +31,5 @@ "absolutejs-project", "src/templates/htmx/htmx.*.min.js" ], - "include": ["src/**/*", "tests/**/*"] + "include": ["src/**/*", "tests/**/*", "test-scaffold/**/*"] } From 8649a7cf5a6e20fdf6304867383cf30b919bc7b4 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Sun, 2 Nov 2025 00:45:56 -0400 Subject: [PATCH 19/39] fixed syntax errors --- bun.lock | 200 ++++++------------ src/commands/formatProject.ts | 6 +- src/generators/db/handlerTemplates.ts | 52 ++--- src/generators/db/scaffoldDatabase.ts | 13 +- test-scaffold/bun.lock | 14 +- test-scaffold/db/schema.ts | 2 +- .../src/backend/handlers/userHandlers.ts | 2 - test-scaffold/src/backend/server.ts | 10 +- tests/modules/hosts/test-hosts.ts | 23 +- 9 files changed, 124 insertions(+), 198 deletions(-) diff --git a/bun.lock b/bun.lock index 6fbc1e4..c0bdb94 100644 --- a/bun.lock +++ b/bun.lock @@ -39,11 +39,11 @@ "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], - "@babel/parser": ["@babel/parser@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.0" }, "bin": "./bin/babel-parser.js" }, "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g=="], + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], - "@babel/types": ["@babel/types@7.28.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg=="], + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], "@clack/core": ["@clack/core@0.5.0", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow=="], @@ -57,7 +57,7 @@ "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.5", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.4" } }, "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ=="], - "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.0.14", "", { "peerDependencies": { "postcss": "^8.4" } }, "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q=="], + "@csstools/css-syntax-patches-for-csstree": ["@csstools/css-syntax-patches-for-csstree@1.0.15", "", {}, "sha512-q0p6zkVq2lJnmzZVPR33doA51G7YOja+FBvRdp5ISIthL0MtFCgYHHhR563z9WFGxcOn0WfjSkPDJ5Qig3H3Sw=="], "@csstools/css-tokenizer": ["@csstools/css-tokenizer@3.0.4", "", {}, "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw=="], @@ -67,61 +67,61 @@ "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.6", "", { "os": "aix", "cpu": "ppc64" }, "sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.6", "", { "os": "android", "cpu": "arm" }, "sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.6", "", { "os": "android", "cpu": "arm64" }, "sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.6", "", { "os": "android", "cpu": "x64" }, "sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.6", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.6", "", { "os": "freebsd", "cpu": "x64" }, "sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.6", "", { "os": "linux", "cpu": "arm" }, "sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.6", "", { "os": "linux", "cpu": "ia32" }, "sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.6", "", { "os": "linux", "cpu": "none" }, "sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.6", "", { "os": "linux", "cpu": "none" }, "sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.6", "", { "os": "linux", "cpu": "ppc64" }, "sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.6", "", { "os": "linux", "cpu": "none" }, "sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.6", "", { "os": "linux", "cpu": "s390x" }, "sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.6", "", { "os": "linux", "cpu": "x64" }, "sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.6", "", { "os": "none", "cpu": "arm64" }, "sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.6", "", { "os": "none", "cpu": "x64" }, "sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.6", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.6", "", { "os": "openbsd", "cpu": "x64" }, "sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.6", "", { "os": "none", "cpu": "arm64" }, "sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.6", "", { "os": "sunos", "cpu": "x64" }, "sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.6", "", { "os": "win32", "cpu": "ia32" }, "sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.6", "", { "os": "win32", "cpu": "x64" }, "sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.7.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw=="], + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], "@eslint/config-array": ["@eslint/config-array@0.20.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw=="], @@ -133,25 +133,25 @@ "@eslint/js": ["@eslint/js@9.27.0", "", {}, "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA=="], - "@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="], + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.3", "", { "dependencies": { "@eslint/core": "^0.15.1", "levn": "^0.4.1" } }, "sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag=="], + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.5", "", { "dependencies": { "@eslint/core": "^0.15.2", "levn": "^0.4.1" } }, "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w=="], "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.12", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.29", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -163,9 +163,9 @@ "@stylistic/eslint-plugin-ts": ["@stylistic/eslint-plugin-ts@4.2.0", "", { "dependencies": { "@typescript-eslint/utils": "^8.23.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0" }, "peerDependencies": { "eslint": ">=9.0.0" } }, "sha512-j2o2GvOx9v66x8hmp/HJ+0T+nOppiO5ycGsCkifh7JPGgjxEhpkGmIGx3RWsoxpWbad3VCX8e8/T8n3+7ze1Zg=="], - "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.5", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ=="], + "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.6", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ=="], - "@types/bun": ["@types/bun@1.2.18", "", { "dependencies": { "bun-types": "1.2.18" } }, "sha512-Xf6RaWVheyemaThV0kUfaAUvCNokFr+bH8Jxp+tTZfx7dAPA8z9ePnP9S9+Vspzuxxx9JRAXhnyccRj3GyCMdQ=="], + "@types/bun": ["@types/bun@1.3.1", "", { "dependencies": { "bun-types": "1.3.1" } }, "sha512-4jNMk2/K9YJtfqwoAa28c8wK+T7nvJFOjxI4h/7sORWcypRNxBpr+TPNaCfVWq70tLCJsqoFwcf0oI0JU/fvMQ=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], @@ -173,7 +173,7 @@ "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - "@types/node": ["@types/node@24.0.13", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ=="], + "@types/node": ["@types/node@24.9.2", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA=="], "@types/react": ["@types/react@19.1.4", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g=="], @@ -181,19 +181,15 @@ "@typescript-eslint/parser": ["@typescript-eslint/parser@8.32.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", "@typescript-eslint/typescript-estree": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.36.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.36.0", "@typescript-eslint/types": "^8.36.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g=="], - - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.36.0", "", { "dependencies": { "@typescript-eslint/types": "8.36.0", "@typescript-eslint/visitor-keys": "8.36.0" } }, "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA=="], - - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.36.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA=="], + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0" } }, "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ=="], "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.32.0", "", { "dependencies": { "@typescript-eslint/typescript-estree": "8.32.0", "@typescript-eslint/utils": "8.32.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg=="], - "@typescript-eslint/types": ["@typescript-eslint/types@8.36.0", "", {}, "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ=="], + "@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.36.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.36.0", "@typescript-eslint/tsconfig-utils": "8.36.0", "@typescript-eslint/types": "8.36.0", "@typescript-eslint/visitor-keys": "8.36.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ=="], - "@typescript-eslint/utils": ["@typescript-eslint/utils@8.36.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.36.0", "@typescript-eslint/types": "8.36.0", "@typescript-eslint/typescript-estree": "8.36.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g=="], + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.32.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", "@typescript-eslint/typescript-estree": "8.32.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw=="], "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "eslint-visitor-keys": "^4.2.0" } }, "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w=="], @@ -259,6 +255,8 @@ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.23", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ=="], + "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], @@ -267,11 +265,11 @@ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + "browserslist": ["browserslist@4.27.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "bun-types": ["bun-types@1.2.18", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-04+Eha5NP7Z0A9YgDAzMk5PHR16ZuLVa83b26kH5+cp1qZW4F6FmAURngE7INf4tKOvCE69vYvDEwoNl1tGiWw=="], + "bun-types": ["bun-types@1.3.1", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-NMrcy7smratanWJ2mMXdpatalovtxVggkj11bScuWuiOoXTiKIu2eVS1/7qbyI/4yHedtsn175n4Sm4JcdHLXw=="], "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], @@ -281,7 +279,7 @@ "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], + "caniuse-lite": ["caniuse-lite@1.0.30001752", "", {}, "sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g=="], "caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], @@ -307,7 +305,7 @@ "cssom": ["cssom@0.2.5", "", {}, "sha512-b9ecqKEfWrNcyzx5+1nmcfi80fPp8dVM8rlAh7fFK14PZbNjp++gRjyZTZfLJQa/Lw0qeCJho7WBIl0nw0v6HA=="], - "cssstyle": ["cssstyle@5.3.1", "", { "dependencies": { "@asamuzakjp/css-color": "^4.0.3", "@csstools/css-syntax-patches-for-csstree": "^1.0.14", "css-tree": "^3.1.0" } }, "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ=="], + "cssstyle": ["cssstyle@5.3.2", "", { "dependencies": { "@asamuzakjp/css-color": "^4.0.3", "@csstools/css-syntax-patches-for-csstree": "^1.0.14", "css-tree": "^3.1.0" } }, "sha512-zDMqXh8Vs1CdRYZQ2M633m/SFgcjlu8RB8b/1h82i+6vpArF507NSYIWJHGlJaTWoS+imcnctmEz43txhbVkOw=="], "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], @@ -319,7 +317,7 @@ "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], - "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], @@ -339,7 +337,7 @@ "ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], - "electron-to-chromium": ["electron-to-chromium@1.5.182", "", {}, "sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.244", "", {}, "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw=="], "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], @@ -357,7 +355,7 @@ "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], - "esbuild": ["esbuild@0.25.6", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.6", "@esbuild/android-arm": "0.25.6", "@esbuild/android-arm64": "0.25.6", "@esbuild/android-x64": "0.25.6", "@esbuild/darwin-arm64": "0.25.6", "@esbuild/darwin-x64": "0.25.6", "@esbuild/freebsd-arm64": "0.25.6", "@esbuild/freebsd-x64": "0.25.6", "@esbuild/linux-arm": "0.25.6", "@esbuild/linux-arm64": "0.25.6", "@esbuild/linux-ia32": "0.25.6", "@esbuild/linux-loong64": "0.25.6", "@esbuild/linux-mips64el": "0.25.6", "@esbuild/linux-ppc64": "0.25.6", "@esbuild/linux-riscv64": "0.25.6", "@esbuild/linux-s390x": "0.25.6", "@esbuild/linux-x64": "0.25.6", "@esbuild/netbsd-arm64": "0.25.6", "@esbuild/netbsd-x64": "0.25.6", "@esbuild/openbsd-arm64": "0.25.6", "@esbuild/openbsd-x64": "0.25.6", "@esbuild/openharmony-arm64": "0.25.6", "@esbuild/sunos-x64": "0.25.6", "@esbuild/win32-arm64": "0.25.6", "@esbuild/win32-ia32": "0.25.6", "@esbuild/win32-x64": "0.25.6" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg=="], + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], "esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="], @@ -389,7 +387,7 @@ "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - "esrap": ["esrap@2.1.0", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA=="], + "esrap": ["esrap@2.1.2", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg=="], "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], @@ -439,13 +437,15 @@ "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], - "get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="], + "get-tsconfig": ["get-tsconfig@4.13.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="], "getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], @@ -509,7 +509,7 @@ "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], - "is-generator-function": ["is-generator-function@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ=="], + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], @@ -583,7 +583,7 @@ "lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="], - "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], @@ -609,7 +609,7 @@ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], @@ -677,7 +677,7 @@ "request": ["request@2.88.2", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="], - "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], @@ -777,9 +777,9 @@ "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], - "undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="], + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], - "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], + "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], @@ -805,39 +805,17 @@ "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - "zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="], + "zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="], "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.15.1", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA=="], - - "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0" } }, "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils": ["@typescript-eslint/utils@8.32.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", "@typescript-eslint/typescript-estree": "8.32.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw=="], - - "@typescript-eslint/parser/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0" } }, "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ=="], - - "@typescript-eslint/parser/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - - "@typescript-eslint/parser/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ=="], - - "@typescript-eslint/scope-manager/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.36.0", "", { "dependencies": { "@typescript-eslint/types": "8.36.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ=="], - - "@typescript-eslint/type-utils/@typescript-eslint/utils": ["@typescript-eslint/utils@8.32.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", "@typescript-eslint/typescript-estree": "8.32.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw=="], - - "@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.36.0", "", { "dependencies": { "@typescript-eslint/types": "8.36.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA=="], + "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.15.2", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg=="], "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "@typescript-eslint/visitor-keys/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], + "@typescript-eslint/typescript-estree/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], @@ -847,8 +825,6 @@ "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "typescript-eslint/@typescript-eslint/utils": ["@typescript-eslint/utils@8.32.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", "@typescript-eslint/typescript-estree": "8.32.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw=="], - "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], @@ -893,48 +869,6 @@ "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], - "@typescript-eslint/eslint-plugin/@typescript-eslint/scope-manager/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ=="], - - "@typescript-eslint/parser/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "@typescript-eslint/parser/@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "@typescript-eslint/type-utils/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0" } }, "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ=="], - - "@typescript-eslint/type-utils/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0" } }, "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/types": ["@typescript-eslint/types@8.32.0", "", {}, "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.32.0", "", { "dependencies": { "@typescript-eslint/types": "8.32.0", "@typescript-eslint/visitor-keys": "8.32.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "@typescript-eslint/parser/@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "@typescript-eslint/type-utils/@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], - - "@typescript-eslint/eslint-plugin/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "typescript-eslint/@typescript-eslint/utils/@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], } } diff --git a/src/commands/formatProject.ts b/src/commands/formatProject.ts index 13e1b86..e953f31 100644 --- a/src/commands/formatProject.ts +++ b/src/commands/formatProject.ts @@ -24,11 +24,9 @@ export const formatProject = async ({ : formatNoInstallCommands[packageManager]; spin.start('Formatting files…'); - await $`sh -c ${fmt}`.cwd(projectName).quiet(); + await $`sh -c ${fmt}`.cwd(projectName).quiet().nothrow(); spin.stop(green('Files formatted')); } catch (err) { - spin.stop(red('Failed to format files'), 1); - console.error('Error formatting:', err); - exit(1); + spin.stop(yellow('Formatting skipped - continuing...'), 0); } }; diff --git a/src/generators/db/handlerTemplates.ts b/src/generators/db/handlerTemplates.ts index 4b90939..2023af3 100644 --- a/src/generators/db/handlerTemplates.ts +++ b/src/generators/db/handlerTemplates.ts @@ -329,94 +329,86 @@ const driverConfigurations = { dbType: 'Pool', importLines: `import { Pool } from 'pg'`, queries: cockroachdbPoolQueryOperations - }, - 'gel:sql:local': { + }, 'gel:sql:local': { dbType: 'GelClient', importLines: `import { GelClient } from 'gel'`, queries: gelSqlQueryOperations - }, - 'mariadb:sql:local': { + }, 'mariadb:sql:local': { dbType: 'Pool', importLines: `import { Pool } from 'mariadb'`, queries: mariadbSqlQueryOperations - }, - 'mongodb:native:local': { + }, 'mongodb:native:local': { dbType: 'Db', importLines: `import { Db } from 'mongodb'`, queries: mongodbQueryOperations - }, - 'mssql:sql:local': { + }, 'mssql:sql:local': { dbType: 'ConnectionPool', importLines: `import { ConnectionPool } from 'mssql'`, queries: mssqlSqlQueryOperations - }, - 'mysql:drizzle:local': { + }, 'mysql:drizzle:local': { dbType: 'MySql2Database', importLines: ` import { eq } from 'drizzle-orm' import { MySql2Database } from 'drizzle-orm/mysql2' import { schema, type SchemaType } from '../../../db/schema'`, queries: mysqlDrizzleQueryOperations - }, - 'mysql:sql:local': { + }, 'mysql:drizzle:planetscale': { + dbType: 'PlanetScaleDatabase', + importLines: ` +import { eq } from 'drizzle-orm' +import { PlanetScaleDatabase } from 'drizzle-orm/planetscale-serverless' +import { schema, type SchemaType } from '../../../db/schema'`, + queries: mysqlDrizzleQueryOperations + }, 'mysql:sql:local': { dbType: 'Pool', handlerTypes: mysqlHandlerTypes, importLines: `import { Pool, ResultSetHeader, RowDataPacket } from 'mysql2/promise'`, queries: mysqlSqlQueryOperations - }, - 'postgresql:drizzle:local': { + }, 'postgresql:drizzle:local': { dbType: 'NodePgDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLDatabase } from 'drizzle-orm/bun-sql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'postgresql:drizzle:neon': { + }, 'postgresql:drizzle:neon': { dbType: 'NeonDatabase', importLines: ` import { eq } from 'drizzle-orm' import { NeonDatabase } from 'drizzle-orm/neon-serverless' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'postgresql:sql:local': { + }, 'postgresql:sql:local': { dbType: 'SQL', importLines: `import { SQL } from 'bun'`, queries: postgresSqlQueryOperations - }, - 'postgresql:sql:neon': { + }, 'postgresql:sql:neon': { dbType: 'NeonQueryFunction', importLines: `import { NeonQueryFunction } from '@neondatabase/serverless'`, queries: postgresSqlQueryOperations - }, - 'singlestore:sql:local': { + }, 'singlestore:sql:local': { dbType: 'Connection', importLines: `import { Connection } from '@singlestore/db-client'`, queries: singlestoreSqlQueryOperations - }, - 'sqlite:drizzle:local': { + }, 'sqlite:drizzle:local': { dbType: 'BunSQLiteDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLiteDatabase } from 'drizzle-orm/bun-sqlite' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'sqlite:drizzle:turso': { + }, 'sqlite:drizzle:turso': { dbType: 'LibSQLDatabase', importLines: ` import { eq } from 'drizzle-orm' import { LibSQLDatabase } from 'drizzle-orm/libsql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'sqlite:sql:local': { + }, 'sqlite:sql:local': { dbType: 'Database', importLines: `import { Database } from 'bun:sqlite'`, queries: bunSqliteQueryOperations - }, - 'sqlite:sql:turso': { + }, 'sqlite:sql:turso': { dbType: 'Client', importLines: `import { Client } from '@libsql/client'`, queries: libsqlQueryOperations diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index b726862..99d9235 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -50,7 +50,7 @@ export const scaffoldDatabase = async ({ }); writeFileSync(join(handlerDirectory, handlerFileName), dbHandlers, 'utf-8'); - if (databaseEngine === 'sqlite') { + if (databaseEngine === 'sqlite' && databaseHost !== 'turso') { void ( (orm === undefined || orm === 'none') && (await checkSqliteInstalled()) @@ -64,6 +64,12 @@ export const scaffoldDatabase = async ({ databaseDirectory, 'schema.sql' )}"`.cwd(projectName); + } else if (databaseEngine === 'sqlite' && databaseHost === 'turso') { + const sqliteSchema = generateSqliteSchema(authProvider); + writeFileSync( + join(projectDatabaseDirectory, 'schema.sql'), + sqliteSchema + ); } if ( @@ -94,7 +100,10 @@ export const scaffoldDatabase = async ({ join(projectDatabaseDirectory, 'schema.ts'), drizzleSchema ); - createDrizzleConfig({ databaseDirectory, databaseEngine, projectName }); + + if (databaseHost === 'neon' || databaseHost === 'planetscale' || databaseHost === 'turso') { + createDrizzleConfig({ databaseDirectory, databaseEngine, projectName }); + } return; } diff --git a/test-scaffold/bun.lock b/test-scaffold/bun.lock index 2c1ccf8..f05c027 100644 --- a/test-scaffold/bun.lock +++ b/test-scaffold/bun.lock @@ -188,7 +188,7 @@ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.20", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.23", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ=="], "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], @@ -198,7 +198,7 @@ "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001751", "", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], + "caniuse-lite": ["caniuse-lite@1.0.30001752", "", {}, "sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], @@ -230,7 +230,7 @@ "drizzle-orm": ["drizzle-orm@0.41.0", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-7A4ZxhHk9gdlXmTdPj/lREtP+3u8KvZ4yEN6MYVxBzZGex5Wtdc+CWSbu7btgF6TB0N+MNPrvW7RKBbxJchs/Q=="], - "electron-to-chromium": ["electron-to-chromium@1.5.242", "", {}, "sha512-msZ7SYGFpXkm/iUizlMrm/FPNeYo8uSltQccLVFO3fV4RN2JWGdG7Aatztxtw3uDWp3DkupfkrosLjUnhY+iOw=="], + "electron-to-chromium": ["electron-to-chromium@1.5.244", "", {}, "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw=="], "elysia": ["elysia@1.4.9", "", { "dependencies": { "cookie": "^1.0.2", "exact-mirror": "0.2.2", "fast-decode-uri-component": "^1.0.1" }, "peerDependencies": { "@sinclair/typebox": ">= 0.34.0 < 1", "file-type": ">= 20.0.0", "openapi-types": ">= 12.0.0", "typescript": ">= 5.0.0" }, "optionalPeers": ["file-type", "typescript"] }, "sha512-BWNhA8DoKQvlQTjAUkMAmNeso24U+ibZxY/8LN96qSDK/6eevaX59r3GISow699JPxSnFY3gLMUzJzCLYVtbvg=="], @@ -254,7 +254,7 @@ "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - "esrap": ["esrap@2.1.1", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-ebTT9B6lOtZGMgJ3o5r12wBacHctG7oEWazIda8UlPfA3HD/Wrv8FdXoVo73vzdpwCxNyXjPauyN2bbJzMkB9A=="], + "esrap": ["esrap@2.1.2", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg=="], "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], @@ -374,7 +374,7 @@ "node-cache": ["node-cache@5.1.2", "", { "dependencies": { "clone": "2.x" } }, "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg=="], - "node-releases": ["node-releases@2.0.26", "", {}, "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], @@ -438,13 +438,13 @@ "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "svelte": ["svelte@5.43.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-1sRxVbgJAB+UGzwkc3GUoiBSzEOf0jqzccMaVoI2+pI+kASUe9qubslxace8+Mzhqw19k4syTA5niCIJwfXpOA=="], + "svelte": ["svelte@5.43.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA=="], "tailwindcss": ["tailwindcss@4.1.7", "", {}, "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg=="], "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "tar": ["tar@7.5.1", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g=="], + "tar": ["tar@7.5.2", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], diff --git a/test-scaffold/db/schema.ts b/test-scaffold/db/schema.ts index 10dd975..8a57805 100644 --- a/test-scaffold/db/schema.ts +++ b/test-scaffold/db/schema.ts @@ -1,5 +1,5 @@ -import { NeonHttpDatabase } from 'drizzle-orm/neon-http'; import { pgTable, varchar, timestamp, jsonb } from 'drizzle-orm/pg-core'; +import { NeonHttpDatabase } from 'drizzle-orm/neon-http'; export const users = pgTable('users', { auth_sub: varchar({ length: 255 }).primaryKey(), diff --git a/test-scaffold/src/backend/handlers/userHandlers.ts b/test-scaffold/src/backend/handlers/userHandlers.ts index 7ce91e2..9f41bdb 100644 --- a/test-scaffold/src/backend/handlers/userHandlers.ts +++ b/test-scaffold/src/backend/handlers/userHandlers.ts @@ -25,7 +25,6 @@ export const getUser = async ({ .from(schema.users) .where(eq(schema.users.auth_sub, authSub)) .execute(); - return user; }; @@ -44,6 +43,5 @@ export const createUser = async ({ .values({ auth_sub: authSub, metadata: userIdentity }) .returning(); if (!newUser) throw new Error('Failed to create user'); - return newUser; }; diff --git a/test-scaffold/src/backend/server.ts b/test-scaffold/src/backend/server.ts index a932410..473b979 100644 --- a/test-scaffold/src/backend/server.ts +++ b/test-scaffold/src/backend/server.ts @@ -1,3 +1,6 @@ +import { User, schema } from '../../db/schema'; +import { ReactExample } from '../frontend/pages/ReactExample'; +import { createUser, getUser } from './handlers/userHandlers'; import { asset, build, @@ -10,9 +13,6 @@ import { staticPlugin } from '@elysiajs/static'; import { Pool } from '@neondatabase/serverless'; import { drizzle } from 'drizzle-orm/neon-serverless'; import { Elysia } from 'elysia'; -import { User, schema } from '../../db/schema'; -import { ReactExample } from '../frontend/pages/ReactExample'; -import { createUser, getUser } from './handlers/userHandlers'; const manifest = await build({ assetsDirectory: 'src/backend/assets', @@ -57,14 +57,14 @@ new Elysia() handleReactPageRequest( ReactExample, asset(manifest, 'ReactExampleIndex'), - { cssPath: asset(manifest, 'ReactExampleCSS'), initialCount: 0 } + { initialCount: 0, cssPath: asset(manifest, 'ReactExampleCSS') } ) ) .get('/react', () => handleReactPageRequest( ReactExample, asset(manifest, 'ReactExampleIndex'), - { cssPath: asset(manifest, 'ReactExampleCSS'), initialCount: 0 } + { initialCount: 0, cssPath: asset(manifest, 'ReactExampleCSS') } ) ) .on('error', (err) => { diff --git a/tests/modules/hosts/test-hosts.ts b/tests/modules/hosts/test-hosts.ts index 410fa74..5236b21 100644 --- a/tests/modules/hosts/test-hosts.ts +++ b/tests/modules/hosts/test-hosts.ts @@ -93,7 +93,7 @@ const testHost = async (host: HostConfig): Promise => { console.log('Error output: ', stderr.substring(0, MAX_ERROR_LENGTH)); } - return { name: host.name, passed: false }; + return false; }; if (!checkTimeout()) return fail(); @@ -114,7 +114,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(pkgPath)) { console.log('Failed: No package.json'); - return false; + return fail(); } const pkgContent = readFileSync(pkgPath, 'utf-8'); @@ -128,7 +128,7 @@ const testHost = async (host: HostConfig): Promise => { console.log(`Failed: Missing ${host.package}`); console.log('Available packages:', Object.keys(allDeps).filter(packageName => packageName.includes('data'))); - return false; + return fail(); } console.log(`Has ${host.package}`); @@ -138,7 +138,7 @@ const testHost = async (host: HostConfig): Promise => { console.log(`Failed: .env file should NOT exist for hosted database (${host.name})`); console.log('Hosted databases expect DATABASE_URL to be provided by the user'); - return false; + return fail(); } console.log('Correctly no .env file for hosted database'); @@ -147,14 +147,14 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(drizzlePath)) { console.log('Failed: No drizzle.config.ts'); - return false; + return fail(); } const drizzleContent = readFileSync(drizzlePath, 'utf-8'); if (!drizzleContent.includes('DATABASE_URL')) { console.log('Failed: drizzle.config.ts missing DATABASE_URL reference'); - return false; + return fail(); } if (!drizzleContent.includes('env.DATABASE_URL')) { @@ -167,7 +167,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(schemaPath)) { console.log(' Failed: No db/schema.ts'); - return false; + return fail(); } console.log(' db/schema.ts exists'); @@ -176,7 +176,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(serverPath)) { console.log(' Failed: No server.ts'); - return false; + return fail(); } const serverContent = readFileSync(serverPath, 'utf-8'); @@ -193,7 +193,7 @@ const testHost = async (host: HostConfig): Promise => { if (!hasCorrectImport) { console.log(` Failed: server.ts missing ${host.package} import`); - return false; + return fail(); } console.log(' server.ts has correct database import'); @@ -216,11 +216,6 @@ const runAllTests = async () => { console.log('generate .env files. Users must provide DATABASE_URL in their'); console.log('production environment. Tests verify configuration files are'); console.log('set up to expect DATABASE_URL from the environment.\n'); - - interface TestResult { - name: string; - passed: boolean; - } const runTestForHost = async (host: HostConfig): Promise => testHost(host); From 564af5bbfdd4abf8bb3342675313d44a6e73b6b2 Mon Sep 17 00:00:00 2001 From: jrs239 Date: Sun, 2 Nov 2025 00:48:00 -0400 Subject: [PATCH 20/39] removed /test-scaffold/ --- test-scaffold/.gitignore | 52 -- test-scaffold/.prettierignore | 4 - test-scaffold/.prettierrc.json | 9 - test-scaffold/README.md | 35 -- test-scaffold/bun.lock | 497 ------------------ test-scaffold/db/schema.ts | 18 - test-scaffold/drizzle.config.ts | 15 - test-scaffold/eslint.config.mjs | 243 --------- test-scaffold/package.json | 30 -- test-scaffold/postcss.config.ts | 8 - .../src/backend/assets/ico/favicon.ico | Bin 189506 -> 0 bytes .../backend/assets/png/absolutejs-temp.png | Bin 437067 -> 0 bytes .../src/backend/assets/svg/react.svg | 1 - .../src/backend/handlers/userHandlers.ts | 47 -- test-scaffold/src/backend/server.ts | 75 --- test-scaffold/src/constants.ts | 2 - test-scaffold/src/frontend/components/App.tsx | 52 -- .../src/frontend/components/Dropdown.tsx | 18 - .../src/frontend/components/Head.tsx | 34 -- .../src/frontend/pages/ReactExample.tsx | 18 - test-scaffold/src/frontend/styles/colors.ts | 11 - .../src/frontend/styles/react-example.css | 147 ------ test-scaffold/src/frontend/styles/reset.css | 84 --- test-scaffold/tailwind.config.ts | 7 - test-scaffold/tsconfig.json | 98 ---- 25 files changed, 1505 deletions(-) delete mode 100644 test-scaffold/.gitignore delete mode 100644 test-scaffold/.prettierignore delete mode 100644 test-scaffold/.prettierrc.json delete mode 100644 test-scaffold/README.md delete mode 100644 test-scaffold/bun.lock delete mode 100644 test-scaffold/db/schema.ts delete mode 100644 test-scaffold/drizzle.config.ts delete mode 100644 test-scaffold/eslint.config.mjs delete mode 100644 test-scaffold/package.json delete mode 100644 test-scaffold/postcss.config.ts delete mode 100644 test-scaffold/src/backend/assets/ico/favicon.ico delete mode 100644 test-scaffold/src/backend/assets/png/absolutejs-temp.png delete mode 100644 test-scaffold/src/backend/assets/svg/react.svg delete mode 100644 test-scaffold/src/backend/handlers/userHandlers.ts delete mode 100644 test-scaffold/src/backend/server.ts delete mode 100644 test-scaffold/src/constants.ts delete mode 100644 test-scaffold/src/frontend/components/App.tsx delete mode 100644 test-scaffold/src/frontend/components/Dropdown.tsx delete mode 100644 test-scaffold/src/frontend/components/Head.tsx delete mode 100644 test-scaffold/src/frontend/pages/ReactExample.tsx delete mode 100644 test-scaffold/src/frontend/styles/colors.ts delete mode 100644 test-scaffold/src/frontend/styles/react-example.css delete mode 100644 test-scaffold/src/frontend/styles/reset.css delete mode 100644 test-scaffold/tailwind.config.ts delete mode 100644 test-scaffold/tsconfig.json diff --git a/test-scaffold/.gitignore b/test-scaffold/.gitignore deleted file mode 100644 index cad3335..0000000 --- a/test-scaffold/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# misc -.DS_Store -*.pem -/build/*.js -/example/build/ -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -**/*.env - -# vercel -.vercel - -**/*.trace -**/*.zip -**/*.tar.gz -**/*.tgz -**/*.log -package-lock.json -**/*.bun -**/*.lockb - -/db/migrations/meta -/db/migrations/*.sql - -#local build files -**/build/src/ -/build -/drizzle - -# index files -**/indexes/* - -# dist folder -/dist \ No newline at end of file diff --git a/test-scaffold/.prettierignore b/test-scaffold/.prettierignore deleted file mode 100644 index d5ddef8..0000000 --- a/test-scaffold/.prettierignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -dist -build -*.min.js \ No newline at end of file diff --git a/test-scaffold/.prettierrc.json b/test-scaffold/.prettierrc.json deleted file mode 100644 index 1707240..0000000 --- a/test-scaffold/.prettierrc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "endOfLine": "auto", - "printWidth": 80, - "semi": true, - "singleQuote": true, - "tabWidth": 4, - "trailingComma": "none", - "useTabs": true -} diff --git a/test-scaffold/README.md b/test-scaffold/README.md deleted file mode 100644 index 9600897..0000000 --- a/test-scaffold/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# `` - -> ⚡️ This project was scaffolded with the **AbsoluteJS CLI** — your one-stop tool for bootstrapping modern TypeScript & JavaScript applications. - ---- - -## Overview - -This boilerplate gives you a head-start with: - -- ✅ **TypeScript** or **JavaScript** support -- 🔍 **ESLint + Prettier** (or Biome, coming soon) -- 🎨 **Tailwind CSS** integration (optional) -- 📦 A sensible project layout (frontend & backend folders) -- 📄 Preconfigured `tsconfig.json`, `eslint.config.mjs`, and Prettier settings -- ⚙️ Git initialization ready to go - ---- - -## Getting Started - -```bash -# 1. Enter your project folder -cd - -# 2. Install dependencies -# (using your package manager of choice: npm, yarn, pnpm, or bun) -bun install - -# 3. Start the development server -bun run dev - -# 4. Build for production -bun run build -``` diff --git a/test-scaffold/bun.lock b/test-scaffold/bun.lock deleted file mode 100644 index f05c027..0000000 --- a/test-scaffold/bun.lock +++ /dev/null @@ -1,497 +0,0 @@ -{ - "lockfileVersion": 1, - "workspaces": { - "": { - "name": "test-scaffold", - "dependencies": { - "@absolutejs/absolute": "0.12.3", - "@absolutejs/auth": "0.20.3", - "@elysiajs/static": "1.4.0", - "@neondatabase/serverless": "1.0.0", - "drizzle-orm": "0.41.0", - "elysia": "1.4.9", - "react": "19.2.0", - }, - "devDependencies": { - "@tailwindcss/cli": "4.1.7", - "@types/react": "19.2.0", - "autoprefixer": "10.4.21", - "eslint": "9.27.0", - "postcss": "8.5.3", - "prettier": "3.5.3", - "tailwindcss": "4.1.7", - }, - }, - }, - "packages": { - "@absolutejs/absolute": ["@absolutejs/absolute@0.12.3", "", { "peerDependencies": { "elysia": "^1.3.0", "react": "^19.1.0", "react-dom": "^19.1.0", "svelte": "^5.35.2", "vue": "^3.5.17" } }, "sha512-7I/2yFvRZ+41vpvQ7cSbVrGNsLe1waMu3uKxc91NhWPz21Zk1j7MT0cfg+zcnYqsgh8rKL3mxNFvb0KwErCR6A=="], - - "@absolutejs/auth": ["@absolutejs/auth@0.20.3", "", { "dependencies": { "citra": "0.25.9" }, "peerDependencies": { "elysia": ">= 1.3.8" } }, "sha512-GgUw2rOz0AxBNKlKwFBQAVBf1Hm5FWLAQN0+Orz9xpRbqasQ18EikNFueY6LK4K6PrutHyhvl+mMepiGOaGC8A=="], - - "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], - - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], - - "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], - - "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], - - "@elysiajs/static": ["@elysiajs/static@1.4.0", "", { "dependencies": { "node-cache": "^5.1.2" }, "peerDependencies": { "elysia": ">= 1.4.0" } }, "sha512-ejZIgmRRethfBrr1iKEca4iBqGjVGppveyVyM0LG7JUhnxns9NtFTC6UQoQLUkRzMRlF65veQg32jwMS01dwzA=="], - - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], - - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], - - "@eslint/config-array": ["@eslint/config-array@0.20.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw=="], - - "@eslint/config-helpers": ["@eslint/config-helpers@0.2.3", "", {}, "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg=="], - - "@eslint/core": ["@eslint/core@0.14.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg=="], - - "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], - - "@eslint/js": ["@eslint/js@9.27.0", "", {}, "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA=="], - - "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], - - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.5", "", { "dependencies": { "@eslint/core": "^0.15.2", "levn": "^0.4.1" } }, "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w=="], - - "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - - "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], - - "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], - - "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - - "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], - - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - - "@neondatabase/serverless": ["@neondatabase/serverless@1.0.0", "", { "dependencies": { "@types/node": "^22.10.2", "@types/pg": "^8.8.0" } }, "sha512-XWmEeWpBXIoksZSDN74kftfTnXFEGZ3iX8jbANWBc+ag6dsiQuvuR4LgB0WdCOKMb5AQgjqgufc0TgAsZubUYw=="], - - "@parcel/watcher": ["@parcel/watcher@2.5.1", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-freebsd-x64": "2.5.1", "@parcel/watcher-linux-arm-glibc": "2.5.1", "@parcel/watcher-linux-arm-musl": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", "@parcel/watcher-linux-arm64-musl": "2.5.1", "@parcel/watcher-linux-x64-glibc": "2.5.1", "@parcel/watcher-linux-x64-musl": "2.5.1", "@parcel/watcher-win32-arm64": "2.5.1", "@parcel/watcher-win32-ia32": "2.5.1", "@parcel/watcher-win32-x64": "2.5.1" } }, "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg=="], - - "@parcel/watcher-android-arm64": ["@parcel/watcher-android-arm64@2.5.1", "", { "os": "android", "cpu": "arm64" }, "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA=="], - - "@parcel/watcher-darwin-arm64": ["@parcel/watcher-darwin-arm64@2.5.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw=="], - - "@parcel/watcher-darwin-x64": ["@parcel/watcher-darwin-x64@2.5.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg=="], - - "@parcel/watcher-freebsd-x64": ["@parcel/watcher-freebsd-x64@2.5.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ=="], - - "@parcel/watcher-linux-arm-glibc": ["@parcel/watcher-linux-arm-glibc@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA=="], - - "@parcel/watcher-linux-arm-musl": ["@parcel/watcher-linux-arm-musl@2.5.1", "", { "os": "linux", "cpu": "arm" }, "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q=="], - - "@parcel/watcher-linux-arm64-glibc": ["@parcel/watcher-linux-arm64-glibc@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w=="], - - "@parcel/watcher-linux-arm64-musl": ["@parcel/watcher-linux-arm64-musl@2.5.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg=="], - - "@parcel/watcher-linux-x64-glibc": ["@parcel/watcher-linux-x64-glibc@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A=="], - - "@parcel/watcher-linux-x64-musl": ["@parcel/watcher-linux-x64-musl@2.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg=="], - - "@parcel/watcher-win32-arm64": ["@parcel/watcher-win32-arm64@2.5.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw=="], - - "@parcel/watcher-win32-ia32": ["@parcel/watcher-win32-ia32@2.5.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ=="], - - "@parcel/watcher-win32-x64": ["@parcel/watcher-win32-x64@2.5.1", "", { "os": "win32", "cpu": "x64" }, "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA=="], - - "@sinclair/typebox": ["@sinclair/typebox@0.34.41", "", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], - - "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.6", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ=="], - - "@tailwindcss/cli": ["@tailwindcss/cli@4.1.7", "", { "dependencies": { "@parcel/watcher": "^2.5.1", "@tailwindcss/node": "4.1.7", "@tailwindcss/oxide": "4.1.7", "enhanced-resolve": "^5.18.1", "mri": "^1.2.0", "picocolors": "^1.1.1", "tailwindcss": "4.1.7" }, "bin": { "tailwindcss": "dist/index.mjs" } }, "sha512-hJNjpov/UiJc9ZWH4j/eEQxqklADrD/71s+t8Y0wbyQVAwtLkSp+MeC/sHTb03X+28rfbe0fRXkiBsf73/IwPg=="], - - "@tailwindcss/node": ["@tailwindcss/node@4.1.7", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", "tailwindcss": "4.1.7" } }, "sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g=="], - - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.7", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.4.3" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.7", "@tailwindcss/oxide-darwin-arm64": "4.1.7", "@tailwindcss/oxide-darwin-x64": "4.1.7", "@tailwindcss/oxide-freebsd-x64": "4.1.7", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.7", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.7", "@tailwindcss/oxide-linux-arm64-musl": "4.1.7", "@tailwindcss/oxide-linux-x64-gnu": "4.1.7", "@tailwindcss/oxide-linux-x64-musl": "4.1.7", "@tailwindcss/oxide-wasm32-wasi": "4.1.7", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.7", "@tailwindcss/oxide-win32-x64-msvc": "4.1.7" } }, "sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ=="], - - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.7", "", { "os": "android", "cpu": "arm64" }, "sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg=="], - - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg=="], - - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw=="], - - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.7", "", { "os": "freebsd", "cpu": "x64" }, "sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw=="], - - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7", "", { "os": "linux", "cpu": "arm" }, "sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g=="], - - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA=="], - - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A=="], - - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.7", "", { "os": "linux", "cpu": "x64" }, "sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg=="], - - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.7", "", { "os": "linux", "cpu": "x64" }, "sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA=="], - - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.7", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@emnapi/wasi-threads": "^1.0.2", "@napi-rs/wasm-runtime": "^0.2.9", "@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, "cpu": "none" }, "sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A=="], - - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw=="], - - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.7", "", { "os": "win32", "cpu": "x64" }, "sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ=="], - - "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], - - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - - "@types/node": ["@types/node@22.18.13", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A=="], - - "@types/pg": ["@types/pg@8.15.6", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ=="], - - "@types/react": ["@types/react@19.2.0", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA=="], - - "@vue/compiler-core": ["@vue/compiler-core@3.5.22", "", { "dependencies": { "@babel/parser": "^7.28.4", "@vue/shared": "3.5.22", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ=="], - - "@vue/compiler-dom": ["@vue/compiler-dom@3.5.22", "", { "dependencies": { "@vue/compiler-core": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA=="], - - "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.22", "", { "dependencies": { "@babel/parser": "^7.28.4", "@vue/compiler-core": "3.5.22", "@vue/compiler-dom": "3.5.22", "@vue/compiler-ssr": "3.5.22", "@vue/shared": "3.5.22", "estree-walker": "^2.0.2", "magic-string": "^0.30.19", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ=="], - - "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.22", "", { "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww=="], - - "@vue/reactivity": ["@vue/reactivity@3.5.22", "", { "dependencies": { "@vue/shared": "3.5.22" } }, "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A=="], - - "@vue/runtime-core": ["@vue/runtime-core@3.5.22", "", { "dependencies": { "@vue/reactivity": "3.5.22", "@vue/shared": "3.5.22" } }, "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ=="], - - "@vue/runtime-dom": ["@vue/runtime-dom@3.5.22", "", { "dependencies": { "@vue/reactivity": "3.5.22", "@vue/runtime-core": "3.5.22", "@vue/shared": "3.5.22", "csstype": "^3.1.3" } }, "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww=="], - - "@vue/server-renderer": ["@vue/server-renderer@3.5.22", "", { "dependencies": { "@vue/compiler-ssr": "3.5.22", "@vue/shared": "3.5.22" }, "peerDependencies": { "vue": "3.5.22" } }, "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ=="], - - "@vue/shared": ["@vue/shared@3.5.22", "", {}, "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w=="], - - "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], - - "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - - "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - - "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], - - "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], - - "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], - - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.23", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ=="], - - "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - - "browserslist": ["browserslist@4.27.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], - - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - - "caniuse-lite": ["caniuse-lite@1.0.30001752", "", {}, "sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g=="], - - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - - "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], - - "citra": ["citra@0.25.9", "", {}, "sha512-0JXw3wTB0B2PAaRl4TDyc/2ewlNu3Hznr5FeeySjHFLAwlMd37qM/nQKtqsb1hQhIAUk0NqNFqJ4jtNclSamKA=="], - - "clone": ["clone@2.1.2", "", {}, "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="], - - "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], - - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - - "cookie": ["cookie@1.0.2", "", {}, "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="], - - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], - - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - - "detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="], - - "drizzle-orm": ["drizzle-orm@0.41.0", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-7A4ZxhHk9gdlXmTdPj/lREtP+3u8KvZ4yEN6MYVxBzZGex5Wtdc+CWSbu7btgF6TB0N+MNPrvW7RKBbxJchs/Q=="], - - "electron-to-chromium": ["electron-to-chromium@1.5.244", "", {}, "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw=="], - - "elysia": ["elysia@1.4.9", "", { "dependencies": { "cookie": "^1.0.2", "exact-mirror": "0.2.2", "fast-decode-uri-component": "^1.0.1" }, "peerDependencies": { "@sinclair/typebox": ">= 0.34.0 < 1", "file-type": ">= 20.0.0", "openapi-types": ">= 12.0.0", "typescript": ">= 5.0.0" }, "optionalPeers": ["file-type", "typescript"] }, "sha512-BWNhA8DoKQvlQTjAUkMAmNeso24U+ibZxY/8LN96qSDK/6eevaX59r3GISow699JPxSnFY3gLMUzJzCLYVtbvg=="], - - "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], - - "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], - - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - - "eslint": ["eslint@9.27.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.27.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q=="], - - "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], - - "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], - - "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], - - "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], - - "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - - "esrap": ["esrap@2.1.2", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg=="], - - "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], - - "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - - "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], - - "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], - - "exact-mirror": ["exact-mirror@0.2.2", "", { "peerDependencies": { "@sinclair/typebox": "^0.34.15" }, "optionalPeers": ["@sinclair/typebox"] }, "sha512-CrGe+4QzHZlnrXZVlo/WbUZ4qQZq8C0uATQVGVgXIrNXgHDBBNFD1VRfssRA2C9t3RYvh3MadZSdg2Wy7HBoQA=="], - - "fast-decode-uri-component": ["fast-decode-uri-component@1.0.1", "", {}, "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="], - - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - - "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - - "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], - - "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], - - "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - - "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], - - "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], - - "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - - "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - - "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - - "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - - "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], - - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - - "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - - "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], - - "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - - "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - - "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - - "lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="], - - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="], - - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="], - - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="], - - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.1", "", { "os": "linux", "cpu": "arm" }, "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="], - - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="], - - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="], - - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="], - - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="], - - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="], - - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="], - - "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], - - "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], - - "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - - "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - - "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - - "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - - "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], - - "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], - - "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], - - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - - "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - - "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - - "node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="], - - "node-cache": ["node-cache@5.1.2", "", { "dependencies": { "clone": "2.x" } }, "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg=="], - - "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], - - "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], - - "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], - - "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - - "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], - - "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], - - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - - "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="], - - "pg-protocol": ["pg-protocol@1.10.3", "", {}, "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ=="], - - "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="], - - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - - "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], - - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - - "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], - - "postgres-bytea": ["postgres-bytea@1.0.0", "", {}, "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="], - - "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="], - - "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], - - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - - "prettier": ["prettier@3.5.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="], - - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - - "react": ["react@19.2.0", "", {}, "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ=="], - - "react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="], - - "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - - "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - - "svelte": ["svelte@5.43.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA=="], - - "tailwindcss": ["tailwindcss@4.1.7", "", {}, "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg=="], - - "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - - "tar": ["tar@7.5.2", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg=="], - - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - - "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], - - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - - "vue": ["vue@3.5.22", "", { "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/compiler-sfc": "3.5.22", "@vue/runtime-dom": "3.5.22", "@vue/server-renderer": "3.5.22", "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ=="], - - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - - "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - - "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], - - "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], - - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - - "zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="], - - "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - - "@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.15.2", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg=="], - - "@tailwindcss/oxide/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" }, "bundled": true }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], - - "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "@vue/compiler-sfc/postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - - "lightningcss/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - } -} diff --git a/test-scaffold/db/schema.ts b/test-scaffold/db/schema.ts deleted file mode 100644 index 8a57805..0000000 --- a/test-scaffold/db/schema.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { pgTable, varchar, timestamp, jsonb } from 'drizzle-orm/pg-core'; -import { NeonHttpDatabase } from 'drizzle-orm/neon-http'; - -export const users = pgTable('users', { - auth_sub: varchar({ length: 255 }).primaryKey(), - created_at: timestamp().notNull().defaultNow(), - metadata: jsonb().$type>().default({}) -}); - -export const schema = { - users -}; - -export type SchemaType = typeof schema; -export type DatabaseType = NeonHttpDatabase; - -export type User = typeof users.$inferSelect; -export type NewUser = typeof users.$inferInsert; diff --git a/test-scaffold/drizzle.config.ts b/test-scaffold/drizzle.config.ts deleted file mode 100644 index 8603d56..0000000 --- a/test-scaffold/drizzle.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { defineConfig } from 'drizzle-kit'; -import { env } from 'process'; - -if (!env.DATABASE_URL) { - throw new Error('DATABASE_URL must be set in the environment variables'); -} - -export default defineConfig({ - dbCredentials: { - url: env.DATABASE_URL - }, - dialect: 'postgresql', - out: 'db/migrations', - schema: 'db/schema.ts' -}); diff --git a/test-scaffold/eslint.config.mjs b/test-scaffold/eslint.config.mjs deleted file mode 100644 index bba2ef1..0000000 --- a/test-scaffold/eslint.config.mjs +++ /dev/null @@ -1,243 +0,0 @@ -// eslint.config.mjs -import { dirname } from 'path'; -import { fileURLToPath } from 'url'; -import pluginJs from '@eslint/js'; -import stylisticTs from '@stylistic/eslint-plugin-ts'; -import tsParser from '@typescript-eslint/parser'; -import { defineConfig } from 'eslint/config'; -import absolutePlugin from 'eslint-plugin-absolute'; -import importPlugin from 'eslint-plugin-import'; -import jsxA11yPlugin from 'eslint-plugin-jsx-a11y'; -import promisePlugin from 'eslint-plugin-promise'; -import reactPlugin from 'eslint-plugin-react'; -import reactCompilerPlugin from 'eslint-plugin-react-compiler'; -import reactHooksPlugin from 'eslint-plugin-react-hooks'; -import securityPlugin from 'eslint-plugin-security'; -import globals from 'globals'; -import tseslint from 'typescript-eslint'; - -const __dirname = dirname(fileURLToPath(import.meta.url)); - -export default defineConfig([ - pluginJs.configs.recommended, - - ...tseslint.configs.recommended, - - { - files: ['**/*.{ts,tsx}'], - languageOptions: { - globals: globals.browser, - parser: tsParser, - parserOptions: { - createDefaultProgram: true, - project: './tsconfig.json', - tsconfigRootDir: __dirname - } - } - }, - - { - files: ['**/*.{ts,tsx}'], - plugins: { '@stylistic/ts': stylisticTs }, - rules: { - '@stylistic/ts/padding-line-between-statements': [ - 'error', - { blankLine: 'always', next: 'return', prev: '*' } - ] - } - }, - - { - files: ['**/*.{js,mjs,cjs,ts,tsx,jsx}'], - ignores: ['example/build/**'], - plugins: { - absolute: absolutePlugin, - import: importPlugin, - promise: promisePlugin, - security: securityPlugin - }, - rules: { - 'absolute/explicit-object-types': 'error', - 'absolute/localize-react-props': 'error', - 'absolute/max-depth-extended': ['error', 1], - 'absolute/max-jsxnesting': ['error', 5], - 'absolute/min-var-length': [ - 'error', - { allowedVars: ['_', 'id', 'db', 'OK'], minLength: 3 } - ], - 'absolute/no-button-navigation': 'error', - 'absolute/no-explicit-return-type': 'error', - 'absolute/no-inline-prop-types': 'error', - 'absolute/no-multi-style-objects': 'error', - 'absolute/no-nested-jsx-return': 'error', - 'absolute/no-or-none-component': 'error', - 'absolute/no-transition-cssproperties': 'error', - 'absolute/no-type-cast': 'error', - 'absolute/no-unnecessary-div': 'error', - 'absolute/no-unnecessary-key': 'error', - 'absolute/no-useless-function': 'error', - 'absolute/seperate-style-files': 'error', - 'absolute/sort-exports': [ - 'error', - { - caseSensitive: true, - natural: true, - order: 'asc', - variablesBeforeFunctions: true - } - ], - 'absolute/sort-keys-fixable': [ - 'error', - { - caseSensitive: true, - natural: true, - order: 'asc', - variablesBeforeFunctions: true - } - ], - 'arrow-body-style': ['error', 'as-needed'], - 'consistent-return': 'error', - eqeqeq: 'error', - 'func-style': [ - 'error', - 'expression', - { allowArrowFunctions: true } - ], - 'import/no-cycle': 'error', - 'import/no-default-export': 'error', - 'import/no-relative-packages': 'error', - 'import/no-unused-modules': ['error', { missingExports: true }], - 'import/order': ['error', { alphabetize: { order: 'asc' } }], - 'no-await-in-loop': 'error', - 'no-console': ['error', { allow: ['warn', 'error'] }], - 'no-debugger': 'error', - 'no-duplicate-case': 'error', - 'no-duplicate-imports': 'error', - 'no-else-return': 'error', - 'no-empty-function': 'error', - 'no-empty-pattern': 'error', - 'no-empty-static-block': 'error', - 'no-fallthrough': 'error', - 'no-floating-decimal': 'error', - 'no-global-assign': 'error', - 'no-implicit-coercion': 'error', - 'no-implicit-globals': 'error', - 'no-loop-func': 'error', - 'no-magic-numbers': [ - 'warn', - { detectObjects: false, enforceConst: true, ignore: [0, 1] } - ], - 'no-misleading-character-class': 'error', - 'no-nested-ternary': 'error', - 'no-new-native-nonconstructor': 'error', - 'no-new-wrappers': 'error', - 'no-param-reassign': 'error', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - importNames: ['default'], - message: - 'Import only named React exports for tree-shaking.', - name: 'react' - }, - { - importNames: ['default'], - message: 'Import only the required Bun exports.', - name: 'bun' - } - ] - } - ], - 'no-return-await': 'error', - 'no-shadow': 'error', - 'no-undef': 'error', - 'no-unneeded-ternary': 'error', - 'no-unreachable': 'error', - 'no-useless-assignment': 'error', - 'no-useless-concat': 'error', - 'no-useless-return': 'error', - 'no-var': 'error', - 'prefer-arrow-callback': 'error', - 'prefer-const': 'error', - 'prefer-destructuring': [ - 'error', - { array: true, object: true }, - { enforceForRenamedProperties: false } - ], - 'prefer-template': 'error', - 'promise/always-return': 'warn', - 'promise/avoid-new': 'warn', - 'promise/catch-or-return': 'error', - 'promise/no-callback-in-promise': 'warn', - 'promise/no-nesting': 'warn', - 'promise/no-promise-in-callback': 'warn', - 'promise/no-return-wrap': 'error', - 'promise/param-names': 'error' - } - }, - { - files: ['example/**/*.{js,jsx,ts,tsx}'], - plugins: { - 'jsx-a11y': jsxA11yPlugin, - react: reactPlugin, - 'react-compiler': reactCompilerPlugin, - 'react-hooks': reactHooksPlugin - }, - rules: { - 'jsx-a11y/prefer-tag-over-role': 'error', - 'react-compiler/react-compiler': 'error', - 'react-hooks/exhaustive-deps': 'warn', - 'react-hooks/rules-of-hooks': 'error', - 'react/checked-requires-onchange-or-readonly': 'error', - 'react/destructuring-assignment': ['error', 'always'], - 'react/jsx-filename-extension': ['error', { extensions: ['.tsx'] }], - 'react/jsx-no-leaked-render': 'error', - 'react/jsx-no-target-blank': 'error', - 'react/jsx-no-useless-fragment': 'error', - 'react/jsx-pascal-case': ['error', { allowAllCaps: true }], - 'react/no-multi-comp': 'error', - 'react/no-unknown-property': 'off', - 'react/react-in-jsx-scope': 'off', - 'react/self-closing-comp': 'error' - }, - settings: { - react: { version: 'detect' } - } - }, - { - files: [ - 'example/server.ts', - 'example/indexes/*.tsx', - 'example/db/migrate.ts' - ], - rules: { - 'import/no-unused-modules': 'off' - } - }, - { - files: ['example/db/migrate.ts', 'example/utils/absoluteAuthConfig.ts'], - rules: { - 'no-console': 'off' - } - }, - { - files: ['eslint.config.mjs'], - rules: { - 'no-magic-numbers': 'off' - } - }, - { - files: ['eslint.config.mjs'], - rules: { - 'import/no-default-export': 'off' - } - }, - { - files: ['example/db/schema.ts'], - rules: { - 'absolute/explicit-object-types': 'off' - } - } -]); diff --git a/test-scaffold/package.json b/test-scaffold/package.json deleted file mode 100644 index fb04f81..0000000 --- a/test-scaffold/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "dependencies": { - "@absolutejs/absolute": "0.12.3", - "@elysiajs/static": "1.4.0", - "elysia": "1.4.9", - "@absolutejs/auth": "0.20.3", - "react": "19.2.0", - "drizzle-orm": "0.41.0", - "@neondatabase/serverless": "1.0.0" - }, - "devDependencies": { - "eslint": "9.27.0", - "prettier": "3.5.3", - "autoprefixer": "10.4.21", - "postcss": "8.5.3", - "tailwindcss": "4.1.7", - "@tailwindcss/cli": "4.1.7", - "@types/react": "19.2.0" - }, - "name": "test-scaffold", - "scripts": { - "dev": "bash -c 'trap \"exit 0\" INT; bun run --watch src/backend/server.ts'", - "format": "prettier --write \"./**/*.{js,ts,css,json,mjs,md,jsx,tsx}\"", - "lint": "eslint ./src", - "test": "echo \"Error: no test specified\" && exit 1", - "typecheck": "bun run tsc --noEmit" - }, - "type": "module", - "version": "0.0.0" -} diff --git a/test-scaffold/postcss.config.ts b/test-scaffold/postcss.config.ts deleted file mode 100644 index e7102a8..0000000 --- a/test-scaffold/postcss.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import autoprefixer from 'autoprefixer'; -import tailwindcss from 'tailwindcss'; - -const config = { - plugins: [tailwindcss, autoprefixer] -}; - -export default config; diff --git a/test-scaffold/src/backend/assets/ico/favicon.ico b/test-scaffold/src/backend/assets/ico/favicon.ico deleted file mode 100644 index 75f35ebb0b5501d5440fdd2bf36daa4c638cd5c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189506 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�vs?W2B<9Bd`1518r||ZtP#eIy8rnd0C+z1` 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 diff --git a/test-scaffold/src/backend/assets/png/absolutejs-temp.png b/test-scaffold/src/backend/assets/png/absolutejs-temp.png deleted file mode 100644 index 7a8117282aec0c16742f38b7eebc680b73b1806d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437067 zcmbq)Wm{Wq({+GgDH7ZY1d2Np3dJQ9cc-|N0!50uyF+m=?pmNY6n87`4#nNWLwnuF z`v=|+Id*nFB$GL3*37I~J5*6#0v$vQ0ssK$Qj$<*005o}06R7byhG(>#4N41sIvIhV#y8gc4`fQ3!0D$LwDX565i{9ar zYm1e+7AYwDjNkqU_G3D|L`6*%86`ye3rZ>!u3EwVDm-=3yy63ny^UzZvh(y3b}KhK zy9IGOp%NI*97L5$_YO*I9srMqB08Zeru0-?VlSUzebTz~5OETHHtHGHq$HyB-6ASW z=)GfV-E6Am(Nom>O!i)c;beB>-Uy<%pZ@>ekR9DF3c=2=f}dAjzKl$Ft;_r0*TPy( z8@$eiNM94AwX192$yy2B`j#V@|fo4s8VtBOIa7$a}B{<2#gb{JSg) z)CuI!T{oim78mv(p4TfqZ&uxoyV_^|+V;eb6ZhgikIA!bp=-g1 zLO2G1iraykQv?wyQu9%Q#Krg|OkZsq8CzZ53OF0yj4rNveqPgAG(S>=L?Zex%={1lmzE~xWriZ)RG&(j;I>D|hJ$E&pc7ui5|9aoefaYKD{(K3<*&chZ zy8A}OY9$3{sjc`z>S=L?be!N@EC*=0LUj8_oRjq@BWJ_1r+@=@8`+=;sz6O8;XwPhR90Bk3lv}_ z>^LAQ2$I$TeAH;B+#r_|5fLe3N{0e?pN&hgV}8STh0VNs$5X#ijC|a8zQVU!f3jEH zeja9X8+1LsEBF%13cAAqCNCZ)C-|G`w~;Qt+KH}7VG<++x>1_CJuW-(pg=tA!I*9o z2{R@;TV+0`1Rw|z(zOMJh{|F4&r3O12l+@-ibG_TsZh~^Lc;>GMNx|2WO4CI8Lc$6 zh}4sI|IFz+i z*N)%~#^>qMiq@O0(T_7MjfWfMT@t+(&6{?OwH#Fbp!giZ9=sTFDL*^*0OITw2mH%q zQw93Yt&hx9I5}TF;R(;N8aZuFpeuoZuK)vKiavCfw9vUH21P{#|1FSR8J?}FV=MZr z-eUyXV0Y_>Jqhj~7p|2a*Ba#Rw+HDjr>@Wc->E+Off?YE_~tSy?1VuvgZ zV>#OBohDR-SP=$w7X2u~6iD#z!D{MaU@#Ez3kkg_1BE}ma6GO_hx;|SfCc0y>(VSo z5%Y=NVwsNb5*NbC>>~)UQ>s0LuUw&=+OisHr|~)qoIX_BWb7lwcnm9+1gzWg{Q< zAWH2c7JN&~=8wo2zkfD2pLfV{vugBC3Ek(|JWP_i-5&hS2z|7FzRAVIZinGjhR}ze zQwyDkkMRob*c>)*mFO%sU~V3>Xj>Wpw0MLxl<4B1sKY=t#i}@zSQMZ%U|uawnvp!O zkR8n@&Vu*ZGfXdgI0QRB3Zz+hzXqt<4eupzr;3br)9oe4m;#@;8hwy8ecdOZ+C0(D?>q zbOy;vjaO&BL<37xl{QIfBp-r=nn?^Lp}^E)=}JC4R2*7~We&!P&u#n+%z1s~xXs|_ zOQT6~ra*>6f+fJYsh^uBt0;YqeaA**4gw;GmO=<63j**D$A-2oZO2k`gyus~0<$?# zOVl^3+7|E+NW$&=qIw1vZ9He&3@=hx?}ELLZu|5yUcl_p)$lKv@k{^1<;r8P-m9T< z1bz3tex>d~Q9iRV1}=PiO)U6O8u0}IY0*}(Zc|gZsxm!*c+P`dTDR|yG(3^-d$FLo zkI+X6Ny(6{m1xQVkOYm?cNMe{$dS=imV|tZIIJO29|b4hJd_R2)K3lS@QqoNP&y99 zghiv_9c5Y&j`Pa*+MDHvC4H}J4VZs)qvBtu+5gKu7u=0-udRetm!_UqH~O~ogM%eGuaS}{&lSYuz4qt=2)y6TP50w!mPomVJDPEDS8LBjtjp@5fUDjyY zCo3Pv2u*BNJM^dCdpl20uB1(;6+@pjSk<}ob^wpn?X8Qt3SH(*WvOC`~>;R8Kbo_oEsm)XI_5GFcuRK(o- zv`v=^M0O~4pem384k0Ci4$_}_Ru?oe#R#UOoa)Yjwo}qNrR=5vLV3Mvr*#uWM?QD#QA&=LO|rT1w5g+OfOT80rnTLKNQ&iE@3QfEXJn<5`)G8pA%3WWBKaK z@#0qX;z_T+^RnX!tminX?e@g8$9>{KCevX;++*}@Ci`*g?cb;o{a2ZyA^dmb&%-iK zn51{)tZk2=9|iUN&b&bs`=2=EkU%vFU?n(?U+xEaRpMfb`Bp`FG?t9?MdDSMB0wOK zVtfK9c_N0s2$eh0OhHZfmNi?VMBa|1`I^+07TqO?) z;$nc(??PhqUdiTA0XdvS^Z_w)BV`jn>$YE`N z`?SrzzlH9Wv-hpnTK?=xYpqAu#&}PXm5%M#sX4{X#^T{F!B=xrSn)@N@IfmV-~HAy zI4d~vTf}KZQLb5>LuE-M=zIpy9(ZJxRh9Pdv0dpl)io$n33jwxT~KgB4yBRT18ifU zSa_nzbc%#f&Ky6Kq`dqr73~4`uCMbRm2V7jslc!K#X(B8A5s{6v0%G?Q$n_KAn|BB z6P!v)EQXL0@X|#=9<4%oiI2|5^16gbC+mmdKcUe}cAwZ;+F^mK_m}#s?*3%hjhQdK z1$pGZ#4r!3yd!9L*-LCzX#X_ly>;=@1EO?(cWQ91!+ztNos5k|QK%aaRc*ZD?1;DL zG#rw=2|)o;BgJ6HuRE!XiP=$d!zrWYF_l3VR@WzjmpIA8vLmbQ4Ew44ENE>~(cF#@5PMCtDut61WgyTlyEyVeTZ#it_2(=w)UUgWGVcfJ z%od#+pHy;EbxQ~`P#7dnwc)nlEli`GokQAD6#MO=S7>pmcmn`&3)WQGFaQ+ z$sO~5htxF%8_RlL!CAN`c!<^`Zmj2xS{$NSV3CxLWgalRB#NZ-na80k^7DJ`2Mkcw z7u<~vo=0fqNfMk9P)^a7DANWalqf@ZnA;KNpGw__th;4vKn$S>gwj5Uvt@}LTRx(W z9PrngRmhxV(*dK5?4pQoCh19BOE&Zao{QJ`<@Gl;cEIu&4_EVrAWB7*aw*=LFYVUP zlWb;THHVXUcob9|Mx6}a>x%FbVLnwlTKXatWm{)_C!tf$9$V8{U&m@;z4n=6HZy-` zSMvWL%-pZtZTXep!`%LLkY|#Pr-9}wQ(d*iYkx(fz3?MN>|C1&`e+Nv^e;-G>|lng z4A;nr6&!^sX+p^;YyuIy&Z;r7*MtnH>k^pUIUuF|Vi}>+5v#Ip@L^=J7h1H=uWBNP zPD)|QCNU^g2}leZ>Q^QZ2=wgO^aepsh(#P|OOGlcrYfbS>+EVxaX#jW-`*+#-)dGE z&p+^anjl6}e=^g~Y*CFb0uyxNQ-NVg4D7i1Mg4i|GuKw7c*l)bVitw+kNyPS4@plO zeJv?}%Zm5Evf>f8DO1txbpS&?b}hxwzfO5zX*oQUXV>Hl|4#hg)cQesIfO3c%at>j~}=bv6R?1Pzzs@nus!&u%oe-udb%P zrnc<_AfLt4Xm`Tgu;S@6)c#bvdVbj;^!Sv)ZXEQl=)-bO6}vXQ`yOvig|2^%ELscP zEiUn&C*26`*m2@o6#B|-thN2#KW@Lb#?MX@Fch-X)ZOy~3RDVr=3-pBMyYWAxWYA1 z8()xQ6>|g>3W?v{90CpH+j+C}_PvRfe6R-v<5EHbP{Re7Hdefd0)=@B7RyHCCZA;N_BY(-Bda7^{pfX)1uH0PBTK(W=_XFb~WAis&LsD#?sF-iN%0m1Xk} zDI*e+={KflGMU_2`qRB582f;sxvGOeEnxfTwesYPxmw*6HRiS5;JJ+ujQn#rh5xp)6xvS=E(1fSd0UJ2`1ai zAJ!=IjK2zOEbyt!z7SFb%?>v{=q491dcn71F$>eHJqy_rjscUBLhrnb4|+9b;WXqjCt-~4#vAWIIs@rl2fb|s0bwrFrrzPoLZ661I|V64y{~T+K7U@=$ah0q*jpeU1C8ocaEpMx zdZ|IuLR087Gk!$j-&jtA@dfXnT|It#Rvmviu!wxn@Ee>tjHOoXF|6jO_)_l2XZ7>B z{$t{wGDC{p$_m`L~M0&j`a1nIm87z44QVPY&xgwh>LMv`Tsx)Gkq;2jz z_Y?<8!J7F-Y}n9&m5}W29dmzoIf4CZ)ULN!3BfpsY=y-b#G$R*tpH)XWM2lTwpy$Y z9UOfiJo9oL2uL}Yi_NJ-Lxfs8$=h;;)(%bY^Hd&`= zP%2^yk}8$I6~_dCu~D<)M87NaL4oDC{ivRgTT%aZ$p&WG0Jp1F>osjQ?DG2`G4_bK z`Ks-C*ZZ(@`SEyKhNb7;DAy`l#?GPE9qEOpvEfot%vY_)CyX;eNXU%$SvgaVqZ98| z{dqjcl#P}g9l`*QCOK$}QNUfu(H{eG3Z&>{DzxVCiKG0+G*6xb7^liB-6~X+jYdh* zlmrf49sXdilL#Csku^-eF9rwwF^*wUG>1okC`VzviJ2f+S5=rOqT(*X!i%~<@|9*= zi+d}K<-nB8BAhFIoQ$~CCfbA+*`{s4{Ub3RDjD#3aa50YVZ_Rd004jd4pmt#)xv_v zg4$%)!ph!KAFWiW&$^W_di5!mgxuN6>-vyB!o>~pE~AuzOHL@UB6%W z9!^|8Hmw<$uw_Kxl=I=_HwxCUGCjka8V8s>xgC%o<`*r^VLJG2SLuOjeV_wQSpwc= zu8L7WZ7GU^f590VsyM>O%kv*`NuyU;WYQ=dYeIgz?`SywkZDJUy1kp@1=j6eR!uot z$Wu!Xy2Onz)sGdCxzNI&ex zyQ2)WMXeJSh;S(CW zC^IuQghN1{qPVC+TR0;7zA=qz@S9JjW;L9s8ZjY%yEu2a$OU{nywBt(*+G(<4hmJd zL6dloWHW$V$<~(2JmZ@Sf_#2d3QIsvr@)CV_>%&gp@^wv|pJa`qOKNHK^EDf7f2HQ#;)$=K>9C#Qps-i_gu zqaK8YB|AIkhtB6K#MR5o=kw~U%$Ma!@3v;_$O17kR_oqwawMfsO zIExVF?wEb00M2)zMCL=L+12DOpC}~(;*B_6?w>?Opa{t^!OSq6JP1H4TEH*vm7M?Q z-&@7PahSzyI1p6~G}>@J5=|F01RU~WHz7$4O`3gEZ8;Tnl`=Hj%9z8J${*2upK*#m zb5YSKD^sKC4u>Kx85?mS&{dbxfF?doQ5j7dQ%UZvQ`$ntxmN<<^IlD@>3RvLDkl%k ztE&X?o2M3uv$oLcSbkIzI}WsWYng+YaAX^?gPGLOtP69So&(ebzNwz_;ZV(~*3B)A zYxj&^`_pQi{CrAuCs=UZ8S}hI@;o&blzpL+;IS~DBVWMpasTXURzGVM_Ch%%!ydxD zP6@mZcZ|)(c4GUyuf8)@{yL`nZPyr61$fh^WFeW@(JzZi2YelT#gn5|*@05rWTP@n z2giQjVg<&+n%>gmfY(xGmYD{qB`Jmp<4VLB`%H7g@DaI0B|lur%A*#={}#pr!j&(P z76AB-d>`G(UPW>>GQ30%yHj{z2>?ESUlLz6^Bb;D_4~v!Uk8(r4jvE#7IeVs2jQS) zI8jVGMEL{}?)5|hvc~vaE2r{JGk6*ZUqYp*n3fl9!SD^4HixzsPM9eXLfK-`hiY^w zkpT9YL$)v_vK0PNtx8u14nvoVpfRDq7iA(&Kop0fHJgoYg}ya=XaC&RgCq28&$|5c zHcaStXSem3`+5DUaxqmbw4Lj>UM_q*DPN5ilX&-T zW`@1q)cB|dEQ_fi+S8j?$gte?ox$0F?PY8T%%uQ$s-VO5pws}jgiDACozku!teYj> zvm2TL)GycH8x(+la||aq$xh@0L9k5*ZWnRPD#}1@^;WI?_K-r ztxyF64a zf!SU|NGfokyR0=RtNKuh(R4NoZ05@NmnW*|#x&MR9^)L}x^XB!` z;?2rUBt+P+`=3vc4H z>A_zNOar7MAMdf#H@YJX$cZ{%qmBF?V!>m}6Q27tDHSXYp+Fj-VW;V#^DHk}3;YFz z{*=R45B8x^$Q-wTzEfSCTUe83I=?-`;c;5D;zsAg6ufd>y-vWq{7cmqa{cSWXi@cH zPeRYncO5CWJ(1xoTBPdlw5ini3gf7d(Bh-Jm4SoE2`9DTAr5izEMSUK)Z;nq^*>)j zrwj4XqABR`-FE4TqSo9#DB0~Ll9dZn%HnSs$X%(HT!p|ft?m*KVU;kbcW~w+J!l*n zM4oO1!9kCDqEzxh$FUePOk`tudCG9?Y-JwVP*=qbm4=dOKO%AZWse0dO*;OsaBviz zak%DA-6*$f&V643*y5zwIV@OxaSt6YTX}?l2DW5$@TY|NsIgR~5Q1rU+)V)fJ)15~vdb`K zfDJ@b?)Ecp!~`{)4g(wy7kLa9YORSHY|qgZCV4yUF1g96@XZ3U=hzJww49eGOZKZe z69UHDGZ`_VIwJXsMw5HfOivkNVKi4NhO$GrZlvvoBnB^61_x72$Jg1`P8nd8|o+XJf)nL%xpu%q(<{OkQDM zNPgS2`@CHEyc_H-Xf}N7@NYqJtFm^{b`m(&+OFPyHU9lo=X9CVbvk%6Tj$$YZV6a9 zs$sAR&MGCwxJs}Cu1K5h7h^ggrXEmBB6M%fVe9f%>>VmmBE`dWC9(1m0U=Z-Psc1V!nUY4K-qaq33UJyFqW+ zHF4nwX2SU<(_Ge%T-PyFlj+cQsOnPzm-d+N)u5H&bmFt4tv&mA9};C>QQJXjMVr8`2vBNe8y0;#~On3^mTDz+v$nm zK~%7}`isX@|6`tT*0f$itZ>;wqxI_xLmuQw(sf;YltHmTSZp8@)=5b6(S<7l7i-?R z%ttXdB=*-DpBZ=5KrmsBjvvN^T%jylTMs6DXBY#o>ITcK6sjT@yXT}D98nC=1f#WN z_=60UScM${Tc8RyxObo#+7Wh55Os{7YKeS9)&U(gLLL67ge2Q7L2PFPOPdVGuXK?maDp~@>K z1*9!BM)=`N+h547-`KxB0KH_PY~pm%7zp75!nKlXo~;vVU|+m$NRwQdn{<9OkH`Dw zIDpO4h;?#I2%3bK7A|s9GMk?)TzO&aJ)I1ZaH;e+d^ex%SPh6`g{=SMt;!}k+Vj-`5bkdX^Pjbd2lDUll|i8$Bnq*1@{i{}ms79IY;+}n4>SMP_(`^1{0 zcQ{8Q6x9CBDbWb4cblyG&yntZ+^<)4pZpS@ERPgfj6!MPLoTcGy6nUvMKR=6=fV~e zfUC4JdZ@J0s<{Mnh-!OQCC5K(KX<*weZKDS(TT)2d=fk7wxgN&I5{0)k^>Jd0+LX# zqgAwD=q9kR;zS8vOTh0@Nh^Cv_Pd z(g=^H*h*8~B(&*k++|uKe|~GozF^k<5-Ny|WmPb;m0hz12gz1<3i8>9i?@_(Vho7e z{${ZWEcht&)#Nj*8-Nr zh_H^tR@xL@1$vzG6h&uJB{diK6&ZoWj_a8v+QKm$oN0x_ z38;LrHUM;DO7%Rqr?t-A7RYp;ut2c@8LID;aPNX9oiC^MH9$;D1`O}qOkWijP+Exr zzzF;D8jF-q5&ZAYTrqv9n^|*b3lT-tvNt;oeEl@x(8w!P7utao#MP1?a z5n|sr*+&r_$A%yKv!~&3LTefi(Q0E~Ma`yQ5bLaktm+`KD7c^rI~LhQ!;eRGH7}t-(&3H&mFaii}EojLNOP zlrbMSUJ#x%Zi_WATU@aUoGiBWv#+Nl58vYc69U|dojM9#53<6>JvU$3*pzBmGZ%SU zhFeL!0(8n!rT3e@=k>)6{0`rWTrTt6#hL&8C`nE@TPjZiB5dzuV&IQMA&7rOzfUwd zN)qQ;ibjke`i(38hn?suuf%0um;im1@OaX`l&vtKGFrfgF(d$bYcU=qekBPIeWY<-Pw|azWk=FBhSJGwyc`>=U(>(ZIHBm z7uYfudJ%yT{%i8Qku|(;!kx>;d6boY@ke;l730{^peYjnbXt!%nJWsOXDN;T+38L4}5v z6i!uy6*&-L9Yuv)(;L=b1S~2LZ5pbx@v+D5|J_rJ*XOE~X=8FFX^XT^%5}+`DqIA? zN`c)tdC|;&F5KiIK7KE>RQ}H zNM7q#LdAB?p3$zEnR0=27$+-#_(c*naAKiKF>ktxoOr)xAp63JM1!T z)p`9w|7+Lu9KW)Lz;>wX*2aj_{jmHoryAQ2Nwn8F0D=tlOVH(c{F{C-h>Q~r$kZ_9 zXf|k40+*+w_;&Xh39#XT|oxj1E4s(_1b%HBD-hAZ@kCUw?L_ z%dN|8viMv-J-y-fTGLB+UE3GBInsY?gOhni@Na&bIJ>@Cb$BonxDFe#F#EE|$9JFj ze42JQWOIwcUbc2ltEWz&Use1rY|(hi$Vw8wC!4s)CoU4*zmQ@A4?afC*jTnY)>mHP z(lt1YhER~#t#nS+Dyk+KvzhsO%~+S|k)j1k)gGUvy3mN#Hjo`8{gFAjNRMsjb9LB` z3>A{1=qpv_b++;z?5YHwWVg#e+dTcSViYVXMK04Yza9FrI1VHsjmxj%@d9t#;Av3k zvAsVbgxLL*_0@F~LgoP#Nl0uHJD2Ce+oUQhqWl5I-x)Uh2m)X*AaG=ESS&mXJ=+5<@88`Nzrrpu#iWTP} ziIwwLtLG7gH>@vwiayF;Y(VnaZGD_3@Z8k!JR=SJ{e+p`0eb;me`Nfo16b{C^E0gB zE>-^l!N^`M`pK_vb3FE`DF5e_CRQs#oryPa{jh+4CI+P-eS{SLkCR5ceU>%c8_KxU z)OM5HJh#(CTRkXxNGEnXAUhSOvR_`4-$_w~{bxE}Ec61NS6o;P6ph9t2ZpEY!YBC2 zpeGtqvC9Ca;}tr1FHt3G$DJ}4h`U-XktDh2y=}@?adJxPPVILs$|JPF;9QF5=|CCH zeVur&^=qHR&vWfpw9vN6!=&)Du2cw^F20ZkzY4hMF6QY3WE5`go|$C@Ldx%P@eW(5 z68-rz|5*LVn451)+a1t$9>Vtg%33-*eRU&O1frxo>hf*TN`a3DNGGHySuZ;ihly~w z(G_y?sJA5<*1spbzNs4XY=YDB+DLyr%`7IirK$D?dueHD65HzQLnQavlBYAQ|Dx@R z(QC`No$qB;dGT)|0-WmWKNNVM4V&>FJ-h$;yO4 zdL{GoEQ1`5r5!Z;SjXtl33B}8PB3k=hMZ4us4R>gXiZ8HD)L z?Y$fy>t?_*zdqWfB=f9vPA7qz_U8k??a%KKf76d>fG*aL~gqh z_kJ$b1OC$(y6)X_ecjI}1h%wgUZn313(&lU$^KJX1C}noV`g{^Pit7OIIn&!FRwrw z%FyM)Do?(`i}RR)vpMy_kp|XaYsY5~hf; z2CA@1+=w94I!HNN0DWjW7xgplA&M3W-+pIf2Xz*}cf3!9&4y5Pl+56!>?6#qz>Vv4 zu5Ot>7opA44_~~3R+|x?!OF-6v3hW=!?~l&EO#}!ire`1D?CM{@gJAQ^3mi z%`N-JkKJC;Rj%An_3KJY@@V~Ucf<^u#T-_?!Fp)3vlP7C*{qC2(8LEdkH=X^kegBk zs(dtwGi7j0HwB#yDSm+L6gH-{ksF=|8vIJeiu~Qe!j2o zaxs7Oc4#?cI|hr6tH7gqna!wi%3`&xe9qedU3o9^8mOdnu#eUfZJPS zzCkRLWz6d>PV{PPKm zdlTt#Jc_U)xDcc?p^^O8iFV2jIOO`?E@m~Y#42*(gA=Q;bnL*Kd-&}iZd7jOt1DM= z5PW*pg4hvOrGWl0Md;0lA6coXf)L!u2Mw3s-JNyUQMa;x5*ggabSAn@eLD!%^<`7P zM2*;nB(LO}h*^I(7nYu~?(Xm%aXb{=JZc~(Id0tdv6+o^9Q?vT?uHziTO6aXxt(A~Yf-;S^Sy!t};P!s1i2K%Z-`Q&0Q&;K$Uqr^daO z_S|)lKevIG<(`kBUo~3)s)!j&3}9PU2StO69|1`!kJw}K{DI@ZS>aw}oDgY9D&AF+ zv^#BN749cvu+lQRlZ-~h3Zzq`_GbpL?i{^C;kJ=|W#m`i07T6h^YhsJQo{)>o#)m< z4Vqkrn47~>w%`l<=z zAq7pT?!_Z2-HuI)LVG*}5*>z~U8FU|B3A)MEt6K+RZ zw9xrfLH{!G`q}-g8Jpl}){Os(;rOHB5euV5d}NXcK?x00#v8S%3_g($nk5FVL()x$ zl=o+oWx==E4chDS%!xyzAV0qpIB2QG=?b1ZufRs}#S^7Z-|KIGuyVQ$3Jyd}DGEOF zd{K;~D7ub;p}%)6x#Z~>n=V+!&Sncf3;AV;>A)C4N_@DPCa*Xy!NO4bx&XXGh_H9n z7N9Z1^@>=kk~zxg2Xui7?l3lbMg8Q>N|2_zur8TIjm=Iqe4M9|+Dg)<09QU?933R5 z#SBGdyA_N2>&Ia8l9FZ&F|6U$)Z(cEH|05|C|ftr{>enL9`4$Sc~dYC@_(X z?`>08T1ha0SG_z4G+z0Wi9MwGNpcF59^pgx!P|b^HLJW1G8bbRzF|a~8{g1!<4+sy zy|?osvWJaTdOnG@2fqM~$={ZoZ2IpFfQ7MRCQXuKvT(_8TLi?PJ^2eF?dD$Zix{ zFoKd%rCpY6LE^X^+AwQ63LHR9theKw^oUKdywH)R0s#lunQ%5eAj-bR%&R_?ux@bVN5xXT17f3?;pl3In;uhV{JdRe7y>+Km=9QK|$GogP33y7m8;0cIUrNiq{Hgmg z?n9;RhZ?zyH|;wE8k0DZi1603Zz(7~KXntwH+43CG{9Y9k1P_+%~g5IU`f0o6b+$3 zR*Ok{Pkfl;9MY3Ii)Ztp|6mhG;a z*|xEt{AA7}6eb`(zM-0q*j65(Em`+UZ|jN!m7F|qwfSDtND5DCj8^)G+d7{Kc-Uu4 zNoMxeD$azld%U$GP*}l~3QSD*&P3MqTp(#_fN;A8`y_WibKH+|dCBwxo?Xc7^uB9!Kcr9ZwUp+(6hYurigqg(?Tu*bf{{KNqGJ?$ zvWSI?FMTYXqW%W;0mTc2BjU+*c8eECM#vcQ*v$(rd-UyRka%5`+qjS1c-_5yAb44i zDj=@*zQ|OY3cP?%Cqtnt^Fp=Tamo&2v=R5pjuO^A>z8(BPrwK-Rb-$ z-+X4;>6YJUp!!b+fm9Rn!15#&cH%+WT69!DD#`6*WfgpQgbYRuWf86AQ;^^RaQOY`ZD6 zF|azSlo5K^m|JM@Eyw%(-tF#KG#{(8GvgEBy1p7h_?a$%JLz)qBi(qQ$47$SQ#mT_ z8aKhR#+b9&xzZtszUrMJ#cpk)A;jq})hQ|>*T}V3@TUiuJW@Evo?YW3)ZdhodzI&Ix6)A7lCQ{boF~!{3H()srlkZ(gSeGu0 z1~)#(=*Q?>e!AyM=yt3`?*Cw_uiTGu?W(GC{fhthxnP0UL>Xlk{ONfeY*B=CyV9xW0hXCD|hubw#HV*OYiO9Rkm*B zmfE0;+w4!Bw?>4Yg?S9f%RTEZ2kh@87| zDsw&!vq~o-fH#7@Ug=FyI3{^SkF>$=Zzs>iu~v4yN5&HZ4E=suuTG^efbkhW6PRCZRa%UtEikHjG|Im5$W~boQu;YQq#X%tdi-*apsd*WL7@~M zCL#Y5MddMQYFu>1byM17@>9fkj1kvt_u`ER;;-L+tysNnsA-=K4JnpG5A3Qdp2pwe zWDC*mdfdMm&&1JZm2jD-cXXVrszNra<5yWEB1C+N-U;2Heyka1s9OBM1l4h!rZ`+g zYdOCn@3|6sU|>=poyE)YJo@RhmOYxu(`sk(P+_)mI<k-REwCYO0-~`C&okpfc5a@cdAvdxJ(hn>BA$o9 z_&h{q05vpjUp;SWHSOL%2YTOC`>#CjU~cqc3dAVy3>J{+l@{cp2TJ1lTMq$DDnkc= z(u0|7j@EU}4(Nu<&d>j*JT}I>MK7rJ~HMfJ`aXs@W`8l(3trUY3WSE+fyd; ziqmy8pFaq=?lL?s*EkHSTm$|92hsHo3lUM-WAqQ$P{ReQHy>srTPSH%Yn-VS{a5j# zQ@>=$!BaQcAov>DcxkA~S)jTbn^S%N#GxD$8mS+Au<83JQH4{owMXrb9!As9GCsDi zBJh>kR2{XFy0DM3!}Z2-Le*Dl3SrUOY*C)=cuyNJBSCWLUzbg7}v*<||B0F6X=RA5&1O>n7z9oSYMXKIV+vKaRBl$lG>t+cuH)LkVEr zuWSvTQ!`J0jCI01gL6iYj4W3L)2+@%Fdy(=^dmTbb+-Hr)lFE>ZjM}kE{kie&Sh_} z!NBH;u^p7Gl&LMDhw%>Xtn2`gO=jSb460-~mWizuR}aH$p|9z*WITal1cy^;&)eMR zRzmk&bG!|?H;<#tKkwcYR%z-QIF=`AqhKxnu;51OF;cesj6WI!0<;9Kn0~A}!=qHq zV2~`}yo?YQ%$wJG1!nn(IAEj}OU0N_?}Y19Qy!>VbBt@6QM&e-xiCe-~5@~q|S%eE^u z=K5PWPR{Q`Z9CES8WzX|fhEOCZ%k{36?BHk$MPK zi4Ht|1A=r6hO{Tw0K(@y^1!M&SD3A96{QyKT2sU}V1faW5En$FaVMB;{ zm>nWRAsbw#<~n&#!lnd`r*n!-vW-%7;zfX?z!eFt|3K|yHozuUwvzkihzOJ0P(TA2 zB@0|hdr=}8RjLT{vGBM?ZvXeiF-<{4UwX4w$L}PMsivI0uY5Ot<7KZyVz;ii_R?72*u*#%ssOO<=8y~3I1Zcpv~$O8 z`rvcFW8IW*#*9B1W zxwXz~o^&BD*}sNmYiKnIH%W-i-pLkiv>n7zSOBp4ZzADI%Xw=lrojpl>D97Aw~O?H zH{5Q1GuQHdq)H@{Q{v<_CXuUn}Ja!6SRpPxqu$w%*-CaiD_pKUDrm5OcT;p?sW#PI zCC~d!oH=$cF2DL{?Z0pzs}W;05||9TjU+XW8rC+KI&*Su>+C(3zx8Ln>yGo^X)|Vg zVwguZGahx=JiPh*#bUtObLVOiNr;&c!yDLa&O|T$nr^ytG7=U5p-|mv3fEwYZX^rO zPh8>9|G5GceVYk1K+*!zgQw5p*nRioT&w!$-}Hqz{))ei|M@Rppqt)sb9>vn?#0<1 zX=80bkQ~uaY(OB&b?{wDu!q2u0}Xanc=puFbEQ7&VGzA?4Iriwfc2Y_QdN@Je3n`j zXwwa^Tfs!A+6enTP*ih~n>yP-S^^|Gm@eoKW?zO+F3$ zPTwP}UOOI`sy`=d#x&z_cEpATr)xNftx+*}2_5Z30T75N`ONFdj7$zHHCt5o4mX<} zKn{)=Ctz8GKIqw3^Ho-b7y-v#0eF5=fcLt<73Myd`}0kbj#o>L^q404q~`#NS)|BO zj79oA>4&a~+WF`*!`uu?U;fF9+*370U_ehfp(!}H2ZTP@NfQV%?9&PQYLsMO%{1Mi zmpsFCEomN+jwJcDg8qnto5$bt=HL3rD}LxJFk{A_5Hlf}@u=I3(>A*^8sr(1HE?8A053`vdqZ|MGRZ{iA1i;WdYK_2v6Of@gM`7CB%@+Ic}?RKG)Z zSi^B(S+e)(3o8@^Xqp5jSxC2^mQ5el51ioeVqUkFk^!lyXM}wh9-e8j0#FG-ChUh$ zgOuH7p-BV~5Q!#X#ZP2!KTBs!ikN!vee_26-j>OQeW9b2Y1P8B9gi}m=xn!j`sKS( zcM>5)*Ty@A)8n*$)-nO;oiivYhH24_FG`BwK&YCXF@4Vr8?BsW@BaYo>0sGZzBf$Ih#gg2t}%gnEg0GpwJXbiVp6K?)u#$B@xqGMzpbE z7!p@pu^%gIiQjtDhw;kiy#_n?AH&fnU8Q{owlFT6rJ$Hf=}b(g?*WT}0hS68YE`vy zV1L~A?i=p7?d3mk<@xWn88bdH%p;o_k18D8*!}rfi~V5lp%*I_7#7JP2P}7r_uO*~Cr_T% z6_+2xZU6Rb@vHyjsd(`A<9z!YKf-&CHym6YxVl2Nv1vr9Nf>-!l;k+BEeY^lGMdvB zvNRz03H6DMsJ=P)Jcps^jxwmfaM|_XSn=difg{i?v2W4y<2IlhYMq8|B5hnPl>0nX zazkw&qj@u*D(UH}Mq!XW@vrSjgQei^2E zlvb1X#wrd7u-PE&vYM_U^(1hqJQB3BQ>|dni%hD-l3Hn8Hla0Kdf^tH{DgzL>COl7 z1OM!o^b0@w60ENa*FNou+T7aI?rx*smyi`0cbhoZOg4XGAgWMNR0yb+N)%T&E}vfQ zj2V9t%nHejM-ATl-uJFtdg;-#n;Yvq`QU?C3`4YOoKZHehDsxZp;w>ND^KkR35G2b zR!{mQr}uWVH;?(a8QlE^3lCt_0*ZdZqaV7m3eZ&;Ihfh+UV0;VU<04=l*@E@Ye8&}+Ezm#L96<9doW#N-YuZr{7NewJ{es$s}{+SsOU>y znXn!qdnf%cBE2QHC^Ebhxu1SiD9An@L0_d~vWLDPWpbJlWOb7((cKz>=sSJ<>@;8q z&z4Fg8AWf;1^tk|+@yWP&e1q}e8 z5U)05m|pe|o|ujT0|1rEtZ>{JH4F%q6`K(ahc?%6?PK=g)(3XGY2$(()nmoI5C3=&%u6Vwv9c4$0v_eX~P+h;C**Uvxu z*h9YUX3Y4wF)Ji99yK_1cIO-R9oWb-XU}1Xh?0~FA8G_MtxgZjzNN&stBrDdlyBnQ z)+%(bgHL#`PiofsM7q>C`isq$@I%=D)i5q7vPkffU%k+ zf;D*NB?6K>EF^r@>?mT9;-F}S3UBpc6|o%03RFG*s>5~kihcN*|MYwHJ^%ZE#Eoyh zfmb}?GF|` zJX`N^47ZQTvy29CfLepkE8i_wN%GCIwE?;zH3V?*AtK2u@A{sT)qxzx(#|O6B5>f~ zmev+4y#4lj^w)pt&3N~R&vE~i7vgiS+y|xF&WIda)u3Q5JbG$~ejalYOXMDk?k*r~ zgN;CjCibYJh(P2v|Q3}iIVZo>S50=tc;1ooC%3rWas zu|)uE4$ufTeS}9Qehv{tR7IJj6iuqKpXIQw1o$dIDn(2?i29#NVy4#uK;Qrd!hV!! z2rj09Ap-QKW2U4At0V!_$U-$rDl!LNdC8UzU$n~C{J`v1>WX7WcZ+XjG4nOYN$KAW{;DP0d2T$gLTv*+v4+#d*np%b}pz^5}B*v1G z!BJI7XEMUdNuA$P5>RXM&2u+V_Pbf@`o5Pf*$Ziv#fMWXms!b&m_UZAAV?WWb>GFf ztQry6SV)V5hhifd-~R49@Qj~)3(jmW@R%oEP>;EI9U2kmmclS}Ln$Ria8O}X^j$1A zx@HvA!eJJnA|l;$>JE**+^u(V^bvx2jM)yRu8sh*D-jT=a5YH4@#COR^R&F;QAwIG z1RS!Km*H7gFxd%90Z^Gp*r93Ik8JNwMA@s;$z2yG9Gwc-=xP(to`OR^H!DekkR>Q0 zrnj^whb((p$Dz-Eu=%}%KSW^Pbpu~6AWb01>_I2kh}&#Zr34K?C;)pzI%k=7$p8R_ zaCtuIPaX=55&e%%kEhG10z)G%y66y&99hLJ_npNHp8qD?_`7e%!Grs7$>kS{xuOvj zaJ9;wS~ewsBvp2e#GEAeT4U{gwgV@+nr0G@Qc;Vo{c-#~Z#eeR>woyjL%#K9%=ox5 zk8EZ*V6C<$=l#W&f#lPj#Ggj#c>NAFWb1ID6aNURKuWo0~g?@69G zU3kjpT%ps?{|5Z%-+3(Vdfy#<)0^*zW9N42;(ZGYDwVecc6&-X86$vb3bfw-3J)x( z0G1YR==6}HRmlZo=?!i^qQmM5L7`tej4pz68yL{&UiV(0Mxy!oz@i7Dp;U_27w4$@ z)$a+JF2J;A|Al(pd8d*6{quXK)_;@@CQA)~geL1F5P%92L-e<}S>@-X^3CtQI`uelU0 zS2&I>qDo;ykx6s8n;3z{h$z?J_5H>LM2~B$JV$bNT@6hj5K<70v69Og)(`rPm@(rM z$E=XdcvRq~k9_3#RYxydyZ`u!$YEf$ajU~E)7q!L}5@^^(pTc zA^76(!&_m0{`VTAH=W!(rdAM;sIQI*~K_;(E(IzYNI#$5=4WL3{0e&g( zHTnT~faS`U>>qA7!x9B45sn9CQnf5q#>U~p?fwtEV{vK51#f-ccRk=|KV!znkC~9n zc*H_hzx9^4zx{Kc^!UfWb1|%pr%pW>nRcm?@||!0A#W=mU|GbqR37I578zWKCfeU; zWxvOG-TO^AUTYPA@GU%urqRh4OoN%8USOj7jvJ^Sip`xL=r!N+jkqF`h3X?9i}n;W zR$~Y_eBmJsL*n%5v-_3}i>x86R4C)SqeIh}s7X?G`c@EE9%VY&yE z9-VkQ?o?2wI?pYb_ILc&9Uqj2ygO9_3jtg3)Q1p z1*z{r3ZXQJuKf+WM(p#UkO~&7_qp`l3bxx0`wow1@4a)ev2)kwz2|4Y@Aszf!x=L^ zUd$t#8IM@>8&hnot^Mrg<{Ea+ovmT9hzte#QZq4-KI4T>A2c0Sa`n2rlztk(_zt#n z3P_*^TD13Ft-q>&r(^{rG{h9V&?Mp)Rjv78?T1+#0nqMC+D8J&5eUzH_P%Ld5({t< z3oM4jJ@*{Pv19jRV`H6f`Db5|@BE=J*7Eo%zV-FD^QL2sE31JafdQnd`r5$q=DV~^ zPxweqlt?yD0; zrMC!sO2q)PP;v;#AHS&9lp;sRo~A3dxK|G_Jq?`uw7&KK0ziM=y=z$M0w62E?UTl=YDe+y<_6#n;{)DZ|N|ETCFb zMA$w+`PPs=s+-fGK-yP8rUe4p{8+xJ^|4*<;P8X@nSoDivYQ$KI7RI96#=;LiXNkg z>2k3eJ@7z?gQc6cl$u6vY;Nhm{#B}^m%jc({NH~5J=h&qaqW{Y)?@Y$+?7zfB@7Fu zTA@e|y@nhf5+w(S<@?~G85_)qA_n^!M5kd0NkJq%&dLC56kI#b5Q&f#p>84R{|BLj zfRY&~-;TTQBRuvQ?7tz*S)hk>e$YK0QYbQALQUCQZZSP)cuYfBo`^_7Uh?aO06o1VDG-d# z`lwMgEXcCUX+h%1(L*|PV1>W-+8gn!FZvBF&z#j|*Ivr?eOugZqe31!BGT8&N%d|? z^?Zi#kWP|>B%&#**WiE^!R*G?9ySh_^?*(Q4e0GW0aI=fIkd&v=5XpgZ+z>mul(UJ zJpWxdW5&maSs|J6h(y0{#bwuA^Hql~J+e4AZi6utW3=cE`c6MdiIq+aRQT}pij^uw z35BW%-;s0h3O7^vg0edneO`H?i8p>!KeFg!vYRWS8)eI*2umo8kQdzq?A7p%zvXO~O+B3FVdi#6=-Zu5@2PHK01??225qh{uu`Q~4p~S|EP=|PsB#-tSoAP?LIko`i5CEbSV2o5sIvaiJu)8XBqTIC zSi%~S5E9lo>4(SCN22LpAo5Np53Q{ zt`NyhtJb0@>mp2wLeU!n$6VkRUr9+8;FHCv07pIRNFojG}?g29qnRH9W=*=q`)7X`6b zUG&EoEngrByD5rPlULA|$1W87LtX?$s-Z#vlhGSXz=}TV8Aw3P9*328p_F`hia_;o zkr1dV&n!lJ7g&yVP=XQ^g!1!~)SsJR&quM=hv3OmXK~Nn_eX1mpZH(?vL5{Dzlkq@ z>;gBu`4+wPw$oT$DIC}sNRnB74#g@FO?|l>`qv8|O(+nmDz-kKX|mzdqoD3BZDxe_ zvBof^ia@n0wdw5k;U17lT2nb&+^=h(z-p|r{$Q6ZVaKscT(TFb^~JaXpm9+iqq)k% zZ%$PwA_+~jG#glm>dBmtLodw_WwoJ2pqk|>R1w~1<8$8p$I48>J-tLJ)V;!xr%nEQ zpc5-K`X76dbgv`n`+@`oBHBo3xkRoeuX+4Yw6%3S@8AE1p8G@3D;$<_Z`8U~ZwWi1rpj-vy80L?>hWkfJAntZ#I;j1wyC;~GD?{<(3{n17^N zaZvv+!KG#y;r6n=lLrW(1lQF%mRsYf-Q~z5NA~M6mmk7=KYTBL<|kf-_rCUbap5Hg zapcM?7#Uo)1{eAJg|NR2p^vV-F1Yu)5Q?yCDHOEY1cVS8TzlulIT8sJKt_0UWS>p= zBQDUrv#@o2AHUi2A5D6-X>?Fg4rQaDdtizM=kL^CXp|$Y-fD~+& z4ZvTspRF0*`8KtbSwZml#{Xf?L68a|N=VmgcBd?1|D_Ave46_JjlR&Y_jW{f9uT&M zXeE+OH6B0HxL8nM@PteG-CubX;_Mmzr?=h7TOVjRbYQ^N+Q6~Y$%v3D7mGzOR4p>X zwWB@#L-&uTCtsLSq$UeCk-~9X+A$*Q6ZBD+Q%;G5qAEqU2qj21$!rB?X1?hs)g3G5 z1n%+j^>>p9{8rlEV%Fqtd5<=n81WHH!GuE1B+SlZ6G{LB_M``P;tJZu{W^$UUGexUxU#j0 zaXA8j7_Ot8lp%jj0E+Sl+n>gW3>M|xg(518F~!V#8w&ubd!wu!Nog-|FO^4;BpgIy z^wf~YJ5+^eA8x2rYwMeF=8jvpPQ35+FFOC-IAg{ikLea?#*9Z4-v0KtU;4PmUVG=- z`Z`XYI)m);KS2~4vKN-Qm>bqhCgWzSLZ<7rgoeRH3tom_{-#Hlv?7AZY+>eVH=Mf+7ncQo-`OWpXJ=p#TRE4X)7dvz}n0 zI2J_jt**J62Y$;+-f zg0;p$(Q)3t)H4{C}vxsa{z0_?AE z`V3E0T)tYpD9)5jpp8`&0viVo;m&uw?!?`%`r*TS41LCoj{~!*b;ctT9A3Jywuy5) z=bFp9n;@y!Kqeac4YK0K{sR`&9~f=uq;$VJkFdFs73kQMVVgfzf+BTFL&3KFXmR-#t3Vq>E%m!stINVnd!U;=gy4Q8MqMUVN0t|Wo>QU@7|KryBvk}QHmIT5TrOCnkU zQ9-h)Z%h!26)ceb^F!M2WJ?h`bq<288o`xS=3-^5v&k7VK5on(m>G{qeE35j9sA7PwQl}3l^xZ5=-#t56+kF&1E&!)K6e^c_F#(LE!ZNv~0oT$O6cO}p76@<; zd@FWh($yUKhQI8HL2Ga&JesP=of@^VzQTiBTObP`yy@=x(&zs^Z@+h!k9q7xy7uS> zV@aGHms+e242OIbgPkS}ld8U57~ytw-yi4XbujtLu7}iK8Yiuo_@%qu)Pzxp9yf&v zi_95)ouU9_U(&0tP@Go)Sgtou^ga>+(D|lW$E)B`RCJb_9!YpS)Wmf1S}~0{h)|e! zOk!C~pOpYv$_)Q!uX4*sDjK2&wAM7LxVkpz=;asHnVm6S^Pk?xcf9T$*xa{@qgNeO z#0rnCQ3p_hGWukl2kJR5y~?L2V^Zp zaFSU1fj+6_wyM}bY1@Ez#6+SQA8&QMUJ3UkP~hqVR?Rm3c<=w{?$! znEL_EW@iFbln?GM4g}%lK@3JwV~u16FFkqz4qv#BZ+^>-@sfXcJ?_5wqkPP@m+SD6 z3owpiwGxthi-G;23@5M3@0Z_DizB`CUkG$p4qfxt{VI0i5~A%zedV+_7VnW{o1}Xg zjz=-&W*w6}zj59y5FU627=2q06+}^3q*K9X@BOdG-u=3p{Arsp!-Js}mO!a&Qk_DBu{}R!^5~`};wZ}jW0Y5>fSF)f6(U;9< zEE)u|Du5K4l@5zb02Re*5RkselMkZT#lUJwsFk}x8Ugp8!#!<6G%$Md)#?hsDo}m* zokwn>oF1q1SSBryOL&Vam0SILuZ);%)u7tN1s5Nvs~>kMK63m0`l%ng9>4K|U(taB zo4D#TuSKq{aJf4&07S4*VS7iQM`XHemV^prdl9iWS8~qCHXfJi`$Lf7B(+L5?v|qZ z7_v)xQ~=c-BABLVR%PT|*I z{sw&X_uq@njZIwgm?J8NROn4=0EdAn)3=`CHFY$(D`Z(Osi3QMyRyeAMhu{JFR?6t zOcSOOD*RO4Nm9Xv0{q^iQ#XQ5swrb*;luBP`Z&l*CiA^A4Q7wa4-v6g)rmj&-8=7i z<#R6om~YM*GyVw7gk;7e3U7VKJO0||e%6zJXM6ixo!cEr5(9&h>oDzb^wKkyh#{!P z?q}%haB1(tq?G#}v?~rEs6um=#PN}yGzj*#QOZg{OGP3CcJ|^ST$*C=~ z8l3!)m)n(kX%+zMAU((1qp8)$JRVy(gL>Y$F{wg*zYK}yC2_=FL0EY-A|O>N%l2qp z%ORyIp)E(QuB_|8!8PWBIC0N8efz6^AFq1P8LeHs5ubnMer&D)h(tVsBHKf967o;P%oHi&Y z{R&~lt6y2NkL}Ez+&9zf!l3@Xbt}%)JyHPjA>%QMh?JKDN21z@_4Spy@bU}dYyq$T z)f@2Ne)WyDl8PgbdyG~#*0|gq%R-AFs`=$PL+cGOos)q;me63n3k!Gw0nM*j!RElO zNd(~GAw(91l+?h!aCt<)Ni7Nxf+$v`qE+|X(6#VpDurk)B`G^tgn~5Cd<5MKRa6sV zao~dGgYSFu_D5g*{reyGEjnYyABvff%y>lM12^9I-fJFv?KKacII-3c$OOHk#qHee zJ5SK28%rPD@J*+uDdlriV&B!_SZb9Id}csy+3x2)K{ia=ZGCInfEr+DXD0_0{jODj z<$T98W&1-@Png&bfvHT^E|mU%AcR1e`9RqKM|kXOke_>rjy?p?N=TPtSRnyOJ5WTC z)x8EuqBRv4;Yd;0V?#>GBF4fJiC9pp2M=(A%lgo5560KN=-qh#JtMBX@&Y{m;&lw^ zan$J4vVsD#SKT7rnGprw$^&2(HAF;tLvENNnEaV9*-Jrl6cBs9OS)Pl3h2_0dtSQ= z)!$uYRFD6dI0|N&dof~*PB1kK^aj&z<7^@aqALNt$`ydiY}AznlPG_da!6cocoQ4@ zH}$r6+{`z=@-^6f;5aV0;$p2I+7B|=mW51TW{-c^$y_0r@V4g=!qs|cg~WhTSIO*c zkvAiz$%$5VDfjOTmHDevpU-^rI=JlU0m@+l~Uyz(?XrngD66PDf!?mJOWImlk_S*~ZD5|-$< zss#E^aCQ5Z`d{*|CUHiNmio4s-U91Nd#7^3I(b(F0H4|68Il|3ogB*Pm@J=E2)f9?{Rj>92ObL??~Yqe4R`o7(H; z=(J`C(1{=EbrUDYb)=3;nD{Q51ET;Xy{lYkbCOS$U6E7oK z(;l9nT{mc~A=l5{b^Sf>e#70qa5HB7(U?uGGafP6Y0K}}e_$Qw&Yc6QdibP38zV7wpCBEZ?%5)c8?V5X$GC=>@0qSIhadi&p9fm@Mhbom>4* z+CIf@Z0Q9do$v_WOrl1$KC-D2WnrPbl259xA^>P?_8r>8$Ph)iA=alYQ0hhI=3Ih^ zarCxZHYltXID#8I-!S3xAJGEIzyi?mbGy3d-V-{zv*h3U!fSEwzx-nT*fTH1J-6Jc zUw+p;I<~9YzmiBVn{(?2%1haL`bbhY60;{#JR9*}=^_ff8b(u;R{}Ar)D4~hBEx}P zS8SNR0D|lu_K>6beGY*(1q+x2gRzgfth|IpDm4hh9{DsPNQjJ*8ilCBSdGcV#aCX8 z^~3x5>fii5yy&057&CP& zCaO;fL)M{`O~{}U2r71$yI36DYCGHQZ}@>tqGrtaqcDF+W;|l>zW2TV_~Rb`_^lHU z+$#<%i@k%*f`IP;of>eXX9WsNMPEYZdAZ%Gj^TP1Up4kBcF<>tB^52*R_1yOAKJ37 zk)5RU@sCgn3=o&ZIT`nS*SPHK&g^_wt#Nf?6!q2jrh(q5&^I^mw?A~ zBcDKPr36voE|ij=LuX71xRn-ZJFg$zDnlr!DA#=- zv2kG6B5cG(Z+(-ErM5bo);4dGB61?8QLB2^@mN2#;;d z>-v+c?oX~h91F225mBc0&a1n4rnMTS?Tw2rSe&`xHSfFWRsZ}c5BpY~G2_3BSs|J6 zh`<}({`N~BbJ?Z)cgGzHi#yjO>oyNj5E~p_5nLPE zsY(%Hy%!AOaWOa{8X|J**GNLGyTk91fLnbs4o|%X~{0SFgl?bV~ zh96Pyc8A`tx3iMSxd5Y5;;_ zOu-(8qd&GJg9)2OdtSwx1MN>CBd29MBtk5J!SZL>`v&DLk=B~P$et1hh5{Q{6MWl=ra(36d{Isl}-qaiD1bMI%Y53N&^H#92Xi=Sgc+tiC%wB*DlaYTEjPt{ok}EH*``!D?1TcXmZJ?53=6k+1I)Q0!E7AB!rio zI4B#k&&345Vmli~BYIY+`zT~}$L3WZOX4D&_n77$ zMSBS>9l&%dNEdjZF(EWiKod}{VP$n)2lj1%+{Pb#@Fc(X`VZjdQ^FIkIfN%(u+T1( zySp|350oFD2~UxTNQpJAwsY*&U1^;ux|^(fb}Zg7`(cX$`?g*NJmjE9Z^|x80KQs| zAE6)BomsLEwfy=4h(nLSHn-X?Rt8;o#f99irZ@fif8%?9=dBus6<&Ds0_0)=sL8G) zIYKU|lFV{9iK9Or5E34JNGjztA9DL|Lrpbntn$KH!r;cr$6vc z9M1KPcRu&;FZ4#@nvtch&olfhRj(?Vqs-hy~3BT`r-DuU*8coe#i&cpT1W-k&7rQw- zLI`7{BKPJRD62{%D%_RclQ+fcszg&bdP@>Z2x)H6s-cS5+}Om%z5$DIiC4Vs4t)Es z+@fu*@^hYi5w6+{oGM@(1qYuYf)&xNt-jgzH4x!}7#P{L4#J90rcK0b3Zx_6X(F0* zwJ9W+=b5mT${nx07th@xCR)KlkH5gCRUs;%w$!i)UUJzH)cOkE{kHexP5=2#XeUqL z&}ElmeRB{cY{|IgmP2kW+`*In2c&pX%J``q`r^hMoLx1^SYk!5Vz#@NR9D(7M@0#b4%cETkT zPN>8&Aw{YZSD{cTVxWLk895073KC)*n?Mv_gk`lQwGhS^S+Xwfd!KXm z-fMmDGxEppnd`KSUHMB=ch2`pUFV#=*ZRKs%{jmMjCVX^j7MH2Wve$GF70NNqrDvM zK^TKQg#DWn>)p~?Zl&kug~LMRnw;_{u+|Debposoq-&S!?*7?+{OTKh_xZniyzsf7 z{I);yZ~hZM{IkEY*L7Y0)pd2*T-R6q`V-&({lDxJAOG0@IQQDmp5LuHj#hR_bSWUg z1(iR^WOW*Pg<92YuFVrznvFV|iL(G0%_}qQ#;GuF8cGl?7}T_(BxR~69K;X{=RX-Z zOos?@0)JSF#ay^7D%U^?qa+#o>TKYVKq&I5L{Ud=S`BRNOIm>$%4z?_aYG20sF`G* zYzPDlyAS-4T=Oy5re~ie)xe4Fc&UgqgO#{kE_(az=ke{Wzx@+$=zsPbKH_JWXZnMG z`qTQ+FW&2GUwf=K9v`~&&ZU#JYAHcjJUB-VDWCy4P*E9G?2|ewt4J}OtHm%n>Z~48 z(8?JgV@aiB%t_SeiK;g&N|Lyi(rtJ2#+xte!yo^M|J+Y}M*r@=@$cw|{>Y!yE3dtf zx4!Pfe*9?hI*btJJ{z_wJ?)QO-G^%Bv=Lc4IQ3+tPEKD$196vJcFka#RtI9_K$8pY zHcD4Rv6b!aY%Rj=x%tR~Io(#%>vG(sATr^7Q^n0Gx;2dcoi-)yLcUW{jDLG>9U6=c zFouO$(q%n?J7ri zM}1lByTB4y15OP9n8Buy^7l>gpdSDTI3WW6tcpsjZ0K!83w^@q4Xu{UP*=$ZFhMO< zM5|wdtsl1!V^<1@z;nJ}E;xva-qSMHh!;y|3y32m_^TxHPuOo8w}lc#6f{_!>3CTC z9BfBuoMm@A^-#QdKr}Oi$@rjJs@vKpqzebQj;i#q69WR)vTly}?JvHq&wSm+0^P=&k<95C4q*$ba#1o4BSX76V^3i+KQ$7nH1Qj z_q0Mvm&sxouqj3uwP3qycJj2Ix?4&QlQv3D&&{#y^!7_HJ<8X9%SWXbU-BRL{r?aB zTmS2SUC(~zv--MU^!0l3!8e>Jd(X9v)!HLUf;TAek>pgJZLjfVsg(tk6!Cg=*ieA(Cax~}VQxCY-|*L8jMuD|e?{^I2$ zANjC9^E03I?c*D^mzh*@jqacmpCZlXCv?c#i5L4w#p+3fGI5y740Ovr-7}e(@E}5v z)g)*bJ;!Wu*<8xVXx+WDYWXrcfKi0l)#|;1C=meC_lXaqewhtx?;Wo-JLRqN(&VVzg4O}TEV0)vlo@4#o_eeoXZwly#qcq3J+7)!)2fQq1F~eYJO+#@ zqLso4D|xkg6MC`xBG=Lf-+W0vmVWfle^%f5J^y(=`MK?{|JdvLo8Nk*N4s-xS}%^Z z4q7SgCFO!crz|+XK*gJ1tqJ$`h6F?Q0mEL~DsAw0I)wao-Os1G?IbUpy66Hs#J z!7fOyiZ9r!xHegG^+ecnZYS7Y)|M?b)J2BaE7cO{me&V^j-3ds#khlM)dAJys-5)A ze;yWU=p{`;eTRWL=wlj!XsXM0QQHe6MU#PD9H_w4MeDEfje0SXJ!a(@bc|QdN#A1OSQNA{PQY z^DtSqEL{?kURbi~9&^J2ks9sdrmiE>k z{xd(}fAHV`%lgT_)i3(m7xc^Cd@1*r?-X})Qq=%`N>Oq^~o#w^MCHI=zIU||2Uuh@t>#8tbw>-(6IU#(zi@`rRIH`y z9fY-Xe^jfq@9z6}{q=tP&;4Nit#5zi_7DA`-@YHdz}IzMf1P!0*<9CG^;%m0TCH_? z_Ux&SAS)30s9IA>emrO@L?4}2Y(2qGa7^YxTG#w2mvZ6Y$qAq9{$1OyWJ>zns<)X#FFDly2DMFmG zqj+P? zc)aRZV(#2zxL{Zj5VOi{%Q44qOI5Cg9;P4qAmFfqAfxZG}++4-2 z?P+I5%2E%=8|nBBN+E3BL+?<{nFtlbG2gih*Iefl$aHBp*4vb``X+M$RVqNZ|y{tE1 zzU{}4ZtL08=lW;==#T4v^Cv&6M^9eVum9+ye&hD0ME!$%oo~}N3?~iR*tXH2jcr>i zSh3Zxv2ELFoE6))ZQHi<=K9^ww|#%Zoco-!W9HaszT_#I{FfIch?|ri$|FXnKME|! zV)^YV$9RJ`VW}|!lwoe$biL~-&-QqV>=?TLeD3v@%6^gWkUvHB+&bk?xbGpmZzyG4 z7GK6%F$2pWxDU%WFuPpx2S99`)jU`qNbDx1JxH@;F$`-o$O}iPpypCioRF1JrXdou z2*pcJgzz_)%({Z@Ky=~~Oo?@{Ohu;0HRxktc^fgF*oWn@KmMVck()EGd88L7pk`#D zjScquDJNExH*ub~uwI+~a{al}_<800$@qbM+0%IP)io=%)q=jdrp4m!>fq;8x=mXS zqvx?zYl%@ZS1Y$UPgO7G*v0yurHiaXAobdcTz``pxB1bJlL01(eM9*UkD6S$_#@n5 z4Jq;$t||x@!2so55sD({-n1Z2oK#zmfgq)oMTP$@bi+@b`DQQWIO0#Pn3&@)_ele57(V zR>A+Y>V``Y?5iBXPmE3H5tFj^WNvH21fIHicp6}$g5_%|4Xmb;^8XYSIW9=jj5*S& zHyn=>M>_6B;$jVDCe;Z_g~LR^C|JBWw224N?;$3~ojA}&kVVuz+)7&$@?X5R9(MYZ zwfe=LzTj2Ym-@zgJQ{jNiO}#&EpE%X2|UA28(fwctmdTne6wS*7wv&{@bsy z{Ot0BU{jUMc~tr+hkk1f zGHUxvQm&}iGAwn{&@PpsZE<`z*}>+MOMB7r{Zkz&0=ugX5 z4O24OFhoF-SNHg!U8bhnG`>s4_@Zdzc_Z!x^uFx8HGGl2B=0=J+q`3Z--2tIT(~{l zp|*6z=$XmOf0&sjVB$FXbJl)8Gs<{WU+Jp+HNo9we{6mleT?#dKynxuQ3Z|{!=Mk|WGS)_!9VIj1dh{Yv!JYjTsgUj(UcA@0eE)Y~T zI}=P>#0cW*0@nfusG3^2F<&p0B{@wO=1H<0Ra>f5v~6G9(NfYBm(3qnECFTuz^j=Y zmJgj_hjzKj+5E*+;!M6>(afmUalaO*>0C~}A7x*Ed2pXk<7?mkH;}A5LXj`t1Dd_A zzI#8lb{=bXY&+{@ZLWJ?pF7)FM{CYVZG->0cR}~}0E_p1z+qFgw^5>KP1iTD^x|X2 zqv*4D&TIwJdT&p96y_vloVyG! z{}3c&l2l1*nWYua#NfsNNS#MI))$DWV9RHO4v>z}#IgB^#u3y4Wb zm^n9uJ6Y^S`y$|4gIJ#HdbVp#4Qk8|Ggu?+%O|d=bx!`=p_oSSCNo9rx|}8Jc;>fw zSA1>-^Ot&`MZdYeFC|C4eK9V<&ik2>j?E4#9x)7*$!zPz5{Ji&iq+MbVE&t=g>l(W z(B*sg%j{QAq@K(=9ac*p3M9Tar`I~J!V$J`QvHoYj5gthuwZOt&dN<|P zYf^rgr%lLzocij7 zV;blyf&xoWHhwD-z%>H;(PPyG`-c!C!w!v^d`N%dYZuT{y;4AmXp;T%>p_9qMfT^N zu7{Sc$Hzjn$K&P4nEU3=X-h?R`~M>Z@^4Ggx_o!jNMEhu<@QF=NJhrJZF!s@(%ddx z`IkEov3;+VRdlMPr7GYN6vYySx1VBJ} zBbT%U14U^|=+EEFq}-uZx!+m}W&K^$W>!$3T!6TEcE5n~Y4GDv#jMIM-(zHOQyakf zsNiC$0mcIdB9ECE9gr{oW@4FsH*V_cju6&VOgyO3jm6Y(pROG z6kP*veBph2M4XvwF0?Vv z=`e}9s{K#4a5V112_calAR{O=Dh0hP=bjIfVBJS57cY#m1R;9vc!C3SN4oxPtAHF3 zlu)H5-K#U^{(y5!(=S}q>Jb`3X6*MSqqDnIrsxHv)sUVAnoIX$*SDnF*+9iwmNoGJ z!|0eE;xoL1@_n6z23X=eRZj%tNk-u=a*kV`Z8=>JkJ~pr4?!mfl$~#Q8#9+54^%H} zSex^mx5BzJSngjrem%5@eH|%}+ZjX8D@*==j2*WXUxmH(&iy>wd^K#TzR!{ODA)0L z{ykWv)TRZEj@-DA>(cAz!%Io{NA49hrz{J+?PMM`>Q>Nd?~;Lw?amROD|EI&iUj32 zw0)DLHa`tVkR}%ZCd-V4O4UL+p4m#r$ICclpDFkgBpH!2DfA&>xv1Vr@xu6)-b7{v zlJvLQC>FQqV-bkjoXrls`$gn>fyG{@x45#gdioHEbvN+^rd`I5E27qKUqTjM#j*B( zGD(@^(IZhKyVu8C#~uZJqWgpOE>Vt;HQRyVhU4&qiE@)i4boWgc$Acd^MVCF6wkxp zui@QK`xTZPpzSp_Q8`TD_mmXRo2vWSmYBVAMFgpOTFHS_+l#dN>ngB(p(XK#JdE?q zw4_Oq?$S(#O(k)}kVV;;Fs(VWLg zl`6nNJn^u+L#sv}bp1Ieas%2507lUd6pEWg+Pni(xtJ}34c2H!*&C(#${0O9QoUb_ zI=1pMy|)`Zd9q(#`KLSY`rSP*bzQir(4ol9%obJZ{mTs=!_8w>jC z3wgh%X~&%#m*R>JV|z+h&!YJlmQQG9=NDct9W#TwpjWKnQthhcm)uvlFq-OKSlig3 zJ*$13+1z{)wn-f|0efv-z^Qx3q5Hxh|4V&#Q)}zgPsS`C6&PX>u~I=HOVFgMPoiqG z$*elMB;I@|cdPcz#xRIXf~r;4&)jCGo!i2G2f{A8P-ue}MvnsEo)M|%r$jXPQnrWvThBQ<-FG(f|K^YSj)z^M&)}@K50T4`_kuDY|oyx%aNbXAlmQ^++eM{I2eiO!$k<&6&ojdto*$#Z%ppUyKEp>23%M+=5Mn9Y-{5}F zIzwAcA8_FzghlG~hX4*XYN(bw&c$`Sw$*1m-_*QL!kgvqo!_iOq;ip zpQ|q&-lzOCaGsUX9;@un1z*SfFV%;%4csk*7N++~YT<;g-Uw}jYI-FpK!7w=)tRM{ zJ38;)$1QDmUlzQ#vR|)~Ju@p$Tf7!p{?`vnfHv(ndymT_8?W2bgxdgF z+qB}T<=@TyC-%3<7h@tU!_j)kHDmMh=;>tQrTyx$bTaq$eoUXh%pva82Jk6K|?Kr zr&H=4tw}ouw-Xy_&fL|Kts|Chg7EyDr9UUIYzI+Q6}UCSoGiE0LN69wJH8uj)7zzh z`}+fv@}U)^%=8ggBde6XDi;s(8oQ&Tu67tH4uLv(RBSyJI z#$d2nU>psOt=QEAHhhRth?U}0nwrF!jY`XU7Fn@WDWPpH)VKlwYcOISJ7q@)CIl@! z{Dkcw0o+LzHFCUVWO8Q&Bx)W;eg9jriJc}l{6VRb_)f% zf+szFoG}MYrt#UG?TQf2vvKdDRx`(ZRanM8dnF*Q*lW$^?TOrV`E15+sB*0%xuF(K z?%{Gb?FRaHcYF+K$?05Tb8@UZ;(6I7mm{5~_Qc4dW)tXf8aeW&QZzDX-@)XT2x!Wz zkkTx{JK7UWNe!HKX^P_pSZs1l2K308=h6tn?zUOeWeCa=_BqPU++O-}5iU5R8zq95y?S zC-Q3}R9`wfN@?fSTDrR)=km2r%#&iq-jzVTS5Mpi%>6r{DlWEOM0+MHnND>6_kKG^pK#K{FKVqpOwuS6_k8q63T=$` z+c%xeqh!yW`*j=d=?!gc8_m_3m5``wgXk=rPB^R3rJY@}xG7X;>8%cv7%=VM(iOz2 zK`xw0qpuE@R>J@a&`Oc*oPym2`VVJ|pbEXKp??kx#~}g;P6th9 zJb-k$80`D6teYSeIiz#S2rYU}5f>fy=nK~3RY~!G%zJ(Cg8Q~z# z4w-`Q!kOWVH?XxnZn}A8e--0n<^M=+ZC2aM3BT9!y8Nc=;1&7|*TNs-Nqx(F@vEkU z`og(JY*pY_kXEnt4*^^a;g-H+oH9-FXuq`@COi)!+6t!jNMY>8y6G;z#nGc?x|yA{ zqcHT4-gmQWM_dMDP;zl-%)Qh+EdUfnI@W6dN7w3sO@(5j&qe*i#ALFPbx&5mY3TV` zOZ{K$dWp6qy*)31n@)}RDjo;6`@=78T zupqWSM!c=gt$fP#>TaNJMlET_tPAC5x?v{#UOD9^^p<-biD^>LVX8RGu7@UvT6&hx zZQkgx{FHCx*w}HM&TpaN_3)rg#Lf{e{+d&qh$`sP;}A)TJ^=mA4_({Qt|acxf?*XI zDC$oggqh1tsvZrlj!PP1J_IVOMw_*wy_A}>9$gw)zc|yglEU?FtSU*F24mY+j8Q~! zr5;8`1@j;FT@DJg{7!}8F|xgIadEP@BeB|4qW}gnZfu=dUr{isUuO_F?VIa2sW$kqqbH#3{^&v1?d?cRKAYDvOvkST z+>oL^L8LOOc;bxTTvSHgB<_y3RSF2{X!P|M){yhhdX>RDL})IBsgXAzK?vb!Tb{U^ zhJ$Szc6rz}wy%-cE~#WqY;ze*v6LZ|D0XZKt1rMaD$7Q6h0_r(kF{FG5+e+#Bt{%Y z7wXHDRm>E&pEYCHs%orL`74$-eavaDO+_zRT2w_s+P*TF`W3>lWRz9;DNdTJ03a8A zq$X0>&-Qw!0vJbLIfe+(?tm6W7_jYz6|peggDaPCQA=GlpjkgXn5s3MynlKqBx=9= zS~5CV#|8hZSz1c3n*?j&H`)ai=3F4BV5jZ~k3vyD!ceZ~qHl!Y2k3>z79S1`5DypP zp3>u?FIzlBbDoylHU(Qu8tACV&8*S7I4P@HX(uaZSxE>@Z*1dUBVCC?!OVdU+JF-W zC+5SLW>_1bfH24alXzBV2b-OdN<2n65XzUov}T?i>h%Yo>uUm6I;Xo0Bd}Bh*gvY= zkDQ*EK5p83Rep7<4v+s=5h}*c7v0vg4n|N4b}OZw(HI@<^)WK?5hpeLVbrumKxOz6 z)yuUhp6HLyI@`jzD|!_P$hzYgi}~3NN%Dtfh)9L9t4j*@-$}f$MwbNgo9hiKLyFJN z9QgBs|HMN)sb&DE_Nxh49|%B5J562&I4UmHNUngL!GYGV>?ofZD$07;g(&G^c|nXS zn|kh%q6qp=p=;TvLmJKeKys)DkXFS(o2c^EKcq8KIW0)jE~j7K{h;5)EhR(l`z0)6 zFg?0g(B#XiC6igY$%m zwlqpVF;g*?qisxK@P(eFo&$uOiD+~I4onHK&YcovjIu6eO~~KXW0U=ErR}T62L0? zgtDOAXL=|_GQ=r9%EA zFXyh<;E~|WhM_}0DV>i4uOcY9n)xTryg=tB)y)_5Om}Fy8Ei=ew&RHkHb?2zo>wxn zddVlB_(eq)J9%G1vrkI)qw=K$V{^U@8<+6_P7;7pHvRuF=ysFH@u~0u;>p$=RqZ*M zE3J_IsFt|Ye|6Rw;tVsALXRRNC_zesAo!e_+(i@4@^)qtP+V%ptSWdIMg4CM#|Vn& z_774PRkPtpjzDJ?F4Ey`%-B3t#*Xi^)_L5+{{rc(1&es=1?Rqy8tibxv4qq@Fo2PWq6GdW&qv)2 zCxKF!&JFP0p=k|g2*|G}fc5a(%g^60poNV6S4k{`Fq8iMgI0n-)Z!;0!jhLhI1acN z3IIf}p0BO{}ULCh;-tl*5sh5ooWjWEN@6JuO*jKdey591@L}L%0ROgAh0%)<3=qq9xConF=~B2 z>qqeQ;gD)xvARTtW+(AVYSJYxfyBupKi2V4nD%sNvHx2~)Oi%(E>miEkO(hOLD zj6xn=Sjzjf-fgB_-CjE^U=iDLRdu z*US*y1>_S$1#qmy&7c*`=n@yzRSTaGf&|XKDOlDB1yOHlsrMf;?r64LA1;7a&Qnz@ zX=im6*mVpBPVGi+h$o2q;2mKli#Gm_{l!-dR$XlpWrmLh*8pl>*xqrWS?=~cmY`_< z3#qQt{5xX!xX|cv*Q<2#dfu2l@I#0E5&eK5sPB3>w!v0*7YaXftVw+)=$Hmy@?RTu ziBMU1qbmKNbYO@nm3xIv-ZDic?}$;Eg__y?n9Zd_s*pS_?i@TU2z5M*xj7qem=zbq zazQp&GBKlSmMjYq+O%ptDgF~Ip~cR7+Am&K&a=gb4#ftjWL4ViW>7-9&Yn3)>;&n7 z5x0W0?Kvwfs~fkfwpncRK5^NyKhRlm>SpubA49Z~o&Tx3^D~l4e&K!ncJz2pHqfiL zj$h9!eE_GLx`2Su+JJ>pONiqIyWlMW`R(1UeG_FG~8P!xL&To>Xu<*#=O zjbP_VxXaVJXhFeEA&6H!?lOVo=g;TrAt?4IU|KTXj+Q^NWDhr)1#C&sd{)gmre`~Y zFNlR@Sf}r@NCSOCBnLIq{lU1VXlOJT0A$5E`+;);H01@`vA`qSZssgO#Lr5+Dh7uPu=Z)*74`s)??!1s)6Wl-+ZRDbgm`eM2sDE#rD>; zw1S|qk-24tV-#;xIrZ6yDsJC+xj&1eNco!1YY=trRECfrwre9;ZsZTt&$B#nU(8~X#5B41AFAcqEDiPW{PDXwAqiT7 zw(PuggQu}&{3;>xHqnY&L6#-!OD_Olwwr_ z2oovr*2{e616^!UD2!8;&gS~b`dFpc{!dgO;ufQd!6YVH@#doFvdryz-tF<@cyoMx zK>W*)p82mhCpGJvkDi;4E9pcoH!thAht1X2Eg2ZIY%ztuloX3o4k^#$Wc5-)VOfi#Mob!VCJtg1bh9+lwZ<9`q5z1hrqWSQU_;b5cbOR09PK#OVp?+#9IX+v>67c~yNlIJiTaby=k(70XOMi+S(#GXUP(g9 zsnEQ9FRKVPV0ykJfp5I+FJf9cMJ_AJEPFNnIXwXw!uRZmUiq@)@)$wxvc!~9GMaX0 z=CnrAP-?a(BIyNv|41|Y=J5pHc>RGK`2J*ch|l~ch6e0}C1HJE4$T8CPR;cbk=9*Q zrabbE&@)7`uuQm4sjpXPYe>NDFsJ)=zQfnuOG-31PGixi8gCvpan@Zje4Yn0zJ4*1 zvi}6ErTd;d@y|VJ#`dxz`O7B2YAqZ+>>3y{0!u8sX4L|GNca{+96~c)8)QHF@0QIU zvaNXx0jW;{0PT$8ldqV2Mpq#~lOcDOJZ0)yk4S&q!9B=9f_q zPxpp40|kRbl$^OnUT1-I{7+_tGPwiFYN@P%*lEiC?s=`ItmeRNjFPBn!?DB$BO=HO zBPGp*jLP9U{0sSWM>RSKelk84Z`knkrx`rp1iPDajAM8||GD(Qu+ z2!&FuL;<%tVdQEiv4zcO-am>31gE@* zD)uPEY>i3<0LTV}>-B40ONpeo)b~L@D6NX6uIORoM^Y;z8xRivNX=IO-w{^MU6HK?A>3xjcr;i=^kbpr*ziRK5<~p98dEB zid5ZJYM6uj1Xq>r79{JwMSga5KBw4pIcj75C#C$fe_!T*HRXTWj`ny8Je1D{iIqwG zd8JVNm*OtwIWLpJTmfxr>8|X(9aYPe2?kDWo4QnARtT4qrV`E|v_Rf+luU`osxPe( z$CZrk$D6eXf3!`;_M;!WYWibnJvlKPS6HbGFBbHJMr^sk^HVW$&A=#NGQidxl zey|Q{U)+TskmO$oLc6Sn&Rf)=rLwE6j?`fhf*sb#Lm&;xOGtehUEVP*D=g1x;e30$ zkh9@&mE=@P57Pt;Am!z^qu!>i?e^O^PMhGK*=4+AV#h{C zu+|Sb0J0%frwptT6PBdvEgR4CIZ!Y5V6Jzgs#{9k|7PD()Hu_r0k#Gs##()r4n37u ze_B9)5*Mv7w&!PGPkInAI%zNV{|A>aE&9*!Xrj%7^`gnp^`!dsb4U2gs(a-AECm%! z;4+7hMO=Tc7S_lc=h^vMkGbDK8G3}h`O16!TDPL2sV@F@4im&16Dj(~pQskfE}6_w z-oYJ9%lcC@YX9N3kW$L0KA{>sbu39woMX$H*@(1Cih#mDm!fdpf_|ka*vPWh)$R5F zXiM_zkqNoZj>&pVX)w%BZ6BUFr=|Z9ST+C2Cdj5WSf+5yL8}VTGEgUymMp2GHvdO} zRO;7WKf)2pYlirI=n8A5`4k7PF$)pnwnng(m$u~D2U{xjdJ$J|{dV%5FU6VfeeCqW zsep0FW#LEWI*U*hQ@_sGIl?0K9mie+PBj)^r547DS!RCPu8LxuU22`O=xk7@61So% zW}C2Uy%F^HE=rO5?{@gBXxfGJy-xY~+!=soUkjIxsA%ss6w3oRJtNTGLZj6 zcmAtcLV@>*AcZ4BnlwF;&+#3RJ$rDY?Dxx5dhFuUY}^unfUiWYFxpu6BKy>3A5ieh zZlCx?9@YPIfn!h0**D)NJjE#ol*%v4PgsMn&wls%!!_;?MCwV`y~pQsa{~Z6K@z4@ z13pMnGW1Gvzw=6@R0C5PF{y*R)8T^)#djH=nZ}buE=af95_0)M0jH^E7#38_JU)_xp1V@S}_o;~+EJ zmC;ukbY))m<_`E?t8Ks8T5ScA7bT@w$jAi-*U!Mn!}gEmZhp(F+f_6^_@g+FKBss$ zBW|YgUAxSWs+o9{qm{Kr7?7RMIqLTE=GvUpv7PLp{vMw#idC|2`_^PEwNm25Tt9I< zx8g_P#;CJL+O;Wj2dYaraabVV`1?&-z`$RLRnprB(O;KL;^PGy7$( z$ZJ@$k{{%};n^^~Aeog9H8`@96TF_(Q0Fh7!xifz6ucS(-*;PPiD7I}n+x0U-L zNOYKIO%TBXb*xZ;nH~CF=X8gBECj+RA$7M0+Md-U%mLUwEq|9ag_yh=p#;b!Q1|Jp zqcu7o6`p|MO&CduO3Yyo_^!H8#|Xv@KP!xFf6y54r9XWR092Cfz50|4b_C}v6Oa#%10Sd#TX*q-f* z2BvDJ^&xwTBF}`Beqs5d(u1oaE5P-Py>rfe&SZW~a&zo(;PjKjL>n7OAUexs)xlh? zJ=&^dez~Tz}!&~hViAyDb#t(v*yO@g6`LE|9|Q*RK>-+cZ;h- z>%~PDA$vWhq)JY1GJzX0$d6tfKn)9DsxU3VtoajCd(4b0_Nv8S7Hg#0$hfSxwlaB} zK*XF5gh%TgiET&qvs$RZ^f4=x`i(0EqDG4pY!tnplL;nN6Ga9AlAFH_dC1DWVYqLTtsuEW2mMKjrF&CIU*#w41LZT6wd~w`ck{*k{U*b zb5v6-iuBp6nl(<`e)u;bNh$W^q91W&r|<~ZDjpLhnc?vatC=T?)AsfcOYw$|rIf)G zXcN+=F`yn~eJAj}T8>VF3?s6ll^<#&%b9d8G)M5#0+#=N(r|^=U=W#5DOl%RJk)_l zvJyT_n9|bq1{wS;r7N<2aotH*n>0Ce)K2~{-#4R*>b*7I*s*^+TT~+&JDt_tln-J^ zW=|n@T5D}>Tl3wrId`CH|JjNQUMgmWWf(2%Z)ueFN&`rHra5GgBj~^0u#?3^2cSJu zLI>^D06}*&wDtQN-KjHX9NcJW7QU2n5fJ!#$nrlS#M`K9Sj*33$O6hD^(60wQ8tgA zwslw?#Ed1tzRf=o3pbc5>C7*vnvQX+a&xCgHUT?g%o^}G`hNa!wANRYW#}q}_N=3? zJcg@_uXBr!&w=raE}MwLt97~*f|W7!oje@9q5+FT+se-q1_cDv&{vS1vwWMHrdx7$ z<|cZ58qDpuJM4U-8_d0GVN^u~m1Eq8c{a>Yl5Q%2vEyjrQ!PgnSj0kd(7;GyX-_k0K;xFBRTI z_xEOp_Xx!WOTSP|08eATec;Ksi;I9YpaLR@jw`psA>u`(Jq!*z_duHV?ObGV`0F!p z5RzVa-{*_oblH7+`2661WK~nJ*FOBe|32_@Is2Kp^DvRB^5po|6v!TaXiSh-n+K&w zm!lKsTG!gr`;WKJAuCNJlOCLn8nt#cNGl}comf2pB8I$t--QINyoXo$y3ZvcxfC&j z>D+~WD589smLWazD26!2T)Vd=en(Mt_K?^v7d=wLqOn$#%_w37p z1R$o`O>r0gP%l;bZf>IjnIWdknF7CN`^c6b&vrBlBpX#k&Pv&~#@L0F0!3Z}Hmbf! z=#r<&pQq(=N#-D`B*E`?(~)#fs;`{j1Lu?Sq(_u$#4!!EM`#$SX5z}vhsqIue}dv{ zq}m&;b=}U~Jo2179kSC`jq!#@g?HeKtyYkVlrd|H=PO)_t8@7|1Pr@Z)K@drH7)WN zXPy19wmxJET7q&=QFnkcVos9qh&L<{i5uE+xi?|E(AzRstsw+(*_msbE7di?U^k@z zaQi(BxN7TR*rl&eJ>1Jw*5cAfJ779T^7t+bjt5?*rL`oZOsYgW9Z74{Q$mBl(v|zj zmRJV)CFXF()4TKiDA5 zF|*oV<##JRPu1=^y<+SS*LaKTg{##%!KJzxCK|@aEc7dBXL|Q>@{E*-tJ*e(Y7QF(DjQF+z1+^YUpT8<;RP8A4K{)2JZ?Mk=HHy|pQ%MLJK z%xBKSpIDjzYkv3D@T3JR z*vkLxx=##-g;*jJqb*@gb{K#-4aS^)Rr_5xmaaLM)`5!lSOP;Swgf-K1yx)QL^^Xs zc}_rD;W0NO7eSCrMjBtAR3O@?+4S2CVYq}+N9Tk@S>4ILNzj|NSrc;9O7fR(kw}w= zok@yqtQFp*RXF5={htZ(9;0sA+rWv`7L_{)JRs#v$;`!i3-<5Cnc#yr3-d+X2%h19 zF3f`)g z+oqHq9%+N14iR=t<=Ye_W8DQ~{)&AU=$YQR3ve!p$GU4rU<7v_RoXW4dc2;gwXgdw z&2RF4muztyBKDN?>t8Hgq<-;^Z}|Sj`uyL_EnncV%HP91>w}HLIjMdF0YTV}AP3Kk zTI0d+|p8 zIKGV!&|2g2+bdjoT6R<#E51>^ziJJ;&})pF3wlFr{?QvYrzAiy&PppK&#wE1S|mEx zQH9w2bid?j@vOfX?cAw!h1Xhqb@^{B=r1dI*=&CpK;vz952N(fAJXG6-;k~`JD#dZ zDrfOT&gqw)iGcQn30eM;Od0w<_PUW&a|Y$8V8Gur@gWGSPxorRmsZqGC6vMLQwWPH z7WZ`l&(c*j86e{vDfWD%iaB_eiyz4At$%#&UGOhnrg`uz*8$prYk2cPGO6l*8$SkCy&Be!5TvB*DvmEf#GXyEG6g9 zbUh^XspOB4Tyil62vminsiCN9(m>b-{A`|jm5{o3!aG)BJK9d0Z_U&()pM+-}Qrjt&}!Wi^I zwDGBT(hS9Fa|Bi4DF3P|&y6n4#&tUMPT|NPO*U|BT6-tvqxQ~#B@2{mC41I`oV1$2 z!5h)_MAVkBY48Q6z(|-!pV-v#zlvw|Ltv?QYOZhXMTW*Ja9K5M%nF5expds=d=qh9 zaxl2l2=KeGbxE9)PI*~iJ?gO|rCbXeX3%mI=84PI*?&XF`SVC^8S2rc8!ULiM#)1w zsQR?k<>b!Ey(^R2+PchDo2hIaJZR?B>O_xzp`gm+SyMen>E6>9ycT&KE>{2nR`qHL z9U^e}1D1#s3mk60AZ?gfVcEl^0&IwhWdTKD5nDqeIYOoZZgm5SP}npM==i6_UVVY! z!qIlwW)!i!bl)<~;6 z(-EvOqHl^B6)%mXh}vz^Noq|~xK^!E>a5Z;KmH-^&!k2`;Y@T-$e9cFSM6(?pNfr+ zX0ZgDxSP>+2bZKd#k89yy=(kfyfIIt_~ZAF0gt#oO}lh5l$idMd$*x#4nf&6+ zZyUdAq1i+|Ony^~*O<~po87DTl0I+Oe?2lBI;JHIVS>$~wOBqw`38bxLdAV}iQA%eGxBLo#=z+NMN% zyVw0%+~Pf-?td}?%FpG`7dXbYsmI61#_yr|KTza;Z`Uw0%LWaYMsxa4oe{1YUl9;n z5Enq?g`YdFU?foT_pQ&_-4;QY=TT zQIIHy-c@yOX3_x(XX19c45l(r%VGF9(BC73(m(iY$Lhrzr$_h{msMf=a+N~u-0+p8 zatfbhkT|PHv59k+3W>y|X%u%Tn!$cjc6>`m`V*YmM8<^{x{zXC0!2sL4U=(REkQv* zRb{^4Q#sk3fhv!Xzf`nO$W|(gWj%xr_iS7+kH zRk(3-(wAv{s#C5t$364F(5NQ|G?U|6DNj6sz0ew_+%tX=To%28GhMB+flRQPMpU+u z(=?b_5r{m$X(%x^cPyh*`@Qu&XyPDBk!YHbEugh)8<9om5Q-`KkDubfQ)&y?V_sAp z`bws7Gma5$d|YEtv)~=%IavoBG3Eu3BhxW0w>!iNd&C;oM$7s2YG&2Ovhzvky!FGK z;+WlQ(V2k%G{;u^vh}|>A6!S=)0f@pweM-F%aB~{W1T_C>0Hd4cSLSp2Z8sJwq8`< z17VZihI08>GhkBt<1{B{{J8T9IcdrxO4N7_X;|*1W}7R`+K137Sd|URL{;Lxf!)S|yQ>geHa)IHA{a`WD2g)@h`n{V=w``5UQoP5hY7clSj| ze^v>E+$SQE;`#-w3Y7(Qp3Jy_mlXG{ zKIuv9uPQSLT?sIRKFw)lWQOo7cqN25Bg!1bt^*Vr7W@?5qGhtA(=CpUwy1T3lkJ`1 zZ<67_EG%chL&t}dz*J#xE}OD?gl%L*@1Hzps7S;2ii#iXfmms5LlhssbNs`_raTUa zB`Ur7Y}vW&c6i&;*?D9uI|57?VkT-a-%Bt6Xg93cyEE^LF)68X8su9AzoE-{8`4+T z9UF#%55vEe`fsS_ZRkO=_L$8g8MytbHO*%`#Dx4=Ivb9piOT}~|9E-}wz$@&3ln#D zcX!u7aHoMrg1c*QCj@tC+}&y1-GVg`+$Fe6&|t~%op)w_LtT4UJ*!sTYrV%94{Uz_ z%Z%b|J6Ds$*dmW1JYRU=htt4B$gRk1Y#f_xb<((K^s9R)6Xs>U!cw>t!J8U}LspKJ zil`gHZm6YEA0N^Ayr>{&Uz7OL0%t#WV#K*0<$s6oCQ0yvyKlcg|1GHxnvVSZ=BZY& z1yOc*D)arN8cf&fZo5C)Iww6%cxcAbr*^fTFdvTx;{^ka_|sZ=UYtG@)`CsDP5$qI zvOw0sMTh1xhgA90MRwnmS06zi&IBQo>ouxmMO~#<@rDPQ4KMBOE_CR4W|E3Ivmz{ookGgZp6P(j-w7#bcn({$2jy4*AQYt@3s z1)y9xI-PM7to}^5&EbFj`ZnqEp1CM`{mJR@hD1B2wz7q8EUi=3(z9E;r7?j`c?%Vn z6-~C|n}DB#CuHwQvn@4gU~DIP8@|om7VP`2ySX|+0er}}eA(>1jGtK?UPm{iL03b{ zCro2Jp)pU2uAaJlWR0-TZP#@;Zf|nKz<7U0X9cTMGjpA&5XGv^;@VZ6G9=S4`Q9v9 z$>oMZ1o&!S%Z&4EGK?$~j>S_L z^`w6%PF-x6BlSQQOlB6DV9Wv$FU$~EW^9@q<(ysp2Oj%sPkmFLbVNRkN%V1Tjnl?) z_3lNP?yw7r;5hMlwy*n1Sa5$4< z2G%74MwOFt)vanqCx%7YV@JK`nfZvfjrn_d5oiSM2^~$3@t`GXcU0^U55}bc*;Uw% zuFFgmcwoHH+SqCzl=Zc>Rp}IR=<^(XogZ{1IU#+1;b_wmJ{f1|D7y4z<7 z`rllWSI;!9Kl|h0J(M3MfB#XBdCX?TQyhwX7AKCYn z?ueCBT*a4eI5^&UKq?HKU@Pv&DaDr=`v93H4=vAPlp{+M^l;D*wA=g*;wZE?y5bzWRIWGNw)?m2OZWe&3-2M|51f@+(7pj>!0n&s z=Hm?Qr8w?-P&Fh|f3702wI zeuaVvTK$Ddbk@1J=t>F1JRY?8r-{ZC}Tcqwz$)BKDk0b z%O|7qw?X*}xVn+^3o-$!rDOt!=r|08R?@rKJTY!6 zLBghW{i2(5$9YCg&9ZNXQ2zStD~0#mD50rNm%*yk{1>h4K8jZQl{yY0(i7$V^owmD z%!ud(HzIDCe-rwMPkp=+;rQgr=f7DgMgINz|34weUN8SwF+suhAit+t=N^jtIFJsB z@1do=LixtO{E-1POM|vi6C{4N&Up2vu(#BNDMu^zzj*20UvA*yY8Y|MBXrUaZq3El zkzPYQfP#8_VUF4{-+e{&a;q>HvW>(0m@{%T#3hfHZp*ycfs zAUir`9D6}xa4p`Q!8zgm7NMr_`R>a-S+3x=uKzwg0dImDW2%!kv*O88>qcquvLXsz zzvxQ&Q^23P7AJmB#u)m*;>4k%_^ZYw#R1?)iJvP zeijUW(Fmvg{Iv=hMl|Cc_L*HZSsoW0=ppBMPX=Nxx!*Z=P~=h%BQq};z)9r$#?;pwhrL6Zl= ztT>(d91%g7Ev8r&ctmB$V4jyfq?xnpS{Qt#z+mj;^&G=!9V&suP*_ycP`q!r36~U!t&-f$qQ{;Y2169>+K77)a*Ryk2e2FqE4_ zsarUktGEC>mNj$yRqelZv0pOU4t(m=G)0HUzMsMkkreV2Z%&M4*%OHr$Ec3M5Y)}y zY;=Q0lsjm0m15VtasS0IyIyK{wy4xi<48D$zRFDQcYE3A#?Fgt(iTrzZwu;%I2+U zxY5+*1%zpmr2vs6V{B8hdj5*+E=w_q+8H+M^?lFPMuL;g$_b>96K$S*QbA)`fgv43 z?l{cF;)SC$4G>oq2MbslpIoQQAwzs#xUpz0A@%R1g*l(^^vu|xi`pQDnOLlpv{?$oY_&tsP~XrHZBP+!8w=XLez_}RCB%Upd0 z>5(PCM<3tj4J9dI!@|6#$7^Gg+edRt%ODyCZlIRa+Ad+#XiUd6+%A?J{Vflj z<}v#z72zuPV)l9LU^dCKzd=fQT`ax<(QPed|15 zZLgO$WT@*)t}bmX!VxaJ5wh;2+J)oSQXC@L}%fE$xVJ!|FQa15UkPH=!Yr!QAo$E;@!*sp^S0UorlFKlKC7%KHpNa1BndJ1+F%!?n{fb78&*OCGtc{q zb+QE1DtLaGvMxDaEb$(2dDZmDwS%bA;|;1yCu^|qaFe7G3NL;m-F;pf+0oP4thmuF zMrRnC@$j?P^ITbKAKMm8{5;wI{{OYC=ZH<}#T$ky;MY zUkazH0j-ClAq~UQ?XB8n&ZHsX2tu-HN@)AP7+fs&3u=e@kO|C1#Wjq39D)_|($f_v zp)+%3`D#XnNfU1*3X1yn8->_}=d!&bE07RJi_=#+qJ@@y%W3b!DxSQ&r^9wUi*fdA zli?UmfM6`85UKCv-pbe#rS>00gEdn|4DNuoM>&IPR4wsC_0uC;748%|VsC{4q?!>1 zVO&qvoHc;}woWah(PNSq%GN3VgHR7AJJD`1iBcG(Adc9#&UU)8>F4GznMV?z!G~$7X_38nMfQ!f zN{4RG@f>SX_)ox?a{S11H*{a>YJ0{bI68wzsIT~wj1*hth^1{`%u1A4BiXv$ z9BTy0h?J=CYL2=s*q6>ud(nI$jQf?-Jd0Plx|`9DGeUd;i>iHn7?<%HK1jW0a)J zQY3#G4i!wVApoQ)a-g@Owc0VmrJ%V`eu+N}n+H^;vDXjR`DEA#=AB5jSWk3$@B7GX z$s2r1Cm9UEr#O(hVAk6x>;IaX&Orb(ah$V3{-Qm;S~GP;mf?nJQPCDZJohC^$Sw-RdJ!6*B7nL+cQmFk z`?1WTi=4~8AR|1WI4F9XB*(ZgG8ePr0r3(^S*1Qm0$GO1yw&XGZ58(U5{t@Yc7@i^ zrEl#2k(@KY$$5$a<*{URX}i692i@)T++UCzaS$$XpJ}3xE04?NBw^0jO^mXGVhl1$ zIbAs&&=w2_nQsAhP8c=~z|JKK$tulp5B``FbL#>&a}}VuJ^HOFY+1St>5_p=y=w4MjW~rWpcMbRz8k}b2Yl||F2Ko zb#=W`b_d>{Jf1dtH|vlevYhzl{{fG`Qrt9*C+OETBjMzLr@Ra~C@}~YQc_JexDd$S>^w!@bf;sxkr7pns$l%xJ<@C!Ny425H2zNACZ>j z7FOEOQTsSW@+fj+<5xd;3seL1%jmq%-E?txtpd#pVMD>VCa4%;(G4~Y>4)Tc%KG=Z z)eO5S)%f7P=og&Bpr}@{Vmn2pTxC_fnGF6Tgzu>%fxCcy)v`A`)CHshdq6z+he}lD_L|}dBWm@ki zIw;9v8zCNUQh2$Us+Z}LLN07D+m>qb>e-|7&+%58)ChOlQCH`9X3hpif_{(THvf?N zeT}Zi{@+3w2mLT*qr|+WgBN61MB<3{qMFPWk!7Sm=IUu)YP2fr9u7#iu7|kk zm-Uri9&UBW=>v_jRl*tk-e$9IMG8aX{WyY4iOU$O#_Y)sm@W$86*2r1R;ZJisBSB% znK3`5Dyr#yKR@j~Qsju&$Y{oX;o!BsAu~m2F21@an1_xRSRg-b5Ugr%A>mMUDauiF z5kTaE*}S-SK8wxSb>R&mM6;0*X187+zYYIZ39;7_w?*Y^e0A)C7HUw`5V43$ZjO$i zjIfHU8M4-5;E7+~-WoAhPcZZ4kUMnGSH8!`S=ZuMrM`4@@;>YM*b3x7o=Mk#yO(|_ zEAZQB7gW|(q%HI+n!V&N`DHymd%_~{EVPeff3?FgM{6lUoo;Cd*Y_)=CA))n96N2) zCI|;>lTh4cgY%W+Uf?*AV8<$A`-Wov1eA#q4AXH`ln^7rM}`WwCgvV**n3@Kyrp{Q zsynPhc!4;EPv5&7fQfs$iSq|0BnwcQ8TScr?<*N=x4!#wgRW7#*s)q-YP<2|T|?13 z`+78ocntA3x*q;trP}_FV|g=da@UCY`Gc;_0WnX1Q@k40&p-Cnt9H}w{7qMi{3*@i z^0XN9H>h{@oVK?=ofC>`1=KS;B~amn8q`$R7Q1sT zXjk+XYisw?X$x~WF*ZnrOIru)S(fQLh&zlf(HMV`9y34zDP)EW$OivnJJf9%C;F~{ zw0u!28T)``>3Zg@RWsniYHJ;1xiVcA>cU-MCV4PmoYsPOJ(ZLJ4UG#|ll(YjsOVN) zQtQ1Fq$6Hx^58@{f5`aP-fyc?5U1SQo6~W?4o3BWtxoUZJAOweB35sy2+dy#O7&Y_lVu4OjT!cs_rVRQ5r6Z-*g*7 zOX(z!+vYA&plA2WrF4#eEEM=fr7c%3hW5*#p75299{ikc1T>6v*&LZ`G!4Iapma69 zDc)Z=TTL>O8R~KlyNdIpiIfeK-`#&79L&#OJ^s_sd%%#ge`#Zh#^YPf{!9KMT4gBy zdw)n=@e1phaIt@+%-qEtHpVQ6KtZY&E;_mzaDJvNY2VL;4tqxzTg!TE!PPmN9*?-zKmrvEGOh{DnCn(|D{fS9Z08oOrs9sQqFbCAL7S> zD7V$d30F?(ZK(QmE;Bd}fk7&2qZ(bzrMy-|EaSau85%fg7%XXk0ta+uPYQP$tLZfi z97N?f-qe=SMDUN-GdiHP2%j{mwKtix7qAr<;u#D#sFcLiTM`kr)fAu*|&a=Z}ND;Q1<+NL|Fu>; zIVPmG@&*dbeQP8P-O+ouN&NOdaYm51wR2N;N+#wjE=;|Z!(AJXm?DQhb8f|d6nwfI zd3M9|+4lu^+9|896*?bQHI_ZEe6jxSz<1Rxv48V|Vq^oJz4iayfdAa^yG$eemQ(f` zh+!d2X`R*3EI`wzr_H^q1Y|W|M=7$KhbyhS6(V9nF7dUrjbbw2#joAH+oCI)q2*~x z1!-&3e)WvfKVi8hd%GI{j9atd#9ut3d+u@n2v2?00=<}mie2DUtiS}tATy!s}nax>9NCM>gWzCyxLT z*OM-0_tn>^(osbY{d z?o)bHgW1(gi*z=|UISCkxf`;rk-dJbm$%R$c2}vR>_i#O=-+t&$<61nlOj>FOd;yY zx$RAwFvwR?XdeiuZ6k}T2y}$s8RQT}+IJmgPW$xEyVLWMeRX{mM5-2i?$;0gzpKiE zjEBI_H?aLLV9ef!p~GicPg~EyILjtn8Z`Fh!5Nc_sg~W3YGP52{ZG!xUbgo1nmyTT@lQ@QlXX9C z8rCbKb=OE=WHPkU7@rN4A=AyiB($1OG7c;b5oPvJIZcEFX!-y&Rn1bLw1o^;z8*w? z{wV)UDC7SP6YdvQO0Vf>7DFYC4=C*P(KfSa;TmtBcHZ;es$LeE6NC=!QD@dsm_+v~*r@Miv#`>Zge2t5tg!~)-?sTCu{^!cM$eADp9dT` z4=c5wOnko7EUT2T>p=nq&g>0n9($lFmzBP5PDvhrEweSTELy?#^-5A#Cck}FJLIpp zhttA*`o*VovCObrui)+d6G~d+%;_YR%T0nml;}8;eT9J9MrMCw)t+utx55mO^)B$^ z^~~1EV7iJFe%Z7jxopT0oTsfE$J5sEcYc|~*I@(6(;y&_h+-g2-dDFxAD*?1rmV?u zJHzvC4_BwnVA zE4yQ?K9IcRe+F|VJaI8;2qE;GPk`KRXHD<&>2p<2apb}AE6ySUvnw2>gad7%RTY0d zD-Uj=%g?fBwLDi2>$Z4!Pjjap(%2gsS3>bp$&o>--OhQqsGL1X2pIiKbT2ggwjY5c0AthYo@ z2^FkTzySl1M__WUN*b{2rjYwx4uOK#w*V6#*y@5iBHuwIx!iYJB1EI#5aPN0=Xh6nld@E%N;G%SYKwgNC{rz~%_ z6|q$~LTTw~ilp=*hYPTl6D*typbqYRSwF$f98IExiQ**MFF9XewRHIi-LkDUQ+OL~ ztfLOtDjXiWJ=}^ToQve#F~Do8{>8E(29~QSEMK*ehxS@hf!~kbH&FHuR=E)gicCv0 zQBr3p^b6O4Ymt*hrP%~Z@wZT35OOOdur(ETU7DDcW(p$iUq^qCO4F`{U>NI~w@k6CG_z4wqs%>PjA0?>!o9o)NK3NU^ZHWF=USfD6J~NEz zicwo}NtRSa^)1>D8Nz)qWj6t~Rg|eHnoFKMqjBh8Xz2#*Vz77ILYXkTO$2=DU5XQ* z;n|HyZ_z{-2U92j(|uhXD{|PfsI~THH@je&lGRQjI-?k#g$wEQBdtCyOlS$ zO8HA_O7+jm#iQp;N$5I@MQAj{^xZ|@)%;qdmT1ET5hO`N4sfd1s*!V1q^VkO%hB3a z4Sy9;4@b%-wjQ3sf#e={nc`Gqi5@f()^vKMsQUXoe2g=4BweGG&6r4{VATZIE)|hvHv$#T1hXum+JKRLLatc{a!T&c z%7<9GOCZ?F<*kNw`G?^UP`MT55B#%sQ}ftEUi#J8QcG|#Hm>>Ab(`U>%S#%iL*R?k z2W|s0bGKR1J*Qo<53!pJ4+a)Eu9m@!(|7W#iUUk&E_EQ?WqB}sf_A=krJd-1_qXrR z=88!9zgbz$&94umr6G2(Chsv&g~gs#YSvAU?B`WF&^S6o+#tuf=5x*|6WcV!`6;R# zy25$kumSFH0>UYl@6887f3Rb|+d5~KX5P*wtEhaIfES2D&|~MILbLMqyeg>MSP}Q= zxzVEZxxV~R;s1+03Yu9d*$@Bsp-j8|yKtr)QLyHg!w=uSvgM<}G|J?4DK+d((XYWl zh-nqL(_UZo@Rp};DxsrHNa6zUz{><=fwz1t;QP6zLWaY7u-##B$`RDrbGI@)P*W0% zuV(V(+Ra#~t8gc00Bw8CCU8esXP>)-5{Sv_ksvqu64i9FmQ_NS)HWeQ97V~c7ISDc zwOWF0ivZxXu##RYECaIWhH^&SSLn>SEgUqhP?OTH#&l0RCvcJ9H;gnbRyEuOV|Zi(E&SZ><99Tn;!Tpbueu(r#;6jQq_^p6=9 z&QOEw`J(L;?g$zIay7XE=bcc1kjc2-09JbPeEU!7IQtJnyU)2e}&# zlTSADm0?imG&i>y$m1XIEX<#0SA$s}uUSZr_#T6k)rXgU7yFCJ0nZ30-9#@Eo5y6f z9WHKIH3fQosqfRb_4fMSI>=#Oe_&tfhp|@wKPjr>JngYIc8m z-c_7|aKq9sigdfG{Tf^*9)yB`-<|a9>0XKP(cM)YN+)4Tpf8*TenH3khZ$~9j{hF- zh~12?3;vr$+?zleJOO_%cU})B&L18(t{+|fOZ@eJRjc%k10Rw_XtVstkOAjNN>LJ= z`}tOJ$glI;Mn`j}AVOS^Q;S6RNXFBqnK{xKter|s8&L)B@-N)o(iF250>9(9snyZp zRi3#TEpD^Bro~fvv?Mi);>v%6mU{|dhJlf5*3DVhOkG7Bm`J;882HVFun51f%iW_E# z{GN8J7KLo9G6iWJEa~2>%a(XUQqrRA! zAN)11SBp*+G_`fp*nD$|TnV<>=He@-916mGYs|Ypb8L@O9&K|t$MG5j-g0#X2G!@y zI1|Pth+ZKpoTtYOmFLgmoN*FonXOU`!6MPaUNspSbC|%i)Zo}7432oSQcNo4`3%xr z22$shX<(^mtO^MZ1PeXu8*8U)!fgr6t9mz;ZW+u4Llhbib3#V&>DN5WKgSUwgB4qO zqMx9c{m`~b=Vj-U53hJP6Wn9(+eLr)d^aPTEbDon*@$tud&v=efBtan{f1HeO#!(c zIpXn|DduhJxC$jrtvl^kI0hr!5$L<~LWvl!12CiF12ujVW(jSKx9X?VYih^^92kcc z+v0Dt!I1@h`-EX_CH>%^-_TMGyl3dTOu7=U7yZX)M{JcC?qb;*PX68Oc-UzVMJ5G zcJ7RDh8YX_UyUPD?c+JCljD@PD(Yz0XxBt}N?}vyXU++PKE_$JuLU*_m%K~?)PNPy z9;y&q)+s#WsMss#$CZg&N%AC*xC1Vknd;T83|nYu5qp$|u|+q^dG7>9nFJ`Y9#agi@o{I}t9=c|FD#zht#auM3o zo;tX8Qf*3hRUH<|$g#wVm+yuTCljds2bAxD^*=d{S6(gu)3b8H-uc__A2_3%knNyj za@^h0agi?nCu<6%!?`Go(5|^g*#ffUGWD)wF_vpPb}q?nh0o? zs!{eNh*0>jK*;LNvF}c$XUl!+#}Dcp8RT~6@@d?Yaij{PufMkPl)Y_W32*uzDavI) z2QxuXQkg0hfzVr*H0(Y8O>)&*)*Q9#F{CvK^!i8;4p%5LgPK;mUM=L_=?_xX7F8Sl zT4*33=VrdMn}LqaS$?@1N#)nj$mAgS>>`zvAqW;gbw6xMC|{Eq2a~`Xg@5rWBLvMF*PQu(zww*9*m76Pbx)BmJG5;fY3T`;fEb2I(=+BG|9%;ovV{IU2J z@@1;2E$jEs0ekqh*3!0Ng>nU3KG~cZQ)+@?+M__l~aG3#&3C zs`bk(RElGnRDu-n;Dr&IA4m@lyq#*2L$ktZO`XB;;S@s} z1(_v*kg00Nh*53JG|ztGVTUIWjkKTwKeL%LU&3(5DiP+YU479!WX+$(o;o?ng94!W za>?G>x&WMRAolD;h1l3KKl5zZ-j8far9i_W>&Lsoh}kmGdWi8YF{r|t4%RryFjQAH zt8>>JTm)m8ncH?}S|n5V|2Z%9s`4^*rqhFnNISo(kU^`=!En`L^f}?*jN`O+rfl~b zWXzCsIU*4ld7WRs^6#*SebfJ$|2Z)Mq<_d>fRd?{V{0(rE?)<~zt2KTTYja+N3==a z-iQlj`$;ns%p+~%mwR~v96-X13ekXU2@DDZ^UjXscX}ktylmzIlc?IqxGlbxmz1P_ zkuR$~9Iw$-7Lk@!IzVgdo|%?p)*GNOd(FOtwh%K^Z#Qo^Cr1)f5wt68zW_BK+A= z>6>)N=6x~hH!qsQf-GS>pj5$#3-dz($tMFq72?af zy9huM5Cu4Nv&ULz{5DYx+--)?J2(_H$Bue&Sgi;AfU|J6@UyK9qu>}$IIf056QL?n z=?mIir!}Z!0_-YGd}>oZ454}98Ejgr$q8aqL9$~;He>v?C}$Y&{no=`k)3tdGi)2$ z@ip!J+uCcpuFJ+l7beMmSAp=(bi0Wt=Z5P=EuGgzX%(rU=Xpy!6N?s|q_(ZT0FHJt zQgNjt#wt=(2RuNclAb*W?ywY5T`~#lt2(m!hflmzk$eN98l$`yvFf^ft8bih?eFa_ z{=_fz$LQyqA%BaaBgS(3$BtszZ^!%Z@xOncp8j=?iq&zC(znQ5NR{NQGowwoMsk{- z4{`FP%8|RDZaycRP|J_;bn+AQb_8x$Z2OwH0N%epe;<2rYNCLi*njy4(LX;j=?c8n zs=vMlghe&J!5ywZ8RDhoZP0jXFCkeglzxW&0tu)aOO{Q!LJ z({1wYL3Za8^S1zQzYyziS9o}vA`FyIYvK!fVC_FYwIAaU;6$7i`S-&dDKl<}$9a;j zns$|{YZXa~^6Z#pK>#eqFe1{0i9gXpL-CypFYp1J&6mDyxF(3v@x~4yM?bo z+|bJG#>G_%o+X(3R+GSr2(O2M+T1 zeQ&G#6(SrC;G`b;DOytzr2dm*%OQf=cKYUnFGBYf;1>aoxc)^u-ggX96dgp2e6V`yW}se3?q2slA?vj>Fw6OO66svUY@Fr~;?!Dh6(_P0YC! zwex8Va#4+Wjs2RZkCiTUMs4}y!dA2ZQERg~%j%SD@?u^h`pPT~dD*BZFI!BOYn)g3 zHvwuNV?Xz&b$Rl?8$tJiE6>WD>0HM=T7_vJ=TTI-8nqD)5uNS!Vjeh*EuUGt8&pKk zew5RYV4yGV2~^4_8J?(j@Wu zOVh3ORw=qBB905AgWE0XolAjEzE&if0ol7NzzhM~K4bs~)X0ih*N9+Ls`<|YN&fC{ zv}Ma&9!LI{)wTt%YyQ`ipWhPSlgCDuT}mF16ew2eUtiq6T^;|ux_*1JdEYyPq|OOD zI@ua2a~P6kIw(x-m9`%7ecnp^>Q!3 zWEV+aBW8;wqnf6AXhdORHBvYX;0Wt7lk!uRBHBR@BkSr5W|i5i(+2!Q@97#8gO>#y zxj+#EYW~!vNk1@X61RLgj^Jctha90L zU78{lCNGl7k(#Por;9~`6t_C(B%kl z3Y3M`lSCmt6BvvGb+X0y#*#qw(ohBnD2t$1>Yiot`s&{6v!lF^M7^Mgc6U$8mG)sj zIJ(61mB6jdy3aZ_9^U;{oDue4-5hw8F^zI%ZV0RrhQGxcVtL>y2rbz6lo!`NtfCKR zd0j;JP$hN%Qk}@jG{eV3S%~%oaI!Jy#hghJ=LTBmI4g;a`;&#)%sjZumaO!lJWOCL z29%kn?NZUO&3qzWlXUpxb?CujvqkcpG{5yYPOp1htvHFR5I5Cbbdy~H9x)PX34I_M zwQeaEWG6Z~4L@YJcp>xaqLc;-{=#^l1y-GQhlF48kJKl=WVxU7vVwA4k;;gzdH>+p z2Z_fPU-8!1^{?I_jXS*Tk{Orj9>mqcKO)1Zb>@gADXgy_hbl?!sjFcq*@6nG;T5(D zD%zGlqI2H_P9Ge0c6PFQntf)@MeQo;3}0}#P#UcZFy~E_+9JZfC#T>79UNt=E_Dpk zB1ef!k<@GJzWb#)mev@Z4ru*$gB@TP&pg@&OzMPh&kE!E_gaPog}uo0WCZu+(RCgk z!VK8j$s%~pxj8)D2K?ibK@9bhxRdDfQD*EMDPKeMvGW+sh>$6V&7ea`K}1Gvvhpkg zo{jIrn>_WpYzLaG)&E7ki}x|yK{&@w`c!AK@?i6Ks=)W}>C?_Td%baAG^_Sib~3xW zpO?o8nXz0jHQYKrP)0E#aS@WMhYqEJ0R^EkiM9`b*h7BWMS5?OY91P@hz=lS67I zu7u4U))kcPTgiroF?cxkDx14U-#@X_b4+FiBr`{JPac7rB8xmwx zpG;vm3H9zUBf0rAXqR7DUl!X2-N@JD_`VySsOIJ6f;*t}4UHrJ;To!L=Y_4fJnjX% zU%EZWa@4lee0?fzXW^_J*u&KSa3@hTuuY^~gdiimx)ng{#2<>y)jcAN#rmS%rq_A1 z3ah8n{2RlSC3Ib5t#;(oL$abmq(_uiMb+1^tXs891B%uGuT03#kE*sWa^%mi+vooG z#d-EVEF1j$@$~t@xZm%cVNJ^%$@I^?CVwNTqC!wr83v_>SwKDgQn^AZqroOeoeZtloR28Mwyyi8&R6-Cy+#g$c=2?^ z&v}IkgD1&x?812Zvg?}GjCC-Gwh>R<<1SE`gO2Q9sN&3zsua%hDuLjybY8;IpypnD zCkThRs@S!?`gZn$(6^I0KlSWQe+7^&XABSQ7oi}?7UfvOcms=cF_@nY?&+r)i!(lg z1FFQs%XE&9*y+PtwD`+ebR2JM$sS{OYNv~$jG)LNNCboVG8;pX$B+~Z9$LtM< zl#7fowgI=cb=U-scMYCwBIppY08N_Km!RJF#|jDxj>L1^{{IarAI`t`$8Ws1u^-9O ze9(&aP*O(a;n9%WaS2+*d@4Y}NT9^uTW=y|Ha-8LY6R~}SbjEInE1lVZpv(UEEa9& zEZ7ZDt96%y5KKDfQf+AtwiCnm*GwUgxWOVlzGcmJsVR{cyiSM%dX{+VzfoN}vuiw> z&($L1-$$2xG|*;u-(l5x$_Z!6R$2X_K$7@)J61)Xz5*+>u+&Vuo}Zgq?R;)bA~K4~ z&t@qIBF?o_|IRJz0y^_LusFKt!E?18K(yfSPS;UDAhE^qWt`GTI;(+Ujqrq8$d$D@ z`ZVZ!yPA#KH z<-~J^5#s1n>1Up=i3 zJPrmv3k{L<^ZufbEq#~l4y%#F@yd2AZOF5Cn$W1%Wn};|{!k^lIY|}BK^F*{E=LVC z9(>SICQTFo(?A?{(Utb3m!eUg#EA}UeKET}a9W36z^d)Chl}2gokx?G<1r^(ufO{* zBX#l;w;e%S%W8iQ)c%66d;eY8e118Cc-xah%A}is)Na|Uj5AV6@vWrhgzdVJ=W@ajFrj+ zj-FM9;)WnWFIcuVQ|wM?Bg+u(mO9Ru9yyq7pxwegCpCN?*%!!_KechzT0j{;?W$kx z#36kT4(o|+bs3)Tmf6)g6=&iV7SlpZ`Da)MizKCPIbN&>w4Qw-@c~JyhTaqk@q;E4 zNO7dx5Ztk=P1rcF^$^B%smWpQ7IsR5z&-F}XqM#;AKj*g^zy3S&(xQld)RvQdnQA{ zahPfx3VTawOI0$cm{I$E4zdC$?f-ZE5_HJAa{&Y`HSO*m;YuzdVV}YB3@T_!r$#ARLbAO8 zIw_D3h7H`yYB(c!tekytUT^!JH!D2dz5lgOlTL2Fjy)h7B?ce3zITCJ&k{Gqzsc9{ zY`Vs6VEt4|P7;E41Gs}^csIkn0*G!OYY)x67JyfbDa^0KNzmfi$anhIc zURRD3-&ard);>Q=saaI!iR(`SyMl&;kA~rg9RtZtdFH>$gznp7SfU0Wc=X8KVFUL0 zys-#gCK(xzq}=&*ysg+2Ey&8U>pZoU07rJ){n@|L3cqO-(*;X%JZf(}d!{(oU6pyX z&|Jo+RNoYac)qw93G-$rwe!_G(J3%rp%+kZVcDmXp6ELKWQF;0wZldF3-j;zQ>$@r z>SQlasUS`K>7Z=mPs(T(+lSs$Qn;dIqaziC#5Ayy%3u`w-GaS~YW@dDp2Y`6iH1p< zVm%?gHIB)zy_HhJg(dZCCJ|;7DdKgw%8C2Xf^CylZM(^~jh$`0o#&kQ_cz?1d*NDZeXrnGc;n)bN309eE~t&s z5QkkE)Q|SntSS%$#86WQ2ygQ$ACNK5nwC847_))jXm6D!x~s{Lz0<5(?jA!iwYhNm z`i^+w=&N1v-`A6iWFb7g-MY>aXuG^jrEQ`>ApV^_88h054Kr1nh83bZLO~4EoJpP* zwW^L6fmentQ5~hXThqLtUYJgD z6--npSlcOj@Nkxxe|#pKs<0q{v|_Wi;SuQX*b3{k>1J7}Zhkq^rGO|nn!iPFJ6AL1 zvRUaAb%z;3HuF%U2&)rZ#NW1`*&v4ks}qFV^2g#QODlo%Ug7nb?69Z8EA6N}!QroD zt}KlXB-jx1%LxlHjY=`t6T2)|68EY107`A!8 z#YnQc5I;66WtO~qo-Y+;k}U4o<69L2ZKvmq{YC0!3j?1F?aG>beo_l>C-ln0X5WnV z&*sS5w1AeMJqtf>rc2g>hp6aMT#Zqt3TvT5%a<|)J8oF#4Q!!xN(i3N1w~?$A$6FW zVJ9RiSB1KQ4?@;{Hi)k?c_Bg)48NLxG>}%S4nRRlDWm7HsF?!dx6c!YJ`V;!RkPVO z%U@U%v+Uei)4Qf7U)g%|+35PwIC)yp%DqGO*N=7r>rPeK84R_jrP&w#<%-IM|$dpF5dXu^GDpkmVL`&0hNZ_@D*+cTd zW}UXR=(~K|Pa=J#W~2;G?yP~RiX4`vy0GYB6JfHXCRKVCGIxZvyl_-k1vDrM--ucg zG7x9NT$bGIVMJCIDfJR@7hmCVkWNU$m-FoI6Bm^^fCRsloCudXWSd&oHyb}RIlh{d zzBG_iQKe=O3-1-n(01RH6UC>@_z`@`v_An0l6Dc3@^R;ofjDP#o}Tk%0*YTA6!aED zpwnc>d#NR(R;FCNJrOpD%~fiG1rM+$TVXyX7jf?PG&vwKbAfnmc({_I8_hc+iI86lQm`#IUNiP+JU2Gi{$3M2wtqkjnUKy zleN0_b|Vv@P^n3+%OQm^OD2)4qo+|bVj|l7iPputE=hsT_7w6EvIjFs>`c_;8S`-? z(&$8zv=C3Gy^J71W}uje7LKb|m3A$+QTX*sF((BozA3*9)}DkqxN$mIcgQ1wm;s62 zMM@O@B)}C*oa(tGqmlZ2UG)TX?(R@PxJ2R02N6GXe_EH#?|B;A?$ZTomvvNPr{Dtp zb?yVBak#ZLrOnI?OG#4GmXf1OwhBp863spCH@wI%vbA-oMHe5_Om>S_pIf@(bRsSx zTx>;U<5C(}6(L7zl@l=0G~tFL8zn!&qB7%L zjzVyrr3feGvN%IAVqUuw{M%9}77W7oB>{m+eB0f)M2IR;gm` z9Ve{iT6DGIQJkPBS4$XT?N)J=`NJ*hYx>f~!dGhHJ6d7ay@w_rP04WPCz|i+gHMOM zuiwG*CnrUshzNZDp1Q(Rh2TE=j1hoN5ACABExdl))J?KRw$)GhlFx1?t+@-lpACJS z`oCp`hEDvyGG>BC%J<_o=l$G!tKBDIFW15e`Y0?0Rgh_@C=}y64*XPY3h^YB!{o{a zDor$fAy>B}!M-SM>|3nWUg$#%E4IA42P?wnHq*$8H&)^^o<>4uXxm;={D!Y&9fw8Evt}-QtAeQ{PoD?Iz>6k zUI-Oo(45c;@|X*;?Bc~LSu?1?Dvx*KEoQ1$g;l><=5CeuG9>Y^GRsbtrLvsc_l@c% zMTexvLi4&31O8E_;~?RHTxbk52A$}lSh=dSo7dB#X0fuQi8u*x3(nhKH)Ym}wZ z>EsY%Qt{MFh=+T}9??pp?_0n1f1)o0EgJwQSywWu^CpOg~oIuCe1bd71=oZ;yDXxu6qx)0a?uYyTm!t_6h{JeJG@;-Vf zz_hQs)Y}pr`jAsXk=LZfOLj3IjVII|i{Tg0oV30$JbG<};W;{jfC z8+ytWfq_jpM$k+Zq%N9G-)$~D;#rxj;^Vbo(%I%pSvv7>oKgVEpb1xtqJO?aW#7?q z$g|Q3r4`R*1^SLk5u~UQxf@JLGS^@BzSI&dtd?Y5tzm5QlSomtCrPaF_MJj_W#xz# z$2}v6SCgZY@CNr5_QaGYQI=Cfbqp1wzY~Aqyx)^_oajUa*x8Syjyda*m(ei&R<%cy z^s+_0#eOmyM=OwQB;buP^2Nb?ZA95shF&d$8_GOM96EtHmgKVzIh+h1s72$D+a@j8 zUzntPl61c|SNR;A@;7F&IrO{QA`OliLiI?GmL06BmpSt1M13zQbdRM!G;IIT#2}4G z>;PVXIgefP&GYh4Nl%Kj&kycG={1m?sIH@!2HSfc66q;Fg+tNYT!^K1p}dTYp&i7Z)knoN&6890F2#S zu|E;g)IC4mz^kxm`b9MdpM5jK7B6BH2~_EGBr1}IU9bKY$|pkxS&QTGak(~xO@Ar=eUl@&1n#nD8jyHhqo_f7``)IrDt#&9G&Vhfy=G*% zP&fap3t{1^$&@!)CjA$I`9RFEt;&*AczIXOP)KBz#iNPGj)q5$Fo3aQ{K$@j0U}jp zLUL(%xu~^bu75X?j_uMi75rlQo9*gyK^%D^Yh}^*o+hpj%;Zcqm!C*z)9Uc`Jza)g zdY;d$fTQeVp3!?&W1C9u7HLW9L-?F)9o>g8*C$19sn#X`-Jvf1w)W~nYao&_&Vk)A{ev~LG+m=^$wzOUedRy8Uc7x@VAxU0pNKCi zQCf%Fn%w^?B!_{fOXD3!q>{8$-{Oy9q!y{ul*(^O#aOX%xhU@X0{*hmoiDrodhXDS zR2P}JoV`$9;g3o6nW04I@;-!>(E9a@t__Qll`tS(_ux;xmKGyzdqoi{gN94w*NM2p zHG6Nfs5UsvSayPyS>eSdq%`eVs%gT;6PrAvn8gAuDrRplrW3y|;1~DcVz_8vX3{B= zz=v4`GG@vmq8qBwF~&R2jJYwyjj|-8Qm;vmiy*t>s$Qt0gRDgU5h3@iJn<>Co>bw+ z6;2XHm5qC}PhHEfNBaoZ_pXS>^m6keCShWm-_}!tuK%Ad z&~L(A(OM!4Ryf;k^E_3Cm!BR-y()L&)?9 zz0$m%AKA5iAsfq(?u~i3Fiq)Ev703$%KKhiS7~Nuvb4^yO)f~h;AY(0N65Fuz#T6g zPLIzxA0{p>l}8~o?01iezV|1xay>^^58%5A05lJsyPrDx?*3n8x}f(tzjoPi&f)&Z zAJgdZ)`+K}UP>`uDy$b=jhYNPGUt&38s!j$k1l*iNUSZpeLl_SxK23K<(bBOpD_#gar!UZ6wuQQZ#3LXW-sZn&$`qChtZeuJ^sj(26Gi z+esI9f(A1Y6+5;yNIpFio^3S^cCc_juy=0u!o>^k`y5@`u+|+x6k|hzWk_RTi|=4{ zfpYj>89Py3lQ0+`kbs8)y-tvlu52L$e3xC)8#x9#x6s#Y3;@={?3)maYU$mOQD7*G zSU)%}0&tF7vaoJD*Z`T`yG&N3Rk8*_RyPrSCI`?< zCB16cyS!f5KD!-c=zFeo5q06MMFG2tP!oOzu{KDR{*eXyIn6B{jnJ5=j)ZB>&DjZq zJ~99~JAAVL59-=7|AM{mP;q|{KVxd@(>Ye}Njr zz?Eb$smpfob|{=so5YoVN5RB8so_hL+w?cj3$(v#%3i{O|3ZC*^a`9>56>loUvH%z zNGYUs?H@Kd?7Lq@1wQsvs#_9bPZOH|Q`Fch-8a1-V%Hz}d5Y)EB^GSY)tmu#+$>S< zLx+m|XY{7|tlrSA)!2(bY*llDfZMww0LRqo6D36hP>ViwLKW7o1=eI;Wlf`mYe4 zyQ2|B=@G4Ag^HV4t7pP=G-Is{m$cZ;(~Mo;k){DArfzqAoxtn%tHqMedH=Ya-AL)$ zDdylHeyvPq7KwB5_#M+S@^wBH4lN=@J*Ib@N!(bLFHP<3qgcly1TzX$Dz4K>At$#o zKiwvmVcELuOH@VokLo;e6y|{nQfhQ%M@)#1;!qzIMQt(!CWmC z--&d;U0}AHiVX5rDXjk|blZEq?{`1je=JVgT651O zR-LL;6|%9hnKV2LdWi|mHECg0z+XfGJd*K4aQ>Z;nc=L6NCScvqFx)7%2*S9)#SkkzR39HDf67V3P*v^8W%;9mR_mu36f zWQ1&Kw7XH8u~Xq78tRXQ9pp&f|nO@ay8)HqRZ#d6(MDtrxd zWPv4gDsyDW-9ya3{Qag42RO)R7LwO*f4u?LNHHd0D5werpjERugVAZX2ED2`RJvdl zB~=N_Z=W@X*7axPt7N*shfxjysV)&zWC zN_X3T|1v{Q;cF*@gM*{h|DO3lX+w81B3ib9o@E3t5fx=ccWgs?YCGO|sx~2pQ?dxo zJW4RQt%;@UM~|pIY{9`OdD`!z>Np8`p|vbYZ5sM795}4YUzZovGiI|*N~`lTk3;*j ztm88@vpLX4gHLp8&V}c%A7Pm&_sNH%EHGs9lLIUcu~S6ga4E17o+YwVwNNYmjFpg2WQpn<5-&IUpu@k;hheHT47B?o$l?53@1+gjis zUUd>!nZ?#6c@v_>N>|X1wJA+5Dpj}qT#u84FSVD=dj7{6+N6#R!A|)gnUZFehC38B zOfH{R*1YoQ>0szEViOcHHI32zW=Sx*yx+Ep^$%D4;rpHGrzR3mCCDa5)AJxVK=2%x zUEUQ^jG6X?sFB!tQeJ)jnI6tDL#|xvk9nfzapeXWO?e6wZS3mo;Y#&n<+3pphBmQV z)9)^lwGw5l{kG{~Z<#D6@%ZUhdUKRlh=*B7#$L^;q+SKl#QoE7lb%cm?=!AhDYz7 zmKy*`8K#De#e7p2GTfmA*7Hoxb{;-eTH<-QgmpwCWy!ywF^YU4qNGdeAhiqV#P$Tk zsI$mQaJ>jk&1JI1N9!U1jDOk`pTEpI-P}-ldco083hL@@US+iAH$bn; zzj1m7Bmi2Nj!{F8Sv>{8b#;KL z6k(G6J!5o@o2GEof7aDfQwCkW?=aZ79vzf(wB;Qob$Rjqv4Zk4T*WszZgV1AWK;Pm zX_qDxibKO@>0jlHr%3<%fVj?g&`ilHsqxrXdTgOm`m_Xsc@0!>j`T$FO)s`$$uk4g zR}aCX`UOYA8~+D0wBuWs>-_Rtx|Fjru%3kdn+y7iG_s5PO3AFcoM2`MZ0o9(dJr%f zZo$M=X{Z?N+sylZV%;??Ihj-GT2hQQrFY_{plElh zwf_)1kG|5y5gkyKb?tyVY`bZGJxEE59ZF^& zzi5M?b%~mPMaE1>#C?SSw$R$c-_8eUs;gSqi`MNir@MPG=Ciib2akQdhVX7qx zUYxuLSHt;ib9vsEb?hsuVYuLO7)QcnyHQqwTfBp;CD2sNxYqUiFd=%z*zEVLorf+A zeFt?TF@oBt@)O0Ietw*8AKstspG)r=`W=hhc6FEey7CGrr`cg%<;WMx9$~Su9Z9NM zq7T=#ohbHola=b2H8M>V|e(fJDVzw*N z>)Te0<)9a*|C1NhutJ;fm(v8c{;Oq*OerKLN5rGL>I=xWrVn5XM#CX!J%tt(wUs!L zU6+(9?Qe|hsgUVZN`t3f0ql1UFI4UzKL49I!^X`N=q5OckW1!_ns-*t_E{WQ06yW( z3_JXy|A!0bH^rn(maeMosNdVJIl4#h4L>IJN|6n9^ycHl;52TpuL zt@(wXx~3Gm{+Jbb?dBN=Vr&UkAH>lZa*b$Wzej)XlOI;k)i)-DN}Xd&=MbPY#Xo%e za9sFFMxyovmr1%%*UU^TLk1xXM-w<3k5ryZ24<)jhj$h`OqJe$%CsOtSTB~G*qGGy zf-R#KS|1+eyyAP&;kk#WkaJf3e#7DNc~+Ux{j{Lb8QVXVP0v+~_IPY>Pz8mVbLNsW zml^oJf~Xq45J@wG25-{SuPo~+q{Hpq^JlFH7YOTc=H!@a2cQ83|MnNxRt&DEQen0% zc0??lM*{)KdeT`RoAJ));pS-&yW}VW_OtXB8O=D2AKw=*+I=1|H^-h25S>+|9}$E> zi~R#aVmzj55;ejLgIi4!5kizPZ5bwbDc-DD;jV55^RiYpiO1`{wS?#6V%?$)QuY=5 z=Ee~z#Sf7VyPlD&)TSwGl^1lj))J#sR9~dD%8MR&y*v-yjTEz@^bZVLUDe>V+jlXv z%;><8#(C6=WF;AiZ;WVBCO+^s4Mwf*d?wA3P7Sh}mnb>IM6v(4ck7a!AIYZ#UUj`( zKX(yt#C&ve2L6+Vwys`Aa^65&pATzOZ-@8ge7tOkG&tk1KnWEuU`ugSsR^n&HZcV& z6B-JH{OGF7rIZylfx4ug!Z@9;6=`k|GWUs{;dL&iYJ;UVo-fnJ8& zc2J^(G?2$o(ps#+)dTEy?v^Lw$bJehmW)}+<-o_KT*J`zUqjw`6~aVF^aAERoXs24 zcn5fZvr*M^!>z@Zyn=;#vNc^H8sNdvdTYM&^W^qF9lfnN%W1dU?$+7k9B-*NI z?)-V)MJ?G1N5&4MxPDG){tuj$5<lB{#Fi;w(Cd0f2H*8b z!hhepK>wNAUdEKzTrdsx9to=R3KQ3LC2LMC5NL29NEu1$O0KGuMK)Pf`s1zyv3`eN7H=u)?McV4nn zsCgPCla7=^N@o;mL^uE&Xm)hA3Nc+CcZ@daVKrYk;%Y1dg~_9ZPb^Mh%K$NMIt0ui zu+rjWf4sj|M^G%=c4-KkUuSxHmKEs(=o@X^N5V0FAo(uKQvj1wsOeS7NL`q%p|OoE zk8kD8lVsF1>?5U@M~5(sWSqjdL7CcZzD|h=_fv0a`WMAHo@)a4N!}YTA1$3!u3LiQ zYI6R;3SCwu->+h?jbYUL;rKGTQp$(dED#G4CZ(-)^NcBRGg(meidDIJE*P~b6e-4m z;0Vdm`z?6le)a7j^>3qp%BaE6-V$3jF7mvPn6YLMPD(g!cCQ-)7D-{r$us5%u%0pN40lX!FP_pg|BX*9C}5WOBfNmptajiG#gs(z z^Sg4eme(D`Op`Q;)?iyfRoqg530gJtRd>J%1SNQb$4=}Z)m-BW&-f1x!RW|*4_EFR z+g7`r&uyPCP5y_@e^Ma)7qa@+{|4mlf8_3Wu`s5A3~9_+i_ySLNwTZCMp{cb#o2w{^X%@9HMKpX5P@YC&$FCCWVgy_ei3_SLk-*7={vL6^C&FDK$rl_k|3Z|6s$u>GqGj!xGQSul<3LPiDCGlcDZJ7tR zBK>@JWAnL|@S}HefIo!nc*P@`wDWpzesjUVC{;%L*WeZXdy8oARAu`kUf2RSDlW0bIDPv-y6LeYoS2 zlPtXW1Lc$~e6^7%K`RO^k-U+*`nm8nhDK&6m;^A}R;IJ>Id?jhF%solsdi=Fjrhd_8lfji1d2b^`(3LLcpLayytsq| zPQ=PVyPMI)q|#;DwY+WLDur-u^^0_~qcHUTT zJ6Zn9j*JQkh?AfXDqJ!q@jYOP%^nOt1}H$KL>I| zz^{rkWQNYw*(9SH3ngnj1u1oT&v|{aTr%+adim_7=pVJ{qT4?Ti)P6KI$?-e;r{Jc zP@J!W`ORCQui<(X7sk8Kh{Nv32QN0E5GvKf5F0{5nqAqa!6ziQx7n(xH&rw#TiyQ3 z@r$9m-vk*4(4-BI2494Oae1J`E7py!;z5LDgE?Vd-1W>|mD&K+r4ug7f7jq&0DWg7 zj4VW+8_qXx3Aj6p8CI<>3o&X+*{Zi3-9t%@y%zw!pWIXYk6fLr`o3sQe*f3yikxm7 zUA}49*)7_+iYdjHo?)n%6_5D4#x9&}=q4LIGV#Pfa=|!`2Vt>iek<128vQ%9f-kYb z!;3`0UI7cmeDA~=J1@p);Go*DCJ2LXYo9U?1biLsDj%kL9b`%&PvXzAaP=$(joY6^ z%(W0Qgf!YB+&J$>9`FA|LUuMOw9r(!s}^k9><5b~EZoTZuIK3pTIgvNR%ZG@6pWtd zZoj?Yu^-vIm+(I+zkgQfOgfsHe?a{lVDKx!oe_z^yndgHh|g=HMOf#IHD5Q>rG_n) z8@0pb0w+d;>kyyri?*<)Si0uOuTPJ}(uHX{CI-!iD{E#WcN%1<3I96UCDCm#S ztXw|TU?Lfa)-klAu9~#_2-XMxZJxwY09Uu+h|uZzJi%LCu=Se#_}X9XGsn>!>G9F@ z9UuQayh1K8jP!f0Qza!JVIvQjw|p>Kw4gvzPvb%!`Q1Js*m0)^K3=2j_qT)|0Mrz% z*!i**T{^E1Vo!zW1g7I1_kwZ_-BO)J^)YjcwrTz|YT|Ckq620F@d}hrwlXfOKu4$& z-{5lXa;!zw&*(8W-5TG9{g~RLcB1uN>{QLg2%}Ia+&!=Q!m`DUF-)(Aw5ij<(CW|W zd)}`^T=Cy$)_;6i$$4MddMcgrJ9*xC4~NTv2@7LCh54tJ%-zDzjOZ80QG74Y=W?A{Q>lunh=C;P!DbY0nSgY)Zvp-uNX}INate+mo`PbS@uc!|Ind zvI5~qI&wiEz+``|+=4d9q}0}~%Ry5)6Y#46t(#Eh;LfqbCdr!nWbQ9F{ZMobmlMk1 zk^{O+E4G{PrD(hpG=&W*oiL}(hJ>Di{Y^^uow)wnA8+3&7=`y2wYRsld;jNW`x0r_ z)C(oE3SRseL#ot=BGbr37bvjaAeMk~)o5`v^r-VeHwSb9Wq1#$Os$m$4RtAPCOL%V zzc@hQa78xZwcV)Wy3`DmYEL~~7D%YX`Y}tj>#?yPQZK>JB9;^0XS@s+D5RX6G~6u1r6=G+-K*VoqA4bet0 zzjpAl79T8}f2KnmOZPK|dq*3JEwbUq?{4vp;x8vkx7QyRh*h@_?X9<$rRpQh*fhsZ<`312s2YQ86HNwY zuH0i5nmG0A;iJ+qXUv+siB?Xj-PJNWIn>{MKZham6fFz{?_EF4tg_#Hl<6Fo0}?&UmvTc|hp`aI7#zE4BsZ@j5~ z>%%RtJW@a$^`uzUk#H0*u6DbYKI~MpDIMNC?z4hL36=xYRbxGF%mM=w>&vxqemIP@ z5&j_|BvG;^qWPhI83!L0-u0x`v@S$VQw0Ji5at-5gJBJD(9!z?K~g#f8$_R|V9j&% zb{b=6FYTVO^%naU>X&;z5eqOaZ07M0x1jq+AoIk2Y?LVWDycQ2q`cANrOIHVw>Ze* zq1vXp_Y9|`+-_4Dy1#n`&Xy6B21Pyx$IGM=YYa^9(K0Cv>cXLbA4guAk9T6iO?6Qd zX%Qq0bRKZ{>6TU51odU>ahPmj zW+ST4*ttu`n?>7A-^;B`#WpytcxNtGJTQT=wy{yHDR}<^uMNK(D;{GGRFZZN@nwq?{=1<39bD#hL8b=$;8`|f1ygnAAA2ODnbKdVX9xk6Yn_bsR zF*#=J-_Ppb-Wa;a-``6!D5hN9o61HTF=p|8jp*pCmExK5{1h)i-aHZ9QUX-r{DvG3 zoNcur>x~(t87MOYXj=cElU7_FmtBrCjA>j*XPg(L568d&R7hgzq0)nlFbO?>BNj1d$=xJR1vpK~!re>EwC< z>9ICiz(l|W+l{t!){y|{WHDVme+AamyUrXd zujkJ%T)Nbj3Pa7rP*xrz*|PjBH4-(2jrGOy_E%S*E6}6gW$fqEm)50|Q~1B(dg%p} z^8wnr--Nm3YxnPLRNuHE-B|%7@9%JLCj+VMgY+5_jvMy*vXW{gWTiRxjv__nvln2 z#9G_b(7r~oXek9~R=BD5xgPWLb+7lk>O9fN((~PW%wAty;rJNk(AyuGzyW7kYE=k4 zFyJfH>|B6KyvIHd!Ko{}-I=cPWo8Qan4hMVbS%mAiD&#fQ6^ifPSXjBQG?vIsX#Zn zi%K2fAs$j@81dHg2Q$Lj#r)ZB(OjpU&w!cFf%Ol|G|nlKUnsj4GOM!FeRk2Y#=ZM0 zgWsHw>t<%DD=p&-I33*UwvyqNMI87P0uhv{GSIU>Ce%1AQERF&jKlU8zb}fSWNw=G zeL`(-X1&nMh~I!VFhC3cY(lwR8;}(bbk4MIu;b1`+n(}{_tU}6CSSigu(o3E_5y7y z7wGJ;aG#%56R4-MFA7iiL^|6bS9D0h7r5WHq%&$b*%_()l85hn>t87afh-LXP&^J1P;=kJryt{lz2xN7*Sm zoeiaz`RLhum;2A#qi!l*L0LwOfgpUWEUq5mN!ght3$6n2jKf|b?Xw$!1xdG-R=nRp z8d$tJW`jBUQ%Xm)f5s|tuP6#=kQLh(5Mo}7C4rqB`MHG*7F^EZRI0+}iWwtz< z=b5ZIvxtFKWN1zaA~!b$OI|m3;n}_qbpCh1_Ak2>XCwU-KqPB-OcnU>ANJ$S9^8~& z1ly|N(qy+bOczO4a@L7DU2gH40rseZlPpLVIgNf2y)@5|gMas~xj(ZP>@~0q4nX9Qy+=YC*%-dtK!*xQ=xL))D-$d33!StEWT;7>ei^DPx6$GV#SuJY`C93Y`EXOnELH|vGY|aO#V0N6>uQ?s=*$D z2uClvPJM$(D&sG(wOP(%eh~;N1Zd`txkxr)G4vPV5}7Ca@LkpIRfvelVVd0IG>G&y=b0b{?qlxSj5m-h&d)`d+BXxUJ^#=Y)6jEK_kqN?MK@ zV1jGh#%dd$HKz|UNh0Orh^^hj2IQe7U6~CnP+07f^SR-*S*nntbEKlwFvvO^K!S|l zDtYX?T{D&#Hjnk+)rLqv2GKv1*rK z{{@Zzy*PxTag7$k;T3DqDxhJz|D+~a>p1={tBo11%E}~P+KvH8I(lHdj@=E zG3$Eo!UiTFf@wf*%L7_3jxW@&n4esrX6vHm8+Rp>YS;byjHNp6?wwbGYRv9C(`sM| z&5E|P3jsJ2$bf}G>%6i+w@NS2d73exsSKQ0jp<>(=*(#;h#&f-A_?~%ut1O10Yo2A zq%0i19@0%Zr?!^Wv``zBXDA3uM}%d!agn(<}angYV;aE_?Q4(g?d$qg6w+pD7<- zJL7_tox6bGgf<1sdCIJ!KZ z$awWv^~!vE{hx8ut>ZgP)mISD`S88$dflAh5O`4>1D<7B6qiwRyDo2Pa<(trIh5%L zQRW~GS)!^7vw>1~bYQvSFoa~%ddp_Xel34T6_JJhW?j@7atHrtp~iO0emGdWiRL5U zTpD!i-4~Fd81U@6g8Mi~4%5dn;p;tzd9qPiOIThIaY`u>Sts);dDMzZT|`}$ep~PD zd|a8G>}3Gwac8A63`6cfKOyc=S6@HZee$kbys4tT0O0t*{JdkZ)Hr3aJ_Q1Cb>sHi zH+`G#KA+t6{>9|*QsuO`gmZ4VNGU(o?p4X#2V`2d67|^#m6HM*B~9t_TMI{53gqB7 zXypf5gw9Pzcl+_Mpz^E2SF$iB2JzBfP5w3ftyxo_vcW3QLx0KL1;k)S%Aql}&uPNtD57D8(YDpYTN z*#9y0-Z*O5#u%j|!!I*_M#E#8Rgl#Kk?@SSRwj2G_N19k#ar1UT&i5aw{rFOMLxi46QE)(4tB z6kl%?MK$Fd>RPq}89t2<*^=g0mZVLIwS9bTppH`kE`8qObtg|uf zm*jRtcDgX}{FZG99mRGjYe0f5kqRn#kxWJuc%*#hT|K=*%638?QiQOOcGYZwPPL26 z8-W*=?)WLcBkh+fmwPh|BnEoli%OC1C!^Dki*X(Wdl&yckaneQug87ecl<_6-0;zG zs<{QSxaD*tfIMrLg|(+NzD2+(4b4xSLW~^9pl?gDeY`6at(g*}$LU4b&MMqmOSWU+ zfyY@%F-Ep&h`aIDTyZ+4x8kiwd=P7Y(b8$f@6}0DoM7~Ca$aBk+V2jNw$`O25JI`1#A;EnlER46YUV3@!GNLNtn}s^7PytIrNLmntM)jpcpYINF2z z5-FC`Xmx~DSF+#ZEg&HX(P@wj9-@+#OHUb%XgD7lxzi<0O?jsl)GKE_v&Uz(rn-#X z9{yjp_FbBK8=vwSa`$~a^56S9XBU*Pk9J8sq8zFwrU-;w0k6-M`)KC%n{Bi~aO1Nq zQ^A4_Axh-?QYngXtF*?Sas%AMvYYZZMsErok`F{0d!?MFYNFa||Fr1m%NxPsyF(3~ z-2tlDm^J$?Z*%RON>i1MT_d-V{SZ%(wR^W^qxaQ~qRVB)0H! zHtVjv2Lnc2Qk{TxV9M7?@Oaw^`1^essoq9^R#sq`Uam8GsFiHRYWpa%zDQ7$%~3ll|Hr zGhy+}l#SJ5r8SzY>iv+S)?YDAkP8&i%$^pSXVeeOP$HL(mZ3~qFE&CoOHoNPaV~A5 z^|n9N98{M&h3UHFkUa5uI_X-9{);c-`wLNv>^|PrB-|rfQnPM+K*)~Xw?hpnR4J2Q zq8({b$2}R0n-bjGbDC6(++J} zxWhI(m*s4%z;LR8?1ACf$u^#@E=gybNP~J^ zbf}q6d7e3)l8M^pR_*IwyqATT{W1MjmD8nMI{GUAH(~zlI^};J+VXte=0vSo8$b;b4t!>HF zzBo@f#vw;(^ti1$GMkssYfGf&XSAfz^}F5Y#}Dq@*jcL2m9X< z|3cAG;Xd$BHo%H*4Jex{@R$b?rK{MxmCmq}?g&JR@KgVz>zG(su_B`oEDbNdRR)Pl zpv6CP<}rAo4aOFsnw0_TBL^LX%$m^t5{^I{s>u(%*d=%PcZ=Mv`cT{8mhC}m# zfHR;CSG;=Wzg2)}Qpv0IM_<*19gTT_8uE1YEcFF>00ehX6C7(~VWy%?GB0SDPoE~- zn&7^lkkc@xi9;7HU&Y{fJ*f%y9R2r4s<#7!@t-9u|0+(+3s*4Sw|&l|g%^4+m|I9!=$oOV^IiG=TogU98?z>CpX% z=6}JQ4Ko`7q;lEuz7=2a+DWs@K5%>Drc;%)sKhLXE3f#S6)_GEAALY@ceqd5LpqLw zNIvC{viedWe@gJyZ9G9fpHKiY7tl1H=}g&N!ptmMgsD3w%vCZYx#^HplT0Cw0rS=% zGrrAidj&-P&a*n8pc^Hq$b%;-=uyBKih7Q;XPDB!1vIA}QgLkXV6^4|)Z8G-x_ORd z1U7ybY_y6-Gv0(O^dS6My?^U&U(l}d`Ihrh=Qn2WA!C(CbK%tFT4whUlU-nRnx4xusGnT6n#HnP-1?A2TWt?t1r|0qg zgte=D+U##F%3N{oxg&nsQ5%_%i&ngQX?r~gjk3-P51{q{U{g!V!Cd|m@Nme!(1-uk zlH+^bpZrPW@jbGC&Gx#+^b>2Vl+s|Ja%U=pdv$S$-027`Gt7gQNd zdDc%wBui_gJ)BAkgYo*<$LmF~cZf%IYqN~~qk05dV$m zWMkIS3_FZlN(FZ?wgHn0DZ(PY3?3+TjuuYRI%|F2exgS9S)2MQ-lYJ3ElZ7rSNVguD-ZrS=H-& z_TqTO@p$UkrN7jfyAzis{gBBy~Bjx)~?8ZkgEIuc6PG$|Wq=dBm0h%%tFpCrCB`#+;F=r*ZVqZ{vT?qyu1{kOJmGXVO} zj0YkTmhEndEtbd?v!J_d!v6x3th zf2tW!u_>T1{dWdi(EGcP#HN+XfXNYeuu84!x0_|`54P>szX=>AoIoV=L4!`PQ}G-u$5ngCk^Q~@^O z_RH@nQLBG?(M^XQZHy5Hwir(5q$gC(^mfI=_ zz|}4->_(^#9hzIJPBH=~Qrt9JlWWe}3Zq>lhHC{ioW*_!TK;rL3wj@>w29-P zl}UgR{V5KMT4$;@e?ps$jy~gP6ho5JK38?4yG5YCy~a8G?&v#K{h!*BetP8pag^hC z)$8rA;eL7HEQ_9{o7_>71!_6$HM+Z(rocV5vmRm&S-IL$Q*yV|MbDL3Go1fibV6MQ zx&gRpC0tuXS2Tk21v-r*W4wzq&*ID7IVjwB`xCNP`jf2}vME|@t`Vs?c6Lh2m42H$ zx`Zx{+iU?OJ@eMwha!`CBI4qTOWND(c^`&n0?qn;IT+~+Ce%pp&6$g>jThc6?e3 z-cwPTqlMuq;>fvZ59-m`b;JvC*o)-(b)>C7HJObhNpVnZwN25Da;;>1c^h=+BbY{= z%&SFL8w}>fuhWMkK?8t;-ShA{cSFtSvZ)5;LOoF>rY^AghWlw%%Yk$U{O#2u&sztU z7gfI}nC@TaOYgg;IvkFVc9kW{VE@t`Ij~QJ@jsx5YetDY&@6nVRNIv)^AZbnE6tMQ z=Y5in4dQbYwj9I&V9|!yd&(Wla_2H0YZ2!0Oq@;m*WBoV$slJlv6H>FWT}j;p`vwL z+ZJ51P1~2qP$2=Gw*D~Q2$?W^bH#QkqAE9_H+ME4l^vqLz3haN=W4dk*h04WIYHk* z+N6G)LThZZK+7}CN4UTZl;%qd|BwG*K;4HgFG~V1ahES|M~fL6_M|CxYElX<#^5T6 z2ac?T$hnppo(o3VvgjA_T%1JG!1fK>L26`wgVGSEQ1r=c7NeQ*AF(X7VKaC?j<{GO zggFsR@zs6^7F!Phi6T1Zvyb6{$#BzKjg+jatkMd`5A2Cs-ad{Qip~vaZBoCZGYOOefn^v@TRSQ>sz>W zbvM1iH&ULmKQGPDJ}To5_?T=)=wNdq?`s9EaSp11+<`Rb@E2}CJx9D| zZF#T3t{M)su(;%pVloY?c91k%A0ZlkpR^v3!@c^pRH6H*jql_jl)y88Vz#!DbYpx`?PtK>>P=;`~Sz&JBHWUb>G{u8Z>B(Hnz>i zwzXs1PTIz{ZSL5%ZQHhY^3QYs-sAm#eOuSD=3H}*agJK+e01WPLK)XC!SBhPB+zCs zr5HB^28J8@{+m22X(MfniN&?y3E{`*R;@zB6PB(9`d&#vYCkLmouChwfTxU%@GREnd9a2J4KkqtD1g~`=>c^z9{ z-~7Hze#JfNs{Mz`A_wvcMZB6P5+PvD2IhMscXQRh-~I(Y_roR{1*@m%)4kO^UX^Ju zK`U)@9l2~uOA(DNHxn^ zh+Cm3ujX-UFjrzXA4{f;k=$F0&3AJNVofR}XDVpEctKzGH)+?QBq>d$*p=+m!*MqD zkqew{K#1x|J4EFebyGV~Nfz5KK{!fUv(Z(B*X}Gg zEu$z2;$VCr@k43^MRCPtrlpA&O&R61g9<~-6bNJr}?VHqwPOU=hx(SOiE z$#EE`oJA<*BU;pL>_anR01d|^<;;V?_Z{le!F2?RpEv4R<1nP9mjlKdbkDoHoT<{m z$EW~6Cc&CE@LZ`S*76^C*Wa`m^=imHB^qUo{IAD-8i`x?+5%@F8X_ra zuZ`t0EnsbV#|RD#8)cbuQre3ki<`uS*cIzery;IOk#9Me8?{CjxgWs$pMmx>uP{8) z#Wb3x4*?Jr^~zcdI=cAVG#r@R-!rveYN>(Nh{Z?>2l>P0Yf`9XVjPY1> z`ioN-%CC_-$o@vA6Zt)6R1E&acpyptIQ45~)Ux;{!G!H8RL8pos-a)qS#%cU;l}In zmf6|0=4Vc*{pG!>{?B{!RDq)B{jBG61U!0py*yZ?K8t8SU-d%vi5q5Tp)zJt3NPvX z+vpy*ii+er%12R_8XPxaF@q-qKE0i41Guw<8PTO?*%U69TvFI~Pz`95jtLE0imk}e z1{eN4+D56LI>b!Du?+W&BbUcZ$>Gc#6r9HxGL25QfM_Buxo;r(9AXimccsYNsT%h< ze*c$z_lL#(n3YU{%4X`?QfzuIf8|RP0bhs9N1z{QZ1Q5(EStW=@@4zDJdNgfn8uB2 zBj#uMZ2VgBo8D_UQC`jwe__Zc zu}*y|p$j!87sYRqKPKIm9s zQeGQc1qUpsff?((8J+lUY0G^W`3+&s>b<4mvQ)XKCD-~#ne$`s#aW6W@TX{WABRne z40KHe;cO!?rTr|l%&{IQlXb?Gk=|dH#uUR#Gd_$*=?kuIP@`Lu1V`vEHLxF9|N95O zh!4|irm@#dl`17-6qia-_KCK4f^}P3LZChWc7$OUi@11V+%2ro30ABSk)zfW#x&&p zOs-aiX7LawW}lcfQI^mKUTm12?8~THY?jpp()C{cvU2?21Kn#;TYl?>!q(RI^kJ-R zZ`hHJa!u!EhtGPL5h|}p=R^zx886S1PMW6SpLt!3^(tApb27v3Z-nXp+MgB}%I%?I;SV%cYxQ#4n#$T7 zw*5r;d>8-db>mM|;zNuU%bQ(jc56-AC)9SD=P3WUXXscT&CC+;IyG%)kTPJF)A#wu zREXtLO30Y-gJ^K7hF*7O-*h~k^cd-2$}lWZlV!wH4sxtD7WF}z%ZpyrSEe#5nVy99!|RL7HV{>1>4_`z7|>&hS~@MC#MGf`2k&o6&RtdU zCuYR0!%?9ZN}0LNyG~&9W5B298lopBS#1N@ARqMG7w|5HA~74>gVO8Rq9-w68OO3n zI@U3Xp`u2GPruJcUHtGB=LNY*S#qd|N{TpmaggtJnvGKb$vbJq)|j>hBvH_^hU{<>>ra&|k=6^@d8?ogbTxl-B4JH4>sB|TV=N4;( z2R^WVOZ=b`I~i=70TzRC^kw%3X?K2po0&*eC+e(R$L8JCk!xCAowv9=s~0CNZIiBX zt-}#}M3d||1|!!chl<92P>M<@=U20*H*v{LFBQbTTOUlE73xMUVv1M#w!@U}&1(-M zBJ(H1?5s|mfnDijGL3Zq)WeP|e-m}i`i~1^zC+?%spvKe);y(-vhn<^N#G0c zmE;I`VXuqTh>0D)enON1+l9eSft;lH))%v<2$%FXX0SjZ>MxDE% z!hQ^hA@zn{S!SQpX%=hWeMcM>fam%t-fiILVX7xDml6dS>BCS$_zpx3AWLK;4=f@A z`?hz`z^*O`eL!D|+*S`)PpN2}nd*&@x12@Mhsrpg7dmcRNTjM*N3``)1AoGhJ;&lc=-Kd#m?+c7 z%d7lt7~${HPm0L(dh!#W7wnD@+#;E%dStVT&R{HYE%|f<%?{uuak~z2dODUj3?FXNo;@$GBBk)?m7(wz6tAqzkn&$Gs@0Hk_Gi{io)# zQP;LilOmxCqsYp2gf+g!TGj5RxW>7L?{l{0%6tNS>687;45j!S-EU#`kbzqH%8K(? zqucH1RGJ3pb9Ms_Sn^GhNl{_1^i!Llh{-mrPsL8-rQ{0-pYs23gde(Rz^2VthM^(; zwgz|huepT5C+(OFx^RSskou7@GSwnJb9udtrB$O41SiwCJVdgUn>1wTTV!KIE~6$m zQHnZcz5CgsZc-FwQtL6peBTKE5?c3}^+Uz4QgKvC!?rqarHQSB&gNe=Z9fi?t_J}$tzeI&~Y|y>E zfu(RRNkmd-Zn~v(64?dYe&FHaeuMx6ONvHGEJtcCOtlR3`XT3VB=DZ!rFmBMA+^%@ z5tf zd7{wh7;tY1cgP|*%Kl0OmsK0wzFTWiqUIioXw#_hEAGTWk$p$d7W*r^X@^6#5XWQJE5f6dZssmfe- zyp#T%jhQE=!#c$+9`Q%_cM;`<{_g*XEsIv@MB7$hmG$#B(g9NTCyzq(PwrS|7Qz}F zCv;6Me!ymSoT}foxS!KwI#zD_UWUa(Ubczmx3ZX9%{GUB5kf}JqVH=43R?Bl8-c_e z78Hr3$0YS%@zk15)MJq=DFJH5qXk>DNMZjZ$v2Xc)R}+B=@Be&ZX0GnqA0N5n2HGHboD3CU?Ev7XjuNckui$P z_OYPh(G_&K80J3rQOoZ1y4@_!25l03-t4_z@>bey{3m+sdmV?({@|%?yP9%MAiNbC z;>0tY(0H9K+L5dJ=N^J{Blog)S}*tf&Bfxz9{+BPkqDkb_4upx?O9Y060qGb6-8L- zj%Qj>xIYjr6Q5mJfjgzt)5j)kF;^rVOONZ?k>oTLPQ`FH{3o}7Cp*N8N5U*b=jB9a z=}5nSc3oT)UC3#{kjt0~(<~As!fr=5BUIqDV2#gY$poH=-e_`V-tlx<=joL7y7jTP zHGlQ|KG&XADfx<^=p<$(_!HLc52U#${o6zm|AX8Ch2Kfy{_MqtV1-qX7z3_sd4*T< zxhes9_bPPgW#+8fx6~Op6s)fA1afOL{OGC=_Y$oV{>eLx*d^=(lD=@VRbh`2^??vQ z6=dR6VmJT+LrV^xi&qw3`_Y=zB5fNMQjJKJ)WtZJznOTMWX8h4#LQ#67XrPQSCbB3 zhvGebta<-Uau!0WC<)5c4qgmNiuhkdEiuxF1x>RnQVyC7-f{@PI&t=!q0UE;V61mv z3nDUt&H3XWjsjR!lM`^0s*-TbV7Z)Sx-CdbeoEmZ{uao_A$?YymSW|?%$VVV(xs{-Psr>uA$5bt5N132vpBk0N?l7kyhFKG z^cO-}aW!M0hfI>mmoLIvFq=_%^(!4V&le2tEG)KoGJNHNSH(cWn1-8kdy36Mlb#Lf z`BLVObW0#OIm;+YS(;U?&Lcm?Ubw%>mh=~v{G&nOQ`$3g*6w835RP^5%O6ToVqhPb%m7l==m*Y6(1H#jmBK?EqZ*#C~(S zD(OS3{uWUk@<9lHQVpr}P_NxApeC)lxccrRFCSidZ$yOzxha7j$z4!H{0m~*L%&iY zGrJN&0*FibUE9j=i93BA@lLy?M#=NYBXM%6nE&Zx4IrO&mS5Fb*?^oZ!xTE=zu?-gpv0u1Mv8`sHj(4`)sWROabA_gr{TV7+3js_p+w zS-o(U%5r|IE01!Zp8(-#Rl|Z23Uy7W6ok<2>`ZbJlw7?a(Cc;doOnxaUXxVba_7n! zS~U5%J2_ftF&iVLX2h}l5;%%ry3h>8nhHi^1Uf)TKE3%0cwBWjUu`|z%$@V_JU zH9_^4D&T`fKAV4|ir>@Y%)JSN;U6uv65~Uyk(A1MD%Kti#cwn!xC2+0AM+3ttQPtZ zjX|74aA4a=oY#TIa1$+l&q(Og{MKE@Zal8-aI{8oRh;^6VtveAZSCh9I}QF{seWE@ zE(a;#RZ_fX@YxSSu2j_1?}#eivbGjNaPPeTEIQ;-V1xV(P3*8w$9G&6qE|IvpL1n* zQywTo#q=@?->n7)~S{k=7U1`0LaZC*_H zy3lvIgUDT!TX?22+Scfp6g7%+4^UC>?jq)Tk|wIz+K4YESU0V$vNy&9X`JDcEbG~3 zo4KID{9m-vqJe`aqnzt%_&&WzUP(rnFbfD;Ny5xPVh>4e(kOB* z)g(-1Yn1P@S0(kXD!zAzl`bXOevf=U&tqE(St=Eo9^j$i2sOf5)RnOwL$Qt;4tJ?M z2aZWPJRKBBC=o=tSvg~{r0G{sRq6eJwglUN^0Z^^M%r^sF*Zt`dpaSRZm^2RRNJ2Lw^C{}X4eN+3VV|~0o*UZUCXrU<)S7a9Mv`isN3vKS{%%2BQ z(I1AN*^&PS%RoZ`-OU*}Z*6to0WhF(^!ohE3?;$3xkIJ2R?$pbn>7ROTKp4?I*kNn zsh3OZFP6P**ZUzJs8rAMqU*tl<7LoiRr8pWnanpjDcKn0%1skuLiM6euwZ8E`7kj$ z_0B`|TEZnu)IXnVwagPEEHldmJEOB6A5%^_Que74MNiqKgOw69C(H3l4Mc!sl%_H2GU3J*A zG1xL5I+m$DInd}K?DNTBpl%Z%V+YhBTNC_*is*krUqPZ9c_EXiCHfssN+1JvX|)uY z6n>w8puwYhoKcXsG8_Cj1@mA|37K zwRzIs$v^&a#B13-XUeBF%IwzRJ%<#OD{xOiXtmmO?b+_JHF(Ay-f=g{^SRtMwN<9h z0BEr-TUXnu{L89Auig?y=t%7G`dm*-=^{Bx>d(svF6Lv;78Bl2e_la`55@?YY+`6` zmerjfWkPt2X1NeN%0GOiEyGyg0oHEe1JceD7u%)Wv1jn(6(?zUubLlUi>l3(L4Os zk51k<_o4Ae*g1ttOLi1ktj7_pjVQ`h^gnOy()pa$~}?jOH{@rGY{!tm1Eoa z8^>DXmr-|PE8lzXZ1m9)ID@DeHeV=X53tFP)MzmG(bNvV60PsO_(=)aO-Cil%5ljP zN#HN|OL$pWU%MVS>E=ZIdj&5Lk$rd0zA$0sZG8#NAJ?We(uUs(jch^d*f2#yCpJzs zwk$)UEz}kTSk>R@JeQ%Z@ZF+cWr43T1?EWF%TzwO99bfs7}Nk(;)wsKUT!Jw&3A|k z&vb9lsvvh(J!W^3b=URS<@-qS(J#<`bo15kLx1)AFYEyIvBQyp#Ilv9XMZ*2D}a-izQQDU_N=obnr9l2bTA4;VS0mm`Vn!u3+L=?TI zLMa>Z%uQ}7D-|MdLyv+0e+62}LRV%7yvFZ982Kn-9q7qUdjeS(RQiPw2+YvT*!`oa zZ1R?|&+V;eF`q}4DHX>|*W_|``5Q$}!~7gvYedltN$?X^h(DHVSG-Oic6z>vedXD_ znwxu)8_e89cm}}22J(ogYmfy8^t+l;VnwW!lnnDFgq#bRst(*{8Z6|a_c^2W_t(y- zosHbr+^6!8XgrObtcci+deX9U79MV?4WN6?6oi#yL)mEfV+ffJS=>o?sj7{*l}2?L z#2=dnqW79DE$%Dtr`K_Z@q3;Ttv?;zs}Byb82zi7vuWVIS(s@?>Tda$*tdBq2cpzf zIt>JkqPsxn@`n1ve7G$py~xT&WHQ@(xphuS+g7?Ux{A8Ec|!DBU|C7r2|7DOfj`Jx znnrS?zc&5STK2QxObDU&LQC_zQ0|7<@0r^A{F3qgujUjl){&&GeTZ=Rx_{} zZ~Yvd2ZV*qI_8~HH@4DmhZjv}122*CQ}L0oV|%Yj|5XI{mC65Pwbv(8?N2KlRhL}7 zq80_kSm|ZMHKR0@=z$rn>ED5|OxFc)-G+ccI|)htwUL8?uQ`u&8Wi_)Q?%1P8a;3b7-`6 zMmo?kki)HS-=+2_4G?UVaZlShotqcisgSh1apLikrf1+y%q(djD5@OhbZ@NH=@j6x z>u}N5dpTHoY3h0x>pJ5>?(p8w%z-7KP9XioxkzoIg0GbKBZ7NfIJvOR-0!tx4Kz@7 z8FzU$GAI1xRw5#m-}i?vE~TMwVHZqZOW=8Aq(=aS;*|2(gcyFTnc>D9t@k?4VKT}% z)sJVy8d6gjuj0_9=MQNJ1h$#dxMCuVbAdlm6BniY78rndEMQC5jqqP?0M@eMJNO+4 zO_Xc#c2m3S;9GXIipPzi6@llnjhq=Otxk&FdE@YMjv$F(5@Lg?uM?5?K)b`Bbn7es zwXJPsT}N${;i^;F6#ha0=^aHps}qR0yJ}wYY8bBpJ+#u5*C}tkBR@;TSbAJ&IEdTE zMf=i5upxr^n;^T5hL)7%)9>4|aZJTWR!<~icBpXZGttk&OmcKN1WN$<-ZV@kyimL) zRzh;6@^5hm$9YA!D!{=>u|PiPbYP1`zVZ6=D{E`@Yj3}GI9BO*dC|1B!2oDiAoy_? zQ8pQ1SFu}7UF3=p5QGq<&dVeEMFyyU!2&GSt^xV#L+t@lGZ^+!F{r1g^3`Y&uz-yk zVRBJ+Wk^m1v(rIBAgm{vCv8!V7P9M{$7T~Ymyu++c)C@HH&vKd{$C~;QK@t+D@}g} zPHT2MjmU4MsQ-MO)^>Ok^RK7v4ehNpu?xt_o|GvCs|vKZqnT=@NDXl zCuA=Pp@CW*LDBJ}TE;L9O&L|>b|gPF$lVx3Nkj7O4({^Njg^cu=~6>0{NT&2_WRbB zi3x2EkC%mLFoWkV{OiCBWU8AJe^*u7yp5HeA~cS7{KAg*M?;kS=96+-J^ZNERl>qJ zG8hy&C7ou3cFucgp*}Gaitqpw6qbIh5~9Z3D&rpKu#H&SqF;aRz^yPrGLb<|=5Rf^ z1{C>hP7YZ;K}M`R)0K0Dt3Q$(t_;@BXHQDVuVouo!y}a(WtX>bLqy-is99O%D7?Bf z<+ps*-RuA#2A8LMuWJ8GELrpJxZC9Uj8Ss&vn4nyDZ^j&sidM;q`|fkp`>!M)Jj7u zo4+S3tHfdDJLsw#KWSv+(?>(butDzgBJAE*;}i*{39P;U^+~KK8v}>-*x%H~D~DE;ty$K}39XTgmIb{r zL`=tq3Ar_GHhJPn6Y*We`!DW`QoF4i&j@J6^9*VOGG_d}=|{X#em|z?apCExF{cbyj=Hk@L)miak1V3+D9?w3=(1CDO?n$# zjimSkp*bxA#}Hkwaq1)jEw5=i&2jJ|@e>+7eqm;45w%#g5v|Dp*xC7CrI<2c>E8!5 z6@OTxrsD+-T0^A_Gg~y1LPhaYh(s1>*}jZVvvO9#f@m5PK&~_jze8O^qM`94bBEw$ zxf@-Q_8YoeVa-s;S;S>$X^3MNmxtk(aB$IMm{Yzvq!}EW`n~vGJ?zsxw1RfdTE6N( z+yB*nftNagH{q+U&yR}@5CH_}ZBorbQaUVtzzC5TDu{~`SsZ3WCLHXyyHKJ%E!uMf z7X!Ky0fL>wzlzP#tR9DO$)^$&9WBR&M1$DQs9X}jHewRfrM=_P79AuYVx`XgdGT#f9hAsj!Z)G*Yj z6yP{I4P9go#2H_rCeT`_eT~@kPug!1;&x>aYp$y*Sj==i8JLoSZ6u<5lvvKoh+!K(se1Tk zqSGlRz01DBJVx26+#>V^3l4l?g1SgD7S-3M-yw6ZZ4Y9l>&qFLJ(WO8uI+6qUq!yi z$(`@VBJHIr?k~F+(@;9MO)n7A=r7sZyOgPtdp&t0YJVc}dyd}V<=rM+YWg1t_v=Zp zvG=?;mCX<2umkKrK8CvN;iLMPRKYHRi%*q^{41*xMm3|ya%QNgbx^#|sIgQk6ZOCn zug!F>r3R>u^P~&sny$;#CgceJ7UcGCb8jDYq^9S_%Ku!dMpBPo1^R2961d&L&!?A~ zNe#DdFO6}ss_yzMDGb8tOyZObhN^O5*bqRIRD-6ar=5wW5fu2W8CIDA^{&SmcuT0C z{Adv4o2AaJO?Fwds&pWZ5BaVbx6Q5@ZJO4$Bf+TqpZ(@=l)DBAr#=6q$E-yAy{wKO z>G{U!Jzm1~J}9Xr<&kArnFDnf%diQ87tUgk<3)GkXe!IJ2$6ky+sux=Sy56NMkPzV z$3b;vSgphkpZnm|2!YX;mwB5YFTdxu!YXgFtq89>7;#W}ndu|x znRaf9jdP9Ku?T+z)LLyy^1ke!;Mrx3UVJKme^$ zr1FV;gnWwPGC9|rPqqyki+E04gm>OS77r7)DN3@K_joKh+A7D*?gBFZVlo9l1y!maTZ zGLo^ai46;b?Ct3kOl9D5OQ^(>hnu7!?BwNvdgf15i49G&Z638Gvjeu8k1wyCTV7YG zuMcPML?64sAAhghXBp&6i>ag0enXQnLO?+I-Sa5?(1^cY3GJomS_5(eo3b~)V$^n} z#kDyOY%d%$tJO-BXMxsamn53QLeWQAhW&J^x z%b}aQgd|-h*LqxGQ#r4K_9&pnN_a43`G_{^%K8O7g7I^xS7=6}D6PN%p0NX|iK-xe zX{;JDGjS=h!v5Si*N2XBy)5XPbwEn2&NzJS%w*{oLp9sZ9UqG2?hhEA2{^uAlEX**^(J zCXFVsiIrq$i_%BmX})kg=uEuwI~w#mT)K?&I?_0(D=cIqgD zeh)9v@X$=_-tGZa4o!V3zThleIf2o*3Al=UU51vKtIJ;~Yd{{#FmIKYb zzFw!sT9}O_8p%>uGDKb|hkL}W3(G?mOD`-kLJt0)QC>Wm&c(Q?@Lu1c?9`3jnohCR z3Xb)Klvw#ha%ynV2G=$KvkABOq7AhPT4An0eyMH^X_F@D1XoPCGH4~|;@`&iY1&37 zhtv!1j}|1N@fFS0)TeQ;DkiJzlzlJQ>vob>1HrCkKT=~y3%TrQH5ZIb6WY|>-X2$+ zGVR{Co`FZ}d#{H7V>9rzE^>cF4^2c~UINBs2DB&KlY4WCY zG-W+P@0k)0r{gsX+ScIB?eDZyPkc@W@Eq(}rrD^Czqkl_s}u3bYw*s*Q(O6Jy3HXg zFq7;gNiUpr0yj+8!Y7+R1 z`_fn&Anqc5Z~!~@0d*67u7VXPoS_ioHAnd)alWlq(c$imxYU6rsb$2bbYIIy^9Qm9 zEoo(BYWO}{q#A@!$-lzXb}7Ez6yu#`*v{^2WO;mT8lQo;aOdGDhvW0bJ-t}bAA`e$eC4cwFR?kjjbK+ z^<~_I4&M&SMrD}gJpES#6f+v)wdl&78XqPvMmwYZKcy3`HBgK)DL9mF{~-<| zOxbQry(rS?5FWOi{H*MaIL%XD1}B7WcT_zjNE(bmD>Umzbhd_Q;GlK9(0C<>cf*mXSxEw zBB*k9rq{&sj5xE{uz!W!l@)HN{Hf7UOT5~%P+Y5t1C}d{wr|fYAUJrWx8_P+#?2LL zjWu2QJU`}FKZLh^Dbk*{J+C^RKK?!lxchaq_~lnj=QD@w+p8L(P(_`Xs~56%BJYW? zFZ|#THwjC^L+oeHL^h)PSw1A+eL(X-x0Dj$Y=t}*XG}qc1Z^vQkm(ai1m7VLazk2* zADPof2yZNjbRiEYDk{oS;L>tTN*hxsTWHuXrAatXbYv?e!8Y3MxyIE=ABHQ%-6m8_ zXu9JjuqnP5t zOmRlWw--+Q=5ph5Rq2>V+0(wBJ&m)oML9D)5%?l7!~Xnzp8qHF+SEmrYmY=3N_{yx z4!Ch|l1Yt)$ynBcszkB8%85e>mqyo`LJlDntM*vUAg2DSyrB+1ax~No&tf~S^9DykOZ`WrilbxxV2-^<~mYBBBAkaxCCsaJwb+ z29+9cFY=cRM)s0OlrKYGQ<~0_@`k~<31&5?$OUT)G>m9qC#ab#@AwddFE3iAwbR-p zKCcGVV6UNl8??0m&+#@Yr*%68cMkUnv!1^!C&4ZnQ!m75XeH^?+E)_$HW1#D<4T!c zx;IY@NjVeCP@Ukl=Oh%TjPeJQhvTGa{Qx6AzBqkr0j(~j*0Jji$lz1bcBkDH@AJ{z zY5u=X6{V75D(hoUQ*Db4@=R(>biu3tHI73oL_%(9B({9^_yu1y%C%UGC#N<(Mzb_9 zwJedGzeUEOFYHYw7GhwX$S)5&PWFerxr8E|<@!yZKvVrOhqG+`-e5anuS_OGWk3*}Sk9xd3v9 zux0{{xPNEd-yLy)K0gYvMla_TJGXkaE2m_N%^I{_XI9pLoZNU-iQ&|gIvm%Zc?OBc zChFOlwyel&4D0oK2oQuK z7$H)O_H5grUi67o1)Qm&L~>&a#w;rciWiH_A5(OctE?r*89@nUxJ!!{6w3(FpWI>TP)J z?EVp`Hg|?tINZ?siXHlFly(};(s&h zchJ@oXv^*MRPKmXCMBlCu)lv_MrnYbNxxNwtRfWE(!@eqbu*?(-P1@C*)QPX@VcG+ z5E5(@z^zknrZDyNGnUxCyt@RWf-`+{U54K=-Gj6?I zmLmj7!Sq_7kSC*(EcKfdRLE(8l(y6jw8HkEAaaW?xjRFC!hNJ*@43Ac$scX9`4Rlz z`pv|@06u4WZxiaTuf?NRuiIj7+HeR65c<7(_@{z}sVj96Q2{IfZI-9V`g)bcusS@p z+)3pxt=03?$E>sooj?a)z35sQrY%LHl{KHPDwIHJ3YJk&MPRABx#qehkx}PCOZ>pG zN$E3FtE`~uLSk7t#$bxEuIGhLm7 zXyVTj9Wg?K-r6!Tv-4T*ta+RhxA$ulk@C}cb+=Y77%H|8Q;qCyYSao81j1J1p5sCx zlob5iKeKG_Gq&oeX5X;1#A$4Vk6KO{{a73sDu&Q5nIbl=8}$7L3neM5tZaRXX8pNe zJ%@DO{Zod$It0d-$x_1SDMODYYWH2DzJ}zKw`)&b03wK+_BqW$%OO15#+h zZdK{fbG7j3=Y2XlAA3b3-ROX;T+tNrTXCn)cAx6<9YYVInqOl|FKg8WftyD!J3gah(Nq^j>n)&8eG{uthDx+X>vbJ5@ z@;*UbPuXXWATy66%@g`rZd{RN+f~PNtr+1AL8re@<;NF4c?D@uv8xf1lhiPU4bEV* zHeRc|-{gimmnLK{((mXAPT)v|gjZ!WiMWePaaxQO{XNW!g-kWZmXl|GM-dAvjc4F< zv$dz(?V2AU0$2i4Da&p<@A+m6-mHI`a>>8P{o{(7H&RKmz}i6XDN5+h+Qu19ckEN` z4gJoqc}nG8us^xN!66Rla!+l_Qd>|LnEz@G6mU zV~S1IG5tFuL5U>yRxU3lp?kC)yj{u7Y*Y7lYXb{WVxH17a^()Am-)xu-C&S|rY(KR zzN?#TNfSOK{7{P3y`==9VVBrg{HQq#5ZxOChf*g6_RailavG%S9-EM!LhTKvE-5v( z9X&P+`en0;YL6@-Hj4;ljqh73uDX0Ul1{+qRmPze4ItH<{=cih>#Fk(<$!*4B|ucX zFh&;(HwKdCTWwcl6%_d{k0bgYalW`-p$%kezuj1eN=jy}=Z6yX(GI8M{$5!Aklz&8 z0o(D@4~7qy1^|77B6cFG$QSI3?vs#!So7)7aX8!r47x(^NZoJ#Ur=9|)cp)ETbD;~ zPyM-o+2= z3z2-n^D+~irM7XguDl?*+iY3r3F8g6a{TjGe7kAIG`9f|=!{zB6zWhOd+Yj2GbNqf zx#HvIR<(C%x>2l#yA+}WJ~bDoE5Shz8pSca7=}|9MWk_(>C__E(=rfIa0`p7~>{!1SelfX1 zCa2OKnlag$$z|o_qW0nZ!fi8E@2e5e|F03KK%}^-^Sd$g+X^P~y*?iZm%s8Eex%lE z!0R!pHabs;GOC!-ImLt#eReIu#5~IQP`#0B-Tmop1(g^dsASv(XPm;KNnPHiyf z{K3`DU19|sSY^=-0e!X#0%^@l2}j`#nnQxRsMqB4e|x6_o*=9|-d z9e9QlZR*l2 z+I);wbxzk%Z(I{O`FliY)}>Y=s!L5`@pEhs{-Cg7u2rRz5TfrxA9)o+saZj+6% zY=|o?4D}RoL30z`S#=Q9Z9YMZ%>e<`)Zi7xiJxJpyuRPFjfkea2}5H({OXP@uTX8I z0YK+EmOOzn3m3QEg8jx{61T>E=#DI}3A-^q+`J-5%G9;!^Iyfzbd8McGA6GZ+RWKy zQ}g#MhGqtLp_9lUNwwN4Ncd`2SgV|5pM%^}J1Os)pr{$sbble>?Wr=B?VGOeX_fSo z);FD&JeB~Z;#8$^AtHmk+xLeyD~_wfN*+uoYkx&Zr93O97xqv%jy6(9`rl4xL|7jO zqsb?hW6CpGvW`oiJo7eXwLcZU=YFmTe9||4`A=j2H@hO#AhDdD(EJ>nTPr@=@Yr$< zz2s5>2Hpat4@Nz307As-`K!MtC`~9mUY!!gcMd0Ok99}tb44;JUD;bj?PcpCKNXntB%*#qg5jN5Xt)et|NF-a60ja5ob5y{23n1e%DS1{Csa37K^pJ3% znllNN-&GdwsY@i5fXMV|?EYq{)HJ~QwSrG7$+KTSf@}}1i*E&9wrjn!I`>x6x_U`PAOZ74&Y#6=WsqaT=+%s@cCck@1GhNV6M#}s? zu>>rtG{Oag)v8D6q@`^iD(jE`{XRF~4%r((w^DSRTL$2t-L7w+SLDE_;-Tlka?+;AGdBUVKuZ(;%h9P%y|WOxy!zWA(213h`q? zSNcj!ZYR-rXwmP;?mhM~9IJIJw)h8NFnY*bMlcr>^1+Zwb=BHAI8~~p{fL!dbkq6J zQYto>Y_${SnpV*pYG;XAHL^r`4e3Ym-@7oyaq`?swlrm;N-K7k1SLGqBNoo&!gY9E z9#^;3ZG#J)qJH7u;KH!C#+_;9?k|q?WG64|eZn(gzGN5!YngkYhv;xQNlh%^zJoW%ZHnAmu4$Hnvv)4P({l^1 zDrT=#8o0sLy6#O9G^b_A5kdKlkffzfu8|_05x0tM02Y-j+MKf&->&#((vzzmKA%53 zritD^jxNz1w*n{ceJv?(CMTiXdu36@-3#|hCL^ti!X!ucW&;l-i`NaqR&Uqrh(6-G z-bbUHyu6%eN5sMe!D7Edp%S!Ze!U<^9l0_~iT)_f@W82_Hc(u`#?asVjthP7U$fr- zwv#nc8CU@ZCMOxBmroA|g;XtSj1e$yFB({%?-T^PhMmBCv+_q9A+lO?KK(iM#k_dV zC4si8Z37hVH-VDecDH+w?#`z|kvRyRe3h3~2^hnv#-~Vto`{MY2-utyQ}9{2EZeI? zwZ8tB(_z42ZbHFBhI^v!=+cB(IxFcW9^OqigF>SGOUc!G5OP>-elFYxkw50CbzgZK z0LCTC(Lc)8^2eBmuc*yDO&`~!iZ;QRcd6Mu3f1ecq>Q0L9Tjy^KE^Erp$Oq^aIaO@ zSI7kGOTUuER>#R#;IX7zoA@%f{EdUpum64lO}|Ss-^2e0-#{S0@A=?MUp`*Eywf_M zs_~X+QH7=;&q#TRgRXGflvHF$DUli-V{_1M@2I!%rk-?sga$nW(srjXvhrRREkd5! zA|y1ZD1yKs5=N`#grhbKA5;tHSA-J5NU8+Qt)(RjG?Nr+UoDrA=VX_fg8Xs?s#%1L z`3h!`9)24$5XEKY$HC%&3`!H?=VKO=jh>Pd3F+a#V&L5;<&!qVQ^RQIF8uR>C*_0_kW zKl^KUR!g@xJbPgyLAh!_5LvKKwo_xsiHuazltrfehM*D_1E6>%s~H3WD7g$uqZ5yi z5|qd_5vSVaeFqY_n7p~>PANZav34SPM0bz{`D>x^2dX>mT6 zaffrN`#xHAo^M|1$&)8qYw6WD-}vUXq?;~h@g7z4yDF7V3el9Lb6je5)tB%@lN6tH zK?!mTKu~V5rVCCkR7==*E!5GGm{HU2i=!)-)D@?uz$iRWx)JZJ;UrXYFDYkCfodA} z(fQ!U4;=DCuvk;+;Sp8?x^3`BXx+AWTU?g;m$PZt>*CcB zB&3ICv9>&&ZN<(jv?unyyX)iaw{@TOhi9`rt}oDf1SH=h>#e6x|Ha#zweMcPVTNx^ zb{hIcJJJj`_r|kIy@agJOBn`b0;o2T=n4c5PDnM`Eo5+DDz1WyZTr}Qz@_I{{7MN7 zbTvdu73Ogn%RD;vR6Avs#T_gLnV~9ga+gF8e7_3+RNGArW7*|%0ag|VUX09$DX$Opk1q0 zIhQ13uxVL3xsqh~vW}H(-20N`sG7ga9YcScRs0gKRVm5L9WXz(iJBKSQmeEWVARGl z_G}FE*RszeM^)Xwd|kOMefg{J)i-|iTe&?(%;MJG25wl>+AZr8{u#2tD@FGY9&J(4Wznz1-H6?WnB8GHbDVCX&V*(h%lhEolCNBk^G zvb1E^1qZxk#T#6wM#KzZ+FNq3>E7K5qZuHG;*yQZmiF_ZVLWv~TXZk0wVNSK3i6U@ zG9}vAQ{mngN~xy0$b~M&=RO>()|1~cyYF#*fz~4+`5st5{nJ1F{>LAE^woW~bkw1m zxfcm)$mYPp0*mn(=}w`d=ZKvS7K}A5>JW2o%*>3L;Y!AXRxR}4h;v7@WmJl@=7i&L zjNqQr$5J$Bd6Lelmd_olyha@tT$j=_4b=~I1e(Tdci`0&Q%e1KtVK{3%X5i4qKWGNFEOZL^L38c9G}xsLm|qjjX@8%v&Q(!|_!R7(jp4@)CDIqZ=jt0K1+ zrn|5~bavU|HKkV@nyKx`eX%ceswh_R(1YS>_HvK5NUo@SAU1ONN0+Ld0;JL?#Ky4| z?HNB1EsRktxsQbwoR*&ULSZEdi+rB(Xn@>kt6DVzqa?zJZsQ>uijuQW9q+#X_V53n|FiG^)^qT2eg4-YAo(6x-+B4+-+br2_itak zzFRk{b-T5cqQgb7AyLy%tMP)cwM(Lpk>esJ`y<1mk95r@GOkN>Un=TdDHNgz>87;7 z^gKybI$*hN?OX?V>JY7yQK>Cix5P!s(aCR?(wM7=k~n?P7ETsq68N=wV?iokmFwX8ufS+#DR z-MQsdVN{&a+!P+p4ock%%hL zQ-|m&eCE<);4=ECnaZp|CrRklLUY?5w?ZI5bvsZ%;!bz-5~HYcz*4YDRan1h$FVk+ zt9(00w9Rm@g|OIhb*j8Fa|uAOFrsPio}qrGU1>uLX^KAD=U^^O@XO5oW7wg}#?pLA`}4TIDC-fBd=IP- z-~Zr`+Plv;Z&J(J2hl%}$7UL?jp+!P2U?M4_{&y%QNNE{sz#vK$*D}eUigNLWTKY5 z8~TM-Vm@1&bFI5^^RmRq5_=0yA)Ns}D|Wn-lok~uoszAsGKP>Gq}3;fvx`G~*nuXF z+wl41)Lf!u4$hoSu{kEwfBJ1*exdO28GDwCwSdWRbU}t;)T0f3 zFYwXGLK9^=Lxo_8zo4G20V~4y=9j=?C8@%tm1Yr5^9l&MAgm~E2q|w`%hvX&Dm$`H zRgcD{sYS9ihPU&$kQ6MNaK^YUPJ2_d*a5)Y-EUP|f9vo2q0;Nu{rc`y-7G~?jss06 zBLWrCLLY6wh&6RXsxxRw*$(#3P&)}0HXfx68>h{8*T`I*VeRL8Twj#+2uQw5 z*W|+b(?9*wf8d9I`wu>O@#4kyO2tb#wVh>eQ>x+c;J>|xsx2+_2DY|y0u(9)BW46k z8l48^lF7uTe6F%nlV-bM52j(z&y!z!v|N>Ov~5e;m`kCU z@tBq+l>TWw1|@CnBz4q<@UoLUfBGcf{Kgyqm2chacYJWyQU%LsRw^q5Wrm5Ao*N>__I)>Ox!lFZee$(P=})qnW47pm;s9$3_9SOpu^W0H7k zNPEL@sLH~ce4OB+flSw}`G~q=ALSO8a%AjHLfs_Xze|x*GYZ-s5DDkS9TMJkgMN$MOjB1W@KpaW(#?a0s*}bdwg>EG8tVMY)%|nT& z$Rk5~DD+`7-luurVp4{r(p`mIhORm)e+Ws*L)?yhUT$fr_M2B( z&z|pB_xFF79@iIYJpz*N-epPJug?GTvu988=JkEmIx2gst4O~s^#Xu5djLx#XdlOWypy!TJ`Kt;>Ws3jeXuGgSY1>S6sbx+WDNYszrCehz zs-hmv#rW2LMiq}Wc2VmFhhSVON$PY03Zmnq)9@b~QQ)+zju*9+bEb5ZvuHtP9O2O0 z8OlX?He|zg&&-Xhj$T4>!e@F!pskL}t<-T;)pGrFfAW`fyz^8a-Ea>U$>55c)W6ks zxlF6G6IH7m^{QA0hFJmWT!f9&D2sC`ePw$cd>46DRi*9kd;3Oz`B(3hF5e!j_ti~v zeO3UOxYbaNLSEF_qsQShHR#VoyAb7<{18Q;j}i@Yq@t@QURtv!A*h!3Xdp@tAiruakpwCJ}AJo<4vzhsvW6!QZ9QOVcVWQ)6Sp+LU^CZY^HWn72T}z`SP{a z%~L)5_+7vJ`nPN8D9SC`gTw3MTIA5L>`3V>#-WfB((OA#xu8OKk@&bMEVeY2tOQsZ+wR)8_?>Z?6 zXV2lK-e(<8j;@=hzw6;Nd|Y3M^$1A5OBY@L(#PNT;g5HEpXV93@4L?P;8Z7Dtde%e z^nxNRbg1ZV6n`e&)xPHtb4xu&9D!jW%6w)@N-JoWd>OTG&2}4pq~SMOm_n4-_#=?> zbnsIm-6KF}n;9ykNwghwhaL=CdJ!uSUla%xhsexKkpWp4thrrtXj+V5r%aC9c)9A~ z3&~tw(i>7b?X5rd7e479`0z<~ zD9G#zrIW$vTG95@l&N-SO6;qs0 z8!76oT}%D#7q8Wle*DKj(#x;EP(3Rt_oZk7!xE*yg-wK4H~uWJI->WLc4Vq03<}a7 zm-ds_a8ul(f!mCBSiuJ0GwQ&NdNy@f3=EXI9@O7?(uV69<1x3|@ zxRPw@v{L9X(|M+;v8b89$-DEwTVbv?;EwXD8G3_k*9~ls03VXF%=AjWcrO3_Vg0UF z;iRO!8LViN(M*{&qT06KyxC7b`10F-Y^ zU%hza+nd{xvuZD$l|)#5f)sL9o+pM8z{9{%_hmvJw+NQgd!8H=8TaJdr?it zd5oAUn?LsG>Y&DrZDwTchOVut#>f(cZ!fY+F;`Eiv8z__L7|8~$vNk-+uFTnelO0W z?bgQ9Vc43qDuQ4s%^g5YxCw5tB-bi0yA~o|^G`$V*ljwKW9a%767{IPrfqkQcXulb zGV1oN%3uAZ@8nlM+4?;n+~$5q;sGbD=x^B_S!1rc|oZ~PFiug z`!eew;Z#xPIop2k>8dmCU;Xw=)ssVUXvnHHJ}tW+#1NtG)u9}6Ii?oG51%ayTlOYO z7F(_@{Aublj7FkMy^l-c=PNuSg=c_xfrwfQhJ*eabd8lA)pYK-kW>%0VY@np6BB>| zvP`o2>L&>;t01@0NKtL7!-wzo8?~4J=pX!T%GbZa1!$>NBPfz(jj0|seX^ytX2MI_ z!DmBl>*|LLQolD7#Z$|ssO2=m2<2BMbpM;cky!ke|`J; zTY7c(Mk()>tav%u(>_Pt#)}L@4}7~~X*Eo6)v9omhaqT6owEk&=OofA_V^B#2iz2a@5)+d#Z>TY#I$l19qa^E4Q~# zb;$l_{^MWO)A!z~r%K(+9THVZN*5PkC>`#j8WBgR5zMp{Rj!a7GZK;RDY*MqRgV)Y z_uG5pD`M-mO0GkH=D&QIw4%nKv%mvVRHk7fW2lJ?dAaCrk%ajdAd1JF-Pc55!R-fu zNP(X`Fs`T@^RmRyR)e^Ti(vP!tOs%7!|^$X;hxsoCMfiDGf*OlQcdk&QVUgJ%w$|! zb}jc}CVU6hrA#hMX$4?WHI?yUZk1@coH^g=YoNewi7a>yY?sv>+tRQhOHF3RDK1H( zln+IsZszPo%sV5YoezxFJ7b|h@&{@e9cAQXzzWH5nb-t#@||t_rn1Rkug=dD zLt4~3H;4T6?I-o`f9=leIJ_#}BaApEAW=2J1k~s_8pHr-ROd7Es!iBk3&4tN=iE0@ zi?BOHBjYSYvD^4viV8cZA@p?*EC(1JFS^k zOa-8&5ksvc?9&PBcC^p!-}}3NSlVZO`sO}4mbX(LZ~hCysO{`aZOyd2O0i+%F5BC) zHMFZWVky-qb#Y_`#8E(`;6y`@Xh@kl>R7e#11d2Y^P2xRX7*~KWYyl;0xXtkggz3v zs~IRU;*AZc$drsEF(|Qj1f)?r>W~M-8V?eyQcgN2{yP?9p~n7gibUF&AXc16!$9&X z4T>p6wSy_3Bn$^A**Jq);>xnM%J*+xt|!l)r{%wmi+@~Sg!KqWzDw6n|Lo8Ik3atM zm-Oo8>nE#xl((|Ru_<0Ej14DviaPSdy50n|M8OhU79&FKFayLKTz9FlSGvK17fr;8B0S4*$uN@ zl0ZkQMZ_peOEgn=m9>`lUGnjB>p%X+>&`y&?8z(x=(ez^X?Dw(m$>*!g>TG-=*uV=ePgt zaop<7tJmAogrG~0fNzAVlv4@yKE1;Mck{BO?@n@KV0R73` z?PGguqnA@8Z8^%`k#^E8_1;5v_~JPTzLSgYInR;ISm)k3NhCSA9aT9QW`TtY-Qi zt8<6|T6C2~`$r;F3Ix!0)aYR2Da;%*^+)VHMGe?YQnj(K(FAsds?NoUBqN3xD*wWT z;^r$sKAj{?W18HGfSck45B0rMRG-I-QC}->Na2c;rI0Bn=gDEl|sd# z4rK>k5U}$`-YdZxCC%WwK_~M+rd*`P1di)P2Lvi&J6yujrgc}I%Af}LOHxX`k#0M* zs5|ZKq|4s&K!1Y3IE|=Bc-vdqDx}Qa67!s>6tV}!%n0W23Nw&cirajbl%`b38x(*w z5@Twns@cq(6;M$F93f4>f?Cj%Fjvdo%yj@|vKa=B%CdU*%}!iTo!U%YXSVzx#b3ef<3XyhA@`^9PI%&nk{*-sNSxs?+`O7i}%Cp=T?LA$xM! zry9=nM)q1#w{^&Mq_noh>~$SPXq7A-HA2BKjb`+O3uT^`r_NGQXD11wknv)*yh2n_ z^Y8gJP}?3u?$NghLY_k{X^wdHVrp#hBdGp}>)e8*jQLuwx|O0eO|;wH3?FO7iWRL| zE=j8>EmicOW$;2LLX>f}DqdBa8kpWBdi$N{`t*|*`s4q_tNuM7Kdm=+iK|tu)GDjw z?cLPJBNw#w2MFWM}rJiiQ-ROum&$A7SMzoP2=qOf1fv$@${sPe8sCycX zkyHarq^W~&KZ;D5Z26iCXsOv^fdZtkU{SQO52<1%Ay1{j4KtULmr>XrsY=xQl-xSJ zeE0f|;^ja5hkj@FuY6)3E?R%A>h40hEA^C?I;n1Jjh=k;H6XC7LQcjcs}h;3E1?(1%^x7E#*R#m^=gyI(Uf7dYV3YFFCsbjpm~HRR&z zM(WyEUC@GNlmP^z)LHYGdEqEDx}#V>z#M}^5x6ESqHicQ-!G< zZjHo!f@1?x$`xE#(-079$O4R<k|j5NEDCqi7b=4*w z_0e{upMg*rF{|>fY`K9hLBwC^@C&Xseh? zo66qGJGV<+_J8*E@AQ(Ly~&8LM7+X?S~d};8e=xcokQJVm9jUwoDziF6h%NHi}at5 z9mU8FfNRU{fhC7~#6=~cU)el$5H>#xN3>gpk+bOqu1ixYX~-#Hz%KPZDZ{9RU(Cgg zMVfZ;B{>^ijJ*J|OFGZfO7uVd!@tY=^i$uTY1wDFyUNaDJ~ODh+Qx#NFNQ(_96qF6 zl|SQs;NfgV2b5y$idSpdo#pMCdCf6RD6YzGSJr0UuT;)bYj>pxd>p<9PhI$KG1HZzDiHu;8| z+aXh?Gs*?P9|3K?F%5iOm)r3(90?WQ&dY)BK9*|JcD>A|%5AsVnCt08u}ZdiNY~ zJKbroA@&pe9cV1lUZwF!(`p9$l*+wnUG%A_`CWn&k?H$M3!z2%AiTi1tF7zY_Vah1 zl{@<9{_L;jw}0g=Kj~;oTH`?ygabNkzWdyXsex$Z$7J$OL1fSa?N+ppq0I5bf&-AU zi6Dr3Bc=$*aojH7C^>5D|Mg2R$}ZomMY~Bld*T;CfL+nun4BO6AZ*Rtl=9)MnEp;M zr#D)G#wbPchT#z?wCR(;7+=(zDhq$#1ZLkE+37eFEn)HoNNIeY>g#~F5wO3 zNf)ARhrb|UmoXfavZV7fF)9Th0-3u$)2x{$i|Ahy;8kXK-+%Mj7Sm+Wmk556^S|cBk>}>$b0-#*ym_!S+<0I$mS6R>A&g=8;@8iIFT%YuQxm z*3bX^&;RI`Km6#u7cV}!N)pCRoAVEW{vNuPE)ZG0hGIsJF!*i)Tl9DQ0S(wrV$f8v|tW(t=zWYS~!C!qTt!N!)MB7{^u{uha z|L&5N{oqgvJF>@2OvqAi7+xr6`=4!d{TNeTHQq{B3n!cIOf&hP&U2zFpWv1Q7;#Bq8R<0tn0oFcLoly zCE?}@&ms`R(qMF@Tx%V)bn`@cY2>Ve<+LTYD0x0Wm=fRAUEDHB z2yN0G#Nnys1_^?GiZ7J9I^+2M7e!+sE(YRF-!S<98nYyrE^4{5w5m$yz2xJ}y7^H( zt}n!T1SH>W%l>Dd95?rG-n@!yn02kyp+(Y4W$O0$97uB2iRWrn9hF_o){4@OmTK|V z)43v9oZgaTRg=N;>+M>&prsZ1GvmDzx?N9NW5|yuks`C@RD#7x?YQ`^mwT+wjs8Id zCo=v`w~u955xL{6B8|dvfmTfKV0%J7ZP&;|*DBI?PyaG{jO@)|Fecj0QHS~lCsz&q zLI8wzw(VBC5+9%Gm5H8M&bi~9QJ3Ug1!r==R29CD+4uU_B(){Xw+H(n?^y^h-n43aE- zUu3R*TD7ACE3AklcB71hqDSO>ZBHgVchtM3#2w*7F@Eplw;)9;Nip>mI?w1G`l`La zdt_0cS>ic%<0}ucrb1M(LRD4nAlis{c59(70jor(d7{zO9$Y2tdNi_$TGIX9z1HzW zPoG)e`uZn1p2$&`Tv@W!tx~q=j3Uey)j(YuSuOBaZB09tfIQdZzq*Nbxwh4EI@zI0 z(p#-|LEETRM^qiHa%;Kg9_+#xSGwq}QFQZYQaTLgihB?68bva!#z5Y|pR=K)+U;rj zxtNUD>V>9TWyJG1*a%2*!C=Yms7H1?_Z5Ihxed*awAV7cQ%(5}FiE#Df$aK9>8MxP zUX`uX+wVU6$$$7?y}9<_P zRI+ylu^1rWviBg8V(Lb)M5jaGFzkUPYm+b027pbtNr2T@por!{l>FtEFU&?1QY~g` z^rnSHn|?<;B%+*ZIDj}|)UhYXIUy?)wI%@r+&g;b?dRHR|I2^=H}gYZeyTcm>Js9* zY^T>l5ol~_r{%H7OeGqM({79G)^JGKFjIgRFrFfw z{+6L90K)i`UN&NiI+(IWrt8ELS1*UMF5A`nQW^lT$_Davi^fxMvgB~F*0L+-1i#i` zX=uSCI$yqwb?Ezl*T=g5wNHF3Thu7BZB?pW*u0o;SWe>Vlmv(^?0vOSlyI$4F7*bt zZoV6A7lRo=!@MdmOtnNNu}j+2#~j|teehkPxC5y6-o{fNAC_ng_{3aAc&cIDF#l6Sv4|m7 z>A_Z5!8mvergy*f{zvP{d+VczgXwX7Zr39q`7T;N`?Ej$H$8jy*3-M!ub<$X!4X2D zVU6BE)fV|_ltpM5$pU9pBtjOo`nnYRa}K5(HELUlQ->y{G&J-DHE3tOS$`{`S*fSl1z$xpTE3kxL2ZvWFF!q;X4{5(tDHX&x zni_i!=dE-)idMO*tg3QWtI3ruIaRd^j02V!{y{OB8p;kQ9hq@Kcad&xZuDzk`$WII zpZdqYa;ula33Odz#G|4J`?$zXyzj_~%cPu&)>=*>v_zh>xv%XRgk$OY+v(s)Ayf)Y zi!+r4%(qahmfk+%7cW=deDYdvy?yJuW-myMrf6?DrBV~WY)6axJ7tf_e}%h0M9HZ! zi3oLxDgu0YnN%FyR|TCz1qe20DtiQ--q~hA9;v*=+#O0Sv$u%v<%*K@G3*VsH8mpJ zlBycwA&G1f@s3ehq`D{lj@Tnkbkwcxb~}6LZ~6T{n0(_?y|~}Kbv^*N?Z)94X-sJ4 zwW9@ItkxM@UT%Q@Z~}!CA~FHqKHG^;b)tO&GBbTN^70A|Z*-tsFOS@76+;|H8~ng# zl<9&ouDO?o%O#wGNE`rX5|x=U!$~mZNC2*Rxf#IOL8=?5Gyn!?f}9r6unN_Z`8g08 z`n0H=mW%1(ywGE~H;0in4?h~)_y;^MHS}2OSapB@#>e|#(l@{J>EFpIIbZs5eJYJD#(zHLa9a z&Kf9sID?7RL<2VgCZpi1$&{uTfp198v@mLtCG;JUm}4&`$#UliT`<>i0sx3w%?D$i z-JL~O$LLj}PR2Nm0~Qp+e@A;KIl(ss-G?mE666H+A*rrIRdb9Ea-R`3yTSLT&wm12q~x% z-8h*9=7CKBgFrwbt|1NKAKvV(caGA!dE%e{+DjQreiGTySP}#yxR0h$11WFR0_={* z$?neHSJmxOx&&p+M3BAHB}-$GpS`im2aKukp&P&_sg|pkd!IBqrT4T_O_n@QfVORr zPNh+BTsz2s4`HTGafqL!`4s>ksp_QAsk#z-C%yCP<(tIizx@yXX!PkPXLR^TLH7ai z#`$l<3QEH~%uNis2=g*M03sk%m2*NpY^sTuFAe|uDz_9MWhwTVEy$HYW?k7S#L{Dg z8wikYSpt%%{);W@D06r?yovQ*RO-pzN_!vMT zKwcJa-ssvRnw)p|9gRArTf6r>EYRmPEy*YQu(+F!v~&MPw{O2E-{1X%Jom@-d0vlz z5iP6X8I@v};=*k! zJClqWNZFKDBx*RKGT)*hijy7OC|g;Jna%2#xHQ)y{?GclCH-UWfl9+DTJ-4 z9WMMO(aVJ&t;@B@>@6`Vw}`kreh9@0q&Tc8F?g1@W;EEB>M2UQ^N0Vy50%cBx_fiR zvU@Y;vFz$z!BnIWz)12QCCYT#M?wGudm-(#4oSW>-B5*FPerxxWdW2)PRE7soQ1E4 zcL}YD8BU-yH{(gx;fWU{uE3GPz$4iT1AlwAv@?KTr zuxcKnEn&|ex!BU%TtJu{e9>d@idI$D0K=r1_`Qa7Gyv7EWfaH?ZOx-kv!Ye%eO5hr z)~(|Yvcu+(d0d~%^$1A5OV-n;H-G=zZ#~!D-5nL*Fta4vGWts!>wrp7e_6Y68zB3Y zN^8+`ry2$&R;%3UWOq1MhpIsB;VnLwl$&I#dJ;HA(NQk@+(gTjOzGh|mBBW6Fj)z8 z5HJ9#d9CtRa39$sdj%4pSx~v#&C$PU3r!MNF?(2 zfU9K{22r9Vny(<{#@4X{UrVHGtEYUl}-Ii|EOEf3#6MSht2NkdhxYPsZAr|3XwLx21I zw{P@ke&dZz^YRtOvj*INUx5)8gq-O3Rns@33c40lo3kHg@2N{6=f(KUQqm0;*l7ac zRgSP~L_r!cP=J#cx2Lj|LnT?>w5*D<3wtm;?*bUXM;Sx4VD`6v3j^oa?bf04s$#T2 zPg{|r9974&l6LzCe(*!Bb#r|Bt=D@UN|(FoWK*R}Cs;7zx_U~6?n~jqO--wvRxcMW zzdOneNGN={;fYG!P#q;}Z(mo521>9$6=Oxa+F0Ac@wu1dz@Mc$D&7_}L@lY6v?>>n zznX-^6lu}{_I_P@BAWTxol47V&@Syp0IRZ<@nAe?47OKl*hstSZmYo#ROG65q$$sk zN?BS5Pj(6Cx$ypHX8A2^W%shG_3Y`ppPiQ1Q+`~ZxAh1}zDw4#x8C{Z-8%2iJIbIr3SHCM?5JuZBPE zJ(gsdqEM4Gbtl?V(Q-*8Vfpj}5J-iV-iumBMXAe&B+i&ca*wG-IKL(Ga(g)hlL$;g&^N7}ZU zQSFkG)@r;P%1PfR!ku$w4!Z14JNoJ~=jXn8ubgL|KfRsKkeVs9#uyX~@?ezaEbs2P zj)^Wp2}AqL1k|1#%g;~6q~Is2QgM73gttU-z_Ckv528(Ld#Sq7L8>99v?*B#hhKrQ z(Jau`%V@vp^yt#CHXcqa(o7LnHB$!=6Hx(NWo1v-Yf>(~dHGUR%9D@Z*Nb2K_VUf4 z?3&8PP(@>b@1|UMKp*wPh(d1eJa}ftsCU$5`%IaBGp8VlV1~xiSSl|sdVz&lDC+KA zQ2>IO-da27#Ci3opERtHtql6LCA(Lg)R+o6#+oo(8^FXLqb<8$p^Kzxaxpb zrldp0jk}3rj!{SEZ_0@aW)pwhd*ZkttM6~yHi=Q zw$4a7!uKF~lsds~Q&0{Q{U4MiwF8)9fn3NEThhDFpY+|g@AU8f)ff8fzWh`#ns2;o zT;jR~*CBzICXkOWoaf&nI$UUZLM4D?nW2b`WG{Edw4!$wGeoXwBigao8q`$SH?+F# z<@=UCe0uonucCdoee>iPq5(ZZXA<5K7M%*}#B>+bnnp}5`d6rusduP}4fwt0rp)C= zTi%Qw&{_^^8aA7ybqzRlNxhR}@I%|&<7LhWz+jf=x>5JDY*?;Yif4T2}{bi0Dx4pZjGZ|3EhvGv>>BPdexT{C= zbdJmKh_~n)mQvn~Hv<1nw^Dgva7V)hVwcM6qp9;4mos)Gm0BPW$Aq1bUMT32TW5HG zQtgy_@iysdFJf9Ft~``ejX1e=Fg&3hwCO5-HDx7yXqdn=kdgmu1$X7}swrFBRW2$v zHPuX21opNamk(_DFTELA62fD|PpZh;cW>(XhaXGddG%kv-c0`caedy_BOv)MShuh4 z{twUJdV9Tj{W674mF&zMQnC++;2n-7g%U!fQkAQn9F|=v0ygis)bf(zR#|RSi`f+r zj7u1QHg*laCHH9Kr&jhN*MUsN4dg0wG|BPM%m)P_velrzXR?`OS+&t{xS}NvqCJ|< zjJqe%&qS*=dH)1O7w1+pQ@y(z{iLu=k++jVr{9u#PR{YPtmGkpQIaqYAuXbmkteR= zKn@Q>j(l@l_3!-Luep7zue@D)xm!M@l~gv^3`VL)g1R!?Jd3YeChSJzWK=;`FJ7*)!S6d5Sq$j8nj(v z+A|!#iW0sdwl?Rh3mYB_e!pABBE}Wt<^fNvR9Gy z6LqLTEPm1|83X^VP`Ht0cXz5%0K*C5CFb=&OsS}T!659N)usEpo%rxS__zJ;(r$Xi))YQsw$4dKucH4|62)$0;ZuMHUisbCwP4?Gr8$Xc*f z9(9bhGfn@1&uHV&VJW?emm&Z!-okUBeUe3e1$HID>s=9pq1=3(QbHd-+H$F<&#hEE ze%_Eg!E~|lB`cM-YN^gQZ}Q}= z5A^!}ek|n4vmV#yZ#@E%?}GKgm%sG)Iqv)Wwr`fpn{-&BVRPv7>yTbW`I$3}vPXsS z5tFWQ;7`8Kk3W>G-9@EEmTGqhn;ha1?v|7;Ci&G?xm6ItS~I2e3iQ}~^9xA=!-<-t zyE`~;B6=;UtK=S$UN=m4ORFfspctW3D0^q`nI$8FEs{bGVP8{bLmYI9uQJ(eY7434 zPRzi#k!C96#zBMb6yGJ4%lE_7NJ@9-t*1-srGM(r{+d4g;F&CG_tH8iNuL(XQgo<; zkeA2cAZE17y(I~5hdP)Bu+S2Tp&IwE=un``X5!-7#Dvahgb=V`=cV!yg5_;lb*%nN zzxJtame6G;jEJ8{grSWZl+2|&7ehdfom^Ql;9$w}8XRWn&`|SWF;V7|+;e@6 z?W#e!3YEGpV;rgjfFS@NT}BEZrw7Mbqk8hx!)RPuYf5gy{Y;V=8jVoc<~vVtmUOso z?6soaclkU1rXP{+?)0X+Ts6F3u~)LM2QaW3O5@?Flt#vZ#f=aTd$eEGPD+Whxbrrf z*kvuHlmw$0mpm^#&sEh+rX81^X}goH%I@ODaPxka`D<$cK^%rU59A*Np01fS5xXGw z#NMqj!$Y+d8pFGX)dMn1M|sIwa<@)|F1+8fKg1mGuEaAPp*u%Psl|&w3|3ULn_))i z_KM_cT8Y+9@2=aMvz|Tun|MPX*XMOT0+KKI`h{Qkh2Q((SHAStr=Prl?CoWFEp=ti zMU8SJlx<41xpK6IM3&gm4Sc9~EQ1d~Ba-Fu4C&ND${!f-1XxvtG zjgs%?%+Qk7;o+kv(h0qWESDEHq`ij#AX4+U=+aR!)NZGkn=UCc^n9)5wJ4KI4_{I% zFdnG>rs%Tphad$cTvQfz^YPWOtaO^ICWx=eM!DA@tlH#ttD;lU^XJd>&2PTc&;I(o ze(w*yqw{nQM=#pMK8>4ArD5mn<{(LstZuTdA7>#6CW4t8jg_p)lNC(mE9^; zXM`m2W=v?Z06q@}8rUg}-<+1~Z+tvLlA*XMLS0+KKMs(JF1h>XZ};)^p5v1HOxPlg#+(iclHKf`Vc z{sQXz&X$?qCF^RwOfPgF*8#VMo2+LRY$g*QM+Ih@Ctfwbj02Ou+S!vWb&K)s6O;*K z9NJ;548^LEOxW^n6s%KQ$5EUFZ}Mic`)Ef?**lE+T?iyLq8ro#Lrd@GuQ*$~Avu=p zb)){*|J>K)XHWIfGwIZ6N$}g*DGdXoDK0TxP&z5BggB+KpRi1ju&8mBV5QLapsC@x z!j@cGn1O43!`r{?1mD>^B9fCAbq&rb+Chqt4bo9|$6znwu-Tf_Ag7 z;%HlHw{%i6k_M4m?3}iMUQzmxU{k0z_yGyC<+oB%zd2iPz5iVGVMcFvq8$Nj*3WuB9jAa{Z`@=$E$B%5KE?5Ac9c;vl%+IvCD=v&V4RvD&< zim%Gj?j1VyDKO0d$BS+q_0yuyX2}WrXn6(!8u~1QShuk=$%>D$lYRQZ`_KQ#Kk_fW zJ=^GUeGbT9b>uC>B>Xr zh_BPnQ_?WhD+lc52M~307*rFu$w;9LEbQeYf&zTXmCXT6ME?Y`E*LqZN-+mSdGw2@WfSEQEA4x;6oJI%p`(Oa?3358ca7)mow9XG&j%Qnw&4 z=+1dScsGYtrThEV+qbvz+4V2|^f&cGA3e?eiA$Ro1JenI<<)cTAwxw{V2O#Sz_0~u zn}3?(&RmSI)}E<&$+Uya{a5Tm(_fUO!rBCD&LpL1U1N)4efX^O=YH+AI?mI>4NEi_ z3WkWfMm5r9qf-barcoYJ+A_>qY}ks6EKysjd)dpE>~jc?a$8o7q{A4TxD{Kj(rKVr zt=MzL;ILt|#0CP%qJLo503dZNgwc`Fy$l*vd;PMk(nml1 z6~Fw=7kYkkW2lW|R5~MVO38S-BUl)DAU$=@K81UXn`ak?e)yb}ru=+%d#pW=nytIIC16=-yc>E#19( zttan(=+`oB0m&D5{p`>Fg+Kh^NAKU{TGfOp{yc@=MaxRE-B~VQ zHtJB$o$As_oq`{;wa9A4O>rWsM;#0n9BZ{?S9PMNZ$HVe{_3at&pti#yFa+~r}uPF zCWmC36t~ne1C~i3X`f^^VfPmG{+LNFizm5UiaQ-VL?(aMMkPAHW1_bSM~#&^ROM_ zz0kiHZth_`01;=9ZNqa+!mRlQ(!*4Q3H8DHf6X&2nX9vR!PJRz23{smBWmqy+C9Li zA53l{Nws)WiXqJLDp^Z)Bfon2CaTik_7h)C|KhL5x2vyAeaOH_TSpg7*H*C^xzN7a zv!+sKbvfz1cB-hKmM1aDK=#cBO?d78kec5uSF~G3_ z9MptT8DUnsMxw%=hse+l%xOu?2Xb)z^#CA;;f-XJ7h2uiw1-?_C@3aee;QBOv(#ue$aB z<+!=kr*B@VR-qtcve9u&e0m6`WR@X6 z^Vp`gIwuW0y1iNQYX38T>Q{36?3vzqlGe_mhiAG)QclrJI>Xh+b04OHZspOrL<|_( zo6+yao63+=ij$&qyDaK!U22>#J@F*iT}?Lzc`bJ(XqdG-``sr?pWKzd@#3!QII=_6 zNlog!QGY&1jVJTFQP6MC%PofupDv5-*(2FER>x7sD4yJliAH&LQDb>^^8PLPNC`AvEj&gGXV}; z-P4mk6L}z~^^ z1uwM#pM7>8w>M96uBU%=-rdLbIb4r`$5UM#*JzzgLUQy3ycoMV%azr3d|&bod^veN6J3;{us z%=fRV&c#VL9jOzg>?3rOFabh=1#_tx{LPo#b7U;9g+`uBYN%;#y zgJugMm=zYMS%J0J{oKJd&$Bf9oIkLFs(cFJ9lN7NByemFeHHdz%rwalG1+Op}m(OduCRat0+J zmzaHSRWS1{c`<-tDoC9 z)NvCRz29YCc7|fg9`;G>TuM!dn&`UgwwXFm<=yCZ=t1lo`E!jc$O*9 z#nbVlc~LA&#ssghZe2duW2KwtZ~qWG`Eh+7*CQbLg05fqgh0 z((SmmwsNKs?Byav$slUxiT0c!>2^=ywxmY+D%5R)YMr`sCNe@}Pjm`VP}Ul%6&1Zo zO5tm0h(Gr7=jji}mFBt^UGa z`KG_|vh$<>@IN%oQ z5X9ti8!mhl5vU636oOwLk!y0eb^E;Z|M}%N@`2`PYrMqO#5rNK%ROh)bV;R+ljx@D zJGv$n3y^_vxs+%x7vluRR4Y<3ad}{^>D=P6jKClxKII52WA+IRHlW#vK;nxboFKcC zW3i7h>4G2xwwCEMnRqo*9tzi^rnqju-BV@vv1%3pnmcn{#W1A<`O>pIyD2AIH<=regFrb6JfBIasb#rop+K(3^_?!c zVL4!HXl7V3V$MMqmego>#VlrSuWZGMR@A_$Hd+fElYcJ5uh17?-U&;xD+-m-tJ zP^Jrsy9KMlrwtmDRf?)`f#rF_hOjTCjBuL}Jrz1g2CmT~Q>sEeE$hZhcXw~9ZV$ct zl`nh$<{Pg=CYm;Z+olkT7AjJwgYK%MRFB6CHxAS>aoxlC0kLRG1Hjl(SL%Q$S+eTz z9<4^%<5z=_+l4_~80-sPjbytSoUm*yEjI<%RymC%N5c1nj00pFc?{AX;GVKPp0`5h zZCmHyel03~0M#?%nI^gnX{1u7P}F;>e?12Zc5b{b29E%x*&iV92x0qiiCd7J)spYq zH&34F{;7W7JnqN!Ia`l_o_9-^_l=87@caqGpq=iaf1F{lVNfIo|JV+i`7z>A%dZR74h37$q>#it%Y1}QtG0i zf`fW33JzR=dIG&BwpYoNnV|8*g{gPickTDzeOh;~@AdEe7ccY&zWl_Wo~>h9yHAMh-x~a~UTYXw6hA3Masf4;NHitmCC=M#2bOqB? z-do9(3{?+gOlKh9?&Pp_470S#IqzO;=Pp0`Lr?PRYu`>CC7)YOWu;6@Hg+FpB_mUv zH%)B|GZ3LELX&LvGI~ukLcjru)}>Z!HC{TB)Vh~~=SMnKw$^nm+zDmj+aY?!q=r&_ zD2<`l0{_gnY}%gq9^BUwVj6)UqJ5!vv`upm7=ItLe_e=_Qr4=Vs4kue&th}gM@fgA z4*t12k(t71;j6;d3CbsPK+IeKd#AmtG9{s?)yaPL-UoW~>ii?@yvOxH6bs^43+d7;UE!4HJ=sK?L1LI_CK zdB%e7ua3QW<&&v*4_KJ+E@d1S5gt-Hz-hFjk!6s~Ut`blR3O$t@0*ZqA@-ZBHKdHI zy2{R``JgDD^mtojS7eW~16sKYL8LpFgw?P?r!?_ru#?n<=0LF076MVqEo8XyRL3BU z>qb)D9{S@y^XrO_eD&?p-A;Qe9uJ6`at*RTkGO>=ES0jawjKEOJ)lYsdXqkrBtCbx zoCot(I1AX1Gz=?QEOlBe(4rsm;gd7Su1#MfH~2^wzGx_^f7AW zixd>j$Quw3o7SD}p;&yI53{;~Z=W696lT+3~8D7n8O2 z{VT7xo@rl zTS~9Km`={lCL@ZI8lMlZiV`ng|9Biy&Hq#5aUQG{`h+SjKv7rRS3K&Ix-~O6D8|IW zUJP5Xv!bl6s=8zw1%pB9fq(;SQcCeoZFS=vE?R2yS(@$G>U}8%0244Aa|}}#_tI|T z0a5lDtY*WQb(KPv?H&NPl=$M%Qy$laiu&1+I(Po@KlSx|@ZM8bl{#qkv=uFD6O%y? znRZHJwHBW$FV|%WmA=9_kGNuINtI+7Q02JX1SK@YCFyeEpgs??t+-UHT;tAC6TBA+ z*j~2xF28%b^hztg{>{7G9weL9f^{k4&ILx5(t?W7TB37ENnF4Rp> z2?Lnis1&4Sm*6>P6hVa(_&?aA^x28sX-o2A>Bx6GNC3 z$y@f83p&O-sgjRcT2WeuOJ(KG<@oRX$sdgRzVG*@Ua{RR8pXJ}Kzc;-rS0lv#Glz2;LH1TdK@`L7w#B?Bso9zH%1S9)?Q-OH9iAH26uTG? z6uMU2wf`*vf{Uqw8jvF?#YjkZ3=fH*ZR=Z08!zi+=M$RiYKE83an( z4?{N{i!!j5BF-h*=vL>QiJQr_^E4WX}P?o1e@-lh2TIZSGnlll9ipT5k$fwWRFbD z(<2a=b(Haqb+)Nr)8i5;hu2=(!x=Bq{`r^#RzQK)Eh%oqs)QM@wkuW`a>E%;AOR6g z8As7Hy>NKhJC5W8x7wLM4kccTuuPdmrsJe^7}#e8y^!4eV`^LR~-&daKbPRS*u`zqT1)fpH$i9qQeVti}}goxQHEbt8&FT6u6e01!{%kh}54s_NocvB7YH9TV5KsAkH4U zuV#6eH3-nr-PGajQjME)SM=oFx1P@CeO#Zj^$1A5U~AR-V|A?k=I(VLYndv^uoaQE zJw3kNi(DQygb)CFDEvN#o**L{9bD%OuRatn7244>v?WjKmKGZPD9sN~1xC@%=}p&) zk`~UFNE-<}eVG$9p`j9(>4bCinCh7pu8XA6cT-qDKVzp@r;uiVlru1+AN58DBTYvOq z>D8hYJ61J$`$B8VM+=jYY=Y&&ghRFDwtG#nX=``&Oo@fL zAm9cUTV3l0}aR?Fz9M}JOb_S?I|A4)LkJa z)G|^N}up9 zo%nts!T{1HmMS}4^e5|Hw8X0zKP*+IE#%I7P5V0VI_uxIph+2J(UYQv;-&AbSzj$U&6Q zU*Zz3Gs=SP^J?uJ91H`Pwx!+;c)GOhJ;~UxaII#tWX`VY3JP88?scBN_htW$|BFBN z@pYy?uFubU1SDUu^_7pl{1fMH$yM}rz(DgF&-8amvC9?3J0>KNLG#)w-qfKJd0PFF z@){F?ExWy(YMN6W`e-L}(p1@dWCxPy{WXo08ME_ks0Ugp>EcbU>}i@;N2t0166C)& zncgKwv%v-^N$@BrJ}VT@6`xVJj>!x;J4w>un4>9Q&7mArmi)h@&T03;G`VS;KnM4bbj8IDgDIbJ(DmQ z4j+?_mEEbfYAwC_>BBa^n3y~ToM|^oQC_M7 zfKVoBI&cz44E*D*4-WBV2%^>w;uX|3n45-rUAbF}%AiX#T?)Y1i+y;`mk{qCECoh9 zBsQ~GfSiEzSjwUB-sQN;lbXrANXTe;(zbjI!DcS^djA}*!2xPUp${C!i&9Xxdq=CB z-qB?RQ_F_XjMFoBz zqr86gy4SR47SkeXcSq%F!&2at3Ws64nw;CxmdE6@VuWV8vPQswHkhTv0YB8Jt_i;n zl)ZFCH8TTdY^h4J&Zx(3!)qlSEw6J}6?CKLmD|mEOnSt3!4rel$hy?{6pt01 zn(knU4E9n{z=3p9llj^V_6vX5+N5ZaGTsT2oCnv}k&woW=t!hulDlOsM@JXble}7^ zDe3sF=g;)DufNuR@g3=}`O*`;K0_^^6WClm%+--rWy@PKNxkXP<)EF=KACQb(oW@x}735}K$!0`*O&c&qZ;7&^y0>>b-}mm5`YYdjm7LaX z-DuNALAm9`Bg2Wh%oIb<7uR%k6{3k+tD0snG$LUv0s9L`XV9HWRI@^*!78b$t|==T zH(F9+luxSIEo-OoS`R6@@%;jkSvH|k-h@pBK&-)`Xn=(kAelbw-Lafngv&|}m2}KM ztGJX}^%Fn#vGT2N3T*~^yQ}9Nb1wjN_G-8*>VN7sF37l>DeZ1kUu{PnbuGCWJc-iT z!N1Kahr1SS*8*^d)?#o^T)d~SOf6KiOF?vM$#oAd*sw8{u+pypMht$6+N)`K_iCj! zQwc1$o9AVOwS#TSJDAv|Bgb`$2K*79^ZbngAi9%bO4t`=M=oGCoy<~)5~xXABs(~_ z&hL>uWoMOjzJ8VC`P+K&=GFi3I#(ap=Vv_vk}uGD_SWyH8tt$}2or3Ln@%0k8OqdH zSYis^Ln{f2fv%7;5CHFjRvRi@q9?#LX}aufDYXZ9LG2t~vJU;zKlL>o@4clDZlp7T z@mUi;n-4^bKpv;EP#^ORq$^90l2m2mzB>?u4imZ%Ag^1M!5c#oEKP|4Co|X*ng4WW z(X3lV;u<#`foyq4`__5WJ0Bj-%PqfrbElhI>1;4sD`D0N9K0n;R}$FPm+YrS(+Gvb z1_J;GsfwY%^u>082+n~f0Gr6Y)z?TQFDtFx&GP}jMry69BEl8HGmJQpWv^ED&~(NA z13|;)z#op*!R;CViR=>mVp+AS=xvhJr*3Xb_kF5$>hJiQeWtLWZ;(D{h$;kxk>qMrgW0LR zM!7RINVc_>wMsSRt<`jKE?c95v4wkP(A9A7i(D2_XDF?k&q1}zGb!_|%EWl?X{VO^ zkn6_wlU4qXt#7|PVfJ&cM!#U&mZM`$_i90YNoE#JC*GIZ131K2LsDwvavyg~)3Pgh zw{k;neL>aiH7v$O!Wbi!I9WDBnT5UsZcx|GV$ViWm!b_O(bg)om;z4@LXxu8?5y-c zGfII24YhRkwg;%_CY9FR9RTI;_UvC{ZtJ2bzv!ke5>dLXFvt}5igm)s_ zieV_YBWR_#2gK!VtDDH}9N-8WWly;O9VYm708wnh0i>24z?zb|R`WtP!w^?WIeI!* zu4gdl(J*qYQ`V+nB)CJ~eO{CZ{kXDRwEReP;tkos9H^-dyDKoS{J0AOr|MYP;?MIT zf#PY=lmnXDmKdN&qLyRY3#ErUSclwRx_$roS02d6$Mv~ckAUP0vfAr^_14?Z`@Fx? zT0WE(OlRi3^7PMvPIm6oY7Q8eqC?t=dvTDBuHgz4N=Y3K>Q>?{Q+v0%vsG6CU&E|S z`y`WPlNv98IXLGeYjt`j*YsC%qm2$BwA^;@Zs7)7Efg82l}0|_-97G_NtZe&U6f)d zo#Vz@9ou*gE#xXEfoN>402%a#WNlf}Di_uc-P!82 zbX4@@*;D=0U;K^w=IhR1`{hHg&#i@wL(+LQ`bZU5I_aWOLd&8WqvD`t!lBc(VWN~x zw+)^jW4CY-2rxIhTc3@5^{_GXw{qrQE!ANGJ~`DdzmLXy#VUKJWc6v|)bf?>1Q)Vhvn};fO+~f-s8Cq_J7!(h9UhzGZ3P5bq znr0SN_i%RQG&}-~Oa;q7d=f7esXLjz8l|M8RJ#odtEK|#EeFc91+rjsTmVn9R|l7w zT-`p>FjiXDZ!sjy00Ny%iI|!gBxO_p#vN^w%P83kaulJO&4kXNhk-3g?S#>MlFuFl zWJ-eKRG5rHc9@5Cf3IineEIed{iFZF53~Co*XLzD0+KJtdhhLb|0nX1yYs%Rg(%Im z1>(UyU_aDcmJctRvP_inmaE)W&N<4x(R)at3!}`m%!{C{svJ_OydZ8-jm1&cm5IZ{ zxaAqfx1F>bhUTFHL3Y<2Qs6E@y-bTBJ-^x+uLUN$8b9+?W2y#=QI=C^4MPda(<@;M zH`$p~x(>vnirb0k84@%E9C`=;ZB;Q9p0YHbQ+3c$Y3YznZ!fTCQ5>&Y$7)GWZf}%q z{ZoJPulBoNdg7;5YITbyA<9fGwbR4fz({SvFvoK!NiD>#*HcAUV@4O#9IBK@znHG# z`O!NG$z@r6NK!G(*7ngId`-~`Ek*4PmN3i0EGw%lT-}pHOYh$t`jfx%Mz@X+q6>5v zH?XV3)3LB-KLI&YI%!V}dfcS7Nqm!X4e3;tEU1dLR6t*uXef(L4R#=w`kC#XG}6&A zsjFq<)LM>%*kIFLp1s=(TG8Gf`@8Ab@K|CnqlF%quhgf(_ z*Ckk+yQsCKyZaaY#raDkLXPp@xt)erOM9YTpA|>$EW1O-cpi|Ge-22@s{LmWDXtA==qp-lunZo zBP{ho3@5r6gGfRiQJO_^vm@Fps}QTMRZOQPLaVLn(5(Xn+>>xKo~Ahw7tAjqp?-@x zqv59s!erMJWTw1*;V?rj(2;{cz#4H$B&A!~1U>KUQnK)7$YE72@^p8S?YG~4vhQBK z(ZBn(?Z58(pY^NUD_S6rVECG4tsc&sA%BvUtrM+bh8FLR5Pp^x(iaO=;WS`K!iW;c z=rP8U6k|w%@Dtz@xC|{qw^Z>BD$6Bm`KV=?otN>vN|m?ek3J~q(Pb{#)=p<>dG-C>8y_zJ z$nXBJKmFP_RaKSUa;outEoX6YF2lO%NK)+s1_LMmG(ICuht{g=`KWz^P-BoP*bEU* zQKfZ5L99WLqAI>*QdM%w)tTW|(r%wYt~Ax* zlA>VLH{+oD;$eXwHjl*to&(3OWi4@^VaMfWS z>I9PP>eikvgqoO_bjIb0jtBDf*%eJ;dM8VU*~r+u7X$G2)VRwopOWorheJ2bObeVF zld`(Wlt_!%da05+WdOz|YlTtBoNs#$xGpUuCEn2- z^u)3lzCkGl+v&lSk|VWD@asigU~}VjUmZp3IP87OSz5Gs*gp@MU;hupV^k# z((+pNuGn6|zzj)?RV@gnY%F#%1sZmKl*ky~&j80oW3m*=!-F*8Q^5P<9zzz1Aj5dyFD z1Q~f+Id^tXF+>vCZB#Spv(S*Zgwc}bW0rOZcGV+%CoOU1-gE>eI)<^xHeD0OuY)Q?N2v+og2a{x&Ro|N z5~Oz5*&U~Km-4fxH>$n$kN?SE&j%m9ox5JzJ^^~%9(i;ld`C!bPG?=(o9Ob}T4foy zha!;}6D-?3ln9g!AE0QrQJTuNoK`8N@|KBRQI!ya+P&yf7?nUBJ8_mNPb^A!Te_>Q zkKa1<>ACg#f18$4xEgv@`?ly)1WW+XN|-&o)fE(z|75{53n- zV^XRvEXs3frpIR0DZ-8;t--q*AeRMrt;B~bYv<}Tf}Javutgvos^+SB;NerYi+!?8 z#$9P`ATqeWEVty9oF_!e-}^WJF6;H{y1Vbxy1{vvK3uw?9GaoinEaJQc2M}}IE4%H z)rq6R%+#u)bVZ5P(xFlxLdt?j__KNs#7a%)y3H2ezPfZkDfRzn?_YoYTeIvgY>fG= z@9%alRp->@R8`-6Yd3B~jIjk)BFBmd2tpEUiwH3U)Rl)5NSTr5T! zc|lt=>5`elIatv-dbyxQSTO&**>r+vMzNO*eu3B7MeOV$YgC2F`sKAHTk(D9dufEN zj>@#ou&=a-gw`(3P?>6jBlV87yLL(Y1~`hP6>X8`8#X9JGZLrW^)S1~6fHDgj2?0^ zF_clnNp?fKPvh~bwp#><=~@6hgdjF}V5M`^VNK@$;`uXu@8w;-^-FK`JKtZvKX)Aq ze^h(Xf*6Hdl#0m`g3!TNnjx>w2w8xD5fh2WALcp?&*Y82%!39cRdkYAYt;ycDGz8V z+4m9pm#Z$M)KUeY;1#??)Li3}DEHPEZqb>gzw)bh)^YPz#}n|S2sUL+rxF)Xq8TdV z1L79ub&&**F9DQGZTUC~RfL!hG!JdFGRUxxvQk3*d2L@dfcAhy;42GC2EKrLLx~K% zVP}*iq}YIMaGP{UBk<);7?sJ@heb6?T&b1D1FovpTIJT(Z~c+4o$9;&^3|z@#TkJ2 zss;`mEwlEztrOHP8czoPv+f6X1_4!*70^Ruxm)oLpFRMu29%9N*bq^BGfD=R)$Q<} z5&SDlnWCVm+d@Ow_>R@oOxQu3E|oogg>5bMA}vtIT8wf?KLBQgEDAVFi-ctQeRvHQ z6*$N$Oy?dFpU%95O5ko*Po@SmTD7Xop%6RiZ0d zo$c{z3|zQ0&IT!Ws6-(%K}|s7CmDNa=pdN*iGnn9WGYgP!ap&kt%%( zaMH3Hi<8zC#khsd6k?2YH9e^vgo;|sWova9JGRp#v$&GV#lX4+do5Y%#@AC*O*5#p zqFpPAV<%5#J-;n|^VeSKdL&fvJEa9M1_GiWDjScG>AC>AQ5H0{EplC4Fw zCYKE*gUZM!CZ+(CRnTo6F%1@2VgN?esamY@=>}T^I4lAz`Mi`EV=oiYVG>4-KqHn_ zC#4RBV2MAvGBcGIbxo~Rdh^L^)!R>xCoi7YM<3o<2aVQ_SEby$+lsdfTUsitdSX1l z_Wek{MUJpWGMchsMvA&?2+mSzNnT5K`kHCTOOTy471za&Xdt3gaUHg^y1msiP6y@> z&{HUc)3TJn%X#QA1n?9<*Yqw=c?KDYouZ!?QU`br|B-2wQDA7B8(-`t^y9AqUx;>L zaeeu$PzO{=S*j|nLw+EE`s(xEy5QjKLza}g`*W|i-ab~HkHXd;qT>;e{E!|=);GWT zm%j4VuYBnzU+=r!(NRpjb$a{i0lYeF(%mJ7nx!N-XDME;Dt92}(dtF561x*Yxx0Z9 zlaEM}4_T|6a>zDGyPSCEPz_xYZQ{PJM6*WcNM>%04ax*#3tQ_$5(3lk?`vpd;Dcld z6~q+GNhu)$RItPz4n~55HmRU+s8kV=C%@jp53yJCU;FpO3rJHU}t)Noa zmY%*S|J<)^9V>ZSi-Lw=MeLeP)v82vxrA>fxDyhIbXcL=uDY3iu7zT?C{0n$k+V!^ z4)lO((5uG;4laZNI1lT0bUzZT%@&j)3ySheQnX-rg4RHQDW|afhB<+8TreS*EQX4R zmX4L96{p)cWW3(@s@&U|F3;V$I&`Bt9omXW}Ejnxgzoo#-~00LR?Fxya3I} zt1%wKYTCV~HQf?IU2m=v-VKqdodI(S0+Cj<2aM@{rXE`gB|Ynbz|tOep{aagbXKu# zW3W@$>NM}~!@D|$s#S9Z*D8gx!cGpYDii3Mg>U8&%+#}8C@n+11l#@T( z?%j7;Fd&(5Bf?QG;Uhx4*|-s3ESn|^Hsnq_rQRpw+?FbRhPFp(pEz^d^1bhT;$QsEUH|l#Zn>uc0T9tb=m*oy{iuf2CY8e_ls-#>kn9?tiK)lgl4>U^ zg*G6-XH7OKoMVFP|CG$50g~KfnEph|#@V;WFl=9P+GOKstG-kaIeRjr-MWW7Sh6d2-H1mwAMY*F#KwKGhs5FKapq>*UXP2bu`pyO@q4Gg# zyN2;G3rOlt+uDuuh%!0&_=>={RQ2BAu8Oj|C*Gn%NoQ2o6SxOkM_!|@Z07c&059H; zq_s{c0(Eq_^y-t>YDs_S5B&D%mwsa(wYqk<=^+LLCD;Ik2L@+`#>W@Y$jODK*X?qr ztK(Km&7_EA8yyDkeUHXOnhGBGX&a6Vz#h<<6$Lv0$7qx?pTk;hwL)1&@iAR(T84VV z+TNw;yeepc1ykc8KSFVl3z0fBrCh1Q9IZz1B`ZSqohVddr`!TntEu0qlTU|cE_`;? zJ%)`V3g#N3z>%g=+E&SZ_h!}e7rMU-oi@-dkH_bHJOYv*;^TH(|HM{hpZ6H4d#fkG zBI|{^we9q%`A|g2J{Uyw*jQUZTDA^MQtkA}gQkbu?wsMYFMn&s@TUJYJ zIslb&mEhP_&T*)YQDJ1J)1oDimDC|m1xQm#ipwKoDHTO)vVFzL4(XQ^uM`GOb?D|^ z_(i0ooeq;~hw3GU#hWR<_Ouicq$X)LiScrgC|X_!2qkG9)7KNqN;n)8^pUK!mjA^+ z{kOEHLV>2L=lM#XjMSQsp8P)6k}PT%VT)dA71cbM)X|n$~jYR8~pv? zYjV`ZA&P)kFdQYZevUHjq1LgAUqb1WRmGYP?38QH7qJU)R~x-XF2slFAS4t3SIaqj z%Q^Iq{oTJ!diB!xyIlt%c#1Cppuxt_$Sx{XK-Vl$GD^FdYu6Ljw$v1^jN;o$;UWMe0X1lPa;AFcZrGNcG&XO8c4Gi>%g5n)b%sKr z`e!nz8C{|4`BJONtV_TsfZ=@i6O{ zQ5FbS>eX0pQS>UQ4%)nD>G(3Y2JGJM=k9odGYx! zdnNMT=rATf^`WVMi{eK|h~WSSgMs+m&|)F&AYhfMZrDb`fK)=kWK?q@!qY(Lu;bBL zSwIf2$xDgih)Gc(kic1zvkL8@I%0B&Cb?k1kcxUlfpg84B(EL{#Zdq?RdKX0 zhWoS*300=)!0PMk;pbIYzeB5);WpO%ewBMm?;qWFXZ+D8cUtSFGiRzW`zkX)x>n;u zLeplr2OT$-^_(OLsU7u_uW}i89{1jqL?MZ)j4Yi}@V1zLF?FeFn4u+n7>}CfdSGyc{3l$8U}0Iyu3Y5%L29x z&}$3&uCY0pC*P`5(N)H!VVAkp=EO_tssb^|p<~#J&FdpI-T!ET=%2T%)Mp=i=e)iB z?(Gl!6aTm8pYFVm$LD!G0+Jun6R<=wOmmQEd#^lEn^~!x<$_Vzp% zwbcc#K^9Pza0$dOTM{hNWXP94c~n)yviE65y!0UpHbq#i$d~Lws%@us6Bq_~Mphqn zCGdvEPt&XbKtz~RicP)>(4*H@lH)one)o2`jw8SDtFODM@Zl$C$y%l5f<`BRTvUv; zTy6qoOIB1xg~W===m~byjU$z_hmtRZ)de$8ScZky8VlXsbX#bTM#(MXE;h+|fMbd+ z2`C&bEo-`k#XU55l^HNevNsId8e+l~1EnzV+e^X-Xmr(*mX}|@x%WHoJhyI3AASFg zpFDNxRK&;~P}-#BkdY6d8FbQnr(0%TS#`=Vlvd75x>{~vbS`Gds%w1c7%@xWE=$FbAE=cFU<%p>zg~F&4=>gC+t0rE zW#8pHzl%?LJU;K^5s>^49!dPgw_p6xv$M-JBJ{2ot)@2)` zP_uc!a$FVPKp$|%YPY=E2E`VZ%Ay%$Hly?d?V()5VAGP9Ta5%GrNkZ$loxH5{6bu7-Yp9lifJ5m zks$zWCA<-`Vckm1eBQM5L2)%2w2?f?OKF!6wt!0O(jlkEaemN%vrtsqsV;9<*D6_Z z)p!8SR>Bb9!ebyFT@xbKmf{$OhgXo1em$&H(96V97A#Sie+7~2Wy+SYWnN4B{*{h* zzTo@U=RZCx>GAlSk4HfALwNkzU-*T;=Yy|(tzLfeN$(+^iz4Zixs`Oc7e-O3%Vkv3 z1V0{ZW~@5_*`BVvaZq)HOrKd^k`2V*gP4LVDTRMXl_$eAy}Bu7gL0Cja$NL1*%vTH z8dcnI+3Kdnax)Wb(i^ta*~g+0wrK&JGLtUmSH$$s%oQ-N<~UsUMmXv6HAz$|A&A8g zLQv15AEd4FBFs&dJAy)Lg)EOEx3cM^ZYSrx^y2Mj(%sho^Dlp_-~N?DcXDbB$bBN1 zNoVH7@NBvmAp{WITrn3UtpufOC~;lgAxn|)gK-V#L#8K6Xr7B&Gb^UGuGUa)m(AKB zTB*kpT~cjD#U#IWe1OY557A0=lza1NzI1c_2j98R^44(>4&WB7L$yZqJi<{;fTF}w zOfKe^0>C9;(yVRM8m-OWBbYWQfgs`p83alyDKy3c-MBvkQ0MOKVX9(T2P{rX((-Q0 zEW%ISE2cOi-NzC>HFGmY7-LE;R3{><#bC**^MsqOq;7T9B>_nkWm$E2^v?*U zyA{>d89wDM$>&b2W!4T*zBOfBWG&oYTKCeJ&#_3&+v~+C?{w(6qX5_1h2Q&#ngZ|) zz9H#(w|VEKwh)&K4@j2!j%Nf#YC6&iQ#`7EBuOE~QfgoH+@%-)kyXYU( zkW~uPQekEWqOcWD2pXBg1TYB`$FReO-RU9lK)FIS`$~C58;XRf z2yu;cpGrIchS9TV6Ud?wO=k4BP0y!#YVaxzOA>8SnmGcCkWG*?MSrJg#q@+_4I9L~ zn1`a0N~42;%W-S#t!Fp=dq4lHxtH_fZ!PVXZ$oSc5H#A;Jt!|KTa~0%S#?;lr?4PN z#}gSXttgyC zUOH9Mu#bvV0W&$rE|G}Dm*;EC(|?s91f`BO44Jr9mc*Dz76LkH^|Z{I(irdQu4Px5 zp~Mb_s>8LXNylOUByy66%)kRZI;uL#Xk(~!&fFwex3+5L0dQWbHJGLjHZsdLCUz>t z70Fo`9`2;H#$;#qK9xOE`0>LZmXw65Jgia4J7?AH<|i+nB5Zv;KKJ7hko=Gx-}=_K z-u~b#U->=vug~Z_Z#ov555)1zdnT9iDZK$ju`2 z3Y)Q_Fy_sY4@pvrK(Y|eFnDY?S)CDOcu4qzZ5Lo7l3ad>;cOMUdbT=QQ|<_uj-W|Y zVww_7L3dA-l~U+aW&%!mxdM{lo<~|hDk+wi4;7>cWP~zVJuM9L&9#v1)B_|$22xS` zsH~gcEd9#s?T=o*>E}-iA2SdtTonrp-a_`$ayQoxY&E_S7Z9Mo{Avf5SBqZb z!y+C6V2n_evmY`*2Md-MH|+hI&W}QMxP1QD7B^S$>OJuq6jv| zI)xZyR~p^QULE6XXbV8k%mJL>ct4rpXw<#aOUTmu=e%Du@`IF5MbcO}Wc~B5{3_`j*WJh!f6vCTB zbeEuXBtY+T2#4RC;Z6V%Z4?ku5iES-qASTe>E3a7sL`im8cqS78Q3nV zhLJ$yG5xt#Ew`dom|Deb&@0QZx{_5S9kC9392upqxaFKp_oyvpcdROWuo~s2C9RSV z_Mj5|y5;FFoUAx=%0vAq;}|NBQ?-!8NL-hzy=Dm8x|Owz3WDgEZlx|jG(eAtD103> zLE$?2`Hsa8cBWjTtsGAe{X2j5mn1#S2hW#U?tOD=CmnUwz@;LqOIAEBmUKe7<_`i@ zM0_$b+vFhh%GIr^U6OOolr_mSw2;Lxu^swc1m`lvk#LJe@UAK41lbKv^NWIhM#CVx zy`)t4s_EvT_d?H))@@b){P)gCXXNCJ(uMpOrT}k=$VztPGj=ej!+H+uc9VS%rh#4Q zFlBd&kSeLlrOos3+?FKi4GU%3qcN|rwc$sk2R>!f_hETCbIXT}(5G_?_%E%lted4C zxv;V z(X&aXX!WI}AEqOh?XGCWY1hSGnD*~6U|>pG7Tow6wF;YkVH0t{h@mSb#s=hPXKD{? zXbRE!X>_JkIWi*$deb!2&QaD|PoLB;eD|&<{OVAAC~No~5$5|LrA{q3-knntyO<}1 zOx4~!!UIrj)KDIYD7PI_^&o3Y_Of8>d2Xu^pqPIhhuWPae0CA>wwG#{f&vTjyqBc1 zS4TS?Gs0!2Ls`kpmjj($P3WS00FFz-%sxvuSI)cpTB`cSZ+&-t^s67OI-o(26Gg7p zE}^Bc{eWma79hCaIicMM`fbE)P@#t5DR@ zVLx~rt|=0(KvXuD8%bGFF}g_SctblCpF34Mu_?Am$tpD(q$pe`;L0Y`>8MtzF4;Xf zf>qvu;Po~RyBgFgG$FiP5BRS;doqi1cmzBr1g*$Orkg7*E%&OGoaeo7FW%1G{Tn)M z3}^Uwd_Kn`Ao(FW?(g@%^8BqA{mCbv+-aN%zyt*6V#5Y3Td&5nGcpm%F)rnQ5v_~Gz*?BR1>)+iPv$td!3*^j&0Ee5KiLA*BO zZc`R9*|02CI=$hZ9VuNf>!)?#K;gUdKJUK!mOlLG&VS|mZ}hjl|3t4(#08kMH55lp zPql6D*lMX)WoiXG-B-IbkuI8O%zs1ag&+l|{reCI7do7JeKIw;>IdY%f<9)+a8%lJ#4jTi^VR*HNOkpFc5p3M~Y&_QG+t zZ&<2RBBF7ld1$JX7h)v&;?4qS*5H#2kHCVc%eqf7rXCa529^%1my8n&VvV4Qa-tRoml$)f9H=X-~Pld z#@jBjNP*uh-JN9h;S$d&A-R{5R4RnY6f#)tXq#8UDi!wp%oUPn$jkHqwd2-CS=N!N ztgQAax|zsH1pCw6BTG4H36Gn$S`EvA2hub~x2n5R_`Y5HRc{2uHVCW=C;90czV0RO zNMlMA@YS?YU+;G*b@2AKM8<=}T~wiDBSGe+hjrQ;Y6Q@U7?$gnv=;A@%WI!2$FqHV z{?_l{(;kn{^LPX#KSakDzWB~R>{@rNE_+pbM1rG3PchPK!t-VMHG98Qs={(wGYbAP zH*dzvge;pJ5xv{8Z6>YBQx7Hxwx!XM@^#dXi?YKG?i9=b+28;O zgnmU?rLMD$Cn@QymudTMrKDpsSn&Sr{MfstzxcgaTYBEv-gq%)zE&p`LjxP#p_+IrScv6p}}tVEJ%)Y7tkLRu}pmK|KZy z%t8s83U@k}I*D>hUGDKQzaWA>4R9=u^irZ!<5G5(d~PH<|Lwo)$JHNw7;7W3@zrTY zlHrm|^7ffF%VEtsO{tB0D^CNJT2)y|X?0R5Nj=82RN=a?xr<7*O;n!Wo~Kb=vWnNG z(1#1Qjpv8CK7rgyX3m|RrLqt{YboQGhzgsak|(|d%gHKl(5)PCp2O61&44~?u?CzV zX0jyQccZrP4VpE{v?@tjQ?DE0cu8}9AWxPE*VZgTt0k`rt;Y9KdcF0|qg(3_!SM)4 zen^f#_vilH@BP{b-+21+)vGOA@o`+g+7L*tl~> z$+*DZ$3gGFM#5e%WyZlvKmv_}OeYYj1zmO8y6>+H^ZZ$H!hZvF57BZ^zu!QnrQZVV%N3*vlc%saS$reG6Np4 z)`&&fuW(vr{Uh2{B)hytCl1dPTI6cml~ig(&PjxMKj4B$IVu<*Sgw13R#?^(xySM! zB91SvYhq=kMb{B%i>br&Jzju^(Vka38ZC8tCx7qn{cX{H={IlARmTO7BplL4S_O_~ z1r2s4mKOJS^kAMslvT3R?E;j`rli~aoSEpmW=^^hl!AS@kSs}^w2S)5c~yg>T69KTOlg9I!t9gXtsUBt*&rPV%q(*>)gpxPxt(ub>B+nAuiyVq{aZiA%kg-8UdJOK z`5`&%`q$ri`^B4ApS)b_hNU$Wqv;qCgY04gXIW|+XUmq8{(;XZqG({$>5z>pT7K51#1t{i#~g@>L#*)>@i70hNqI6Qha#^sTG3 zy-XEMqTR-2Tll}7!vN$286~nyOSoL}l$KpnJ`00k;1)<8Jx1T8lNL%}00P!8YEeJk5sr5@ULX7A;t}i(R@-# zJ+|+2t^xX9H$XlI)CF;@$E3WbR!A9P*aVE$B!(P5oETsbEei`%L1F=da<>XIUGb$b zB#x+wJoJ9(DvXZxmM%MWx=_PZm?vxb{@niHt6#9!O&@)K`?%c((g^YkLIyi{!lh(B zCs02IK(yp8w^aiYI^lJw#pLIrc)>#iSyzT28&5-8V8?fWZ(;_E$ESk{TLczx4WI{VHz~xnOtfHEU}Le8$+WA5FDKf| zCD$IeF0xW~op`hr8%t=VvI{8WnlURo)9JIcLnAa^D4dUAs%LkCTwur_?Fx2lT>?dZ z3l^cJ9ktVxY)aj|vz|ZEs#E{M&;3f)+i&STsCgB(S!p&qX0S*&Ygbvewq%{b{Wi%h zWWh*cw(rAQyC_nQV^JhVjj1UG`ne6E*Za*sHcUO2NZEvr@7tIgS+Xn+)GOc zxDuyVv^Ss6ZA&DnOrHs_Oy?mPXkhj!Y2V#Phqa!peD}kTo+hSCJsp?(Cq? zq9X-%V6-%y?24SwsimMo?MT_$>0slIo(M2CULR)dSd#XcWFXr0psmhE0BpsnQh9mP zlMJ_5%i!X9c_VL^vx-?Zw(9EE+9WdQzy<+zXp}0u67@o>gHnsV2&oR{B@BNM$XaGU zE2F?|Rs$e+Hl>>GDJ@Dp<{pUm8z5y$(#EsLeL8*iaeVRJ{`kXR|EGD$9*@uKcmyP$ z<1zM-dinC@ANk6AUs|tUezI?MRKvJV-j8diBwjd0dorL4w6r#vjM>z1NVm>ZmP4eh z)MgBy+R}aRTxOr{FqUf!rg+I^95fnrI`U4*Qj#=nhis{#g*bhJC_<2qr2BMshvctd zaUzs1BM;F^VHeImFT{R$j*zGkE7)9-?Sh($$;SJ#N*^dzNG8%lH=pc@?F7p*HqDN7 zcB^PjG%68_DVC~*gRI(hcfa$_+s}30MgQ(!_@4jvA9fPBuue2a9Q;IZ=dumBx#-ro;y2HNqlF7r2*WPDxL3#%zH;(yb7rT&~%{ z13RPX7RQI8?O z6rUE)rIo~^4%soLu44&L`&jiLX6;UsMo2J*+&x9wab;FM?^!qHzGRp8>6CrE^X1>l z4?G^9*YOBQeh7}+(`WyZkJ_(azFt~KJX|RX{wP#fuNPO8drKyOg@K^_$L`RHp8+G7 znHtl12xwdDxI7HlbO}Jb!Jm48Q2ww@RM}gChUbe(jKlBRbsX+KqtK+|NQdQRX14Vn zcgE4K#6nCV$tKy9q!Ic9Jet0r-8&-53c^IRFj_VVDn$~qrH5*f)kX>OyOihG9- zg-bzhDm4;Sd)`E2;*Fx9*|D7|^%w`$NUft>k+z(F1inf1fd zyJR)k=ap66sbfL2SF*~gU}P#==XQR}yYV-_heh7gr-u}`y@f_-;ZzgWO?updN8bQB zRN63oB+#o6EslPojJ;Tf%CF;s5_sH5(ssb*i?G+tK)8{yOq;1Cfb(?0N{m#1#_uSr z&|j>w(@Cuo^XkIAI;sG(02$5e78cf`RO)*G)n>!9JkTWn6K%19JCH%Du`? zwabWMALvaXimt;JB4-i=8oYR+EnQk~M$?lYTT7`lMpDpbgvJ?xM zRk9bf-33_+Ru+v*Ev8)};^$0H#5oQ^3y>lc3E7v6jS3-5ez?hUhAN#df0d+mvoA{ILklqpDn zH}1+NZ7i~9S5MQGLPE`8I$M_`7nyWRU>muu9&oAMP zS$Lf*r7mONXnfGdT|gGDs1p7pG$2!kDjeD<6{(q>QB@1wnhvc&8+NgmspRTKqOB>r zQ{65|;NCDLXh%q!JU4g3F@tY0n^>~5& zE;`Oa>ag$OS6}a6q@wqdA!|&^w*-PPYI~S+?8luRbmP)t8<9y7g>4EKWI9 zW%r)XlLUt022-9Oq_}18ba53IV^V`l+XH0WvrF;)<+6IpIzmKS%zcwh$t#V4d%~MF%*dLx1I$L7VwdY!rtTv#-fn|sdxK#I^2E{FEx7`>bn}1n z_x?ob)rZ>mXKIb~b4gh$vX68+?WJn>%pthfHUSpNFFjxq-RgrptwhdlgWU<(C|p%K ztd00qaV5)TP#~4uHA3~sV}vSf)TBszoBsQw%%GWq6ABNZcgTbkK|s;vZ9JUAd~e>v z9_#j2G54ohJ@B*ll~XMVyLx<7Mo%>LGMFK=QU{2P(UI*m+86#Fw*(x3w?wg2VWlud zs@*g%CVlGm{9Qf2`|fYk?_dBMsU^LQ+Bs@Qz-^Z*yJ=~_l|kj?cs1~gKZ79n!{V^RMf8N=@>I7sy5Xg zJMttj@>4Ac^Ee-1WZm6&UcCLRUcEZ?@Bg)r z@^}8&bH6;#tYlJ8OHtIznL%I^)2JNCD?%qx5LCKvWVhUjo^Ad&115^(u9DpDLQWIm z@6cDqX+xKH+$q&aG&-C6mr|Bpwh!MB*)kf4$ZcDS*t_w)e<(qCxfXUbSb#kH=QS^3kF%*xlHT;4{fFfAYl~qPD(ypf*T=hodg&9V{Fb}gHS96sd0gF zklP9$P3>=N=H10R_=EW$qXHYeWT&XxQfp3Ln>d3 z!cif`4H6Nlqbh5kTR-)aUzbk%lQ&yg?cPNhX@dFS$A?yMC2=DJeUOWZnNm{8p{5y6 zjNP#xgw7rVz#T-ToRdph!Uv~&M@Gw`5_oy5d_)pZ)KREeF6Wf8Vaim@Aa9t83z91( zGxZo5JRcj90!!uY)fTLw@C-71sSav!&IXK%QV(4{V_qBYKCi}ahdxLvrDF? z251)rF+|(*PBdpMn4%-+>w7)@!u#r%`G@s*d~U}hAo-k+XHTF1kFt_%9c#H&rBx}V z2pl@5?I4qTu!*u6T|-K{$#p#)7=u3uZ6f@#F+bGxGlmC8uu~dQoP&go4R|7IcS@y= zu2sarB3;gybWqxGO^W77n~cug(8A@Weq1Ew-G=@y&a~M!V1=6VXLm|h6%B?Co9hr9 zJ;nHOpM|n72o&lih9XX;_zeM09feR>6*YyQpeB_%ZLRVqk=0R4Kl2~{P3zfBKl*&> z?yRzsff%(U*8-VHo*Fh>0Gp^(LtB-i%lO|RFal2ij?|S_2^Fuj4rw}tq{xTltFcs8 zR(Kx1WI-jZg=WQQB4?cd-Xgp!$4HASmYAV>4I`t~my!u)RMk7h73jEH ztGjH>PPeCJ`&xTs(J=WtqDOStHQLfo(GR?{vkuNBBjx0NK(lNVvVfd{KXb)ETfoPN zpz0w=ty&NY-PtHBU=1$~japuYcWAUFuHp%qHtG!9pQtmGOiwF*x>T)pTkf68bfP;x zw6x#6(evleay-B7kACA-AGibqK0?bo2-^~RDY>eoklQn;QmfP+V4Et={!#%`{)DM=e*-$V)=B5QR$f;b0pSlVC1Y@-V?PpLwYJKafi-1GLorKg&lCuX_0O`2-_m| zp;DHz6W6i&ywB~$Tl@9C`|s-U_}q?1K=L^rKmYST|66|a$A0A5tCz3(I7(`*sy@=X zw>o|9kYbOTpK;^T*a4V~P1aHKMo;!Q`L3>j?@F~6!gzvML86L|(qTG^cFKp64p3uE zx}dl5J5pzdsy#ImIE@-FS)+2FEZMX9#X^*-A|+kt^hB^}xviW{*e!G-DR#$J`*A$y5ktef-HsU!GnHhM; zd2%=i3TmMW0)4cqooa^1xjE05PC8C@NLW_069OfeAGJQPPX!=0Ecr z_o}s!*(lm*XB5xqpRjIJGd_Sble0(c3{X==i;>R&P7`2=Cp?TpsvLAzlr{H2!&)em zQ!El^+DZ9%+(&Z)nSZ9o-JM zOe3o!E#>v=JM~fe>hJvE_~_douH(rQpz7coZL1hQgZmgx8sa4yZQuuInGb5$go`dy@TuRCOzEnEtUMxuq)JTx062DbmX~EZ< zIVN$cDE%auK}jWT$shty7eLOgWdw^>7Tp)M(4aJ)|NJN17fCaIM0)Ru@)y4QT8VPg zwADs3PGPuzQuDtU20?~V`dGqe;;L7~XrpWhe{8;Z{Q?a|UT%Oqj!4w5Iiak;qWp zkz7kPwup9%8`hHJGDK^vhp)B^Pu1C=y=<`HT%bj?!@rab0YcFr@3b%7&o zVfH8~NqGb-tbr+tUCE3Q(TJ`ylsy&IA@JOW=?#C3I($l_QjfddFqYy49Ca7qiVR2l z++Gzuee3NPoaE#2c^r>`^WXAg-}nQ$_i=xoOp~cqW@ArA{jW@BGIjQz zMDT0`QDF);?Sx>U zq$rBmVsn*BU0Zg>3bMyUi-yu@emT+2Gaq$X$L&e|AAas{ww~Vfm1j4dd#O}9Dzp$S zNv0k|Rw+r=A}Y&^Z1W_oC%ALzvQ2kI1K!w#TNUx)P)tlbleC5elb60LLcdj}~h^6GTM$$ZJ3BR9)Bgl&i!T1Y;nWw6f6A zATXjp33^-!=B0oeR;y#2R*`Y~>Jrh0sAEmc|4O16Jc~6qU23*WC*1HP8~J9b6?I;n zQsvYi{5{{0zWY6W1V)Z@P2AS>q`(ZM3o3AsVAD`FpaU3{mV8{gO~wy&kZvZO+NLE} zTSM#c4p7b?dz#6kqmtbJ+6@YjwH?HzM7R;FVjq#!w zI;`gR0F&2*a$cRJeEMqXwn50VXVBx^5gvlM%`-Qwj;qxJN))=HBqo5@Rm&zvuzCBG zoAu;&^Xs$g`Li$T5Bzig=Wl%az#os#@^}O!pVRThk6-`2FW!15AHVvzZ!vL1C%yj| zI#|1VcVIZFmp|bARcykj+&z`^)_Do~%xI>k&5LPbZF6Y5*y zg=U+VhAytq{-;{bF3Ju=11v~@dGp)YSMr4k8&RcI%?7@e=p^G*@9Zs=<=tjjAYmmE zEWpSHP|UDVQen^`H(46ZjpO; zr4`e$sM+9yQWlP-8iO@M*Vm;0@?6Yi!v&yp_V|9#Xw}`6Z{+AeCb@hmlPDYtGJvbS zkMxbF%3uAs<1IgV`b78P{!3C?T|o~7d!T6~u_79CAAs5X<$|RsRypUN5i#<3QfJTK zpOf4UVx^kIc*%jOAZ&@bxv)U8ufoB^CIiyF!J>Ks^9XSemArtiqED82$iDO_JQJw3d6Nb}uX){yiXk7!$e?Ka zeR_9lv$sT&%DizVf9hB{QI)b{N@1k{oaeO^mlwH$UB9qv*;JC%Qtf>`6Rs>$_DW$( z{V7w@AVCSi4s;HsT`9VM`6^G}dsq3ef0}c8JU;8=5s-XN$149@PoF>a{h8K{^rXr* zC5Tj_U8=)nJnM` zPRRB`O2bwtDk|fRp-4*=kKh*b#qpq}rqY5JZ(ji`D%W&6SYpye%Cc&CK>>(P(K6i+ zvdI?ZWiPkHq*B^_l146>xX7PvO`<8>Q|W8zI64?h4vJF`BxC}a3u7~D`T6r({iVPD z8~S7~{p5R3^wAkDi}qwJ5;{|0Dm?hTgvX1E639?AdoEROedI3E`%g-*?n|G1a=)J}1*Ra-S0e^(8lM9BWe0r^_(WlyU0L?5r_Jm;wYO>~ zJ=0sV8q3&{?SsLNd}1n#)duaM+M*_zOR_*K)UN}J!bEeTH2UPyd6X3&UOntX6ec*EHHbeAwJ%vJMoT-HUTOA{1S3C@ z1HhtG(QhTeFn}I|p{iA-c&%%^4J^x?QgMB}&^NpG^d%vvXKg3x1!gFjik_noUP1ZS}qHa{J&e%?_T?|1cjsBjLGWE>s>^cxAYMfgK61>~>={FM<5ox>QwlMFJdOXfv?jqA zyrNUoYssmK4H}_`lucIKSJG1QfyzEU5X2$^7&$9hzDFFGPS#MNeVKMi%w3tyHih<&DxZN~pI}R(r7EFKS*%nB!NK4pmUen(e#Xn?YLy9566GTz5rHPQ)@*FOA)zcZ zl}^w5cMa?h}=W4U)uCi9!F2A)TJze>0-`}g|8G#(>+{ug^s)3igdvppVro9gH zzgcf_x7N7K=L^pRrQa(^Y%Ob_@j?S*QiFiZp$Z}ryypBEJZCs?*)8?pifPZ_ocY+gi?iR zr%hdHU?z%Qneb59@E2j*$Gk`-Iuj5QvLmqr&&D-c1S6kRNy-+y1ue7;X15QlEoRfE zaNsJ9p$J_sI>w{O~STL1Q6{-}QH%TKiLn|6*^YHCs?t2W*X-chh=QCbbaEO{;5 z7A8$>m--YIlNE(KX;RiH(S_dFI;@)N3TnqmcRg&t8d-7Ibo~J5BFn~`<|_5UB8@23 zZJrP@J;pLC=|OdkT^?uDLVZ{jf<{M5mEXE8|Hr@lM(ehGZo&pns$_AVnJBel8aXUw zqbcbCX02$19Ehjf>V1it(O2+*q4rxabnYg;wza$%YQL6vHY{G&Dd;zKh=h8gtk?xF zL#>QbcAk|@T)b|(TUd(9Fa>ecdobOej#Km%DqLfAJgK^W{kp8RfAa76y7n)A-*sqj zw+*X^!lvDq2UtXYk_DZ5LVI2QDMe1t9>BFpt+JUNDc)>@XGe{Jii0wy@nMT<86MIu zElU7oHFF2dxQXCjRF)!bii450cB@u7-i(+?1s<%k>UvQ@5V^-#NryGnILXGd2Kls` zkGM9BL6KxOy1IRMR;ueP2D^toU)FRGp$Wzpu(yHMn>{NjuGq+8qJ1ve+wZ)1@6+A- z@%Su{M?ms99Jky07tikObb;J2wQ3pxh8RR9X!{94a(7k}xJz*0P~;TOt!S<3N{mKX z9w7+#L zo@gtlB{XTX)e&ZxoHpt9C2+7(R~Lm4>2}=f(;#|L9w0aRSi0AoH|)z5&gOrksiL$b zH5qzIN@}fR=|B35-_iX(`p4gSqBqxIm|HtlDJPvO9kNa-8i1&%yoy2=4a$y<_%gi! zXSC4{E|fG{fayliOk>_s%Fec=1Y;=@L{#ZxY`TC%rQMqjE_iEp z{8(CE)4pVBL7rJ#5e}wc2kxaUz4LVWo4;`%^{J<~s@gz}^yUZP+v$XuYrZ;}Y9>(k zw3u|OtH-R4G@Ck}arC=vKok;ro_Q(Ps9oWCDo^Q4g$bZLQ->5&6A54#y+eB746C+6 zw{=?+@+gJ?541996NERksB=~T#pUJ7nc))18yYd` zcI4GYn7gbS{6ngggKeTB=4uTHjU}(~wM}WCk?TOvD#dGYiL7}Tl_4)p>_kVd#e5sHfBDI^cNIly_CuzB}vrJMSKU=#TyE z@$h4h$7gmt0+P@8`1zmz`7eI`t6zKn&E4z9C;o!ykpHyOS~;nkGYyp=dKfJ}QRM+# zs49e2bX$`>w8jw2XgXSG*p@A$TZnKqAMHg`dzk%&3@P!N3|(b%aKO(s6_z;|v<2yy z$)(vz(yp6|R8p?0DR_$we5(gqv6(LkJ0?5^`o!;u%$%)eg7H?O8pAEq=V&o&Y#<&J zTG=e^5X z0-RtWLj<3z7Mud&Blx2@7bfN@tt;>nSeRchH+Mnxn@%9XD}Ww{Y2dbJPb)a!Wuyb+Tt=Hn zl<7R7Tx#bc3Y=K>79$OovY2AOjOS+}E%(%KEY(_ybsY9q0}{D`az*PX_bEy3Km7On zcI0B8TM0A8S!Y-F7GDK zaXLclaS?dtg;Lp$m%0{3$sNf%uu}7cVin%+iUBBTn?#3}=D4*+OA|#tL@6(VJ;5{v zoLfC(f~}~%I;oRoevQ0>x+!Ves{y$)0Dv*(s)5iv(@sq(QB} z_hvtR_dUJ7`x}qK*3aR11SFsFv2N>Me)9Bo|K`=3(fU&tsqR!^OE4O6x(W8YNb|5r z>B%i3MZEb){)XR(2T5Cdnyv&h9jAu$W^xoxJtdGr#`ijsEm6zwu9h?TKE!36pfTwI;g^ zI8eB4@5pj>tGu}8PV6k27b2O z%YVo3_`2ov$FEMUby(RhB`YOoSuEKk$yTX@V+isK*8nUMnQgE`HigPATKng`g#K5c ziO4dVRi3_r$Sc)5t~E5mLc3+FHZ@54>Liduq`iZhcit_NM+{{*+P7hS+BzlC!BvI4 zi{C?IzF9COEmdi)0rUl(IxJrCQhPb>;vMPk6vIR18F_TUIQf#{)5SEv4A4J>U?~b! zHHjy_a)0lqFWym~_kWas`*?ho$0H#5jE^TzU;JSmw8Nd6|8>B<-m$Q-9WUT};h7OOv`UYd3*$i+!Ek4=_-*Brl(w*t8Wl zjXu!#69GMriXH7_HX?b+dta#H5Fn&TM`hjC6L(F5IC~ljeY`E$W?)BvGZr*~RYgHs z&36}npHWTH{{l4t$KY0V+--HXR#PLpC*0^vl>4oxPbxq2Xa95Mo#*=MyEolYF;Z?+ zS(0Q0fgvyopCTMb1`LL8!z4L_N z@X`10vX7O!Jt_R44_|fsOn9`Z`)BF0e_Jwns>MC&q!}hj0b@Fbaxr8EfK`e|}cyt{ldi==p_-8)h%bby(O+yO{cxf`Cb zWbJV~HgGCh^N#2eJsHHXxSRBtfzDhVnvbJh2<%P$SmF($%c!kZw5cCP@E?+FEj!)G zlKhZ>0ET0;-vn)KS2;x~EoPxG^D36gqg=wueW986MyK=AZw`uYKjq@4k8Sa+>G| zRtV-`_z7O?%j05v6!@|0<%T{{rsb}2GJ0qUO)0(OF6}^Za|TeT%4}AM&E@+JVt!98 zI*8EP%67UN)|XQt;K#9x9j@93?!pE_Os zr~bsZ`|DqQu3JlYc4~l@3`NtLrprF04$7Bq>fwsU#}k7rDg{$a7YvH@&?AB)?>zKr zo(fKBQTOOijX|hEES*lT`HeBnv=SO)SY0Rm5HJyrD96~j5?s^eGI%tu&MMTWPT>_1 zz^)Fdy_?2itE7IuvY*|ozxW$>etJ7-^{NJx(nczUCYKI@9;?uXT1abqKvN7kGo3ZF z93;v){C%L}gSkj-=Eh_%KtwUb$R|mCV(o5fl@aXQkVM@z;GXHna3_FyYtGfs{5t7m zzuw6Q)(OBr@}P0ZSKuU0EB8rtyL|ZW&8uE_XTJRPFY1%;e5|K+bYZe)MOxG?g|6B2 z$Y!2x!9!YnZ#Jeh7jXCD-Egcr?Am?Zx%NgUA0?XrtxB|d$c9CamQ?C(9}UI;rfs}% zbk!pzo)%6z#VxW#qaE)Y>?XyinE_$ian%_8aG7-MS3b4yO_Hh^2#B3?Yb)vJbUY_T>at~JM2~6_RZt}NIx0Yy(-LNJ{ zjeheeWAvTsGkNybTm7H^t?%n^eJ}po-g%l=chOQ+ma+3^N(#z4r?c)`Wa6E}21)=A zfh5xdlNp;HQALw@Zl*5owL?~osMv>88?IhTR907~EA0WA#p8xRYvG|XgczJyBy2Ot z+BGS^`TsTDl$;DTnaJ`g%P4$cG+Uy@Ld%Jp|J`nD*RncY%<{=(-GJ3p zMO#$jSh7UP!7s589R{fkLDa0t?DX=y6d5t(A!|E*CN*WdT))GBlZQK8qc>1OKly>X zDB7gb_NIqs^pb$iMFD`+de+%A;#fG+HvbIdAzP1yV``x-x>tAk?ANdES3P;^zvrjF zuKlYYDz=-Mi0Y`fO@*!zQVl)Q%IQjpS5fLsvrR3Vnbc$6CXd0|q8%5$(85Ack+raf zZ@IiH)m7Tf60EkgChhT3r-U!Ag3MLLQ@*l9yKJg!=_%LEWiZK_pcuh+k z#eUA2n+h7qy=l6s&UZ5#*t|x zvf8p@&vbTn(88yrY%h~I50I;DX{KCsoU=EXeJ4+!+`Q^({jq=lZ)LsnT<<=&@0_e9 z1=~rwMMntfW{5F!M}Qa>spQOKb_q>x_bC5}(CnlG6}+R?0dt{A;Ua|0Dp;?aLBZmg z6)Q=&xs?=Vq-21m$zw0e3HEoMSa{B|)idx85UU8c8>OpL{CRlOfAMfA6N)7;hA z*(DltGm$Niu0*aH6$N-ay0Yuey(Q_)XtJbfLzN|O`f!-6TU7wrOPQq|W95^kqyTbL zML5h-P@?szT<87$j-r3)_y1`0;VYdbt9Hd56NKZ&Q)fbDvT98uxrwD#kmoZPaFCL!Lh3p!q9M9t2qiJIgYe1i% zRWABj6xY0@gRF2X60BjJukZEbi|>~|zWZHV@Z<4W9gl$IGdlj%pZezC|BbJI?dj{6 zcbP)yDCrUJ!42ekd2}|DaLKa|!F0@rc_C=K>g$%emfSOgBZtB?HA&LGS_-@8_X+9C zSL#G6yU)&Mha);U%)2-{n>vf`H&b?ZAu~z(p~J&jb*9s5N=6g?`Wjjnb}bU)lk1;7 zv(+jcm~$;Dy%EjAHD5H!1Pw~sP~_vt;JH7x+%0FzrAh@|jjeR4cSyBe)k;>SmRFRe z*B!n6_S4+oz0}YAg%9&nUw`K8R<+BU4hK+2DSIR5StgT=l(yACys%43qxe@H?#o%c zTW#7;2T}q21}KCPAp}NLA>!^Y(e^s6&>LO&NbfWb4v6gZvbB(@1shJnij{}w(k zk#OT<4vC?aBmp*UMXn{$C)DXI&MaR$j{2*gv=aBz16w}tJ@ck7;KcglrcHE8hUuV#VlBl~fJ<75)Juw7* z9^<%j(-g_gh-FQa3d^qKcu_X=Ja|dX*(T*LJ?;Km_ocfxUANnMr6}S&WB8jK5hAcl^Y*XUZ$eSnbn2+`YB2X-O1L{a{BJv`qEdvs3Yyy zAHC6W+}s3JX_j@5E;_nKJ#(*T*=jY^+u%pg;&|i9ZiYRA+NZWOXhzCWs-aTnvxkuw zsadXnSLG=yPg54aWTDwHJfW~r9*Hl-9w^xy1F%K;?|MJfkb?7=ElH+0uTPu!IO$wecaAzLV=6XgzB|_*O7)8C2tlIM zp`gXd)0!JwUI4rtvgNv0^o1ACq`uQX{qOx}dH&vWy}j&nU*UbH)ot^E-ZMRPbDPqM zH~TW#cHC~J;WgR!zMy4+oW=!}m{E~$cBEQ&Q` z(|W4?`ju-v(e3SL`i)=zq>tl}n_^TiAVvj&ce&IJM%bN)&27LmOIZ9QlOLjpysJYY5=3>4Bw)3(K!SguRH$5f_K=8KN0=F1T71nO zLm3qoXMiiOfb-@qr*f{h-}+I0`tkUzjz>W913WU4i0=FU#@lZ_TX(Nt-XFJHvY;ff8_hjkh zdYU;T7*AdOA@IG1SvDy=2@5$cr#t@(cmbdYFD)_?YE@jrrnf;_Xc>HMR{Rbd@lMK? z7E(*l1PVY~5_4KK_d*a&;VK+uw_G#zbgCA`XYha+WJ+hu-g)-?@JFA#>_7dBANr?% zd^$p$ zz7Uf-_N}C&qW|o>Z|bHcme)v90zl=-5W5{RnfBPDd8(H&@Ldc(}jL`AgU@*smtr4!ZFJH~yRv#{3qa`uyw&rFkisLF|sIL}{5 zfF-5sNNL;)g(ipfcJz(cqv|4<3>P#7&>W&GZh_lmAF&P|@inst$XMy3&6X@`p6e3G zYt8GpFV--@lpx=akWhsHZPgN<%BPFQi}$!NV$e$+mZvRSC#20Dx5ih%UXj`ZM$4P z#ne80;w%}zyKBjYuU8*H9Cb@4=Oo0ap-}czKz*tofGZHZy+sR* zi%u+SkgOxA7JHZ1rS4)k8Kn)-F4hY8bvCv^nk6*6yp8QW3KsS*^lq;1Qi|FlXDZdw zs*bE}jdh!XXnf?sbQ29D(pP&D9M5QereYnma*EP*h%Wln)BTD3{EMsZ?|%mm`BU`t zc>LgwM?mreK7RIRfA;w5yYGMTuJ512*&r`i1GlX~$O*OD80T1?-Jt9)-jon9)At zqY$0K4eJUxd~WYnpGlvcv!i#OJ&(@r|J{G^OZxIxpXtN1r_RLpfE)2a^|tO4$!Q!} zi4mFXZ1!fUJ14`%n+}9={p)c#~Y;b@rrt+{9rq z2>cf{VOnIjgy30mVZ|49c2!}5)ss%D#iAoSzH;XtJj|fBq^s3k{pA-+f90cl>D)eO zNn(BPPVWxp?Wk3nLLO+0Whm2{Ok#^_NY|guGr;#n1jfYPGcrerCDUoq=iSQ8Mw!@{ zleZ(CH4g`X`(U=7t4Plbz)m|7pB?6(A z)K#687G2FC$@S^|NR%9)N(c|?L-u5?)+G|mJPfu?wZ(lGhbPE3|c2aIlj?1%S(Ck!xd zHSlf>a0xE18GKNonH~H$1Y_(C>c=|R8XdBtO&9Scv=ogT0CVxO1vi_m)>hLrzA0G{ zn@!_~V8%KQ!|i5=9UP2_o200|@s%%FvcC7xE8lKbRCK+ymGUl674DdDeFliv_IqOmedUX zEW<2osiUk8g-NPe2B?SkGY&%xdZgr*>+tG*t`{$M?)QIBlJw91vlj+?Jbr-3BOv(! zAMZYU{!gjo``xRG)=`Ph7V?%TF0Zvr*s*dcF)gKuDlU~MnNy1KR3S_;*n+(j1$u3Y z_bD$gjUH0Qkrjg?A&q>HV#wXSx|9|*RuSTPgQJTbEp1#=)J$w?@?Lq1;<@ZzG%ZL@ zc5K=~QH&7Un)y8!Ppk-Q^ou&Nrvx$GNNH4~COVS-xbelD-(M=LTez4FYq9a7m_Uy@ zVh8}NPOQ2u|7-u@UspYSrnhc~g_sTsqLr!wYvEdJiCFJWjW4Uza;*}D`)Dy&sEC_u zoW#xZZmZfcMk9)sd#`DY)@W1{$xEB|Y@A*xD-_=j&`h!In=Y*ur9MjpbA(9I__BG8 z)~3>90im^A!ZMS6+ZP-muqccXIt+-U;f@*^78(y7f-G1?s{O`3N^AV zc`Wt;&M+8rH`@xd`X0B`jY%HCR5R*@i|b2LD=BBVN~>Hx931aV>891GrGW~d1Av#b zj3~zz9%ts@eBgmtY?OCo+N3S1R=Y6x^sEMyI-mh>dYT-ZU5}K;P5He<|iqFkEI`I2-eo6c(MM7l{g`*k*JALMBaS zg49f~fCch%)w~ZCBZIyev-GS3>EZc;hktth>psE)m! zJ^OJz9-rCq2uOZ_$DjIBzwp5~zV^Y}_iyf<>=mgxy)!M5ifCU8!_&mLdOBG%pai9% zl~V6+S}74ElG2X6o(M~9tSK=B(cO4WD%j8uue-(G5T!fDr;QgrxuS%(jg8wc!2Ny@2Xq%Q&>fI6CqU+Q$9n%3T2vN%ad{o`&X z5q6YHH$fu7XQVGHX%`eR+>rtRLr~f3bnD&cPnB-{>wo6g^T9Ws4GYD-c7XKUU^8hx zBi-Gyfr(d`w5lm{?WiwN?#TdTo&z^kXF4gH76e3(YZR^q>}V`*nP#fcVhX66vzW#d z%U$+Fv+%@tcG&+943vQzDq67;T4pY>t5^M|4IxVDa1^y&_EGKXPPG-cs_7F_TraA0 zU(UC`f3F)%*WwJCXx*%j2LZP(91wx7{HeCI=uEN?TF$v5^-1|m73~^iSP`M+>c-+z zJ$zP{T{;NQ%|mTbih(SQB#g<&pN#L49>8H#Dwlgx6i_;+&d^pWu0&BZl|(9Y_?x7a zbh%pI(#`HyFJHRj{*fPf+aG`LmGyK{t#ypYTXVm7wZxl5(_9ZKr1pT2d4+Z*Am^UW zF0MgijMvLjtRn`+OQ6%00B`83i!em%c_+O93b3C-73$F$&HEs`QmvV|B^0%=wn-Sz z6ua?D<^|l!=Jk|1wL(H9p&pn zWxGZ4*By5$6|Fur1NI&^6cx4q-&{lYl-Om?Diq!))!@7}1jBU3q8~9EV|>$DOUK2X z&*9MF99L;k@$O)6&Ihi^g;(t+wRhxIvy)xHyhp_lE<9*w?CH!kMYHNiPv1H6xBljL z_3aN&{r2~s_Icv4saSiGakbQip`4Qkrz%oK1i@~r$M`9}iZQLw`_Nk|b^sJ8c*T3I!wt7tZ>?H)znG%xeH@X_!sm+0wRR$$9 zAn@E<3`yKXkxJl(tjZ{;yB<)*#o%=_r^uppyb(ke)oMX8bAlxSSg)r}nY?Qg)9&tN?+$bYBH&xMPWk(eqy7|0&)z7~8!TQy=pZ(UkC6C7s z_;>^)KfvR?_rCbwO7FY9w~jhGQk8R1Cn3_inbR60#)F+;;=DZ+Xf(O)!lQ6gz99FR zz>|{32E22SF+xeJj#bBEzb8n62?#y}a*xe5=K=Ly0SQp}wY-?37X)iV#Vo)_uE@FB zx-H;LQM*7 z%HpKtO1#D-Dy0gd9q715cMXeQcLXx4P2(5rs;c z+7(ab0qzc91T6`AKC+Tk1fjmH$z{ZvTa1w=FcEDe3EiZ&PYCKAlyumwqPaO8oq zLN(qQR#l)XM3eD=LeDo$d153baCIzw-Vdl5UdSZl+5uWlKJ8I13}m_y(b2ew3!5rpsT#9j7uN7Z6?KoYCcp+suIzKHS(+7QjU zdoZRWEC8j`V`KvMpa`R=YAq_Znj%+qchT~s7JG?73X*FWLb+Arm4-pxbrVzhl*$Eb zZW#uI7qDTdU}Cw+1}$-Ik#%)K&2@P3US5C->pv-D(W913Lbb|KvaYuYLXNUp?;b?@lMnRkY{dJIBI&QnGd)967E55Ac(P zgS9(M*Yn04OBwNF+;N-te>@ndA)CnzlukO@Tk0(lUigl~BYhm2wrSLmB|X((370>0 zaENrWT&hUBc=;t8@T0a;2fs5x2H!7|v1Cl!+-bw`w2{;}C%uS)W@Rr~1dt&1Ty1(; z*=-ct&Y9k`1#Y57$nuf;lCoX=gL2^rDd$e!esR;jJN0jV^VjrSzy87{47?zpE&46X z(_S;*{V?bZ`)jvG+hSEzW;{EUgtQtK!Wf8)k?EXY?F^w*2Y_Vj&&SA^Zd!P_431)FK$ns zta#hfp~F5&5FbXT+e_(WBh@G9^(a7yIFxsL(Kfk5&kggq~!SYg9iF2I(g|k?G=?W)G1_p8I$vFdYUZ;k|TH> z%C@A&Y6=juNu;AapXHD)C2W$dAW=|cFiJz#dc!yZf_Yii?a3ETL2 z{(yk0Y1N_cGcL3!6NR!C=*7hh;WEjztL&q6tmTExm2ByVC~X{Z(FFy?LWI&`sf6L& zD!D4DX?pT8QNK$rd&d2-rx)jYq_md%$>H3V`gW^S-TFt~^7%Ku_v%gcexr4$vjb~j z?VV|_LJ`qHmywdZdo)$0YSW}0YfZN8gcG#2CU7Y*cb2rkg!1y$)GF;ISLyK0Dl@~# z(XLBBg0aR@A@%e)=nkOhG4`SgLXoSlmjO7bsx_+{>wEJ5VH`R*>Gkj~`=P5<$F1c1 zH~ZOJH|cm$zxJIEv(!27=UX;HVa0_k6$KV0FEmv<-oZd7+MVv~V&V?)pPR(J((2wQ z<iD@E@m~+?%vC&~8L~g4t{6DB6&nB6`<3i+wgFcFuDLk~iexq}*Kpbjh-%d2%C!g{b1X-g$8Dr!_a+asU=WAI&?hDMJZ5WER{kN->ga-9Xp03GM5v*YrxFc8er$Osqk zs<%Y@a0%|KWCvwny1Q*>?<9iRn)^q>OtV&c({1HhETWjNT}g?t0;i|2xaD3tOO4>x z1c6|iUX5#*fLOrlbvwTDB!BV#&Hc;g&!2mDlHN%tRpnmO1L6Hp;?G=;Ou4QP;@)_$ zOT$)(_hObD!4HvfQFk(3TP?}iNzUvr2SvNPyg=(6h7W4vO9Aqo^qaNR!n4O6EH>H- z)exnnq|-atw9IdG7WX+ciiP-xSbcPrME;hSb9cWh$J$@~>RWmF-IuBxH^k;d8)};oLl%~mgewSx7_z0OPCb>gxs?H=$8EA5Z zjDU`Jr?lN2bvmkKXg7L|C=ce^Qqh%r)<#RIn(yB_l4MLdQ?Y#&doCIGb(- ztB8qxPS&cri~7Y|Z?9LcUgl^2`iK2HfAo1?-Ipr6dQX`QTp%T>ZdxM67!(~PuTs>z zVHd9UWApr^JqcuYZ_WwL&eWisqOzqG?KFU;q-3|GIfqcvbB*6>lz<(m-~@c5^g0%{ znCW;~+T^39#h{To2qh?bM?E1Gv*dYvrBph_#5t|DRfiL`D=I6v#8%vDxqLTLgfpez z_B8*~*Z22-{Yee7nl&i3M*K2^bFR3@`PhI(cPBOLTrfF=eO86dJ@Cb@=o+9$?}*b; z9ej_je|Bw5F<5>&q^jRke!1|W24WIIqXw|!py)V2!V5sYe=&Bl*4NrjFn3l zL?CyfrI&ZFCEwN`{Cz*_*WdYA>sVTu0fS8mL>AY+?MQlz8~p(&!j?Rq1vR+7eQ zUP(%QNWBCpm5$K_UA?uIJPxLZ?Kn2#U3WquX&S-9kM9%Il`2IA4OV5Xn}`3M#=c=x zrkuhSVkRilh7S-j8hrnSg^}egGrWFp#idFH@7kJ zWg9S_ z-*!KF<{x?cY2ELwwH993CCN%0r?5=gP9IEA#)C4gV#e9Tvg+oH-CJ4i>SblID_#-J zC0L~?`Na74syD2>S53<(BlLFZVHPfiG~-;xjiSG2v?NUT08AY~*j_vFNuj8r%?E0U zS$GW?F^ZI}JU;o{I;*88O`{U~!}jVFlBD;RhB`Ib&gDR|%cKlB900_jWSiyLF=7EVt=N3pK1J&+VK3A2CLS&c86x|Kp|8f&L5 ze%+?;c3!A>Y+NFZvGC*tI2F&k8hUuO1|xTJ#<~@ru2I&O-C;rnsgnbHD_9F|WT>MB zuxvLiygKOI;nI3uf5RR6kaVUQKR(=)_x!MtQ%{X*_LWl@A0g0U51xW%;>gE!&4!ph z;(d3gXYYO?TX&C>e?Noc5s>^Be0=L$-+KRpuYK_T%TGShT8!vg zLxw8pPL<9*4Wr%3V2>upjudV8m|7Q!5@klqQklB_ACMEDZBG zAQ_sMcs95vcoJ-*`lsTntNHMvXR)vx%wZI2o9ir{GPd0u$R(G8fuf`tipxMh{1%wC zDjjq35$<5sI+?{cfs9k77R`Tms1pH#q)IFBxH-3UJiA$z|M-9SZGYiQZ~MsvF~VMl zriBr)hQQ-Zt~(}gQCp4rWx-Uy_Hx&Vm&(q8;6|P0%kq6wV8eWC$EBu~!*eg}`Da4! zGVBv|9mLL%O_7C-gEs0Ea$_b9d)Vw%2OW`sGGc3(FSulPT1z!HQAI7^%=_t$H$_QK zrCrhP?AnK0TUF7Ub<}ab`mQ8>^6LD5IHzv6MZXfk#@1M{Pl-iw%DUjT;QlSiIHL9} ztfE}9DCWpVt9z$=x`db%r`_Fq5&*LDg?YvZQ0=NvhG03lC|5j`BR7tMB3w~nIO*A% z?u_9&Mlp27N-AKKX)M)(4C3lE2EoxbE$}Yg-JiDXKlpopyL7(vn^$ib=NE5EB%I{K z0_XqS8{ySNSz7n4>Lo8P=n_O@dDv47FlV+=N##;6c`ZpB%a@cYXuqz+VNO4*CrxPf znRpq8T9~b%CM`rVbk;!Hs@r9!$bxG2I$p^kQZrAURkuK}BwvvR8kM1zJQUQpBJtYE zuF=-4izDHuhqx5A;MItUNRdQVrf5jx_F0uEi%#X8F7^GJKAyhQd*A)z51ZHH@dG;^ z0m*;C$Nl~O=iYnwZM}T`Ix5#$G?pb+cY2yWR4Q+y^E9dvsib9kcfFSPLw0$w-RR&6 zTD1T$mDFzX1A+`25FTkH7Q-CCC5Xr}ZGl7zju2)uRJqGVZhN+?aOXa$EfX}z3R4tU z*3wv{N%&7h#@vB&Q+Inzn(YZcHV&Cpu0z(a)z>Z>T~3dS7CoI^WcG3vNu3C4(>DO! z4oRR)mOB^i!}wY}d-2pSzyC&m={tA+T^~Hn-PziMZzyXWV>TuVBi#TX1iB)SZvL$J zEpFlDftI(+>czkfS&JRkR`I`Awim3ElaKibsx#Liu0h}B#8&cIw(jNrPJ*2mgDl0w&mM#%j^47Kk?-Lk4sW_ z|H_&8`Rz%i100wfh&6iJF# zrJ@)}NRdi-RE2~`;v%F-m7G)pCI**Nb~9gbsl@K?;QE# zGuOT?#g^6Gw_Qo)EVcUf-RJDzW3BJ^JI5Sz%rRY4##vu>z#V0^iX<&`eR(Zc)!th- zPoAXL&9BtU>+62K1SB8x^~PIo{H@)+mC#DpR5Bx}ijI1AFgHIFG$*lUuIL0N^4^O~ zMjRSj2uIP5FsGKJ#s?X-2-r>hIwlzN2CY(`nE~PA@DXF{V*ww!)%2;*6k1h-X@u1S z>CXjBAc6&ruF@76EM0Zt@3`Zm#rXt71kaf%|cq@tYj(U$B zCChYbOaV!jy7fS#H(8p21B#N4oYb!WtktQ5_dJ2&2E(0BZRj;o0o;1X4h&3QNCXB^I9 zCS+3gsr~>stWX<}74^27@a)p)rrezkiLtk|rYv}Dub4_SV!|I^noTVA6O4f2217CGp%_p@XL=VRM$ny$Ok3IY+_E>+5*E1SB8h^|{Y|?)$#w zo4@(B_da~qYprUO=`)TdimdLMNv-e)ob-Tp_FIt>dphLIc>s4?wxngeEk-X zEW+fG*$iyO6j7fW zHBXT?M}sXTxoN27D;5(>E})Rqvb#jCi-G|58bX1ul#=2q^g4^`MfM_aT)(MYdLlY2 zD6_={{ba3ZaSN&Lm6V#6$->TaX(wA^F|FQ~e7p9(Yu}vr|H)tX{onFbk{&;Pe1GmU z>*hwC^fm>msI3ttl;k}#NbnGcE`lJ6iH=Dri}S_KISf6fGBLf&}L_4{?I5B) ztqpYaGF%O}-~myjH6*H2s#QRD3E{W40MWp7Es(9E&~Y{8Y?tjtH8SFcWa>a@+!mG7 zxNBLdN|o0A-Tk@VeEaydKlm@doNM!SzFq>7kMTNg)<5NP&bxaMK~aQNFKOE7%3{K7 zD~Qh6tho{?ES_aquAne9S==IY>742(^dlz;25OSZY8e4tF2bboHv>3uvWL$+tcY5> zheaQc5t5i5-|d!|-GR0dpM))yF()A{15>Rs${FCo#5=SfP$`qWrUy|h)gE)Cl0qx8 z>OxhJO0qS=*HUK&?eXRct);wPV3E#7Oq|1_reW$3ySCC}~T6%z**f!;vU23mMfK?Ww%ml0;ALV>jajNTLA*?cGdmcl9@QPrf zzH}u`{a_fWi7c4@vzVB?H-d}I6voQ9?3<3qMbuDLxf+;K#p%DMr9g_-LQ_)h9C0mK zs}3EVu3D~x^>Uuu%3Y3iy!cbkUetF#dH-*}_Q5auMZf6zhabN9Q2T6K+b+?h%euOs zQT5!onh-iym9)_j6&>K%-z1qnbK$8m3<7~h_|aOPpRX!bv!_BZK`Cy4cv(Y0ie3(M zJHGa7TT5UBcr(Csm2h&mbyK!oIMK#wZ?^j&kI)2_>9%1_2v?WKazA@^x;y&yzv?qN zzxZ?%D!b!Njcec%VL6Jg`enIxN$J%Rk`NGttRCG~7=a|q6cImiKP+~u?;6cx)rG?7FNL^B4P7sAoq_8aISu1=1 zh_A>h;l*^xU6Ld+YHUMoId?AN;|War5hRy}Yp>Mr^j@ipfG6D|zIUt3f+N0OlQXUHQc&%uzjNh!=r6FRZl>C_wR_9Usa5qq{5StlZXQ4CH_F;k)?v)E(EuvF;VwEz zM2wSX)0KJUyy^i&oXH4ceI=Pq5S{7%cfFa15@?^=@HdGF~@9yd2@cQ1ETjyukoCith5UejsQl-Y!SK*cwg2oO#6u_FiT$SIve zT%H7ZaZ`-{>xdE9Q9E(fR%f6z|2eEAInT4z$zS;^zty^bk-PS;;^Fk(e0JzWR&i7* zj+0(3^-68lnA$Bd2Wrut&V$(KyObH++r;Toa%ctom8mmjw7V=I>NT?W_U?__3Yezm zpa}`k>|-UXTGglGn*9eG5}`Zo0IGwh8zrr_U2Lu%R%XgNuqJ?0QH|L+wZEOv;HPY`ptTIeZ8)i zfaGJke)xxf_}72p8$NmS?1N`I)`K~+G(~`NgVHtnM~^5#h{Ps+2C>wtT8B$0GCfDx zVGUnRCanbpY^_>L47a+nu%T7>`@Hq|hY~f?47G5nYp3L503Ti&Cxsu<5=-Gk7z!J1 zBIeA9TCJ;egJ{JGn4cSlQw2vd>Qa>Y|4Z*Hq_ z3!Mm#uvUCtElG<`mM!%z)3?k=!FOTVJu;t)BjyBV_~+h2rxK*4F@-+tY-MB*oSbCp z@>Pc5jyGvz4-i(B*WBc^Xg_Xl?^;ZL1$R&)NKj$OIKqXHIQFNI)=6Pxq3znO9|FN(QFj2-e6vgSjKEPRa6`DQ?$o z9L^rqR>>{}Q#p6j8PA(UhmlAO*`*A5dEErLy!L1d6i20u&p&?=V5Ef!4J6ETWfl9B zUVDMg-Ku4)=swf2)}ys*`_zB_mwm>1@nJu^+iMllR2$vQY*ZX!aUoVay)tdxi(;mG zMAA95vuC74$v44&hV6_{M(*hF>8O@7Q*-ec(3q7};*_*zg2aHb=J`#(4QmpL3VN2l zf7Gax7eU`jc$-Md&9Dz%PP((Yt%E05z*1h?s&QzAJ%*6&p6>cG53mF60U3yRp1%OI zJDp^ngK#XPxyhV>J)9$0zU=bKk#u~cyZ&QGh>chBd3m=(K@!*D@%b5t8tP8; z4aA9IWCVzLU`=<2-M1v$3wdN^T|0OQE6#3fq4g*sNU*gTA`160A0{FoCroIovIz>y zb!}|jr<=A0dzg`jPe+a`S$(*IWkqc3s4{tLaCif$ap-rLhZAPWQK#rg_Nnx=HG5g^ zTJw$ZZ|k-mJv#Jn{=Prq^G^DXH9jgp%^HUGf$GupuDJ#)O!55-+Avnf6t@(JGc?# zqLOsGj(_d`#l0TiEW?^CkU&*YeTXg!X6tHkN9RJ+!yph4q@)gT3-T6ZP}{JLfEsR6 zU?8g_9YFV*_B0}z4I{{YDOq^2jdQ6=>)>nbYAwDv#f4SqOC_O^I%!NfADAZ+fO%$w zLGBuq*p`CXMMv$M%6ZD)@J(;0j@#quyZ765xZ3#PAh}r!N-@fGz{Hh;Bvh@HRq>j_ zY|T^RW~o*7I5j)OZZ})0Tn=0(ITKW#nvS8tyH)2f8Srtuzv7vxRh~N}k32eArF8lM z7|9T{t@fclH9DL7ECw3_GmBeC@ilRU#+=azb?^8DX$zO#$RXPZd6Q(h_$6O-q?Jtz zzyO<(>rArHU6z`ojU7If(oqYg(pkBA?X}xq_k+Ld_^m(i1Ebb^d41g1OF;55T%Y^g z=U)BBPkrJSop*P;N~`ydvT;k~EQ)0vNeS_yieXL|3~n*LTbqmw&`W7m z43BrEE@W@K3rtEdzpMyh8OI3`G@i5VRJ0l``);{wS~PKSWWKl&rEZY{jdnwnYABD$ z?)j?{jUQb|)r#N7vos9KA}2SdaGKz8X=kV2(@D$>KTau9P5!a0?aoq^+FhPz68?1H zj;54ltuE(mz4G`-qWlxT`;Yt8x1YonZBAmjE5;?3F2sNYo7~uRM3UjjR&Bhn2yC7z zK3y~*11TE{ouBXsl|~o=Z%)OHkm}V&$B@Mwm`K=L7PhMo`eJ2+_>;YCxs zklk8d*VLlH0m<;=8jLXG&B}6ba9}4*1{&i(V=edCi01T*Q?>H`mp=R(f9-ewv4_nt z*IxONci(%e$B!Scy+v%Eo)s$XFs+5mS}t$(Rv?79XKTcX+(VX? zj2xh8@tv?7B_BE0s?bd2!tCW~I-{Edz#IHmfq&?y`igLDCF8`UI?63;Gi*s=dqoY@ zDu(yXW12yXsW{np&!6Sdp?dZ0SI&3eeOgB;eYkRVUw|o_&}zVw*3J~Z!U}F2&?{a! zwQE?qPLpShtGi+Wyk>{&IU@r9HKwns6=fGi#_TL;CyAzS8ecq#0sb_z_opqm_*XAa zX~$#|U8)Wo%+^+lmk{UEbOnVHZlsNiW0#zp<)Sy6F1K+(5y~4j!sKuqqTzs~H`$u5 z_`zI)CN4|9z&Dvi%?m6L-_q{VuKoOlUU~adH+Sbxe9J7+m)FAxt zy}(>Ti#F%a_5C<0IhGdDhR<0>^vj=jBa2Itii244;CYbV1Bp2KeUr7DIXPEYh#dFoRz~IagL&;9BqT7!fq`wL$=FoXX0m;X3J%04)A6aW%?o%Fq zc3e?gT2-+m${K)_>QpZ_<8gq{m%Jl}!&->rTJZ1#CQeQJU^Ze!LRIyMCnvMuc#ve1 zb(g>t9Nnj)1k#}qzpW5a-0V?>^fKBH#v-bG|zhqg!&k?Xdd9Yl$np^EfmEb8#1 zQnXa7rq*He-N~obn0}Xdh9J5DZ(`P-i$)xNn-ZG`=>ZD~9_`jHh5J2Kt_FzGjWZeY zAtx;gRg@7Us)fN!L`hP0_!SUW7mLcl~!j;BcK~X5ed12k=sC04RfJwUbpA|^J0rmqu6_VOw=2Z zagr1~z))iR_iC*!6^S@4Zl-Y#JB{!STrz$&(vlEfhZU;I{qtv$tiS%(e7p7e_o}S) z3e;WWY<{ijJ!mr9ME$Edc*HnK8+SxQt6K{RPdER%$$EuO|Hz7e{Ga5O`>?CMGXme8{Xaa@P zaxJ-S!tixyaw=8OI4I1($pjw32+$xfkmv$GmYr;7;OuA_-C`9-u2-&lf~(Q)PkL#O1{kj=pY}!m8ngk{mT?gpMNYsrE zpE$3ClV0wgE{0GODN091&>NMrceahkXGSyH7P_UV*JLVhK{p>7pjPm#=oD)B+&5JDx+I^=EWUa1K*$LgRt!Yvgk7V?EaMpZG6* z&$oYZw!;6%^=$9oy{2Y|z;y?G4l5?`bD9iVQYpLncX~$%xYS~x*BWqf{k~>~yu7J` z4G?cfs-ikJ9r2obCga0WwzBc5V9-lOAhbju&F~DcSTZD$NZ*HlqrYbc{0zH^KF6%C z40PXvy-hUNnVX}0vksqq<~MxrXQjJm`d~-v!BNDV8%_Cgx>khp14l%$uY1f>fTRY% z(cL=o=*@w|DKb7jzGR(t7Rn>etjto><(+FeNZ3}nnw3?I=^ch~HnkyYg;EVm1B?7b2Nj1pS!Kt?R=uW_2&{venMQJL0>9HH|a!nCSE?=(s z?x7hkhe|d7t1Da8>XFAEtNr-Vui}%vyuKdSOF;59UKRcJw?6S!o__EwaeT%%NggJe zmLw)UO+Vzi^6}AyEg~wp2f-|RXG{2WUvag@4qBRR%0J3z20TplwUMQwYE=CIi+XzW zbtM53$JcatMpGuff;vef*=3Q}y6AKytq9ypZ@BFXOlX;mEm{av1|T)viHcM=asVs* z&FM-k4vQ^>zs}?-w))D}1(1=VT5^446DL<|MfR{Oi{x34UwN!Q`7>YAPkeFfJ3jrI z?#_l_&Q5$FhqTpR1jaczZE7u*B*GjsW%*31s#X<*(8C9q`-$%Ff&g&sC2y6s)G*is z{02Z=Eez=)l7{vk=Y3hpdYEcT50lDrR%%aB7#L9>X;i521qyt+wXIH;W3L+Vaz_P@ zVep^&Sh&|NFOi8R75CZY&p$tJzVA_f)3w_Ebk{34kN%DO=lAGkr$M$lvfG&6l+sWh zrqU-5(z*r`TC~A1i-_l*`MWIjHJ%#trk2hz0j^m$F?Q-uFGQ}IMx>l$r0Th+MCJ75JTP=ZPp(j%3?X?TZUi{0QbnmW zK|4`eeXwNJFrL(7K=O%Z4o|?lQ#>w9S(aJIEPUCu=PYW@nJ#I3&;a5xYgU(wKg1Cq za|qHg-4$o7g?xYBXSfnePI&#Wgf#PtWy-*uPryqg{jFPP)!}t>tpbSBhO5f=^$6ugZt*KGRCa zJz9pwdBfu1Z9%>7GnbMKRzz&B`<;$T>7;yIFldC6xVO*VMrOjl4#N;7^u@qc7vRRD z3=>Iec2rqbo20U-QD;XzUJ~KMMv_XS3u%PvJ+EcA`wXn5>{}P(HTOCx;|MTw*4zN{LqFbf?h$kIrYI6`9iA>gidTF-W=kA$sef!Xii6 zAt{$dk%jUOg^Z|0e}PE~3Hpk}j2YOanMqGfoqB&&nn;?Q)aM=Dr~Tyh$3EYGNB_;g zch)zmDrp1N7@ zqVr=q&e4)|c6Jz2sZ5(_SGa4~(dI;N6Gg?H#_Oi+iYuLD{5Kj8muLfmm+e03!|n#2 zm`9+jWfusqyCb#Sc;M|=S*7l26|?-}#o13@f8=$meCek@&^qjGDaB~bLP*}N#2DX0 zXNZcM6ZvebTFy=#_}G$EFe$rCH7Bw{`7kA`7(p!g@+_f4xu+yF4Z9Vcv84M9KtQV+ z=?u_^o7j82MFQ;AMq`>rteUBcOvV=Ox#We;0MI}$zZ%gmsD(GV^hPbEQ`(e{`6keN z6=%hYr}8wVxllc=NY()EQ*urkZSDH5~m&@;>dkyv%jyWmtsyjW8ax@hd`sSH^-R7A^% z*`j*eUqWe~AS+y}e7^STu zGI4cieK-A@!}UP1hY223ZXC}00b(>kKYT+)u?cM4ES|wEn-anl5d>0{2&3LZ z_H?TB_VW*ZUN9m_zxsRr{6G1pzVLo-Z*M!!$Z{q?TrRSO-^PJD_!0?g#o8D5acCUj z+Duv=-rtOfELcEa5hZk!xWM*E#+x?Pm zqfChlTN$GvQDNm%DdxL)?gyHMsI&W6D3aH@@$+X-WtYF{7k$d_ec?mh-rRsV+Aby< zTH~xCwRUT>Vy!7wN^6COSnj4nYZadlPr^#6ddhRDboJFZWT`%C$&o9)w3KBprJWr% z{NU?uv@KP(4xs!f#%l4Fr6t5`7K4lyi;Kf%sKc^W@?bQ$ik=-~cx)5thv)va8V~0+WR_PF9FHdaQQg@FSk{C`uzE>+uP+>C(Z@RD8P$$PCL|X?2FMQb(Pt8g>-}N z2nF@Uo=h(Id^lEo*r7{@q}n7Pq{ESz(aHCl?hYUbuBqIh zbxq}!$m|u#t}0SwT5hZHu}E6CuRPHo{==Wwm+qBsf9pnfcMV%L_fJYk)OpYgj%07b zeK#MEh-o=Y`wGa@+L2n7LWo#Rq0A!ff@!cDxv{!jy6;5G#})kx`xgS7adO8zqX@=R z{aK6e9-`kv_llTaKfsX;Zx{z#0KW==z@Y^r)gJRWMkvDj-g&4IMm}}&ySp0(i z60gO+DaxMiC}()5Ds}DI_tF|VGfHYnclTXV=|A_~pHzPGUFlfeX7Z0>J8tw=75lJ{ zUYRmp)YX&Ec$6Bnvr@l+xSEP|D(vdArp&-WOrY#BT9R7 zHf&_iQT2$aOzRKEfwTPqOyDR~~N98QQqlDp_ zN~7|%x74OaIT;Y@y9$V=?H1yCtE%^dEs11oeUDW>&ohtTdR=!fp8l7w8};(~c(0d$ zWA(1Ojesxf%NR^;NP zMN4fl#4EKS{4s^4lyKD@#A}J5H1%!|N8Z$8$6X9QbS8;ibh`072=-!VM|uX}noq-d zZ>dr0RZ9wkyShZlW3UUX@`&O_x5;!|aU~ zbaZU(bZ567J-Si()DQlyKkA!rd{wXAmd=sMaZ?kjEgkpfrZWLIIysuFS3&JdV#tgn zHGnuPt}f^;7Ua8zegIrpd-EOnMtqTMSbUWSSWL-I88*(zG345? zZs{){!GI4*9A1k!2=L4%5PC=BDpNSrsA{@Q5yGS*oqK}_gfSQXIk15i0&QB!TRC?S z1kcpkHB*#Zu{!77sjb%E^_Tp4t*7tlX-l;kHw|JR%pgju)BJl5=cGd8DHw$CDdO}g zK(r$7b~#wI7YvUi;RBl)KaEB#*qF^&xllo(V)jI!{N{n%Vdj*pvhkQ- zv8E`^GsAl=LUxU-_8d5zfObor`+Fa^kF}M*{^u<7m)FO1y#yp*<@E>tz#sUpzx}Ci z)QcBSKQ6bQy6*tuVm`@hgRvtVrjjzF7QT zBzKTvknK&bxTK9AibYzaR$7H#a1^q(lylDqW!{P>QvwVPPhq?X3Sysh`k2XVN*WI% zz7vFjtsy=x=_)U->4%W4+VRv2Fk_n&j?ZU6)rQfvuZ|%wo0>Z&jvxqOwc6f+i&VKyw`SQ2T(i$v6(#v%LQ7Nj6pq?`DV%U+D2SHS|6i_!qf#8|!v ze$Q?6Ho0ukz>pDYI+1)()!|IOtZU)iCQwwBk7MokpKZU@FaAYoV$PrCTJ`w1-{0M* z4iuHESK7z~D70A8*&5-a3U;CnjHzOwxUQ*370=w#xZ(A+{3sz{x*tbeLg+OT->T%uRG6G_yMvK}?P{Ly2W(_9(XO(tHX;&|~(dcEhgOX23N~ zA=~*?zvA1iGyB62URXooSdubdLED$yCIP|M0P*=x(oQWZy~h%YEo!h%tZb?h22mg` z(EzES7n?Oh;kT-)=sK!ZYNwOZ3ds@oAfofe0xAaal4;Q&ppdR(s7>~@gx3xGQOvEG z&a#;_Fu4*AB}_)Re2|b%savI1YXSQDqKepHBt7#P&B)ANfvVx0mbFs`d{>hbY8V>s zZB(8tF)Q`@YoGZ!%lzf_FfwN4mYW{_p?6f2#Xl`p&lxJv(I! z7b{6h7Zmr%WN`Z)K)90(xkD~EV5@uJNKgPT+e|XP7-!W~@ENs2M$XJOIc*}XhT7No zf>3E6HX_an!&*RJuAO8dwWZ54v`L868IyEc!wCdX?6Tzr_$sZM_$@*MaJ4ffoN@sl zFaHrohrGM>`1RLsKL02Gl)m#b_y34kjokd7?{fdp^B4DZdwbhOonUHB+1@kf#APYp(i;|kw>x|3o#_N#D%8t!YxWzBy_7UwdO26y)^*3L!Z*KhFhi4Ak zr^d@?g(-_Vdbt1JM`g}o5F4eW@gU-Lhx)YLF>^NV`!0`O`^52A z{WHJ)(U&jtm)FO0y#yp*#g)Y0^r=t2`Qq-rr9RN3TQ_RwDBD_l$lleFRjTZ1Y`ydk zK^7?~wI}p~$TJ#=IO@@Z*F~cALWnm;Xk-%zJ*mxbtP|@dpwIydhT)tRUhb2jWP)Mh zq?m;2DBB}k+XOy_4a>5+7v3X$8P%r518Km2L8epR$v!W-K&@q(K-Z`oP+aH=B$S`T zffLFnnV-SF3?8E^pq#Nx;XbJ)?b2&c4ppMR```Q{dG(uK*Q2uRotp{AiIkE(vus73 zUJ4q_EYvwXm!Mz;DK#;anCRv`YglDY@tzSvf}!#}+l$f>ng5pPEEtiW#j}v5-la1` z`INL>j1Z(13F08MY+jn;hYoJ<@Scs)lp}>&+;poF+eO=HT_375g>{0xwOK(uk%<2%|l?o3GFP_n48@ zam}Q}ESR<3lD2C89bJH7337@S>IWi`wbZ-cv{^^HV$Dubq{aW4q%nKi@BrSsX^}W?4A0uvFa#5=D zv>Ww!sao`Xqi_biU%?uxvx8E(ph)%}tWU*dpTbhtji%|+d)T&@q;$D}tfNbkcC5om z#OAhods=LyN=+$5&aCwI?(0}$*~j*x$TRD6dh%vZ#Ncgj`ge!fYF)tm;e6$>b;4R> zXEF3fk~_0mw@D}xIXtE z{YU@RH(r13c=r5hsn&A2I?0(*b*o~nj$B)Y5rB0dX3$xn1rI9?6oH|Ll7_XHVXzT` zSjkcIg9wLIikztmt)ArOw400oZ%#ab1MlUOC~@q`uBg@Wd!ZY_<%RTI(v?Y37U_-P z5TgueQNAG*?oQCXi$mPDRL4cNq7twrZPCLRwZ^uTylToJTj&_dbY1dMDny*JoeooS z2P|ZOO`kh&y!pC5`0!4D_zT;=@-w&j;FMg4r=~nogGgTRv=F+?*a3IUy+$2_MTu1@ z?;Q{w^EE`JY|FN`ic}r1$w6oYrBaD%5Nrn43`lc(gnv@Ra1zyFo)4dgARsCpK2{+& zDM>Kts#*m_4>(*jlK_C1B^9nBJazc|s_8DCsO7|!ZAu&WmiF=Z@%d99eAs{9Tett@ zETmu1^=rTPdw=@r^Jn*uj++&oO!nqM$BvsDc-oDS--~FAR(9@rKM~|Nz@;)n7&Un)9B}H2(Qd`-n ztSGJwwiy66#Njf2yTFugM@z6fY~L*Q=1}=#tOxD!Geqf4Vf#*>HGg=6=q*{11 zt|?coLGLPUuLotWD&})l9yD+o&720jU4)@wL(doY$L;H{*8P3|HD9*OUtS;6^%9VL z71vSgpNXaO#XT`364l^oqqrm*J>t|JNxTPoL&W+N&zF}uPvPyb}c)f9%ERx2R&a>mI1y!jbI{{R1!JKe4GYdn6!0xYo2j6jhY|uqB9KyxI+bk0 z2&8jcBv=32-~ES^+gp9(t2aK+Ge?qgt2RDTEg|s)0EJ@{-H1155%+rzapu^VPfVIU zX`#3Am80g9R$AR1Psc(vUKthDh-$knDa{Z+NU004@*Yl`n)d)C8nY4vfCF6HRE?4m z1-nn$i1}Fv1T4e0Nx40p3fo#or|(=UFg_y6)=_P@CH!7ucB z_e<|TuhloPJG~$LRvs4J#qcyO#t+bILnm>MWNamt%4-~55g~4MYOPB-J>?9KhQpQJ zaV=8;${5dC>0_`9qV1lpFRRn1E&~j?GrA|P@BpNpZhYfWgl({gLCS!phQ)*Q0~itr zw>He9SB`%1Vr$9%%fIh4(&yiG^FFM<+T~LDtZCaX0E2s+HcXR!ll<6rS6L^6FcAlD z(@4{rRy@US)TCo|*siW~P9WCGY6tT`X(Xd$B7L0~kw`TvHGRXps*+8hXYY_znWsBb zzyZ=U$>C+x!#i<2w0bxtO`UgOV=- zH9Ctn^ycxwLTAk09PRU7x39jXGsmx&q`&Eheh8ZT<@K>#F9FF{c>SK=^Lt+ZnGgy9nM}Bi zw7?~Kjkf*)8nCfeiJiT+Tb=vvoVAEhkn||zJj_IP@Fi$hLHn2Bnxrl)7L`=65NPaEJL)MZz*aEcc9vDO(*hf2|rrxN%26Q6uF_q$Q%EW3NA*TNmOQgiI_b{pwUnivPY>u6_l&f+Bx?Hq&V z(pkc1O6XUeIp;DFH5F{Ng$huPO$|R1l_>xx_mu592W1b6wbdEQoEVNM!8INb6twJe z7n&Htv*r%+>MJFAYuC*#V zPMueqF3%s(8B|gPA|*J%$csY??XF#T<%|SK)5+$c$n5dAv8Cesb*;Jv&=X;BM`rIp zcHj|m*fJHrTB5^DQ>2Ul(H26=RZdaRq_H^mVs%)SXbe-^>H@n~ji*JH+zjxOqdK(q zdA}p)H~y+`i@f_hcWT+)X>TWScSSyA9~7b11nzP7QM|wgow0I1Y{pzgy(o{2z&6p8 zU@bVBt3Gx}s~cyJ@!YSnoTkHtXUdYcuFCLyU67;4sIYE$9*uBqRy1a9;KQMQH_(|1 zvE<#7Wmlnkn^o-*HY><{F9V?27#H&6&lyocg=u+AWF^RwPQfBGx?^A25Q$!QR?*;w z_PraHr<8pkxwDSryCmti{=g5=WAO6&Sgx0V7`DZ`%4d2+$o;}SvD#42tg9uGx ztXxik96DF!WFq|1h50+$E<~PX==cY#Bgk`^9@mRAxMcAX86B*5I?8Hd>Qaphr{zA# z0KJ@rJQ`qR+pERRFBZLc_6bY zrf^_rf0tceM&)W#KH}cUFdax93364ttEGcQHQEO3wv;5@O;d<18zS6T(!1!6hRYwf zUdSG0V{-v}KvW?3mZJ3StB>@-(--R(zqE1_r+%+Xb=<5-^7anHQ!alD zgN81h>IA-Xj5s44IA}8`=5WVg>V)O3RHZ%Y@XPbVsj-cpznxMxnjD3hLR2GdchBq= z3~Vs>SWX$Sb5ofSFqNpz?ZixOG%>c-8+f})t|>88Mli817KhHXsJqH*pQpa_TR$xw zm3Kebx?NTw9^s1^CP(O|)GB3NBZe${3twUz-?L6S)5fD!ERNv=mT^3ki}V3#E=hY- z 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 z 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.}%)`-p21*ovHAI$Ni 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

@2)_j0^ zc-q4%-jo-}tjuZ~&Y|viy-dEY+h|lKQ_IcaR~m~78r=VdyD}5`eK_bQ9B!+%); z**7ks-=#k}`AFXZtOkztJg)tUygJ=_Reyt97(vcV3)aZBU20#%zecr5L`Ov#SX9R} zTDagnvA9tq<&A$(-^VY)9LFs*-O9}x9mr5u4bt!Y^{Z2R0Dz2O;KHGOL{z!={OD-iY3Fmnm7j$#6%rVox?py=uE!rf zL64|Wd)j-01=niSmpehqXYlsSpJUDV^5p8aNj-vFf|@Q(kW{p-yPINlRuTCOT$4Dx z#1=qlu;_NbT_WDZxTeZmk@Q|KV<3Pto)OcMV2(*S5B==7kDrop5tCEw`tOOMb=~)@ z1ByCa)-y8q>t4@pJ1PGed|a~X_hYeTzOo7@F1nJh^uBg_Z57?q($sludH+%dc`BXu z05#uUJ1HCQd}|S0+$gb4!iYh7aFUM}f9e=iqq5zw!I^Ox`8;PbW0F!T8J8Ko%m0Yv zo1_8@i*P7q$clB%#fG$zVQOz6!Q{a9YH=iiN82iYhE&`6tt7UKJOr-uRP@JC1peFY z^y4U_v)CPRjqx8;vFf-o*%o@n{k`=q+l(`B>O-gF{3 zQF1{KJY;KdU1E}Jbr+$WT~@-n^7X0x{O_E$zd!~h4tC{S?VOaAL!QGUY1pdl9Hqsa z3|t6_x!~NDf;Q#*i`~V;ZrwDuV7)PQuLB`_oaN%)y5!cj_2WM~DZ?<4I@GxJ zZCP813u0wq?=-`hO1b!(<{q{w%~kPW$Ng|bbn$h#emfl>m5~igy_K8gqpvnyOcc%9670d@ z%u^e@Da<72pMpF|r}zooW>xm6q;vKU)O?!qNgd$N8AmgZPl?^1c?g5q0;he3vEGCz z@>7?vL=cCG-p|)IGBWxC>7~pH+Sy*NygIl!cHO_tqkiaO^=&vis6P%vrQQ>q;KQik z%c7~4okENkW-$;^Z``ZLIi%dl8)>D(7MiQ?RaV*5oKtAhGbj7Pv|_%#ER|Q$mEDW5 zi~LmcL(-C}NJH@5K6O4kCj>mH0Ed*BfaH~S&)YH6f=7}W7Miq+vU2)$GdjY zek*&oOkp)>upon{*5l{sVLw81+XHzYotw&^KdG+5D*^|C_)h6r1RKpWsNePpI;pUN zvWfeEX3QjdK-TpL z5j3nvI5mJ%_~@;=s&<5SLrwFe^0MzQccx2bj(Qn`10ZFV=LtcF`8*P$L2JbTXEiJzonIQ{0y+&TlIlfz`fmY5~ zQvD%!r3DW6`umK&R@^KyHE$RY2wVg&9vA)eby|?_)hiaSg!~K*x}ID;@=oB}K#=i& zfm_oOzsKQ<=-kY~dWtP*1ZDxeg|k&4OlB%WjZNFHErVV@dwe-9cf}OE#~>H5d;&pF z{QWW#;x)5z=D`VK0NP5m7 zn|6-X3xf*;dO6NII@{SVw|46T$;t~oSoR=lB}-t)RN{H zr^(wt2XH;4)8!^RSfD5#%1S8Cmhf_|Ydu=bhGLe7pP?EUkiLJbOK4ZM3}@Tf8@ZtC zcQYMYj5B_Y=S6iJBS3xh}Y>`Y`=YU*qf82zBII6>Azi}9j0I|%s-Vu`w9K>qW;_q&2muIe#^ zpQ{cJ)}=98n2vMvt8J3tf5G5yJjfSO5ES

- ); -}; diff --git a/test-scaffold/src/frontend/components/Dropdown.tsx b/test-scaffold/src/frontend/components/Dropdown.tsx deleted file mode 100644 index fb4a4ce..0000000 --- a/test-scaffold/src/frontend/components/Dropdown.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { useState } from 'react'; - -export const Dropdown = () => { - const [isOpen, setIsOpen] = useState(false); - - return ( -
setIsOpen(true)} - onPointerLeave={() => setIsOpen(false)} - open={isOpen} - > - Pages - -
- ); -}; diff --git a/test-scaffold/src/frontend/components/Head.tsx b/test-scaffold/src/frontend/components/Head.tsx deleted file mode 100644 index a705a8a..0000000 --- a/test-scaffold/src/frontend/components/Head.tsx +++ /dev/null @@ -1,34 +0,0 @@ -type HeadProps = { - title?: string; - description?: string; - icon?: string; - font?: string; - cssPath?: string; -}; - -export const Head = ({ - title = 'AbsoluteJS + React', - description = 'AbsoluteJS React Example', - icon = '/assets/ico/favicon.ico', - font = 'Poppins', - cssPath -}: HeadProps) => ( - - - {title} - - - - - - - {cssPath && } - -); diff --git a/test-scaffold/src/frontend/pages/ReactExample.tsx b/test-scaffold/src/frontend/pages/ReactExample.tsx deleted file mode 100644 index 111b78d..0000000 --- a/test-scaffold/src/frontend/pages/ReactExample.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { App } from '../components/App'; -import { Dropdown } from '../components/Dropdown'; -import { Head } from '../components/Head'; - -type ReactExampleProps = { initialCount: number; cssPath: string }; - -export const ReactExample = ({ initialCount, cssPath }: ReactExampleProps) => ( - - - -
- AbsoluteJS - -
- - - -); diff --git a/test-scaffold/src/frontend/styles/colors.ts b/test-scaffold/src/frontend/styles/colors.ts deleted file mode 100644 index 7806c19..0000000 --- a/test-scaffold/src/frontend/styles/colors.ts +++ /dev/null @@ -1,11 +0,0 @@ -export const primaryColor = '#5FBEEB'; -export const secondaryColor = '#35d5a2'; -export const tertiaryColor = '#ff4b91'; - -export const lightPrimaryColor = '#ffffff'; -export const lightSecondaryColor = '#f5f5f5'; -export const lightTertiaryColor = '#e0e0e0'; - -export const darkPrimaryColor = '#1a1a1a'; -export const darkSecondaryColor = '#2c2c2c'; -export const darkTertiaryColor = '#3c3c3c'; diff --git a/test-scaffold/src/frontend/styles/react-example.css b/test-scaffold/src/frontend/styles/react-example.css deleted file mode 100644 index a33dc67..0000000 --- a/test-scaffold/src/frontend/styles/react-example.css +++ /dev/null @@ -1,147 +0,0 @@ -@import url('../styles/reset.css'); - -header { - align-items: center; - background-color: #1a1a1a; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - display: flex; - justify-content: space-between; - padding: 2rem; - text-align: center; -} - -header a { - position: relative; - color: #5fbeeb; - text-decoration: none; -} - -header a::after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 2px; - background: linear-gradient(90deg, #5fbeeb 0%, #35d5a2 50%, #ff4b91 100%); - transform: scaleX(0); - transform-origin: left; - transition: transform 0.25s ease-in-out; -} - -header a:hover::after { - transform: scaleX(1); -} - -h1 { - font-size: 2.5rem; - margin-top: 2rem; -} - -.logo { - height: 8rem; - width: 8rem; - will-change: filter; - transition: filter 300ms; -} - -.logo:hover { - filter: drop-shadow(0 0 2rem #5fbeeb); -} - -.logo.react:hover { - filter: drop-shadow(0 0 2rem #61dafbaa); -} - -nav { - display: flex; - gap: 4rem; - justify-content: center; -} - -header details { - position: relative; -} - -header details summary { - list-style: none; - appearance: none; - -webkit-appearance: none; - cursor: pointer; - user-select: none; - color: #5fbeeb; - font-size: 1.5rem; - font-weight: 500; - padding: 0.5rem 1rem; -} - -header summary::after { - content: '▼'; - display: inline-block; - margin-left: 0.5rem; - font-size: 0.75rem; - transition: transform 0.3s ease; -} - -header details[open] summary::after { - transform: rotate(180deg); -} - -header details nav { - position: absolute; - top: 100%; - right: -0.5rem; - display: flex; - flex-direction: column; - gap: 0.75rem; - background: rgba(185, 185, 185, 0.1); - backdrop-filter: blur(4px); - border: 1px solid #5fbeeb; - border-radius: 1rem; - padding: 1rem 1.5rem; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); - opacity: 0; - transform: translateY(-8px); - pointer-events: none; - transition: - opacity 0.3s ease, - transform 0.3s ease; - z-index: 1000; -} - -header details[open] nav { - opacity: 1; - transform: translateY(0); - pointer-events: auto; -} - -header details nav a { - font-size: 1.1rem; - padding: 0.25rem 0; - white-space: nowrap; -} - -@media (prefers-color-scheme: light) { - header { - background-color: #ffffff; - } - - button { - background-color: #ffffff; - } -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} diff --git a/test-scaffold/src/frontend/styles/reset.css b/test-scaffold/src/frontend/styles/reset.css deleted file mode 100644 index 60be479..0000000 --- a/test-scaffold/src/frontend/styles/reset.css +++ /dev/null @@ -1,84 +0,0 @@ -* { - box-sizing: border-box; - line-height: 1.5; - margin: 0; - padding: 0; -} - -html { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - height: 100%; -} - -body { - background-color: #2c2c2c; - color: #f5f5f5; - color-scheme: light dark; - display: flex; - flex-direction: column; - font-synthesis: none; - font-weight: 400; - height: 100%; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; -} - -main { - align-items: center; - display: flex; - flex: 1; - flex-direction: column; - justify-content: center; - text-align: center; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.1; -} - -p { - font-size: 1.2rem; - max-width: 1280px; -} - -a { - color: #5fbeeb; - font-size: 1.5rem; - font-weight: 500; - position: relative; - text-decoration: none; -} - -button { - background-color: #1a1a1a; - border: 1px solid transparent; - border-radius: 0.5rem; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - cursor: pointer; - font-family: inherit; - font-size: 1.1rem; - font-weight: 500; - margin: 2rem 0; - padding: 0.6rem 1.2rem; - transition: border-color 0.25s; -} -button:hover { - border-color: #5fbeeb; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - body { - background-color: #f5f5f5; - color: #1a1a1a; - } -} diff --git a/test-scaffold/tailwind.config.ts b/test-scaffold/tailwind.config.ts deleted file mode 100644 index a4cdf4f..0000000 --- a/test-scaffold/tailwind.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Config } from 'tailwindcss'; - -const config: Config = { - content: ['./src/frontend/**/*.{js,ts,jsx,tsx,mdx}'] -}; - -export default config; diff --git a/test-scaffold/tsconfig.json b/test-scaffold/tsconfig.json deleted file mode 100644 index da8ee02..0000000 --- a/test-scaffold/tsconfig.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ "forceConsistentCasingInFileNames": true, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - /* Ensure that casing is correct in imports. */ "jsx": "react-jsx", // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - /* Specify what JSX code is generated. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ - "module": "ESNext", // "rootDir": "./", /* Specify the root folder within your source files. */ - /* Specify what module code is generated. */ "moduleResolution": "bundler", // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - /* Specify how TypeScript looks up a file from a given module specifier. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - "noUncheckedIndexedAccess": true, // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - /* Add 'undefined' to a type when accessed using an index. */ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Type Checking */, - /* Skip type checking all .d.ts files. */ "strict": true /* Visit https://aka.ms/tsconfig to read more about this file */, - /* Enable all strict type-checking options. */ /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "ESNext" - /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ /* Skip type checking all .d.ts files. */ - } -} From 0b3abe4d1040b3ce31bdbb358345de7e34bc1f32 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:01:03 -0500 Subject: [PATCH 21/39] Add support for MSSQL in Prisma schema generator --- src/generators/db/generatePrismaSchema.ts | 135 ++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 src/generators/db/generatePrismaSchema.ts diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts new file mode 100644 index 0000000..22648e7 --- /dev/null +++ b/src/generators/db/generatePrismaSchema.ts @@ -0,0 +1,135 @@ +import { AuthProvider, AvailablePrismaDialect, DatabaseHost } from "../../types"; + +const DIALECTS = { + cockroachdb: { + provider: 'cockroachdb', + autoIncrement: '@default(sequence())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + mariadb: { + provider: 'mysql', + autoIncrement: '@default(autoincrement())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + mongodb: { + provider: 'mongodb', + autoIncrement: '@default(auto()) @map("_id") @db.ObjectId', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + mssql: { // ← ADD THIS + provider: 'sqlserver', + autoIncrement: '@default(autoincrement())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + mysql: { + provider: 'mysql', + autoIncrement: '@default(autoincrement())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + postgresql: { + provider: 'postgresql', + autoIncrement: '@default(autoincrement())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, + sqlite: { + provider: 'sqlite', + autoIncrement: '@default(autoincrement())', + stringType: 'String', + jsonType: 'Json', + intType: 'Int', + dateTimeType: 'DateTime' + }, +} as const; + +type GeneratePrismaSchemaProps = { + databaseEngine: AvailablePrismaDialect; + databaseHost: DatabaseHost; + authProvider: AuthProvider; +}; + +const getDatabaseUrl = (databaseEngine: AvailablePrismaDialect, databaseHost: DatabaseHost): string => { + if (databaseHost === 'neon') { + return 'env("DATABASE_URL")'; + } + if (databaseHost === 'planetscale') { + return 'env("DATABASE_URL")'; + } + if (databaseHost === 'turso') { + return 'env("DATABASE_URL")'; + } + switch (databaseEngine) { + case 'postgresql': + return '"postgresql://user:password@localhost:5432/database"'; + case 'mysql': + case 'mariadb': + return '"mysql://user:userpassword@localhost:3306/database"'; + case 'sqlite': + return '"file:./database.sqlite"'; + case 'cockroachdb': + return '"postgresql://root@localhost:26257/database?sslmode=disable"'; + case 'mssql': + return '"sqlserver://localhost:1433;database=database;user=sa;password=Strong_Passw0rd;encrypt=true;trustServerCertificate=true"'; + case 'mongodb': + return '"mongodb://user:password@localhost:27017/database"'; + default: + return 'env("DATABASE_URL")'; + } +}; + +export const generatePrismaSchema = ({ + databaseEngine, + databaseHost, + authProvider +}: GeneratePrismaSchemaProps): string => { + const cfg = DIALECTS[databaseEngine]; + const databaseUrl = getDatabaseUrl(databaseEngine, databaseHost); + + const generatorBlock = `generator client { + provider = "prisma-client-js" +} +`; + + const datasourceBlock = `datasource db { + provider = "${cfg.provider}" + url = ${databaseUrl} +} +`; + + const modelBlock = authProvider === 'absoluteAuth' + ? `model User { + auth_sub ${cfg.stringType} @id @db.VarChar(255) + created_at ${cfg.dateTimeType} @default(now()) + metadata ${cfg.jsonType} @default("{}") + + @@map("users") +} +` + : `model CountHistory { + uid ${cfg.intType} @id ${cfg.autoIncrement} + count ${cfg.intType} + created_at ${cfg.dateTimeType} @default(now()) + + @@map("count_history") +} +`; + + return `${generatorBlock}\n${datasourceBlock}\n${modelBlock}`; +}; From 266005448002ff701453b6d26e7a5fb5f34c2079 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:03:33 -0500 Subject: [PATCH 22/39] Add Prisma support to scaffoldDatabase --- src/generators/db/scaffoldDatabase.ts | 86 ++++++++++++++++++--------- 1 file changed, 57 insertions(+), 29 deletions(-) diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index 99d9235..7848039 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -1,7 +1,6 @@ import { mkdirSync, writeFileSync } from 'fs'; import { join } from 'path'; import { $ } from 'bun'; -import { dim, yellow } from 'picocolors'; import { isDrizzleDialect } from '../../typeGuards'; import type { CreateConfiguration } from '../../types'; import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; @@ -9,7 +8,12 @@ import { createDrizzleConfig } from '../configurations/generateDrizzleConfig'; import { generateDrizzleSchema } from './generateDrizzleSchema'; import { generateDBHandlers } from './generateHandlers'; import { generateSqliteSchema } from './generateSqliteSchema'; +import { generatePrismaSchema } from './generatePrismaSchema'; import { scaffoldDocker } from './scaffoldDocker'; +import { isPrismaDialect } from '../../typeGuards'; +import { generatePrismaClient } from '../configurations/generatePrismaClient'; + + type ScaffoldDatabaseProps = Pick< CreateConfiguration, @@ -50,27 +54,21 @@ export const scaffoldDatabase = async ({ }); writeFileSync(join(handlerDirectory, handlerFileName), dbHandlers, 'utf-8'); - if (databaseEngine === 'sqlite' && databaseHost !== 'turso') { - void ( - (orm === undefined || orm === 'none') && - (await checkSqliteInstalled()) - ); - const sqliteSchema = generateSqliteSchema(authProvider); - writeFileSync( - join(projectDatabaseDirectory, 'schema.sql'), - sqliteSchema - ); - await $`sqlite3 ${databaseDirectory}/database.sqlite ".read ${join( - databaseDirectory, - 'schema.sql' - )}"`.cwd(projectName); - } else if (databaseEngine === 'sqlite' && databaseHost === 'turso') { - const sqliteSchema = generateSqliteSchema(authProvider); - writeFileSync( - join(projectDatabaseDirectory, 'schema.sql'), - sqliteSchema - ); - } + if (databaseEngine === 'sqlite') { + void ( + (orm === undefined || orm === 'none') && + (await checkSqliteInstalled()) + ); + const sqliteSchema = generateSqliteSchema(authProvider); + writeFileSync( + join(projectDatabaseDirectory, 'schema.sql'), + sqliteSchema + ); + await $`sqlite3 ${databaseDirectory}/database.sqlite ".read ${join( + databaseDirectory, + 'schema.sql' + )}"`.cwd(projectName); +} if ( (databaseHost === 'none' || databaseHost === undefined) && @@ -100,17 +98,47 @@ export const scaffoldDatabase = async ({ join(projectDatabaseDirectory, 'schema.ts'), drizzleSchema ); - - if (databaseHost === 'neon' || databaseHost === 'planetscale' || databaseHost === 'turso') { - createDrizzleConfig({ databaseDirectory, databaseEngine, projectName }); - } + createDrizzleConfig({ databaseDirectory, databaseEngine, projectName }); return; } - if (orm === 'prisma') { - console.warn( - `${dim('│')}\n${yellow('▲')} Prisma support is not implemented yet` +if (orm === 'prisma') { + if (!isPrismaDialect(databaseEngine)) { + throw new Error('Internal type error: Expected a Prisma dialect'); + } + + const prismaSchema = generatePrismaSchema({ + authProvider, + databaseEngine, + databaseHost + }); + writeFileSync( + join(projectDatabaseDirectory, 'schema.prisma'), + prismaSchema ); + generatePrismaClient({ + databaseEngine, + databaseHost, + databaseDirectory, + projectName + }); + try { + await $`npx prisma generate --schema ${databaseDirectory}/schema.prisma`.cwd(join(projectName)); + } catch (error) { + console.error('Error generating Prisma client:', error); + } + const isLocalDatabase = !databaseHost || databaseHost === 'none'; + if (isLocalDatabase && databaseEngine !== 'sqlite') { + try { + await $`npx prisma migrate dev --name init --skip-generate --schema ${databaseDirectory}/schema.prisma`.cwd(projectName); + } catch (error) { + console.error('Error running Prisma migration:', error); + } + } else if (isLocalDatabase) { + console.log('Skipping initial Prisma migration for SQLite database.'); + } } + return; }; + From 8e62dc02e44b8748933bb8a8a2b0f395028577eb Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:04:29 -0500 Subject: [PATCH 23/39] Add Prisma dependencies and scripts to package.json --- .../configurations/generatePackageJson.ts | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index cbbde06..386e597 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -126,11 +126,21 @@ export const createPackageJson = ({ '0.1.1' ); } - if (orm === 'drizzle') { dependencies['drizzle-orm'] = resolveVersion('drizzle-orm', '0.41.0'); + devDependencies['drizzle-kit'] = resolveVersion('drizzle-kit', '0.30.6'); } - + if (orm === 'prisma') { + dependencies['@prisma/client'] = resolveVersion('@prisma/client', '6.2.0'); + devDependencies['prisma'] = resolveVersion('prisma', '6.2.0'); + } + if (orm === 'prisma' && (databaseHost === 'neon' || databaseHost === 'planetscale')) { + dependencies['@prisma/extension-accelerate'] = resolveVersion( + '@prisma/extension-accelerate', + '1.2.1' + ); + } + if (orm === 'drizzle') { switch (databaseHost) { case 'neon': dependencies['@neondatabase/serverless'] = resolveVersion( @@ -151,6 +161,7 @@ export const createPackageJson = ({ ); break; } +} if (latest) s.stop(green('Package versions resolved')); @@ -210,6 +221,17 @@ export const createPackageJson = ({ scripts['db:init'] = 'sqlite3 db/database.sqlite < db/init.sql'; } + if (orm === 'prisma') { + scripts['postinstall'] = 'prisma generate'; + scripts['db:generate'] = 'prisma generate'; + scripts['db:push'] = 'prisma db push'; + scripts['db:studio'] = 'prisma studio'; + scripts['db:migrate'] = 'prisma migrate dev'; + scripts['db:migrate:deploy'] = 'prisma migrate deploy'; + scripts['db:migrate:reset'] = 'prisma migrate reset'; + + } + const packageJson: PackageJson = { dependencies, devDependencies, From 922b055a583bb4a4be6eabc2dfe5656da3a7e10e Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:14:27 -0500 Subject: [PATCH 24/39] Fix missing newline at end of scaffoldDatabase.ts --- src/generators/db/scaffoldDatabase.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index 7848039..b1866aa 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -141,4 +141,3 @@ if (orm === 'prisma') { } return; }; - From db2fb8647cbfd8479432513920193094cceb1e96 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:16:29 -0500 Subject: [PATCH 25/39] Update isPrismaDialect type guard to use AvailablePrismaDialect --- src/typeGuards.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/typeGuards.ts b/src/typeGuards.ts index df53e46..e8f36b8 100644 --- a/src/typeGuards.ts +++ b/src/typeGuards.ts @@ -8,6 +8,7 @@ import { import type { AuthProvider, AvailableDrizzleDialect, + AvailablePrismaDialect, CodeQualityTool, DatabaseEngine, DatabaseHost, @@ -29,7 +30,7 @@ export const isDrizzleDialect = ( ): value is AvailableDrizzleDialect => availableDrizzleDialects.some((dialect) => dialect === value); -export const isPrismaDialect = (value: string | undefined): value is string => +export const isPrismaDialect = (value: string | undefined): value is AvailablePrismaDialect => availablePrismaDialects.some((dialect) => dialect === value); export const isDatabaseEngine = ( @@ -52,3 +53,4 @@ export const isCodeQualityTool = ( export const isFrontend = (value: string | undefined): value is Frontend => value !== undefined && Object.keys(frontendLabels).includes(value); + From 597ff4fcf0f9233cf7d3ad7fa9febb36fd0057d4 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:17:25 -0500 Subject: [PATCH 26/39] Add missing newline at the end of generatePackageJson.ts --- src/generators/configurations/generatePackageJson.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 386e597..89e7f1a 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -246,3 +246,4 @@ export const createPackageJson = ({ JSON.stringify(packageJson, null, 2) ); }; + From 2b8dbb8e70536a0062ba78f928e18745cf283f64 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:18:17 -0500 Subject: [PATCH 27/39] Add generatePrismaClient function This file generates a Prisma client based on the specified database engine and host, and writes it to a specified directory. --- .../configurations/generatePrismaClient.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/generators/configurations/generatePrismaClient.ts diff --git a/src/generators/configurations/generatePrismaClient.ts b/src/generators/configurations/generatePrismaClient.ts new file mode 100644 index 0000000..4022981 --- /dev/null +++ b/src/generators/configurations/generatePrismaClient.ts @@ -0,0 +1,45 @@ +import { writeFileSync } from 'fs'; +import { join } from 'path'; +import type { AvailablePrismaDialect, DatabaseHost } from '../../types'; + +type GeneratePrismaCleintProps = { + databaseEngine: AvailablePrismaDialect; + databaseHost: DatabaseHost; + databaseDirectory: string; + projectName: string; +}; + +const getPrismaClientImport = (databaseHost: DatabaseHost): string => { + switch (databaseHost) { + case 'neon': + return `import { createClient } from '@neondatabase/serverless';`; + case 'planetscale': + return `import { createClient } from '@planetscale/database';`; + case 'turso': + return `import { createClient } from '@turso/client';`; + default: + return `import { PrismaClient } from '@prisma/client';`; + } +}; + +export const generatePrismaClient = ({ + databaseEngine, + databaseHost, + databaseDirectory, + projectName +}: GeneratePrismaCleintProps) => { + const prismaClientImport = getPrismaClientImport(databaseHost); + const prismaClientContent = `${prismaClientImport} + const globalForPrisma = globalThis as unknown as { + prisma: PrismaClient | undefined +} + +export const prisma = globalForPrisma.prisma ?? new PrismaClient() + +if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma + +export default prisma +`; + + writeFileSync(join(projectName, databaseDirectory, 'prisma-client.ts'), prismaClientContent); +}; From 6ba1c721d8af51f1fb03c018cd021c630773137a Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:19:09 -0500 Subject: [PATCH 28/39] Add support for Prisma dialects in generateDBBlock --- src/generators/project/generateDBBlock.ts | 27 ++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/generators/project/generateDBBlock.ts b/src/generators/project/generateDBBlock.ts index d53434b..bc06980 100644 --- a/src/generators/project/generateDBBlock.ts +++ b/src/generators/project/generateDBBlock.ts @@ -1,4 +1,4 @@ -import { availableDrizzleDialects } from '../../data'; +import { availableDrizzleDialects, availablePrismaDialects } from '../../data'; import type { CreateConfiguration } from '../../types'; type DBExpr = { expr: string }; @@ -45,6 +45,7 @@ const remoteDrizzleInit: Record = { }; const drizzleDialectSet = new Set([...availableDrizzleDialects]); +const prismaDialectSet = new Set([...availablePrismaDialects]); type GenerateDBBlockProps = Pick< CreateConfiguration, @@ -66,21 +67,19 @@ export const generateDBBlock = ({ const engineGroup = connectionMap[databaseEngine]; if (!engineGroup) return ''; - if (orm !== 'drizzle') { + if (orm !== 'drizzle' && orm !== 'prisma') { const hostCfg = engineGroup[hostKey]; if (!hostCfg) return ''; - return ` -const pool = ${hostCfg.expr} -`; + return `const pool = ${hostCfg.expr}`; } + if (orm === 'drizzle') { + if (!drizzleDialectSet.has(databaseEngine)) return ''; - if (!drizzleDialectSet.has(databaseEngine)) return ''; - - const expr = engineGroup[hostKey]?.expr ?? remoteDrizzleInit[hostKey]; - if (!expr) return ''; + const expr = engineGroup[hostKey]?.expr ?? remoteDrizzleInit[hostKey]; + if (!expr) return ''; - if (databaseEngine === 'mysql') { + if (databaseEngine === 'mysql') { const mode = databaseHost === 'planetscale' ? 'planetscale' : 'default'; return ` @@ -100,4 +99,12 @@ const db = drizzle(pool, { schema }) const pool = ${expr} const db = drizzle(pool, { schema }) `; +} +if (orm === 'prisma') { + if (!prismaDialectSet.has(databaseEngine)) return ''; + + return `const prisma = (await import('../../db/client')).default`; + } + + return ''; }; From b79480ee8e3be09c43e31e0132db3024852de535 Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:19:47 -0500 Subject: [PATCH 29/39] Add Prisma imports handling in generateImportsBlock --- src/generators/project/generateImportsBlock.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/generators/project/generateImportsBlock.ts b/src/generators/project/generateImportsBlock.ts index 9fe72af..b8fc750 100644 --- a/src/generators/project/generateImportsBlock.ts +++ b/src/generators/project/generateImportsBlock.ts @@ -102,7 +102,13 @@ export const generateImportsBlock = ({ const key = databaseHost; rawImports.push(...connectorImports[key], ...dialectImports[key]); } - + if (orm === 'prisma') { + if (databaseEngine !== 'sqlite' || isRemoteHost) { + rawImports.push(`import { getEnv } from '@absolutejs/absolute'`); + } + + rawImports.push(`import type { Elysia } from 'elysia'`, authProvider === 'absoluteAuth' ? `import type { User } from '@prisma/client'` : ``); + } if (orm === 'drizzle' && !isRemoteHost && databaseEngine === 'postgresql') rawImports.push( `import { Pool } from 'pg'`, @@ -228,3 +234,4 @@ export const generateImportsBlock = ({ }) .join('\n'); }; + From b658506fb7de2ebc0997ee6d0e3d979152caf07e Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:20:37 -0500 Subject: [PATCH 30/39] Enhance ORM key determination logic --- src/generators/db/generateHandlers.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/generators/db/generateHandlers.ts b/src/generators/db/generateHandlers.ts index ce7500d..2377a29 100644 --- a/src/generators/db/generateHandlers.ts +++ b/src/generators/db/generateHandlers.ts @@ -1,5 +1,7 @@ import { CreateConfiguration } from '../../types'; import { getAuthTemplate, getCountTemplate } from './handlerTemplates'; +import { CreateConfiguration } from '../../types'; +import { getAuthTemplate, getCountTemplate } from './handlerTemplates'; type GenerateDBHandlersProps = Pick< CreateConfiguration, @@ -20,9 +22,10 @@ export const generateDBHandlers = ({ const host = databaseHost && databaseHost !== 'none' ? databaseHost : 'local'; - const ormKey = orm === 'drizzle' ? 'drizzle' : 'sql'; + const ormKey = orm === 'drizzle' ? 'drizzle' : orm === 'prisma' ? 'prisma' : 'sql'; const key = `${databaseEngine}:${ormKey}:${host}` as const; // @ts-expect-error - TODO: Finish the other templates return usesAuth ? getAuthTemplate(key) : getCountTemplate(key); }; + From b69a71e6ad4b07a4cc1f39bb995b9efbb2185d0a Mon Sep 17 00:00:00 2001 From: santimuri08 <115190223+santimuri08@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:21:20 -0500 Subject: [PATCH 31/39] Add Prisma query operations for various databases --- src/generators/db/handlerTemplates.ts | 118 +++++++++++++++++++++----- 1 file changed, 96 insertions(+), 22 deletions(-) diff --git a/src/generators/db/handlerTemplates.ts b/src/generators/db/handlerTemplates.ts index 2023af3..b3d6994 100644 --- a/src/generators/db/handlerTemplates.ts +++ b/src/generators/db/handlerTemplates.ts @@ -270,6 +270,13 @@ return rows[0] ?? null; ` }; +const prismaQueryOperations: QueryOperations = { + selectUser: `const user = await db.users.findUnique({ where: { auth_sub: authSub } })`, + insertUser: `const newUser = await db.users.create({ data: { auth_sub: authSub, metadata: userIdentity } }) if (!newUser) throw new Error('Failed to create user') return newUser`, + selectHistory: `const history = await db.countHistory.findUnique({ where: { uid: uid } }) return history`, + insertHistory: `const newHistory = await db.countHistory.create({ data: { count: count } }) return newHistory` +}; + type HandlerType = { CountHistoryRow: string; UserRow: string; @@ -329,89 +336,155 @@ const driverConfigurations = { dbType: 'Pool', importLines: `import { Pool } from 'pg'`, queries: cockroachdbPoolQueryOperations - }, 'gel:sql:local': { + }, + 'gel:sql:local': { dbType: 'GelClient', importLines: `import { GelClient } from 'gel'`, queries: gelSqlQueryOperations - }, 'mariadb:sql:local': { + }, + 'mariadb:sql:local': { dbType: 'Pool', importLines: `import { Pool } from 'mariadb'`, queries: mariadbSqlQueryOperations - }, 'mongodb:native:local': { + }, + 'mongodb:native:local': { dbType: 'Db', importLines: `import { Db } from 'mongodb'`, queries: mongodbQueryOperations - }, 'mssql:sql:local': { + }, + 'mssql:sql:local': { dbType: 'ConnectionPool', importLines: `import { ConnectionPool } from 'mssql'`, queries: mssqlSqlQueryOperations - }, 'mysql:drizzle:local': { + }, + 'mysql:drizzle:local': { dbType: 'MySql2Database', importLines: ` import { eq } from 'drizzle-orm' import { MySql2Database } from 'drizzle-orm/mysql2' import { schema, type SchemaType } from '../../../db/schema'`, queries: mysqlDrizzleQueryOperations - }, 'mysql:drizzle:planetscale': { - dbType: 'PlanetScaleDatabase', - importLines: ` -import { eq } from 'drizzle-orm' -import { PlanetScaleDatabase } from 'drizzle-orm/planetscale-serverless' -import { schema, type SchemaType } from '../../../db/schema'`, - queries: mysqlDrizzleQueryOperations - }, 'mysql:sql:local': { + }, + 'mysql:sql:local': { dbType: 'Pool', handlerTypes: mysqlHandlerTypes, importLines: `import { Pool, ResultSetHeader, RowDataPacket } from 'mysql2/promise'`, queries: mysqlSqlQueryOperations - }, 'postgresql:drizzle:local': { + }, + 'postgresql:drizzle:local': { dbType: 'NodePgDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLDatabase } from 'drizzle-orm/bun-sql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, 'postgresql:drizzle:neon': { + }, + 'postgresql:drizzle:neon': { dbType: 'NeonDatabase', importLines: ` import { eq } from 'drizzle-orm' import { NeonDatabase } from 'drizzle-orm/neon-serverless' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, 'postgresql:sql:local': { + }, + 'postgresql:sql:local': { dbType: 'SQL', importLines: `import { SQL } from 'bun'`, queries: postgresSqlQueryOperations - }, 'postgresql:sql:neon': { + }, + 'postgresql:sql:neon': { dbType: 'NeonQueryFunction', importLines: `import { NeonQueryFunction } from '@neondatabase/serverless'`, queries: postgresSqlQueryOperations - }, 'singlestore:sql:local': { + }, + 'postgresql:drizzle:planetscale': { + dbType: 'PlanetScaleDatabase', + importLines: ` +import { eq } from 'drizzle-orm' +import { PlanetScaleDatabase } from 'drizzle-orm/planetscale-serverless' +import { schema, type SchemaType } from '../../../db/schema'`, + queries: drizzleQueryOperations +}, + 'singlestore:sql:local': { dbType: 'Connection', importLines: `import { Connection } from '@singlestore/db-client'`, queries: singlestoreSqlQueryOperations - }, 'sqlite:drizzle:local': { + }, + 'sqlite:drizzle:local': { dbType: 'BunSQLiteDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLiteDatabase } from 'drizzle-orm/bun-sqlite' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, 'sqlite:drizzle:turso': { + }, + 'sqlite:drizzle:turso': { dbType: 'LibSQLDatabase', importLines: ` import { eq } from 'drizzle-orm' import { LibSQLDatabase } from 'drizzle-orm/libsql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, 'sqlite:sql:local': { + }, + 'sqlite:sql:local': { dbType: 'Database', importLines: `import { Database } from 'bun:sqlite'`, queries: bunSqliteQueryOperations - }, 'sqlite:sql:turso': { + }, + 'sqlite:sql:turso': { dbType: 'Client', importLines: `import { Client } from '@libsql/client'`, queries: libsqlQueryOperations + }, + 'postgresql:prisma:neon': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client/edge'`, + queries: prismaQueryOperations + }, + 'postgresql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'mysql:prisma:planetscale': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client/edge'`, + queries: prismaQueryOperations + }, + 'mysql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'sqlite:prisma:turso': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client/edge'`, + queries: prismaQueryOperations + }, + 'sqlite:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'mariadb:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'mongodb:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'cockroachdb:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, + 'mssql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations } } as const; @@ -432,3 +505,4 @@ export const getCountTemplate = (key: DriverConfigurationKey) => { return buildSqlCountTemplate(configuration); }; + From 955e5a6a72622343fdabdb4c3eba60f310d1903d Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Wed, 12 Nov 2025 00:42:21 -0500 Subject: [PATCH 32/39] Minor Improvments + Schema Generation Fixes --- src/data.ts | 19 +- .../configurations/generatePackageJson.ts | 28 ++- .../configurations/generatePrismaClient.ts | 73 +++--- src/generators/db/generateHandlers.ts | 7 +- src/generators/db/generatePrismaSchema.ts | 209 +++++++----------- src/generators/db/handlerTemplates.ts | 45 ++-- src/generators/db/scaffoldDatabase.ts | 35 ++- src/generators/project/generateDBBlock.ts | 2 +- .../project/generateImportsBlock.ts | 8 +- 9 files changed, 224 insertions(+), 202 deletions(-) diff --git a/src/data.ts b/src/data.ts index 4e8b25a..0f104dd 100644 --- a/src/data.ts +++ b/src/data.ts @@ -23,7 +23,6 @@ export const availablePrismaDialects = [ 'mysql', 'postgresql', 'sqlite', - 'mongodb', 'mariadb', 'cockroachdb', 'mssql' @@ -120,6 +119,24 @@ export const eslintAndPrettierDependencies: AvailableDependency[] = [ } ]; +export const prismaRuntimeDependencies: AvailableDependency[] = [ + { + latestVersion: '6.2.0', + value: '@prisma/client' + } +]; + +export const prismaDevDependencies: AvailableDependency[] = [ + { + latestVersion: '6.2.0', + value: 'prisma' + }, + { + latestVersion: '1.2.1', + value: '@prisma/extension-accelerate' + } +]; + export const defaultDependencies: AvailableDependency[] = [ { imports: [{ isPlugin: false, packageName: 'Elysia' }], diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 89e7f1a..19aaa1b 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -7,7 +7,9 @@ import { availablePlugins, defaultDependencies, defaultPlugins, - eslintAndPrettierDependencies + eslintAndPrettierDependencies, + prismaDevDependencies, + prismaRuntimeDependencies } from '../../data'; import type { CreateConfiguration, PackageJson } from '../../types'; import { getPackageVersion } from '../../utils/getPackageVersion'; @@ -130,15 +132,23 @@ export const createPackageJson = ({ dependencies['drizzle-orm'] = resolveVersion('drizzle-orm', '0.41.0'); devDependencies['drizzle-kit'] = resolveVersion('drizzle-kit', '0.30.6'); } + const usesAccelerate = + orm === 'prisma' && + (databaseHost === 'neon' || databaseHost === 'planetscale'); + if (orm === 'prisma') { - dependencies['@prisma/client'] = resolveVersion('@prisma/client', '6.2.0'); - devDependencies['prisma'] = resolveVersion('prisma', '6.2.0'); - } - if (orm === 'prisma' && (databaseHost === 'neon' || databaseHost === 'planetscale')) { - dependencies['@prisma/extension-accelerate'] = resolveVersion( - '@prisma/extension-accelerate', - '1.2.1' - ); + for (const dep of prismaRuntimeDependencies) { + dependencies[dep.value] = resolveVersion(dep.value, dep.latestVersion); + } + + for (const dep of prismaDevDependencies) { + if (dep.value === '@prisma/extension-accelerate' && !usesAccelerate) + continue; + devDependencies[dep.value] = resolveVersion( + dep.value, + dep.latestVersion + ); + } } if (orm === 'drizzle') { switch (databaseHost) { diff --git a/src/generators/configurations/generatePrismaClient.ts b/src/generators/configurations/generatePrismaClient.ts index 4022981..df5db7e 100644 --- a/src/generators/configurations/generatePrismaClient.ts +++ b/src/generators/configurations/generatePrismaClient.ts @@ -1,45 +1,58 @@ import { writeFileSync } from 'fs'; import { join } from 'path'; -import type { AvailablePrismaDialect, DatabaseHost } from '../../types'; +import type { DatabaseHost } from '../../types'; -type GeneratePrismaCleintProps = { - databaseEngine: AvailablePrismaDialect; - databaseHost: DatabaseHost; - databaseDirectory: string; - projectName: string; +type GeneratePrismaClientProps = { + databaseHost: DatabaseHost; + databaseDirectory: string; + projectName: string; }; -const getPrismaClientImport = (databaseHost: DatabaseHost): string => { - switch (databaseHost) { - case 'neon': - return `import { createClient } from '@neondatabase/serverless';`; - case 'planetscale': - return `import { createClient } from '@planetscale/database';`; - case 'turso': - return `import { createClient } from '@turso/client';`; - default: - return `import { PrismaClient } from '@prisma/client';`; +const buildClientModule = (databaseHost: DatabaseHost) => { + const usesAccelerate = + databaseHost === 'neon' || databaseHost === 'planetscale'; + const clientImport = usesAccelerate + ? `import { PrismaClient } from '@prisma/client/edge'` + : `import { PrismaClient } from '@prisma/client'`; + const accelerateImport = usesAccelerate + ? `import { withAccelerate } from '@prisma/extension-accelerate'\n` + : ''; + + const instantiate = usesAccelerate + ? `const prisma = + globalForPrisma.prisma ?? + new PrismaClient({ + datasources: { + db: { url: process.env.DATABASE_URL } } -}; + }).$extends(withAccelerate())` + : `const prisma = globalForPrisma.prisma ?? new PrismaClient()`; -export const generatePrismaClient = ({ - databaseEngine, - databaseHost, - databaseDirectory, - projectName -}: GeneratePrismaCleintProps) => { - const prismaClientImport = getPrismaClientImport(databaseHost); - const prismaClientContent = `${prismaClientImport} - const globalForPrisma = globalThis as unknown as { + return `${clientImport} +${accelerateImport}const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined } -export const prisma = globalForPrisma.prisma ?? new PrismaClient() +${instantiate} -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma +if (process.env.NODE_ENV !== 'production') { + globalForPrisma.prisma = prisma +} -export default prisma +export const prismaClient = prisma +export default prismaClient `; +}; - writeFileSync(join(projectName, databaseDirectory, 'prisma-client.ts'), prismaClientContent); +export const generatePrismaClient = ({ + databaseHost, + databaseDirectory, + projectName +}: GeneratePrismaClientProps) => { + const contents = buildClientModule(databaseHost); + writeFileSync( + join(projectName, databaseDirectory, 'client.ts'), + contents, + 'utf-8' + ); }; diff --git a/src/generators/db/generateHandlers.ts b/src/generators/db/generateHandlers.ts index 2377a29..57b8f03 100644 --- a/src/generators/db/generateHandlers.ts +++ b/src/generators/db/generateHandlers.ts @@ -1,6 +1,4 @@ -import { CreateConfiguration } from '../../types'; -import { getAuthTemplate, getCountTemplate } from './handlerTemplates'; -import { CreateConfiguration } from '../../types'; +import type { CreateConfiguration } from '../../types'; import { getAuthTemplate, getCountTemplate } from './handlerTemplates'; type GenerateDBHandlersProps = Pick< @@ -22,7 +20,8 @@ export const generateDBHandlers = ({ const host = databaseHost && databaseHost !== 'none' ? databaseHost : 'local'; - const ormKey = orm === 'drizzle' ? 'drizzle' : orm === 'prisma' ? 'prisma' : 'sql'; + const ormKey = + orm === 'drizzle' ? 'drizzle' : orm === 'prisma' ? 'prisma' : 'sql'; const key = `${databaseEngine}:${ormKey}:${host}` as const; // @ts-expect-error - TODO: Finish the other templates diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts index 22648e7..59d6b79 100644 --- a/src/generators/db/generatePrismaSchema.ts +++ b/src/generators/db/generatePrismaSchema.ts @@ -1,135 +1,98 @@ -import { AuthProvider, AvailablePrismaDialect, DatabaseHost } from "../../types"; +import type { + AuthProvider, + AvailablePrismaDialect, + DatabaseHost +} from '../../types'; -const DIALECTS = { - cockroachdb: { - provider: 'cockroachdb', - autoIncrement: '@default(sequence())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - mariadb: { - provider: 'mysql', - autoIncrement: '@default(autoincrement())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - mongodb: { - provider: 'mongodb', - autoIncrement: '@default(auto()) @map("_id") @db.ObjectId', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - mssql: { // ← ADD THIS - provider: 'sqlserver', - autoIncrement: '@default(autoincrement())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - mysql: { - provider: 'mysql', - autoIncrement: '@default(autoincrement())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - postgresql: { - provider: 'postgresql', - autoIncrement: '@default(autoincrement())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, - sqlite: { - provider: 'sqlite', - autoIncrement: '@default(autoincrement())', - stringType: 'String', - jsonType: 'Json', - intType: 'Int', - dateTimeType: 'DateTime' - }, -} as const; +type DialectConfig = { + provider: string; + countHistoryId: string; +}; + +const DIALECTS: Record = { + cockroachdb: { + provider: 'cockroachdb', + countHistoryId: 'Int @id @default(sequence())' + }, + mariadb: { + provider: 'mysql', + countHistoryId: 'Int @id @default(autoincrement())' + }, + mssql: { + provider: 'sqlserver', + countHistoryId: 'Int @id @default(autoincrement())' + }, + mysql: { + provider: 'mysql', + countHistoryId: 'Int @id @default(autoincrement())' + }, + postgresql: { + provider: 'postgresql', + countHistoryId: 'Int @id @default(autoincrement())' + }, + sqlite: { + provider: 'sqlite', + countHistoryId: 'Int @id @default(autoincrement())' + } +}; type GeneratePrismaSchemaProps = { - databaseEngine: AvailablePrismaDialect; - databaseHost: DatabaseHost; - authProvider: AuthProvider; + databaseEngine: AvailablePrismaDialect; + databaseHost: DatabaseHost; + authProvider: AuthProvider; }; -const getDatabaseUrl = (databaseEngine: AvailablePrismaDialect, databaseHost: DatabaseHost): string => { - if (databaseHost === 'neon') { - return 'env("DATABASE_URL")'; - } - if (databaseHost === 'planetscale') { - return 'env("DATABASE_URL")'; - } - if (databaseHost === 'turso') { - return 'env("DATABASE_URL")'; - } - switch (databaseEngine) { - case 'postgresql': - return '"postgresql://user:password@localhost:5432/database"'; - case 'mysql': - case 'mariadb': - return '"mysql://user:userpassword@localhost:3306/database"'; - case 'sqlite': - return '"file:./database.sqlite"'; - case 'cockroachdb': - return '"postgresql://root@localhost:26257/database?sslmode=disable"'; - case 'mssql': - return '"sqlserver://localhost:1433;database=database;user=sa;password=Strong_Passw0rd;encrypt=true;trustServerCertificate=true"'; - case 'mongodb': - return '"mongodb://user:password@localhost:27017/database"'; - default: - return 'env("DATABASE_URL")'; - } +const buildGeneratorBlock = (databaseHost: DatabaseHost) => { + const needsDriverAdapters = + databaseHost === 'neon' || databaseHost === 'planetscale'; + const previewFeatures = needsDriverAdapters + ? '\n previewFeatures = ["driverAdapters"]' + : ''; + + return `generator client { + provider = "prisma-client-js"${previewFeatures} +}`; }; -export const generatePrismaSchema = ({ - databaseEngine, - databaseHost, - authProvider -}: GeneratePrismaSchemaProps): string => { - const cfg = DIALECTS[databaseEngine]; - const databaseUrl = getDatabaseUrl(databaseEngine, databaseHost); - - const generatorBlock = `generator client { - provider = "prisma-client-js" -} -`; - - const datasourceBlock = `datasource db { +const buildDatasourceBlock = (cfg: DialectConfig) => `datasource db { provider = "${cfg.provider}" - url = ${databaseUrl} -} -`; + url = env("DATABASE_URL") +}`; + +const buildUserModel = (cfg: DialectConfig) => `model User { + auth_sub String @id + metadata Json + created_at DateTime @default(now()) - const modelBlock = authProvider === 'absoluteAuth' - ? `model User { - auth_sub ${cfg.stringType} @id @db.VarChar(255) - created_at ${cfg.dateTimeType} @default(now()) - metadata ${cfg.jsonType} @default("{}") - @@map("users") -} -` - : `model CountHistory { - uid ${cfg.intType} @id ${cfg.autoIncrement} - count ${cfg.intType} - created_at ${cfg.dateTimeType} @default(now()) - +}`; + +const buildCountHistoryModel = (cfg: DialectConfig) => `model CountHistory { + uid ${cfg.countHistoryId} + count Int + created_at DateTime @default(now()) + @@map("count_history") -} -`; - - return `${generatorBlock}\n${datasourceBlock}\n${modelBlock}`; +}`; + +export const generatePrismaSchema = ({ + databaseEngine, + databaseHost, + authProvider +}: GeneratePrismaSchemaProps): string => { + const cfg = DIALECTS[databaseEngine]; + if (!cfg) { + throw new Error( + `Unsupported Prisma dialect "${databaseEngine}" encountered while generating schema.` + ); + } + + const generatorBlock = buildGeneratorBlock(databaseHost); + const datasourceBlock = buildDatasourceBlock(cfg); + const modelBlock = + authProvider === 'absoluteAuth' + ? buildUserModel(cfg) + : buildCountHistoryModel(cfg); + + return [generatorBlock, datasourceBlock, modelBlock].join('\n\n'); }; diff --git a/src/generators/db/handlerTemplates.ts b/src/generators/db/handlerTemplates.ts index b3d6994..cd1039e 100644 --- a/src/generators/db/handlerTemplates.ts +++ b/src/generators/db/handlerTemplates.ts @@ -271,10 +271,24 @@ return rows[0] ?? null; }; const prismaQueryOperations: QueryOperations = { - selectUser: `const user = await db.users.findUnique({ where: { auth_sub: authSub } })`, - insertUser: `const newUser = await db.users.create({ data: { auth_sub: authSub, metadata: userIdentity } }) if (!newUser) throw new Error('Failed to create user') return newUser`, - selectHistory: `const history = await db.countHistory.findUnique({ where: { uid: uid } }) return history`, - insertHistory: `const newHistory = await db.countHistory.create({ data: { count: count } }) return newHistory` + selectUser: `const user = await db.user.findUnique({ + where: { auth_sub: authSub } +}) + return user`, + insertUser: `const newUser = await db.user.upsert({ + where: { auth_sub: authSub }, + update: { metadata: userIdentity }, + create: { auth_sub: authSub, metadata: userIdentity } +}) + return newUser`, + selectHistory: `const history = await db.countHistory.findUnique({ + where: { uid } +}) + return history`, + insertHistory: `const newHistory = await db.countHistory.create({ + data: { count } +}) + return newHistory` }; type HandlerType = { @@ -438,52 +452,47 @@ import { schema, type SchemaType } from '../../../db/schema'`, }, 'postgresql:prisma:neon': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client/edge'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'postgresql:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'mysql:prisma:planetscale': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client/edge'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'mysql:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'sqlite:prisma:turso': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client/edge'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'sqlite:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'mariadb:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'mongodb:prisma:local': { - dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'cockroachdb:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, 'mssql:prisma:local': { dbType: 'PrismaClient', - importLines: `import { PrismaClient } from '@prisma/client'`, + importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations } } as const; diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index b1866aa..65b66bc 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -103,7 +103,7 @@ export const scaffoldDatabase = async ({ return; } -if (orm === 'prisma') { + if (orm === 'prisma') { if (!isPrismaDialect(databaseEngine)) { throw new Error('Internal type error: Expected a Prisma dialect'); } @@ -113,30 +113,41 @@ if (orm === 'prisma') { databaseEngine, databaseHost }); - writeFileSync( - join(projectDatabaseDirectory, 'schema.prisma'), - prismaSchema - ); + + const schemaPath = join(projectDatabaseDirectory, 'schema.prisma'); + writeFileSync(schemaPath, prismaSchema); + generatePrismaClient({ - databaseEngine, databaseHost, databaseDirectory, projectName }); + + const schemaArg = `${databaseDirectory}/schema.prisma`; + const projectCwd = join(projectName); + try { - await $`npx prisma generate --schema ${databaseDirectory}/schema.prisma`.cwd(join(projectName)); + await $`npx prisma generate --schema ${schemaArg}`.cwd(projectCwd); } catch (error) { console.error('Error generating Prisma client:', error); } + const isLocalDatabase = !databaseHost || databaseHost === 'none'; - if (isLocalDatabase && databaseEngine !== 'sqlite') { + + if (isLocalDatabase) { try { - await $`npx prisma migrate dev --name init --skip-generate --schema ${databaseDirectory}/schema.prisma`.cwd(projectName); + if (databaseEngine === 'sqlite') { + await $`npx prisma db push --schema ${schemaArg}`.cwd( + projectCwd + ); + } else { + await $`npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}`.cwd( + projectCwd + ); + } } catch (error) { - console.error('Error running Prisma migration:', error); + console.error('Error running Prisma migrations:', error); } - } else if (isLocalDatabase) { - console.log('Skipping initial Prisma migration for SQLite database.'); } } return; diff --git a/src/generators/project/generateDBBlock.ts b/src/generators/project/generateDBBlock.ts index bc06980..44cd5cd 100644 --- a/src/generators/project/generateDBBlock.ts +++ b/src/generators/project/generateDBBlock.ts @@ -100,7 +100,7 @@ const pool = ${expr} const db = drizzle(pool, { schema }) `; } -if (orm === 'prisma') { + if (orm === 'prisma') { if (!prismaDialectSet.has(databaseEngine)) return ''; return `const prisma = (await import('../../db/client')).default`; diff --git a/src/generators/project/generateImportsBlock.ts b/src/generators/project/generateImportsBlock.ts index b8fc750..1439447 100644 --- a/src/generators/project/generateImportsBlock.ts +++ b/src/generators/project/generateImportsBlock.ts @@ -103,11 +103,11 @@ export const generateImportsBlock = ({ rawImports.push(...connectorImports[key], ...dialectImports[key]); } if (orm === 'prisma') { - if (databaseEngine !== 'sqlite' || isRemoteHost) { - rawImports.push(`import { getEnv } from '@absolutejs/absolute'`); + rawImports.push(`import type { Elysia } from 'elysia'`); + rawImports.push(`import type { PrismaClient } from '@prisma/client'`); + if (authProvider === 'absoluteAuth') { + rawImports.push(`import type { User } from '@prisma/client'`); } - - rawImports.push(`import type { Elysia } from 'elysia'`, authProvider === 'absoluteAuth' ? `import type { User } from '@prisma/client'` : ``); } if (orm === 'drizzle' && !isRemoteHost && databaseEngine === 'postgresql') rawImports.push( From 3644f9635625c6bde4009991793eccde22130695 Mon Sep 17 00:00:00 2001 From: Jorge S Date: Wed, 12 Nov 2025 20:20:46 -0500 Subject: [PATCH 33/39] feat: add Prisma lifecycle cleanup and db aliasing Added graceful shutdown for Prisma (disconnect on SIGINT/SIGTERM) and aliased prisma client as 'db' so handlers work consistently across ORMs. Changes: - generateServer.ts: lifecycle cleanup block for prisma.() - generateDBBlock.ts: const db = prisma alias for handler compatibility --- src/generators/project/generateDBBlock.ts | 3 ++- src/generators/project/generateServer.ts | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/generators/project/generateDBBlock.ts b/src/generators/project/generateDBBlock.ts index 44cd5cd..1fa7a6b 100644 --- a/src/generators/project/generateDBBlock.ts +++ b/src/generators/project/generateDBBlock.ts @@ -103,7 +103,8 @@ const db = drizzle(pool, { schema }) if (orm === 'prisma') { if (!prismaDialectSet.has(databaseEngine)) return ''; - return `const prisma = (await import('../../db/client')).default`; + return `const prisma = (await import('../../db/client')).default +const db = prisma`; } return ''; diff --git a/src/generators/project/generateServer.ts b/src/generators/project/generateServer.ts index 7c220fe..03ecc28 100644 --- a/src/generators/project/generateServer.ts +++ b/src/generators/project/generateServer.ts @@ -76,6 +76,22 @@ export const generateServerFile = ({ frontendDirectories }); + let lifecycleCleanup = ''; + if (orm === 'prisma' && databaseEngine && databaseEngine !== 'none') { + lifecycleCleanup = ` +// Graceful shutdown for Prisma +process.on('SIGINT', async () => { + await prisma.$disconnect() + process.exit(0) +}) + +process.on('SIGTERM', async () => { + await prisma.$disconnect() + process.exit(0) +}) +`; + } + const content = `${importsBlock} ${manifestBlock} @@ -87,7 +103,7 @@ ${useBlock} const { request } = err console.error(\`Server error on \${request.method} \${request.url}: \${err.message}\`) }); -`; +${lifecycleCleanup}`; mkdirSync(backendDirectory, { recursive: true }); writeFileSync(serverFilePath, content); From 66aa1ef11c56035b009c0774fbfe680b5ea85255 Mon Sep 17 00:00:00 2001 From: Jorge S Date: Wed, 12 Nov 2025 20:33:19 -0500 Subject: [PATCH 34/39] cleaned lint errors --- src/commands/formatProject.ts | 5 +- src/commands/initializeGit.ts | 16 +- .../configurations/generatePackageJson.ts | 11 +- src/generators/db/generateHandlers.ts | 5 +- src/generators/db/generatePrismaSchema.ts | 22 +-- src/generators/db/handlerTemplates.ts | 160 ++++++++---------- src/generators/db/scaffoldDatabase.ts | 82 ++++----- src/generators/project/generateDBBlock.ts | 22 +-- .../project/generateImportsBlock.ts | 4 +- tests/harness/run-harness.ts | 8 +- tests/modules/hosts/test-hosts.ts | 35 ++-- 11 files changed, 162 insertions(+), 208 deletions(-) diff --git a/src/commands/formatProject.ts b/src/commands/formatProject.ts index e953f31..51bfdd0 100644 --- a/src/commands/formatProject.ts +++ b/src/commands/formatProject.ts @@ -1,7 +1,6 @@ -import { exit } from 'process'; import { spinner } from '@clack/prompts'; import { $ } from 'bun'; -import { green, red } from 'picocolors'; +import { green, yellow } from 'picocolors'; import { PackageManager } from '../types'; import { formatCommands, formatNoInstallCommands } from '../utils/commandMaps'; @@ -26,7 +25,7 @@ export const formatProject = async ({ spin.start('Formatting files…'); await $`sh -c ${fmt}`.cwd(projectName).quiet().nothrow(); spin.stop(green('Files formatted')); - } catch (err) { + } catch { spin.stop(yellow('Formatting skipped - continuing...'), 0); } }; diff --git a/src/commands/initializeGit.ts b/src/commands/initializeGit.ts index 704c5c7..df36ec8 100644 --- a/src/commands/initializeGit.ts +++ b/src/commands/initializeGit.ts @@ -18,15 +18,15 @@ const initializeRepository = async (projectName: string, spin: ReturnType { const spin = spinner(); - try { - spin.start('Checking git availability...'); - const isGitInstalled = await checkGitInstalled(); - - if (!isGitInstalled) { - spin.stop(red('Git is not installed. Please install git before proceeding.'), 1); - abort(); - } + spin.start('Checking git availability...'); + const isGitInstalled = await checkGitInstalled(); + + if (!isGitInstalled) { + spin.stop(red('Git is not installed. Please install git before proceeding.'), 1); + abort(); + } + try { await initializeRepository(projectName, spin); } catch (err) { spin.stop(red('Failed to initialize git'), 1); diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 19aaa1b..72dfe1f 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -137,18 +137,17 @@ export const createPackageJson = ({ (databaseHost === 'neon' || databaseHost === 'planetscale'); if (orm === 'prisma') { - for (const dep of prismaRuntimeDependencies) { + prismaRuntimeDependencies.forEach((dep) => { dependencies[dep.value] = resolveVersion(dep.value, dep.latestVersion); - } + }); - for (const dep of prismaDevDependencies) { - if (dep.value === '@prisma/extension-accelerate' && !usesAccelerate) - continue; + prismaDevDependencies.forEach((dep) => { + if (dep.value === '@prisma/extension-accelerate' && !usesAccelerate) return; devDependencies[dep.value] = resolveVersion( dep.value, dep.latestVersion ); - } + }); } if (orm === 'drizzle') { switch (databaseHost) { diff --git a/src/generators/db/generateHandlers.ts b/src/generators/db/generateHandlers.ts index 57b8f03..a93b1ed 100644 --- a/src/generators/db/generateHandlers.ts +++ b/src/generators/db/generateHandlers.ts @@ -20,8 +20,9 @@ export const generateDBHandlers = ({ const host = databaseHost && databaseHost !== 'none' ? databaseHost : 'local'; - const ormKey = - orm === 'drizzle' ? 'drizzle' : orm === 'prisma' ? 'prisma' : 'sql'; + let ormKey = 'sql'; + if (orm === 'drizzle') ormKey = 'drizzle'; + else if (orm === 'prisma') ormKey = 'prisma'; const key = `${databaseEngine}:${ormKey}:${host}` as const; // @ts-expect-error - TODO: Finish the other templates diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts index 59d6b79..be7c337 100644 --- a/src/generators/db/generatePrismaSchema.ts +++ b/src/generators/db/generatePrismaSchema.ts @@ -11,28 +11,22 @@ type DialectConfig = { const DIALECTS: Record = { cockroachdb: { - provider: 'cockroachdb', - countHistoryId: 'Int @id @default(sequence())' + countHistoryId: 'Int @id @default(sequence())', provider: 'cockroachdb' }, mariadb: { - provider: 'mysql', - countHistoryId: 'Int @id @default(autoincrement())' + countHistoryId: 'Int @id @default(autoincrement())', provider: 'mysql' }, mssql: { - provider: 'sqlserver', - countHistoryId: 'Int @id @default(autoincrement())' + countHistoryId: 'Int @id @default(autoincrement())', provider: 'sqlserver' }, mysql: { - provider: 'mysql', - countHistoryId: 'Int @id @default(autoincrement())' + countHistoryId: 'Int @id @default(autoincrement())', provider: 'mysql' }, postgresql: { - provider: 'postgresql', - countHistoryId: 'Int @id @default(autoincrement())' + countHistoryId: 'Int @id @default(autoincrement())', provider: 'postgresql' }, sqlite: { - provider: 'sqlite', - countHistoryId: 'Int @id @default(autoincrement())' + countHistoryId: 'Int @id @default(autoincrement())', provider: 'sqlite' } }; @@ -59,7 +53,7 @@ const buildDatasourceBlock = (cfg: DialectConfig) => `datasource db { url = env("DATABASE_URL") }`; -const buildUserModel = (cfg: DialectConfig) => `model User { +const buildUserModel = () => `model User { auth_sub String @id metadata Json created_at DateTime @default(now()) @@ -79,7 +73,7 @@ export const generatePrismaSchema = ({ databaseEngine, databaseHost, authProvider -}: GeneratePrismaSchemaProps): string => { +}: GeneratePrismaSchemaProps) => { const cfg = DIALECTS[databaseEngine]; if (!cfg) { throw new Error( diff --git a/src/generators/db/handlerTemplates.ts b/src/generators/db/handlerTemplates.ts index cd1039e..9581aff 100644 --- a/src/generators/db/handlerTemplates.ts +++ b/src/generators/db/handlerTemplates.ts @@ -271,24 +271,21 @@ return rows[0] ?? null; }; const prismaQueryOperations: QueryOperations = { - selectUser: `const user = await db.user.findUnique({ - where: { auth_sub: authSub } + insertHistory: `const newHistory = await db.countHistory.create({ + data: { count } }) - return user`, - insertUser: `const newUser = await db.user.upsert({ + return newHistory`, insertUser: `const newUser = await db.user.upsert({ where: { auth_sub: authSub }, update: { metadata: userIdentity }, create: { auth_sub: authSub, metadata: userIdentity } }) - return newUser`, - selectHistory: `const history = await db.countHistory.findUnique({ + return newUser`, selectHistory: `const history = await db.countHistory.findUnique({ where: { uid } }) - return history`, - insertHistory: `const newHistory = await db.countHistory.create({ - data: { count } + return history`, selectUser: `const user = await db.user.findUnique({ + where: { auth_sub: authSub } }) - return newHistory` + return user` }; type HandlerType = { @@ -346,154 +343,129 @@ const mysqlDrizzleQueryOperations: QueryOperations = { }; const driverConfigurations = { - 'cockroachdb:sql:local': { + 'cockroachdb:prisma:local': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'cockroachdb:sql:local': { dbType: 'Pool', importLines: `import { Pool } from 'pg'`, queries: cockroachdbPoolQueryOperations - }, - 'gel:sql:local': { + }, 'gel:sql:local': { dbType: 'GelClient', importLines: `import { GelClient } from 'gel'`, queries: gelSqlQueryOperations - }, - 'mariadb:sql:local': { + }, 'mariadb:prisma:local': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'mariadb:sql:local': { dbType: 'Pool', importLines: `import { Pool } from 'mariadb'`, queries: mariadbSqlQueryOperations - }, - 'mongodb:native:local': { + }, 'mongodb:native:local': { dbType: 'Db', importLines: `import { Db } from 'mongodb'`, queries: mongodbQueryOperations - }, - 'mssql:sql:local': { + }, 'mssql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'mssql:sql:local': { dbType: 'ConnectionPool', importLines: `import { ConnectionPool } from 'mssql'`, queries: mssqlSqlQueryOperations - }, - 'mysql:drizzle:local': { + }, 'mysql:drizzle:local': { dbType: 'MySql2Database', importLines: ` import { eq } from 'drizzle-orm' import { MySql2Database } from 'drizzle-orm/mysql2' import { schema, type SchemaType } from '../../../db/schema'`, queries: mysqlDrizzleQueryOperations - }, - 'mysql:sql:local': { + }, 'mysql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'mysql:prisma:planetscale': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'mysql:sql:local': { dbType: 'Pool', handlerTypes: mysqlHandlerTypes, importLines: `import { Pool, ResultSetHeader, RowDataPacket } from 'mysql2/promise'`, queries: mysqlSqlQueryOperations - }, - 'postgresql:drizzle:local': { + }, 'postgresql:drizzle:local': { dbType: 'NodePgDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLDatabase } from 'drizzle-orm/bun-sql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'postgresql:drizzle:neon': { + }, 'postgresql:drizzle:neon': { dbType: 'NeonDatabase', importLines: ` import { eq } from 'drizzle-orm' import { NeonDatabase } from 'drizzle-orm/neon-serverless' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'postgresql:sql:local': { - dbType: 'SQL', - importLines: `import { SQL } from 'bun'`, - queries: postgresSqlQueryOperations - }, - 'postgresql:sql:neon': { - dbType: 'NeonQueryFunction', - importLines: `import { NeonQueryFunction } from '@neondatabase/serverless'`, - queries: postgresSqlQueryOperations - }, - 'postgresql:drizzle:planetscale': { + }, 'postgresql:drizzle:planetscale': { dbType: 'PlanetScaleDatabase', importLines: ` import { eq } from 'drizzle-orm' import { PlanetScaleDatabase } from 'drizzle-orm/planetscale-serverless' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations -}, - 'singlestore:sql:local': { +}, 'postgresql:prisma:local': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'postgresql:prisma:neon': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'postgresql:sql:local': { + dbType: 'SQL', + importLines: `import { SQL } from 'bun'`, + queries: postgresSqlQueryOperations + }, 'postgresql:sql:neon': { + dbType: 'NeonQueryFunction', + importLines: `import { NeonQueryFunction } from '@neondatabase/serverless'`, + queries: postgresSqlQueryOperations + }, 'singlestore:sql:local': { dbType: 'Connection', importLines: `import { Connection } from '@singlestore/db-client'`, queries: singlestoreSqlQueryOperations - }, - 'sqlite:drizzle:local': { + }, 'sqlite:drizzle:local': { dbType: 'BunSQLiteDatabase', importLines: ` import { eq } from 'drizzle-orm' import { BunSQLiteDatabase } from 'drizzle-orm/bun-sqlite' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'sqlite:drizzle:turso': { + }, 'sqlite:drizzle:turso': { dbType: 'LibSQLDatabase', importLines: ` import { eq } from 'drizzle-orm' import { LibSQLDatabase } from 'drizzle-orm/libsql' import { schema, type SchemaType } from '../../../db/schema'`, queries: drizzleQueryOperations - }, - 'sqlite:sql:local': { - dbType: 'Database', - importLines: `import { Database } from 'bun:sqlite'`, - queries: bunSqliteQueryOperations - }, - 'sqlite:sql:turso': { - dbType: 'Client', - importLines: `import { Client } from '@libsql/client'`, - queries: libsqlQueryOperations - }, - 'postgresql:prisma:neon': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'postgresql:prisma:local': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'mysql:prisma:planetscale': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'mysql:prisma:local': { + }, 'sqlite:prisma:local': { dbType: 'PrismaClient', importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations - }, - 'sqlite:prisma:turso': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'sqlite:prisma:local': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'mariadb:prisma:local': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'cockroachdb:prisma:local': { - dbType: 'PrismaClient', - importLines: `import type { PrismaClient } from '@prisma/client'`, - queries: prismaQueryOperations - }, - 'mssql:prisma:local': { + }, 'sqlite:prisma:turso': { dbType: 'PrismaClient', importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations + }, 'sqlite:sql:local': { + dbType: 'Database', + importLines: `import { Database } from 'bun:sqlite'`, + queries: bunSqliteQueryOperations + }, 'sqlite:sql:turso': { + dbType: 'Client', + importLines: `import { Client } from '@libsql/client'`, + queries: libsqlQueryOperations } } as const; diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index 65b66bc..cc35a7a 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -1,17 +1,16 @@ import { mkdirSync, writeFileSync } from 'fs'; import { join } from 'path'; import { $ } from 'bun'; -import { isDrizzleDialect } from '../../typeGuards'; +import { isDrizzleDialect, isPrismaDialect } from '../../typeGuards'; import type { CreateConfiguration } from '../../types'; import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; import { createDrizzleConfig } from '../configurations/generateDrizzleConfig'; +import { generatePrismaClient } from '../configurations/generatePrismaClient'; import { generateDrizzleSchema } from './generateDrizzleSchema'; import { generateDBHandlers } from './generateHandlers'; -import { generateSqliteSchema } from './generateSqliteSchema'; import { generatePrismaSchema } from './generatePrismaSchema'; +import { generateSqliteSchema } from './generateSqliteSchema'; import { scaffoldDocker } from './scaffoldDocker'; -import { isPrismaDialect } from '../../typeGuards'; -import { generatePrismaClient } from '../configurations/generatePrismaClient'; @@ -103,52 +102,45 @@ export const scaffoldDatabase = async ({ return; } - if (orm === 'prisma') { - if (!isPrismaDialect(databaseEngine)) { - throw new Error('Internal type error: Expected a Prisma dialect'); - } + if (orm !== 'prisma') return; - const prismaSchema = generatePrismaSchema({ - authProvider, - databaseEngine, - databaseHost - }); + if (!isPrismaDialect(databaseEngine)) { + throw new Error('Internal type error: Expected a Prisma dialect'); + } + + const prismaSchema = generatePrismaSchema({ + authProvider, + databaseEngine, + databaseHost + }); - const schemaPath = join(projectDatabaseDirectory, 'schema.prisma'); - writeFileSync(schemaPath, prismaSchema); + const schemaPath = join(projectDatabaseDirectory, 'schema.prisma'); + writeFileSync(schemaPath, prismaSchema); - generatePrismaClient({ - databaseHost, - databaseDirectory, - projectName - }); + generatePrismaClient({ + databaseDirectory, databaseHost, projectName + }); - const schemaArg = `${databaseDirectory}/schema.prisma`; - const projectCwd = join(projectName); + const schemaArg = `${databaseDirectory}/schema.prisma`; + const projectCwd = join(projectName); - try { - await $`npx prisma generate --schema ${schemaArg}`.cwd(projectCwd); - } catch (error) { - console.error('Error generating Prisma client:', error); - } + try { + await $`npx prisma generate --schema ${schemaArg}`.cwd(projectCwd); + } catch (error) { + console.error('Error generating Prisma client:', error); + } - const isLocalDatabase = !databaseHost || databaseHost === 'none'; - - if (isLocalDatabase) { - try { - if (databaseEngine === 'sqlite') { - await $`npx prisma db push --schema ${schemaArg}`.cwd( - projectCwd - ); - } else { - await $`npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}`.cwd( - projectCwd - ); - } - } catch (error) { - console.error('Error running Prisma migrations:', error); - } - } + const isLocalDatabase = !databaseHost || databaseHost === 'none'; + if (!isLocalDatabase) return; + + if (databaseEngine === 'sqlite') { + const result = await $`npx prisma db push --schema ${schemaArg}`.cwd(projectCwd).nothrow(); + if (result.exitCode !== 0) console.error('Error running Prisma migrations:', result.stderr); + + return; } - return; + + const result = await $`npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}`.cwd(projectCwd).nothrow(); + if (result.exitCode !== 0) console.error('Error running Prisma migrations:', result.stderr); + }; diff --git a/src/generators/project/generateDBBlock.ts b/src/generators/project/generateDBBlock.ts index 1fa7a6b..5c671e4 100644 --- a/src/generators/project/generateDBBlock.ts +++ b/src/generators/project/generateDBBlock.ts @@ -73,33 +73,35 @@ export const generateDBBlock = ({ return `const pool = ${hostCfg.expr}`; } + if (orm === 'drizzle') { if (!drizzleDialectSet.has(databaseEngine)) return ''; const expr = engineGroup[hostKey]?.expr ?? remoteDrizzleInit[hostKey]; if (!expr) return ''; + + const mysqlMode = databaseHost === 'planetscale' ? 'planetscale' : 'default'; if (databaseEngine === 'mysql') { - const mode = databaseHost === 'planetscale' ? 'planetscale' : 'default'; - - return ` + return ` const pool = ${expr} -const db = drizzle(pool, { schema, mode: '${mode}' }) +const db = drizzle(pool, { schema, mode: '${mysqlMode}' }) `; - } + } - if (databaseEngine === 'sqlite') { - return ` + if (databaseEngine === 'sqlite') { + return ` const pool = ${expr} const db = drizzle(pool, { schema }) `; - } + } - return ` + return ` const pool = ${expr} const db = drizzle(pool, { schema }) `; -} + } + if (orm === 'prisma') { if (!prismaDialectSet.has(databaseEngine)) return ''; diff --git a/src/generators/project/generateImportsBlock.ts b/src/generators/project/generateImportsBlock.ts index 1439447..0c32437 100644 --- a/src/generators/project/generateImportsBlock.ts +++ b/src/generators/project/generateImportsBlock.ts @@ -105,9 +105,7 @@ export const generateImportsBlock = ({ if (orm === 'prisma') { rawImports.push(`import type { Elysia } from 'elysia'`); rawImports.push(`import type { PrismaClient } from '@prisma/client'`); - if (authProvider === 'absoluteAuth') { - rawImports.push(`import type { User } from '@prisma/client'`); - } + if (authProvider === 'absoluteAuth') rawImports.push(`import type { User } from '@prisma/client'`); } if (orm === 'drizzle' && !isRemoteHost && databaseEngine === 'postgresql') rawImports.push( diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts index 879ce36..daa493a 100644 --- a/tests/harness/run-harness.ts +++ b/tests/harness/run-harness.ts @@ -110,13 +110,13 @@ const hasDeps = (pkgPath: string, deps: string[]) => { try { const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); - const allDeps = { ...pkg.dependencies, ...pkg.devDependencies }; + const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies }; const missing = deps.filter(dep => !allDeps[dep]); return missing.length === 0 ? { msg: `All ${deps.length} deps present`, ok: true } as const : { msg: `Missing deps: ${missing.join(', ')}`, ok: false } as const; - } catch (err) { + } catch (err: unknown) { return { msg: `Failed to parse package.json: ${err}`, ok: false } as const; } } @@ -163,7 +163,7 @@ const scaffold = async () => { success(`Project created: ${PROJECT_NAME}`); }; -const validate = async (): Promise => { +const validate = async () => { phase('VALIDATE'); const allChecks = [ @@ -177,7 +177,7 @@ const validate = async (): Promise => { runChecks('Validation', checks); }; -const install = async (): Promise => { +const install = async () => { phase('INSTALL'); const result = await exec('bun', ['install'], OUTPUT_PATH, TIMEOUTS.install); diff --git a/tests/modules/hosts/test-hosts.ts b/tests/modules/hosts/test-hosts.ts index 5236b21..7394c17 100644 --- a/tests/modules/hosts/test-hosts.ts +++ b/tests/modules/hosts/test-hosts.ts @@ -33,10 +33,10 @@ const TIMEOUT = TIMEOUT_MINUTES * MS_PER_MINUTE; interface TestResult { name: string; passed: boolean; } -const testHost = async (host: HostConfig): Promise => { +const testHost = async (host: HostConfig) => { const projectName = `test-${host.name}`; - const fail = () => ({ name: host.name, passed: false }); - const success = () => ({ name: host.name, passed: true }); + const failResult: TestResult = { name: host.name, passed: false }; + const successResult: TestResult = { name: host.name, passed: true }; console.log(`Testing: ${host.name.toUpperCase()}`); cleanup(projectName); @@ -96,8 +96,8 @@ const testHost = async (host: HostConfig): Promise => { return false; }; - if (!checkTimeout()) return fail(); - if (!await checkExitCode()) return fail(); + if (!checkTimeout()) return failResult; + if (!await checkExitCode()) return failResult; console.log('CLI completed successfully'); console.log('\n Step 2 - Checking project folder: '); @@ -114,7 +114,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(pkgPath)) { console.log('Failed: No package.json'); - return fail(); + return failResult; } const pkgContent = readFileSync(pkgPath, 'utf-8'); @@ -128,7 +128,7 @@ const testHost = async (host: HostConfig): Promise => { console.log(`Failed: Missing ${host.package}`); console.log('Available packages:', Object.keys(allDeps).filter(packageName => packageName.includes('data'))); - return fail(); + return failResult; } console.log(`Has ${host.package}`); @@ -138,7 +138,7 @@ const testHost = async (host: HostConfig): Promise => { console.log(`Failed: .env file should NOT exist for hosted database (${host.name})`); console.log('Hosted databases expect DATABASE_URL to be provided by the user'); - return fail(); + return failResult; } console.log('Correctly no .env file for hosted database'); @@ -147,14 +147,14 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(drizzlePath)) { console.log('Failed: No drizzle.config.ts'); - return fail(); + return failResult; } const drizzleContent = readFileSync(drizzlePath, 'utf-8'); if (!drizzleContent.includes('DATABASE_URL')) { console.log('Failed: drizzle.config.ts missing DATABASE_URL reference'); - return fail(); + return failResult; } if (!drizzleContent.includes('env.DATABASE_URL')) { @@ -167,7 +167,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(schemaPath)) { console.log(' Failed: No db/schema.ts'); - return fail(); + return failResult; } console.log(' db/schema.ts exists'); @@ -176,7 +176,7 @@ const testHost = async (host: HostConfig): Promise => { if (!existsSync(serverPath)) { console.log(' Failed: No server.ts'); - return fail(); + return failResult; } const serverContent = readFileSync(serverPath, 'utf-8'); @@ -193,13 +193,13 @@ const testHost = async (host: HostConfig): Promise => { if (!hasCorrectImport) { console.log(` Failed: server.ts missing ${host.package} import`); - return fail(); + return failResult; } console.log(' server.ts has correct database import'); console.log(`${host.name.toUpperCase()} - ALL CHECKS PASSED`); - return success(); + return successResult; } const cleanup = (projectName: string) => { @@ -217,15 +217,12 @@ const runAllTests = async () => { console.log('production environment. Tests verify configuration files are'); console.log('set up to expect DATABASE_URL from the environment.\n'); - const runTestForHost = async (host: HostConfig): Promise => - testHost(host); - - const results: TestResult[] = await Promise.all(HOSTS.map(runTestForHost)); + const results: TestResult[] = await Promise.all(HOSTS.map(testHost)); console.log('TEST SUMMARY'); const PAD_WIDTH = 15; - const DEFAULT_COUNTS = { failed: 0, passed: 0 }; + const DEFAULT_COUNTS: { failed: number; passed: number } = { failed: 0, passed: 0 }; const summary = results.reduce((acc, result) => ({ failed: acc.failed + (result.passed ? 0 : 1), From 6ba9bc615493cee3b233a057009fd2408ced368a Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Mon, 17 Nov 2025 19:38:13 -0500 Subject: [PATCH 35/39] Prisma Complete --- src/data.ts | 1 + src/generators/configurations/generateEnv.ts | 7 ++- .../configurations/generatePackageJson.ts | 20 ++++---- .../configurations/generatePrismaClient.ts | 12 ++--- src/generators/db/generatePrismaSchema.ts | 37 ++++++++------- src/generators/db/scaffoldDatabase.ts | 47 ++++++++++++++++--- src/scaffold.ts | 1 + 7 files changed, 85 insertions(+), 40 deletions(-) diff --git a/src/data.ts b/src/data.ts index 0f104dd..7e734d6 100644 --- a/src/data.ts +++ b/src/data.ts @@ -23,6 +23,7 @@ export const availablePrismaDialects = [ 'mysql', 'postgresql', 'sqlite', + 'mongodb', 'mariadb', 'cockroachdb', 'mssql' diff --git a/src/generators/configurations/generateEnv.ts b/src/generators/configurations/generateEnv.ts index 020b9a6..52d8656 100644 --- a/src/generators/configurations/generateEnv.ts +++ b/src/generators/configurations/generateEnv.ts @@ -29,12 +29,15 @@ export const generateEnv = ({ const vars = [...envVariables]; if ( - databaseEngine !== 'sqlite' && databaseEngine !== 'none' && databaseEngine !== undefined && (databaseHost === 'none' || databaseHost === undefined) ) { - vars.push(`DATABASE_URL=${databaseURLS[databaseEngine]}`); + if (databaseEngine === 'sqlite') { + vars.push('DATABASE_URL=file:./db/database.sqlite'); + } else { + vars.push(`DATABASE_URL=${databaseURLS[databaseEngine]}`); + } } if (vars.length === 0) return; diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 72dfe1f..1d99887 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -25,6 +25,7 @@ type CreatePackageJsonProps = Pick< | 'orm' | 'frontendDirectories' | 'codeQualityTool' + | 'databaseDirectory' > & { projectName: string; latest: boolean; @@ -40,7 +41,8 @@ export const createPackageJson = ({ useTailwind, latest, frontendDirectories, - codeQualityTool + codeQualityTool, + databaseDirectory }: CreatePackageJsonProps) => { const s = spinner(); if (latest) s.start('Resolving package versions…'); @@ -231,14 +233,14 @@ export const createPackageJson = ({ } if (orm === 'prisma') { - scripts['postinstall'] = 'prisma generate'; - scripts['db:generate'] = 'prisma generate'; - scripts['db:push'] = 'prisma db push'; - scripts['db:studio'] = 'prisma studio'; - scripts['db:migrate'] = 'prisma migrate dev'; - scripts['db:migrate:deploy'] = 'prisma migrate deploy'; - scripts['db:migrate:reset'] = 'prisma migrate reset'; - + const schemaPath = databaseDirectory ? `${databaseDirectory}/schema.prisma` : 'db/schema.prisma'; + scripts['postinstall'] = `prisma generate --schema ${schemaPath}`; + scripts['db:generate'] = `prisma generate --schema ${schemaPath}`; + scripts['db:push'] = `prisma db push --schema ${schemaPath}`; + scripts['db:studio'] = `prisma studio --schema ${schemaPath}`; + scripts['db:migrate'] = `prisma migrate dev --schema ${schemaPath}`; + scripts['db:migrate:deploy'] = `prisma migrate deploy --schema ${schemaPath}`; + scripts['db:migrate:reset'] = `prisma migrate reset --schema ${schemaPath}`; } const packageJson: PackageJson = { diff --git a/src/generators/configurations/generatePrismaClient.ts b/src/generators/configurations/generatePrismaClient.ts index df5db7e..1ebff6b 100644 --- a/src/generators/configurations/generatePrismaClient.ts +++ b/src/generators/configurations/generatePrismaClient.ts @@ -3,9 +3,9 @@ import { join } from 'path'; import type { DatabaseHost } from '../../types'; type GeneratePrismaClientProps = { - databaseHost: DatabaseHost; - databaseDirectory: string; - projectName: string; + databaseHost: DatabaseHost; + databaseDirectory: string; + projectName: string; }; const buildClientModule = (databaseHost: DatabaseHost) => { @@ -45,9 +45,9 @@ export default prismaClient }; export const generatePrismaClient = ({ - databaseHost, - databaseDirectory, - projectName + databaseHost, + databaseDirectory, + projectName }: GeneratePrismaClientProps) => { const contents = buildClientModule(databaseHost); writeFileSync( diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts index be7c337..129fc4d 100644 --- a/src/generators/db/generatePrismaSchema.ts +++ b/src/generators/db/generatePrismaSchema.ts @@ -10,30 +10,33 @@ type DialectConfig = { }; const DIALECTS: Record = { - cockroachdb: { + cockroachdb: { countHistoryId: 'Int @id @default(sequence())', provider: 'cockroachdb' - }, - mariadb: { + }, + mariadb: { countHistoryId: 'Int @id @default(autoincrement())', provider: 'mysql' - }, + }, + mongodb: { + countHistoryId: 'String @id @default(auto()) @map("_id") @db.ObjectId', provider: 'mongodb' + }, mssql: { countHistoryId: 'Int @id @default(autoincrement())', provider: 'sqlserver' - }, - mysql: { + }, + mysql: { countHistoryId: 'Int @id @default(autoincrement())', provider: 'mysql' - }, - postgresql: { + }, + postgresql: { countHistoryId: 'Int @id @default(autoincrement())', provider: 'postgresql' - }, - sqlite: { + }, + sqlite: { countHistoryId: 'Int @id @default(autoincrement())', provider: 'sqlite' } }; type GeneratePrismaSchemaProps = { - databaseEngine: AvailablePrismaDialect; - databaseHost: DatabaseHost; - authProvider: AuthProvider; + databaseEngine: AvailablePrismaDialect; + databaseHost: DatabaseHost; + authProvider: AuthProvider; }; const buildGeneratorBlock = (databaseHost: DatabaseHost) => { @@ -47,7 +50,7 @@ const buildGeneratorBlock = (databaseHost: DatabaseHost) => { provider = "prisma-client-js"${previewFeatures} }`; }; - + const buildDatasourceBlock = (cfg: DialectConfig) => `datasource db { provider = "${cfg.provider}" url = env("DATABASE_URL") @@ -57,7 +60,7 @@ const buildUserModel = () => `model User { auth_sub String @id metadata Json created_at DateTime @default(now()) - + @@map("users") }`; @@ -65,7 +68,7 @@ const buildCountHistoryModel = (cfg: DialectConfig) => `model CountHistory { uid ${cfg.countHistoryId} count Int created_at DateTime @default(now()) - + @@map("count_history") }`; @@ -85,7 +88,7 @@ export const generatePrismaSchema = ({ const datasourceBlock = buildDatasourceBlock(cfg); const modelBlock = authProvider === 'absoluteAuth' - ? buildUserModel(cfg) + ? buildUserModel() : buildCountHistoryModel(cfg); return [generatorBlock, datasourceBlock, modelBlock].join('\n\n'); diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index cc35a7a..abe8201 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -4,8 +4,10 @@ import { $ } from 'bun'; import { isDrizzleDialect, isPrismaDialect } from '../../typeGuards'; import type { CreateConfiguration } from '../../types'; import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; +import { checkDockerInstalled } from '../../utils/checkDockerInstalled'; import { createDrizzleConfig } from '../configurations/generateDrizzleConfig'; import { generatePrismaClient } from '../configurations/generatePrismaClient'; +import { generateDockerContainer } from './generateDockerContainer'; import { generateDrizzleSchema } from './generateDrizzleSchema'; import { generateDBHandlers } from './generateHandlers'; import { generatePrismaSchema } from './generatePrismaSchema'; @@ -69,18 +71,31 @@ export const scaffoldDatabase = async ({ )}"`.cwd(projectName); } + // For Prisma, we need to create the docker-compose file but skip schema initialization + // For Drizzle and no ORM, we use scaffoldDocker which handles schema initialization if ( (databaseHost === 'none' || databaseHost === undefined) && databaseEngine !== 'sqlite' && databaseEngine !== undefined && databaseEngine !== 'none' ) { - await scaffoldDocker({ - authProvider, - databaseEngine, - projectDatabaseDirectory, - projectName - }); + if (orm === 'prisma') { + // For Prisma, just create the docker-compose file without initializing schema + await checkDockerInstalled(); + const dbContainer = generateDockerContainer(databaseEngine); + writeFileSync( + join(projectDatabaseDirectory, 'docker-compose.db.yml'), + dbContainer, + 'utf-8' + ); + } else { + await scaffoldDocker({ + authProvider, + databaseEngine, + projectDatabaseDirectory, + projectName + }); + } } if (orm === 'drizzle') { @@ -133,6 +148,26 @@ export const scaffoldDatabase = async ({ const isLocalDatabase = !databaseHost || databaseHost === 'none'; if (!isLocalDatabase) return; + // For non-SQLite databases, ensure Docker container is running before migrations + if (databaseEngine !== 'sqlite') { + try { + await $`bun db:up`.cwd(projectCwd); + // Wait for database to be ready using appropriate wait command + const { initTemplates } = await import('./dockerInitTemplates'); + if (databaseEngine in initTemplates) { + const waitCommand = initTemplates[databaseEngine as keyof typeof initTemplates]?.wait; + if (waitCommand) { + await $`docker compose -p ${databaseEngine} -f ${databaseDirectory}/docker-compose.db.yml exec -T db bash -lc '${waitCommand}'`.cwd(projectCwd).nothrow(); + } + } else { + // Fallback for databases not in initTemplates (e.g., MongoDB): wait 5 seconds + await new Promise(resolve => setTimeout(resolve, 5000)); + } + } catch (error) { + console.error('Error starting database container:', error); + } + } + if (databaseEngine === 'sqlite') { const result = await $`npx prisma db push --schema ${schemaArg}`.cwd(projectCwd).nothrow(); if (result.exitCode !== 0) console.error('Error running Prisma migrations:', result.stderr); diff --git a/src/scaffold.ts b/src/scaffold.ts index 2313efa..a0e17e8 100644 --- a/src/scaffold.ts +++ b/src/scaffold.ts @@ -71,6 +71,7 @@ export const scaffold = async ({ codeQualityTool, databaseEngine, databaseHost, + databaseDirectory, frontendDirectories, latest, orm, From 518804b9d514c40c6592b344d1f6659decd8ce91 Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Mon, 17 Nov 2025 19:39:05 -0500 Subject: [PATCH 36/39] Removed Test Folder --- tests/compat.test.ts | 119 -------- tests/harness/run-harness.ts | 253 ----------------- tests/modules/auth/auth.spec.ts | 9 - tests/modules/backend/backend.elysia.spec.ts | 7 - tests/modules/db/db.spec.ts | 46 ---- tests/modules/frontend/frontend.react.spec.ts | 9 - tests/modules/hosts/neon-test.ts | 92 ------- tests/modules/hosts/planetscale-test.ts | 91 ------- tests/modules/hosts/test-hosts.ts | 254 ------------------ tests/modules/hosts/turso-test.ts | 90 ------- tests/utils/hostRules.ts | 11 - 11 files changed, 981 deletions(-) delete mode 100644 tests/compat.test.ts delete mode 100644 tests/harness/run-harness.ts delete mode 100644 tests/modules/auth/auth.spec.ts delete mode 100644 tests/modules/backend/backend.elysia.spec.ts delete mode 100644 tests/modules/db/db.spec.ts delete mode 100644 tests/modules/frontend/frontend.react.spec.ts delete mode 100644 tests/modules/hosts/neon-test.ts delete mode 100644 tests/modules/hosts/planetscale-test.ts delete mode 100644 tests/modules/hosts/test-hosts.ts delete mode 100644 tests/modules/hosts/turso-test.ts delete mode 100644 tests/utils/hostRules.ts diff --git a/tests/compat.test.ts b/tests/compat.test.ts deleted file mode 100644 index fd7d874..0000000 --- a/tests/compat.test.ts +++ /dev/null @@ -1,119 +0,0 @@ -// Run: bun test -// Purpose: validate compatibility using src/data + real guards, no scaffolding. - -/* eslint-disable import/no-unused-modules */ -import { describe, it, expect, test } from "bun:test"; -import { - availableFrontends, - availableAuthProviders, - availableDatabaseEngines, - availableDatabaseHosts, - availableORMs, - availableCodeQualityTools, - availableDrizzleDialects, - availablePrismaDialects, -} from "../src/data"; -import { isDrizzleDialect, isPrismaDialect } from "../src/typeGuards"; - -export {}; - -import { hostAllowsEngine } from "./utils/hostRules"; - -// ---------- integrity checks -------------------------------------------------- -describe("option integrity (from src/data.ts)", () => { - it("frontends non-empty", () => { - expect(availableFrontends.length).toBeGreaterThan(0); - }); - - it("auth providers include none", () => { - expect(availableAuthProviders).toContain("none"); - }); - - it("engines include none", () => { - expect(availableDatabaseEngines).toContain("none"); - }); - - it("hosts include none", () => { - expect(availableDatabaseHosts).toContain("none"); - }); - - it("orms include none", () => { - expect(availableORMs).toContain("none"); - }); - - it("formatters include at least one known tool", () => { - expect( - availableCodeQualityTools.includes("biome") || - availableCodeQualityTools.includes("eslint+prettier") - ).toBeTrue(); - }); -}); - -// ---------- host ↔ engine rules ---------------------------------------------- -describe("host ↔ engine compatibility", () => { - const cases: Array<{ host: string; eng: string; isAllowed: boolean }> = [ - { eng: "sqlite", host: "turso", isAllowed: true }, - { eng: "postgresql", host: "turso", isAllowed: false }, - { eng: "mysql", host: "turso", isAllowed: false }, - - { eng: "postgresql", host: "neon", isAllowed: true }, - { eng: "sqlite", host: "neon", isAllowed: false }, - { eng: "mysql", host: "neon", isAllowed: false }, - - { eng: "mysql", host: "planetscale", isAllowed: true }, - { eng: "postgresql", host: "planetscale", isAllowed: true }, - { eng: "sqlite", host: "planetscale", isAllowed: false }, - - { eng: "sqlite", host: "none", isAllowed: true }, - { eng: "postgresql", host: "none", isAllowed: true }, - { eng: "mysql", host: "none", isAllowed: true }, - ]; - - it.each(cases)("host %s with engine %s => %s", ({ host, eng, isAllowed }) => { - expect(hostAllowsEngine(host, eng)).toBe(isAllowed); - }); -}); - -// ---------- ORM ↔ engine dialect subsets ------------------------------------- -// We assert subset relations, not "all engines are valid". -describe("ORM dialect subsets", () => { - it("Drizzle dialects ⊆ available engines", () => { - for (const eng of availableDrizzleDialects) { - expect(availableDatabaseEngines).toContain(eng); - expect(isDrizzleDialect(eng)).toBeTrue(); - } - }); - - it("engines not in Drizzle set are rejected by Drizzle guard", () => { - for (const eng of availableDatabaseEngines) { - if (eng === "none") continue; - const shouldBe = availableDrizzleDialects.includes(eng); - expect(isDrizzleDialect(eng)).toBe(shouldBe); - } - }); - - it("Prisma dialects ⊆ available engines", () => { - for (const eng of availablePrismaDialects) { - expect(availableDatabaseEngines).toContain(eng); - expect(isPrismaDialect(eng)).toBeTrue(); - } - }); - - it("engines not in Prisma set are rejected by Prisma guard", () => { - for (const eng of availableDatabaseEngines) { - if (eng === "none") continue; - const shouldBe = availablePrismaDialects.includes(eng); - expect(isPrismaDialect(eng)).toBe(shouldBe); - } - }); -}); - -// ---------- smoke scaffold (disabled for now) -------------------------------- -// Real scaffolding touches FS, templates, env. Keep it out of unit runs. -test.skip("scaffold smoke: react + drizzle + sqlite + auth none", () => { - expect(true).toBe(true); -}); - -test.skip("scaffold smoke: html only, no db, no orm, no auth", () => { - expect(true).toBe(true); -}); \ No newline at end of file diff --git a/tests/harness/run-harness.ts b/tests/harness/run-harness.ts deleted file mode 100644 index daa493a..0000000 --- a/tests/harness/run-harness.ts +++ /dev/null @@ -1,253 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { existsSync, readFileSync, rmSync } from 'fs'; -import { join } from 'path'; -import { spawn } from 'bun'; - -// Allow process usage in test environment -declare const process: { - cwd(): string; - env: Record; - exit(code: number): never; -}; - -const SCAFFOLD_NAME = 'test-scaffold'; -const PROJECT_PATH = join(process.cwd(), SCAFFOLD_NAME); - -// Test configuration removed - using direct flags instead -// Test configuration - -const PROJECT_NAME = 'test-scaffold'; -const REPO_ROOT = process.cwd(); -const CLI_PATH = join(REPO_ROOT, 'src', 'index.ts'); -const OUTPUT_PATH = join(REPO_ROOT, PROJECT_NAME); -// Time constants in milliseconds -const SECONDS_PER_MINUTE = 60; -const MS_PER_SECOND = 1000; -const MINUTE_MS = SECONDS_PER_MINUTE * MS_PER_SECOND; -const TIMEOUT_MINUTES = 3; -const INSTALL_TIMEOUT_MS = TIMEOUT_MINUTES * MINUTE_MS; -const SCAFFOLD_TIMEOUT_MS = TIMEOUT_MINUTES * MINUTE_MS; - -interface Timeouts { - install: number; - scaffold: number; -} - -interface Expected { - deps: string[]; - dirs: string[]; - files: string[]; -} - -const FLAGS = ['--react', '--db', 'postgresql', '--orm', 'drizzle', '--auth', 'absoluteAuth', - '--db-host', 'neon', '--eslint+prettier', '--tailwind', '--directory', 'default', '--git', - '--skip', '--install']; - -const TIMEOUTS = { - install: INSTALL_TIMEOUT_MS, - scaffold: SCAFFOLD_TIMEOUT_MS, -} satisfies Timeouts; - -const EXPECTED = { - deps: ['drizzle-orm', 'react', 'elysia', '@absolutejs/absolute', '@absolutejs/auth'], - dirs: ['src', 'src/frontend', 'src/backend', 'db'], - files: ['package.json', 'tsconfig.json', 'src/backend/server.ts', 'db/schema.ts'], -} satisfies Expected; -interface CheckResult { msg: string; ok: boolean; } - -const phase = (name: string) => console.log(`${name}`); -const info = (msg: string) => console.log(`${msg}`); -const error = (msg: string) => console.error(`${msg}`); -const success = (msg: string) => console.log(`${msg}`); -const exec = async (cmd: string, args: string[], cwd: string, timeoutMs?: number) => { - const fullCmd = `${cmd} ${args.join(' ')}`; - console.log(`${fullCmd}`); - - const proc = spawn({ - cmd: [cmd, ...args], cwd, stderr: 'pipe', stdout: 'pipe', - }); - - let timedOut = false; - const timer = timeoutMs ? setTimeout(() => { - timedOut = true; - proc.kill(); - }, timeoutMs) : undefined; - - const stdout = await new Response(proc.stdout).text(); - const stderr = await new Response(proc.stderr).text(); - const code = await proc.exited; - - if (timer) clearTimeout(timer); - - if (timedOut) { - return { - code: 124, ok: false, stderr: `Command timed out after ${timeoutMs}ms\n${stderr}`, stdout, - }; - } - - return { code, ok: code === 0, stderr, stdout }; -} - -const runCLI = (cliPath: string, flags: string[], projectName: string, timeout: number) => - exec('bun', ['run', cliPath, projectName, ...flags], process.cwd(), timeout); - -const checkExists = (path: string, name: string, type: 'file' | 'dir') => { - const pathExists = existsSync(path); - - return { - msg: pathExists ? `${name}` : `Missing ${type}: ${name}`, - ok: pathExists, - } as const; -}; - -const dirExists = (path: string, name: string) => checkExists(path, name, 'dir'); -const fileExists = (path: string, name: string) => checkExists(path, name, 'file'); - -const hasDeps = (pkgPath: string, deps: string[]) => { - if (!existsSync(pkgPath)) { - return { msg: 'package.json not found', ok: false } as const; - } - - try { - const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); - const allDeps: Record = { ...pkg.dependencies, ...pkg.devDependencies }; - const missing = deps.filter(dep => !allDeps[dep]); - - return missing.length === 0 - ? { msg: `All ${deps.length} deps present`, ok: true } as const - : { msg: `Missing deps: ${missing.join(', ')}`, ok: false } as const; - } catch (err: unknown) { - return { msg: `Failed to parse package.json: ${err}`, ok: false } as const; - } -} - -let failed = false; -const results: { phase: string; checks: CheckResult[] }[] = []; - -const runChecks = (phaseName: string, checks: CheckResult[]) => { - results.push({ checks, phase: phaseName }); - - checks.forEach(check => { - if (check.ok) { - success(check.msg); - - return; - } - - error(check.msg); - failed = true; - }); - - if (checks.every(check => !check.ok)) { - throw new Error(`${phaseName} failed`); - } -} - -const cleanup = () => { - console.log('Cleaning up previous test runs...'); - if (existsSync(PROJECT_PATH)) { - rmSync(PROJECT_PATH, { recursive: true }); - } -}; - -const scaffold = async () => { - phase('SCAFFOLD'); - const result = await runCLI(CLI_PATH, FLAGS, PROJECT_NAME, TIMEOUTS.scaffold); - - if (!result.ok) { - error(`CLI failed with exit code ${result.code}`); - if (result.stderr) console.error(result.stderr); - throw new Error('Scaffolding failed'); - } - - success(`Project created: ${PROJECT_NAME}`); -}; - -const validate = async () => { - phase('VALIDATE'); - - const allChecks = [ - ...EXPECTED.dirs.map(dir => dirExists(join(OUTPUT_PATH, dir), dir)), - ...EXPECTED.files.map(file => fileExists(join(OUTPUT_PATH, file), file)), - ] as const; - - const depCheck = hasDeps(join(OUTPUT_PATH, 'package.json'), EXPECTED.deps); - const checks = [...allChecks, depCheck]; - - runChecks('Validation', checks); -}; - -const install = async () => { - phase('INSTALL'); - const result = await exec('bun', ['install'], OUTPUT_PATH, TIMEOUTS.install); - - if (!result.ok) { - if (result.stderr) console.error(result.stderr); - throw new Error(`Install failed with exit code ${result.code}`); - } - - const checks = [ - dirExists(join(OUTPUT_PATH, 'node_modules'), 'node_modules'), - fileExists(join(OUTPUT_PATH, 'bun.lock'), 'bun.lock'), - ]; - - runChecks('Install', checks); -}; - -const printFailedChecks = () => { - error('\n HARNESS FAILED\n'); - console.log('Failed checks:'); - - results - .filter(result => result.checks.some(check => !check.ok)) - .forEach(result => { - console.log(`\n${result.phase}:`); - result.checks - .filter(check => !check.ok) - .forEach(check => error(` ${check.msg}`)); - }); -}; - -const printSuccess = () => { - success('\n ALL TESTS PASSED\n'); - info(`Project location: ${OUTPUT_PATH}`); -}; - -const summary = () => { - phase('SUMMARY'); - const totalChecks = results.reduce((sum, result) => sum + result.checks.length, 0); - const passed = results.reduce((sum, result) => sum + result.checks.filter(check => check.ok).length, 0); - - console.log(`\n Total: ${totalChecks} checks`); - console.log(` Passed: ${passed}`); - console.log(` Failed: ${totalChecks - passed}`); - - if (failed) { - printFailedChecks(); - - return; - } - - printSuccess(); -}; - -const main = async () => { - const SEPARATOR_LENGTH = 60; - console.log('═'.repeat(SEPARATOR_LENGTH)); - console.log('AbsoluteJS Scaffold Test Harness'); - console.log('React + Elysia + PostgreSQL + Drizzle + Absolute-Auth'); - console.log('═'.repeat(SEPARATOR_LENGTH)); - - try { - await cleanup(); - await scaffold(); - await validate(); - await install(); - } catch (err) { - error(`\nAborted: ${err instanceof Error ? err.message : String(err)}`); - } finally { - summary(); - } - process.exit(failed ? 1 : 0); -} -main(); diff --git a/tests/modules/auth/auth.spec.ts b/tests/modules/auth/auth.spec.ts deleted file mode 100644 index ba8c250..0000000 --- a/tests/modules/auth/auth.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { describe, it, expect } from "bun:test"; -import { availableAuthProviders } from "../../../src/data"; - -describe("auth", () => { - it("includes none", () => { - expect(availableAuthProviders).toContain("none"); - }); -}); diff --git a/tests/modules/backend/backend.elysia.spec.ts b/tests/modules/backend/backend.elysia.spec.ts deleted file mode 100644 index 37411a1..0000000 --- a/tests/modules/backend/backend.elysia.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { describe, it, expect } from "bun:test"; -describe("backend: elysia", () => { - it("placeholder", () => { - expect(true).toBeTrue(); - }); -}); diff --git a/tests/modules/db/db.spec.ts b/tests/modules/db/db.spec.ts deleted file mode 100644 index 489781f..0000000 --- a/tests/modules/db/db.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { describe, it, expect } from "bun:test"; -import { - availableDatabaseEngines, - availableDrizzleDialects, - availablePrismaDialects -} from "../../../src/data"; -import { isDrizzleDialect, isPrismaDialect } from "../../../src/typeGuards"; -import { hostAllowsEngine } from "../../utils/hostRules"; - -describe("db engines exist", () => { - it("includes none", () => { - expect(availableDatabaseEngines).toContain("none"); - }); -}); - -describe("db host rules (subset checks)", () => { - - const cases: Array<{ host: string; engine: string; expected: boolean }> = [ - { engine: "sqlite", expected: true, host: "turso" }, - { engine: "postgresql", expected: false, host: "turso" }, - { engine: "postgresql", expected: true, host: "neon" }, - { engine: "sqlite", expected: false, host: "neon" }, - { engine: "mysql", expected: true, host: "planetscale" }, - { engine: "postgresql", expected: true, host: "planetscale" }, - { engine: "sqlite", expected: false, host: "planetscale" }, - { engine: "sqlite", expected: true, host: "none" }, - { engine: "postgresql", expected: true, host: "none" }, - { engine: "mysql", expected: true, host: "none" } - ]; - - for (const { host, engine, expected } of cases) { - it(`host ${host} with engine ${engine} => ${expected}`, () => { - expect(hostAllowsEngine(host, engine)).toBe(expected); - }); - } -}); - -describe("ORM dialect guards", () => { - it("drizzle dialects are recognized", () => { - for (const dialect of availableDrizzleDialects) expect(isDrizzleDialect(dialect)).toBeTrue(); - }); - it("prisma dialects are recognized", () => { - for (const dialect of availablePrismaDialects) expect(isPrismaDialect(dialect)).toBeTrue(); - }); -}); diff --git a/tests/modules/frontend/frontend.react.spec.ts b/tests/modules/frontend/frontend.react.spec.ts deleted file mode 100644 index e4a1641..0000000 --- a/tests/modules/frontend/frontend.react.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { describe, it, expect } from "bun:test"; -import { availableFrontends } from "../../../src/data"; - -describe("frontend: react", () => { - it("react is available", () => { - expect(availableFrontends).toContain("react"); - }); -}); diff --git a/tests/modules/hosts/neon-test.ts b/tests/modules/hosts/neon-test.ts deleted file mode 100644 index 4a14b8a..0000000 --- a/tests/modules/hosts/neon-test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { existsSync, readFileSync, rmSync } from 'fs'; -import { join } from 'path'; -import { spawn } from 'bun'; -import { describe, expect, test } from 'bun:test'; - -// Allow process usage in test environment -declare const process: { cwd(): string; env: Record }; - -const PROJECT_NAME = 'neon-test'; -describe('Neon Host Tests', () => { - test('cleanup before tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - }); - test('should create project with neon host', async () => { - const command = [ - 'bun', - 'run', - 'src/index.ts', - PROJECT_NAME, - '--react', - '--db', - 'postgresql', - '--orm', - 'drizzle', - '--db-host', - 'neon', - '--auth', - 'none', - '--eslint+prettier', - '--tailwind', - '--directory', - 'default', - '--skip', - '--no-install', - '--no-git', - ]; - const proc = spawn({ - cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', - }); - const exitCode = await proc.exited; - expect(exitCode).toBe(0); - }); - test('project folder should exist', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - expect(existsSync(projectPath)).toBe(true); - }); - test('package.json should have @neondatabase/serverless', () => { - const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); - const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg: { - dependencies?: Record; - devDependencies?: Record; - } = JSON.parse(pkgContent); - const allDeps: Record = { - ...pkg.dependencies, - ...pkg.devDependencies, - }; - expect(allDeps['@neondatabase/serverless']).toBeDefined(); - }); - test('.env should NOT exist for hosted database (neon)', () => { - const envPath = join(process.cwd(), PROJECT_NAME, '.env'); - expect(existsSync(envPath)).toBe(false); - }); - test('drizzle.config.ts should exist and reference DATABASE_URL', () => { - const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); - expect(existsSync(drizzlePath)).toBe(true); - const drizzleContent = readFileSync(drizzlePath, 'utf-8'); - expect(drizzleContent).toContain('DATABASE_URL'); - expect(drizzleContent).toContain('env.DATABASE_URL'); - }); - test('db/schema.ts should exist', () => { - const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); - expect(existsSync(schemaPath)).toBe(true); - }); - test('server.ts should have correct neon import', () => { - const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); - expect(existsSync(serverPath)).toBe(true); - const serverContent = readFileSync(serverPath, 'utf-8'); - expect(serverContent).toContain('@neondatabase/serverless'); - }); - test('cleanup after tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - expect(existsSync(projectPath)).toBe(false); - }); -}); \ No newline at end of file diff --git a/tests/modules/hosts/planetscale-test.ts b/tests/modules/hosts/planetscale-test.ts deleted file mode 100644 index 1f1ace4..0000000 --- a/tests/modules/hosts/planetscale-test.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { existsSync, readFileSync, rmSync } from 'fs'; -import { join } from 'path'; -import { spawn } from 'bun'; -import { describe, expect, test } from 'bun:test'; - -// Allow process usage in test environment -declare const process: { cwd(): string; env: Record }; - -const PROJECT_NAME = 'planetscale-test'; -describe('PlanetScale Host Tests', () => { - test('cleanup before tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - }); - test('should create project with planetscale host', async () => { - const command = [ - 'bun', - 'run', - 'src/index.ts', - PROJECT_NAME, - '--react', - '--db', - 'mysql', - '--orm', - 'drizzle', - '--db-host', - 'planetscale', - '--auth', - 'none', - '--eslint+prettier', - '--tailwind', - '--directory', - 'default', - '--skip', - '--no-install', - '--no-git', - ]; - const proc = spawn({ - cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', - }); - const exitCode = await proc.exited; - expect(exitCode).toBe(0); - }); - test('project folder should exist', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - expect(existsSync(projectPath)).toBe(true); - }); - test('package.json should have @planetscale/database', () => { - const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); - const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg = JSON.parse(pkgContent); - - const allDeps: Record = { - ...pkg.dependencies, - ...pkg.devDependencies, - }; - expect(allDeps['@planetscale/database']).toBeDefined(); - }); - test('.env should NOT exist for hosted database (planetscale)', () => { - const envPath = join(process.cwd(), PROJECT_NAME, '.env'); - expect(existsSync(envPath)).toBe(false); - }); - test('drizzle.config.ts should exist and reference DATABASE_URL', () => { - const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); - expect(existsSync(drizzlePath)).toBe(true); - const drizzleContent = readFileSync(drizzlePath, 'utf-8'); - expect(drizzleContent).toContain('DATABASE_URL'); - expect(drizzleContent).toContain('env.DATABASE_URL'); - }); - test('db/schema.ts should exist', () => { - const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); - expect(existsSync(schemaPath)).toBe(true); - }); - test('server.ts should have correct planetscale import', () => { - const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); - expect(existsSync(serverPath)).toBe(true); - - const serverContent = readFileSync(serverPath, 'utf-8'); - expect(serverContent).toContain('@planetscale/database'); - }); - test('cleanup after tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - expect(existsSync(projectPath)).toBe(false); - }); -}); \ No newline at end of file diff --git a/tests/modules/hosts/test-hosts.ts b/tests/modules/hosts/test-hosts.ts deleted file mode 100644 index 7394c17..0000000 --- a/tests/modules/hosts/test-hosts.ts +++ /dev/null @@ -1,254 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { existsSync, readFileSync, rmSync } from 'fs'; -import { join } from 'path'; -import { spawn } from 'bun'; - -// Allow process usage in test environment -declare const process: { - cwd(): string; - env: Record; - exit(code: number): never; -}; - -interface HostConfig { - name: string; - dbEngine: string; - package: string; -} - -const HOSTS: HostConfig[] = [ - { - dbEngine: 'postgresql', name: 'neon', package: '@neondatabase/serverless', - }, - { - dbEngine: 'mysql', name: 'planetscale', package: '@planetscale/database', - }, - { - dbEngine: 'sqlite', name: 'turso', package: '@libsql/client', - }, -]; -const TIMEOUT_MINUTES = 1; -const MS_PER_MINUTE = 60_000; -const TIMEOUT = TIMEOUT_MINUTES * MS_PER_MINUTE; - -interface TestResult { name: string; passed: boolean; } - -const testHost = async (host: HostConfig) => { - const projectName = `test-${host.name}`; - const failResult: TestResult = { name: host.name, passed: false }; - const successResult: TestResult = { name: host.name, passed: true }; - - console.log(`Testing: ${host.name.toUpperCase()}`); - cleanup(projectName); - const command: string[] = [ - 'bun', - 'run', - 'src/index.ts', - projectName, - '--react', - '--db', - host.dbEngine, - '--orm', - 'drizzle', - '--db-host', - host.name, - '--auth', - 'none', - '--eslint+prettier', - '--tailwind', - '--directory', - 'default', - '--skip', - '--no-install', - '--no-git', - ]; - - console.log('\n Step 1 - Running CLI: '); - const proc = spawn({ - cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', - }); - - let timedOut = false; - const timer = setTimeout(() => { - timedOut = true; - proc.kill(); - }, TIMEOUT); - - const exitCode = await proc.exited; - clearTimeout(timer); - - const checkTimeout = () => { - if (!timedOut) return true; - console.log('Failed: Timed out'); - - return false; - }; - - const checkExitCode = async () => { - if (exitCode === 0) return true; - console.log('Failed: CLI returned error'); - const stderr = await new Response(proc.stderr).text(); - if (stderr) { - const MAX_ERROR_LENGTH = 200; - console.log('Error output: ', stderr.substring(0, MAX_ERROR_LENGTH)); - } - - return false; - }; - - if (!checkTimeout()) return failResult; - if (!await checkExitCode()) return failResult; - console.log('CLI completed successfully'); - - console.log('\n Step 2 - Checking project folder: '); - const projectPath = join(process.cwd(), projectName); - if (!existsSync(projectPath)) { - console.log('Failed: No project folder'); - - return { name: host.name, passed: false }; - } - console.log(' Project folder exists'); - - console.log('\n Step 3 - Checking package.json: '); - const pkgPath = join(projectPath, 'package.json'); - if (!existsSync(pkgPath)) { - console.log('Failed: No package.json'); - - return failResult; - } - - const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg: { dependencies?: Record; devDependencies?: Record } = JSON.parse(pkgContent); - const allDeps: Record = { - ...pkg.dependencies, - ...pkg.devDependencies, - }; - - if (!allDeps[host.package]) { - console.log(`Failed: Missing ${host.package}`); - console.log('Available packages:', Object.keys(allDeps).filter(packageName => packageName.includes('data'))); - - return failResult; - } - console.log(`Has ${host.package}`); - - console.log('\n Step 4 - Checking .env file (hosted databases should NOT have .env): '); - const envPath = join(projectPath, '.env'); - if (existsSync(envPath)) { - console.log(`Failed: .env file should NOT exist for hosted database (${host.name})`); - console.log('Hosted databases expect DATABASE_URL to be provided by the user'); - - return failResult; - } - console.log('Correctly no .env file for hosted database'); - - console.log('\n Step 5 - Checking drizzle.config.ts: '); - const drizzlePath = join(projectPath, 'drizzle.config.ts'); - if (!existsSync(drizzlePath)) { - console.log('Failed: No drizzle.config.ts'); - - return failResult; - } - - const drizzleContent = readFileSync(drizzlePath, 'utf-8'); - if (!drizzleContent.includes('DATABASE_URL')) { - console.log('Failed: drizzle.config.ts missing DATABASE_URL reference'); - - return failResult; - } - - if (!drizzleContent.includes('env.DATABASE_URL')) { - console.log(' Warning: drizzle.config.ts should reference env.DATABASE_URL'); - } - console.log(' drizzle.config.ts exists and references DATABASE_URL'); - - console.log('\n Step 6 - Checking db/schema.ts: '); - const schemaPath = join(projectPath, 'db', 'schema.ts'); - if (!existsSync(schemaPath)) { - console.log(' Failed: No db/schema.ts'); - - return failResult; - } - console.log(' db/schema.ts exists'); - - console.log('\n Step 7 - Checking server.ts: '); - const serverPath = join(projectPath, 'src', 'backend', 'server.ts'); - if (!existsSync(serverPath)) { - console.log(' Failed: No server.ts'); - - return failResult; - } - - const serverContent = readFileSync(serverPath, 'utf-8'); - let hasCorrectImport = false; - - if (host.name === 'neon' && serverContent.includes('@neondatabase/serverless')) { - hasCorrectImport = true; - } else if (host.name === 'planetscale' && serverContent.includes('@planetscale/database')) { - hasCorrectImport = true; - } else if (host.name === 'turso' && serverContent.includes('@libsql/client')) { - hasCorrectImport = true; - } - - if (!hasCorrectImport) { - console.log(` Failed: server.ts missing ${host.package} import`); - - return failResult; - } - console.log(' server.ts has correct database import'); - - console.log(`${host.name.toUpperCase()} - ALL CHECKS PASSED`); - - return successResult; -} - -const cleanup = (projectName: string) => { - const projectPath = join(process.cwd(), projectName); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } -}; - -const runAllTests = async () => { - console.log('DATABASE HOST CONFIGURATION TEST SUITE'); - console.log(`\nTesting ${HOSTS.length} hosted database providers`); - console.log('\n Hosted databases (neon, planetscale, turso) do NOT'); - console.log('generate .env files. Users must provide DATABASE_URL in their'); - console.log('production environment. Tests verify configuration files are'); - console.log('set up to expect DATABASE_URL from the environment.\n'); - - const results: TestResult[] = await Promise.all(HOSTS.map(testHost)); - - console.log('TEST SUMMARY'); - - const PAD_WIDTH = 15; - const DEFAULT_COUNTS: { failed: number; passed: number } = { failed: 0, passed: 0 }; - - const summary = results.reduce((acc, result) => ({ - failed: acc.failed + (result.passed ? 0 : 1), - passed: acc.passed + (result.passed ? 1 : 0), - }), DEFAULT_COUNTS); - - console.log(`\nResults: ${summary.passed} passed, ${summary.failed} failed\n`); - - results.forEach(result => { - console.log(`${result.name.padEnd(PAD_WIDTH)} - ${result.passed ? 'PASSED' : 'FAILED'}`); - }); - - console.log(`Total: ${results.length} | Passed: ${summary.passed} | Failed: ${summary.failed}`); - - console.log('\n🧹 Cleaning up test artifacts...'); - await Promise.all(HOSTS.map(host => cleanup(`test-${host.name}`))); - console.log('Cleanup complete\n'); - - if (summary.failed > 0) { - console.error('Some tests failed'); - process.exit(1); - } - - console.log('All tests passed!'); - console.log('\n Database host configuration verification complete!\n'); - process.exit(0); -} - -runAllTests(); \ No newline at end of file diff --git a/tests/modules/hosts/turso-test.ts b/tests/modules/hosts/turso-test.ts deleted file mode 100644 index c843569..0000000 --- a/tests/modules/hosts/turso-test.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* eslint-disable import/no-unused-modules */ -import { existsSync, readFileSync, rmSync } from 'fs'; -import { join } from 'path'; -import { spawn } from 'bun'; -import { describe, expect, test } from 'bun:test'; - -// Allow process usage in test environment -declare const process: { cwd(): string; env: Record }; - -const PROJECT_NAME = 'turso-test'; -describe('Turso Host Tests', () => { - test('cleanup before tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - }); - test('should create project with turso host', async () => { - const command = [ - 'bun', - 'run', - 'src/index.ts', - PROJECT_NAME, - '--react', - '--db', - 'sqlite', - '--orm', - 'drizzle', - '--db-host', - 'turso', - '--auth', - 'none', - '--eslint+prettier', - '--tailwind', - '--directory', - 'default', - '--skip', - '--no-install', - '--no-git', - ]; - const proc = spawn({ - cmd: command, cwd: process.cwd(), stderr: 'pipe', stdout: 'pipe', - }); - const exitCode = await proc.exited; - expect(exitCode).toBe(0); - }); - test('project folder should exist', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - expect(existsSync(projectPath)).toBe(true); - }); - test('package.json should have @libsql/client', () => { - const pkgPath = join(process.cwd(), PROJECT_NAME, 'package.json'); - const pkgContent = readFileSync(pkgPath, 'utf-8'); - const pkg = JSON.parse(pkgContent); - const allDeps: Record = { - ...pkg.dependencies, - ...pkg.devDependencies, - }; - expect(allDeps['@libsql/client']).toBeDefined(); - }); - test('.env should NOT exist for hosted database (turso)', () => { - const envPath = join(process.cwd(), PROJECT_NAME, '.env'); - expect(existsSync(envPath)).toBe(false); - }); - test('drizzle.config.ts should exist and reference DATABASE_URL', () => { - const drizzlePath = join(process.cwd(), PROJECT_NAME, 'drizzle.config.ts'); - expect(existsSync(drizzlePath)).toBe(true); - const drizzleContent = readFileSync(drizzlePath, 'utf-8'); - expect(drizzleContent).toContain('DATABASE_URL'); - expect(drizzleContent).toContain('env.DATABASE_URL'); - }); - test('db/schema.ts should exist', () => { - const schemaPath = join(process.cwd(), PROJECT_NAME, 'db', 'schema.ts'); - expect(existsSync(schemaPath)).toBe(true); - }); - test('server.ts should have correct turso import', () => { - const serverPath = join(process.cwd(), PROJECT_NAME, 'src', 'backend', 'server.ts'); - expect(existsSync(serverPath)).toBe(true); - - const serverContent = readFileSync(serverPath, 'utf-8'); - expect(serverContent).toContain('@libsql/client'); - }); - test('cleanup after tests', () => { - const projectPath = join(process.cwd(), PROJECT_NAME); - if (existsSync(projectPath)) { - rmSync(projectPath, { force: true, recursive: true }); - } - expect(existsSync(projectPath)).toBe(false); - }); -}); \ No newline at end of file diff --git a/tests/utils/hostRules.ts b/tests/utils/hostRules.ts deleted file mode 100644 index 4dafe42..0000000 --- a/tests/utils/hostRules.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Validates if a database engine is allowed for a given host. - * Shared validation logic for compatibility testing. - */ -export const hostAllowsEngine = (host: string, engine: string) => { - if (host === "turso") return engine === "sqlite"; - if (host === "neon") return engine === "postgresql"; - if (host === "planetscale") return engine === "postgresql" || engine === "mysql"; - - return true; // 'none' or unknown host allows any engine -}; \ No newline at end of file From cacdb53524c69256c08bbd4ce6f7c160117b6a5f Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Sun, 8 Feb 2026 21:51:52 -0500 Subject: [PATCH 37/39] Additional Prisma Context Additions --- src/commands/formatProject.ts | 24 +++-- src/commands/installDependencies.ts | 17 +++- src/generators/configurations/generateEnv.ts | 24 ++++- .../configurations/generatePackageJson.ts | 10 +- .../scaffoldConfigurationFiles.ts | 3 + src/generators/db/generateHandlers.ts | 18 +++- src/generators/db/generatePrismaSchema.ts | 29 +++++- src/generators/db/handlerTemplates.ts | 42 +++++++-- src/generators/db/scaffoldDatabase.ts | 18 ++-- src/generators/db/scaffoldDocker.ts | 6 +- src/generators/project/generateDBBlock.ts | 15 ++- .../project/generateImportsBlock.ts | 91 ++++++++++++++----- src/generators/project/generateServer.ts | 10 +- src/generators/project/scaffoldBackend.ts | 3 + src/scaffold.ts | 2 + src/utils/toDockerProjectName.ts | 5 + 16 files changed, 250 insertions(+), 67 deletions(-) create mode 100644 src/utils/toDockerProjectName.ts diff --git a/src/commands/formatProject.ts b/src/commands/formatProject.ts index 2d58235..4acafbd 100644 --- a/src/commands/formatProject.ts +++ b/src/commands/formatProject.ts @@ -1,6 +1,5 @@ import { exit } from 'node:process'; import { spinner } from '@clack/prompts'; -import { $ } from 'bun'; import { green, red } from 'picocolors'; import { PackageManager } from '../types'; import { formatCommands, formatNoInstallCommands } from '../utils/commandMaps'; @@ -17,15 +16,26 @@ export const formatProject = async ({ installDependenciesNow }: FormatProjectProps) => { const spin = spinner(); + const fmt = installDependenciesNow + ? formatCommands[packageManager] + : formatNoInstallCommands[packageManager]; + const parts = fmt.split(/\s+/); + const bin = parts[0]; + if (bin === undefined) throw new Error('Empty format command'); + const args = parts.slice(1); try { - const fmt = installDependenciesNow - ? formatCommands[packageManager] - : formatNoInstallCommands[packageManager]; - spin.start('Formatting files…'); - const [bin, ...args] = fmt.split(' '); - await $`${bin} ${args}`.cwd(projectName).quiet(); + const proc = Bun.spawnSync([bin, ...args], { + cwd: projectName, + stderr: 'pipe', + stdout: 'ignore' + }); + if (!proc.success) { + const errMsg = + proc.stderr?.toString().trim() ?? `Exit code ${proc.exitCode}`; + throw new Error(errMsg); + } spin.stop(green('Files formatted')); } catch (err) { spin.cancel(red('Failed to format files')); diff --git a/src/commands/installDependencies.ts b/src/commands/installDependencies.ts index eb4ef50..581b8cf 100644 --- a/src/commands/installDependencies.ts +++ b/src/commands/installDependencies.ts @@ -1,6 +1,5 @@ import { exit } from 'process'; import { spinner } from '@clack/prompts'; -import { $ } from 'bun'; import { green, red } from 'picocolors'; import { PackageManager } from '../types'; import { installCommands } from '../utils/commandMaps'; @@ -11,11 +10,23 @@ export const installDependencies = async ( ) => { const spin = spinner(); const cmd = installCommands[packageManager]; + const parts = cmd.split(/\s+/); + const bin = parts[0]; + if (bin === undefined) throw new Error('Empty install command'); + const args = parts.slice(1); try { spin.start('Installing dependencies'); - const [bin, ...args] = cmd.split(' '); - await $`${bin} ${args}`.cwd(projectName).quiet(); + const proc = Bun.spawnSync([bin, ...args], { + cwd: projectName, + stderr: 'pipe', + stdout: 'ignore' + }); + if (!proc.success) { + const errMsg = + proc.stderr?.toString().trim() ?? `Exit code ${proc.exitCode}`; + throw new Error(errMsg); + } spin.stop(green('Dependencies installed')); } catch (err) { spin.cancel(red('Installation failed')); diff --git a/src/generators/configurations/generateEnv.ts b/src/generators/configurations/generateEnv.ts index f7810d0..267cfcf 100644 --- a/src/generators/configurations/generateEnv.ts +++ b/src/generators/configurations/generateEnv.ts @@ -4,7 +4,7 @@ import type { CreateConfiguration, DatabaseEngine } from '../../types'; type GenerateEnvProps = Pick< CreateConfiguration, - 'databaseEngine' | 'databaseHost' | 'projectName' + 'databaseEngine' | 'databaseHost' | 'projectName' | 'databaseDirectory' > & { databasePort?: number; envVariables?: string[]; @@ -16,8 +16,8 @@ const urlBuilders: Record< > = { cockroachdb: (port) => `postgresql://root@localhost:${port}/database`, gel: (port) => `gel://admin@localhost:${port}/main?tls_security=insecure`, - mariadb: (port) => `mariadb://user:userpassword@localhost:${port}/database`, - mongodb: (port) => `mongodb://user:password@localhost:${port}/database`, + mariadb: (port) => `mysql://user:userpassword@localhost:${port}/database`, + mongodb: (port) => `mongodb://user:password@localhost:${port}/database?authSource=admin`, mssql: (port) => `Server=localhost,${port};Database=master;User Id=sa;Password=SApassword1;Encrypt=true;TrustServerCertificate=true`, mysql: (port) => `mysql://user:userpassword@localhost:${port}/database`, @@ -26,9 +26,18 @@ const urlBuilders: Record< singlestore: (port) => `mysql://root:password@localhost:${port}/database` }; +const shadowDbUrlBuilders: Record< + 'mariadb' | 'mysql', + (port: number) => string +> = { + mariadb: (port) => `mysql://root:rootpassword@localhost:${port}/`, + mysql: (port) => `mysql://root:rootpassword@localhost:${port}/` +}; + export const generateEnv = ({ databaseEngine, databaseHost, + databaseDirectory = 'db', databasePort, envVariables = [], projectName @@ -39,7 +48,7 @@ export const generateEnv = ({ databaseEngine === 'sqlite' && (databaseHost === 'none' || databaseHost === undefined) ) { - vars.push('DATABASE_URL=file:./db/database.sqlite'); + vars.push(`DATABASE_URL=file:./${databaseDirectory}/database.sqlite`); } else if ( databaseEngine !== 'none' && databaseEngine !== 'sqlite' && @@ -49,6 +58,13 @@ export const generateEnv = ({ ) { const databaseURL = urlBuilders[databaseEngine](databasePort); vars.push(`DATABASE_URL=${databaseURL}`); + if ( + (databaseEngine === 'mysql' || databaseEngine === 'mariadb') && + shadowDbUrlBuilders[databaseEngine] + ) { + const shadowUrl = shadowDbUrlBuilders[databaseEngine](databasePort); + vars.push(`SHADOW_DATABASE_URL=${shadowUrl}`); + } } if (vars.length === 0) return; diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 6e5881c..34ba937 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -14,6 +14,7 @@ import { } from '../../data'; import type { CreateConfiguration, PackageJson } from '../../types'; import { getPackageVersion } from '../../utils/getPackageVersion'; +import { toDockerProjectName } from '../../utils/toDockerProjectName'; import { versions } from '../../versions'; import { initTemplates } from '../db/dockerInitTemplates'; import { computeFlags } from '../project/computeFlags'; @@ -270,7 +271,8 @@ export const createPackageJson = ({ if (hasLocalDocker) { const config = dbScripts[databaseEngine]; - const dockerPrefix = `docker compose -p ${databaseEngine} -f db/docker-compose.db.yml`; + const composeFile = `${databaseDirectory ?? 'db'}/docker-compose.db.yml`; + const dockerPrefix = `docker compose -p ${toDockerProjectName(projectName)} -f ${composeFile}`; scripts['db:up'] = `${dockerPrefix} up -d db`; scripts['postdb:up'] = @@ -323,8 +325,10 @@ export const createPackageJson = ({ } if (isLocal && databaseEngine === 'sqlite') { - scripts['db:sqlite'] = 'sqlite3 db/database.sqlite'; - scripts['db:init'] = 'sqlite3 db/database.sqlite < db/init.sql'; + const dbDir = databaseDirectory ?? 'db'; + scripts['db:sqlite'] = `sqlite3 ${dbDir}/database.sqlite`; + scripts['db:init'] = + `sqlite3 ${dbDir}/database.sqlite < ${dbDir}/init.sql`; } if (orm === 'drizzle') { diff --git a/src/generators/configurations/scaffoldConfigurationFiles.ts b/src/generators/configurations/scaffoldConfigurationFiles.ts index fbc988b..0f2c14c 100644 --- a/src/generators/configurations/scaffoldConfigurationFiles.ts +++ b/src/generators/configurations/scaffoldConfigurationFiles.ts @@ -14,6 +14,7 @@ type AddConfigurationProps = Pick< | 'projectName' | 'databaseEngine' | 'databaseHost' + | 'databaseDirectory' > & { databasePort?: number; envVariables: string[] | undefined; @@ -25,6 +26,7 @@ export const scaffoldConfigurationFiles = ({ templatesDirectory, databaseEngine, databaseHost, + databaseDirectory, databasePort, envVariables, codeQualityTool, @@ -71,6 +73,7 @@ export const scaffoldConfigurationFiles = ({ ); generateEnv({ + databaseDirectory, databaseEngine, databaseHost, databasePort, diff --git a/src/generators/db/generateHandlers.ts b/src/generators/db/generateHandlers.ts index 1ca4500..4a2fbd9 100644 --- a/src/generators/db/generateHandlers.ts +++ b/src/generators/db/generateHandlers.ts @@ -1,12 +1,19 @@ import type { CreateConfiguration } from '../../types'; -import { getAuthTemplate, getCountTemplate } from './handlerTemplates'; +import { + getAuthTemplate, + getCountTemplate, + type DriverConfigurationKey +} from './handlerTemplates'; type GenerateDBHandlersProps = Pick< CreateConfiguration, - 'databaseEngine' | 'databaseHost' | 'orm' + 'databaseDirectory' | 'databaseEngine' | 'databaseHost' | 'orm' > & { usesAuth: boolean }; +const defaultDbDir = 'db'; + export const generateDBHandlers = ({ + databaseDirectory = defaultDbDir, databaseEngine, databaseHost, orm, @@ -23,8 +30,9 @@ export const generateDBHandlers = ({ let ormKey = 'sql'; if (orm === 'drizzle') ormKey = 'drizzle'; else if (orm === 'prisma') ormKey = 'prisma'; - const key = `${databaseEngine}:${ormKey}:${host}` as const; + const key = `${databaseEngine}:${ormKey}:${host}` as DriverConfigurationKey; - // @ts-expect-error - TODO: Finish the other templates - return usesAuth ? getAuthTemplate(key) : getCountTemplate(key); + return usesAuth + ? getAuthTemplate(key, databaseDirectory) + : getCountTemplate(key, databaseDirectory); }; diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts index a2db41e..a60c134 100644 --- a/src/generators/db/generatePrismaSchema.ts +++ b/src/generators/db/generatePrismaSchema.ts @@ -46,6 +46,16 @@ type GeneratePrismaSchemaProps = { databaseHost: DatabaseHost; }; +const needsShadowDatabaseUrl = ( + databaseEngine: AvailablePrismaDialect, + databaseHost: DatabaseHost +) => { + const isLocal = databaseHost === undefined || databaseHost === 'none'; + const isMySQLOrMariaDB = + databaseEngine === 'mysql' || databaseEngine === 'mariadb'; + return isLocal && isMySQLOrMariaDB; +}; + const buildGeneratorBlock = (databaseHost: DatabaseHost) => { const needsDriverAdapters = databaseHost === 'neon' || databaseHost === 'planetscale'; @@ -58,10 +68,19 @@ const buildGeneratorBlock = (databaseHost: DatabaseHost) => { }`; }; -const buildDatasourceBlock = (cfg: DialectConfig) => `datasource db { +const buildDatasourceBlock = ( + cfg: DialectConfig, + databaseEngine: AvailablePrismaDialect, + databaseHost: DatabaseHost +) => { + const shadowDbLine = needsShadowDatabaseUrl(databaseEngine, databaseHost) + ? '\n shadowDatabaseUrl = env("SHADOW_DATABASE_URL")' + : ''; + return `datasource db { provider = "${cfg.provider}" - url = env("DATABASE_URL") + url = env("DATABASE_URL")${shadowDbLine} }`; +}; const buildUserModel = () => `model User { auth_sub String @id @@ -92,7 +111,11 @@ export const generatePrismaSchema = ({ } const generatorBlock = buildGeneratorBlock(databaseHost); - const datasourceBlock = buildDatasourceBlock(cfg); + const datasourceBlock = buildDatasourceBlock( + cfg, + databaseEngine, + databaseHost + ); const modelBlock = authOption === 'abs' ? buildUserModel() : buildCountHistoryModel(cfg); diff --git a/src/generators/db/handlerTemplates.ts b/src/generators/db/handlerTemplates.ts index a62ff85..6fbb151 100644 --- a/src/generators/db/handlerTemplates.ts +++ b/src/generators/db/handlerTemplates.ts @@ -506,6 +506,11 @@ import { schema } from '../../../db/schema'`, importLines: `import type { PrismaClient } from '@prisma/client'`, queries: prismaQueryOperations }, + 'postgresql:prisma:planetscale': { + dbType: 'PrismaClient', + importLines: `import type { PrismaClient } from '@prisma/client'`, + queries: prismaQueryOperations + }, 'postgresql:sql:local': { dbType: 'SQL', importLines: ``, @@ -572,20 +577,45 @@ import { schema } from '../../../db/schema'`, } } as const; -type DriverConfigurationKey = keyof typeof driverConfigurations; - -export const getAuthTemplate = (key: DriverConfigurationKey) => { +export type DriverConfigurationKey = keyof typeof driverConfigurations; + +const replaceDbPath = ( + importLines: string, + databaseDirectory: string +): string => + importLines.replace( + /\.\.\/\.\.\/\.\.\/db\//g, + `../../../${databaseDirectory}/` + ); + +export const getAuthTemplate = ( + key: DriverConfigurationKey, + databaseDirectory = 'db' +) => { const configuration = driverConfigurations[key]; if (!configuration) throw new Error(`Unsupported driver configuration: ${key}`); - return buildSqlAuthTemplate(configuration); + const config = { + ...configuration, + importLines: replaceDbPath(configuration.importLines, databaseDirectory) + }; + + return buildSqlAuthTemplate(config); }; -export const getCountTemplate = (key: DriverConfigurationKey) => { +export const getCountTemplate = ( + key: DriverConfigurationKey, + databaseDirectory = 'db' +) => { const configuration = driverConfigurations[key]; if (!configuration) throw new Error(`Unsupported driver configuration: ${key}`); - return buildSqlCountTemplate(configuration); + const config = { + ...configuration, + importLines: replaceDbPath(configuration.importLines, databaseDirectory) + }; + + return buildSqlCountTemplate(config); }; diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index 42fca58..0a6e4c5 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -3,8 +3,9 @@ import { join } from 'path'; import { $ } from 'bun'; import { isDrizzleDialect, isPrismaDialect } from '../../typeGuards'; import type { CreateConfiguration } from '../../types'; -import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; import { checkDockerInstalled } from '../../utils/checkDockerInstalled'; +import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; +import { toDockerProjectName } from '../../utils/toDockerProjectName'; import { createDrizzleConfig } from '../configurations/generateDrizzleConfig'; import { generatePrismaClient } from '../configurations/generatePrismaClient'; import { generateDatabaseTypes } from './generateDatabaseTypes'; @@ -51,6 +52,7 @@ export const scaffoldDatabase = async ({ ? 'userHandlers.ts' : 'countHistoryHandlers.ts'; const dbHandlers = generateDBHandlers({ + databaseDirectory, databaseEngine, databaseHost, orm, @@ -68,10 +70,10 @@ export const scaffoldDatabase = async ({ join(projectDatabaseDirectory, 'schema.sql'), sqliteSchema ); - await $`sqlite3 ${databaseDirectory}/database.sqlite ".read ${join( - databaseDirectory, - 'schema.sql' - )}"`.cwd(projectName); + const schemaPath = `${databaseDirectory}/schema.sql`; + await $`sqlite3 ${databaseDirectory}/database.sqlite ".read ${schemaPath}"`.cwd( + projectName + ); } // For Prisma, we need to create the docker-compose file but skip schema initialization @@ -97,6 +99,7 @@ export const scaffoldDatabase = async ({ } else { await scaffoldDocker({ authOption, + databaseDirectory, databaseEngine, hostPort: databasePort, projectDatabaseDirectory, @@ -166,6 +169,7 @@ export const scaffoldDatabase = async ({ // For non-SQLite databases, ensure Docker container is running before migrations if (databaseEngine !== 'sqlite') { try { + await $`bun db:reset`.cwd(projectCwd).nothrow(); await $`bun db:up`.cwd(projectCwd); // Wait for database to be ready using appropriate wait command const { initTemplates } = await import('./dockerInitTemplates'); @@ -174,7 +178,7 @@ export const scaffoldDatabase = async ({ initTemplates[databaseEngine as keyof typeof initTemplates] ?.wait; if (waitCommand) { - await $`docker compose -p ${databaseEngine} -f ${databaseDirectory}/docker-compose.db.yml exec -T db bash -lc '${waitCommand}'` + await $`docker compose -p ${toDockerProjectName(projectName)} -f ${databaseDirectory}/docker-compose.db.yml exec -T db bash -lc '${waitCommand}'` .cwd(projectCwd) .nothrow(); } @@ -187,7 +191,7 @@ export const scaffoldDatabase = async ({ } } - if (databaseEngine === 'sqlite') { + if (databaseEngine === 'sqlite' || databaseEngine === 'mongodb') { const result = await $`npx prisma db push --schema ${schemaArg}` .cwd(projectCwd) .nothrow(); diff --git a/src/generators/db/scaffoldDocker.ts b/src/generators/db/scaffoldDocker.ts index b4e49df..adf7779 100644 --- a/src/generators/db/scaffoldDocker.ts +++ b/src/generators/db/scaffoldDocker.ts @@ -8,6 +8,7 @@ import { getDockerEnv, shutdownDockerDaemon } from '../../utils/checkDockerInstalled'; +import { toDockerProjectName } from '../../utils/toDockerProjectName'; import { countHistoryTables, initTemplates, @@ -17,6 +18,7 @@ import { generateDockerContainer } from './generateDockerContainer'; type ScaffoldDockerProps = { authOption: AuthOption; + databaseDirectory: string; databaseEngine: DatabaseEngine; hostPort: number; projectDatabaseDirectory: string; @@ -25,6 +27,7 @@ type ScaffoldDockerProps = { export const scaffoldDocker = async ({ authOption, + databaseDirectory, databaseEngine, hostPort, projectDatabaseDirectory, @@ -70,7 +73,8 @@ export const scaffoldDocker = async ({ ? userTables[dbKey] : countHistoryTables[dbKey]; await $`bun db:up`.cwd(projectName).env(dockerEnv); - await $`docker compose -p ${databaseEngine} -f db/docker-compose.db.yml exec -T db \ + const composeFile = `${databaseDirectory}/docker-compose.db.yml`; + await $`docker compose -p ${toDockerProjectName(projectName)} -f ${composeFile} exec -T db \ bash -lc '${wait} && ${cli} "${dbCommand}"'` .cwd(projectName) .env(dockerEnv); diff --git a/src/generators/project/generateDBBlock.ts b/src/generators/project/generateDBBlock.ts index e86217d..c594d52 100644 --- a/src/generators/project/generateDBBlock.ts +++ b/src/generators/project/generateDBBlock.ts @@ -52,10 +52,13 @@ const prismaDialectSet = new Set([...availablePrismaDialects]); type GenerateDBBlockProps = Pick< CreateConfiguration, - 'databaseEngine' | 'orm' | 'databaseHost' + 'databaseDirectory' | 'databaseEngine' | 'orm' | 'databaseHost' >; +const defaultDbDir = 'db'; + export const generateDBBlock = ({ + databaseDirectory = defaultDbDir, databaseEngine, orm, databaseHost @@ -73,14 +76,18 @@ export const generateDBBlock = ({ if (orm !== 'drizzle' && orm !== 'prisma') { const hostCfg = engineGroup[hostKey]; - return hostCfg ? `const db = ${hostCfg.expr}` : ''; + if (!hostCfg) return ''; + const expr = hostCfg.expr.replace('db/', `${databaseDirectory}/`); + + return `const db = ${expr}`; } if (orm === 'drizzle') { if (!drizzleDialectSet.has(databaseEngine)) return ''; - const expr = engineGroup[hostKey]?.expr ?? remoteDrizzleInit[hostKey]; + let expr = engineGroup[hostKey]?.expr ?? remoteDrizzleInit[hostKey]; if (!expr) return ''; + expr = expr.replace('db/', `${databaseDirectory}/`); if ( (databaseEngine === 'mysql' || databaseEngine === 'mariadb') && @@ -111,7 +118,7 @@ const db = drizzle(pool, { schema, mode: '${mysqlMode}' }) if (orm === 'prisma') { if (!prismaDialectSet.has(databaseEngine)) return ''; - return `const prisma = (await import('../../db/client')).default + return `const prisma = (await import('../../${databaseDirectory}/client')).default const db = prisma`; } diff --git a/src/generators/project/generateImportsBlock.ts b/src/generators/project/generateImportsBlock.ts index 404685e..1683dd7 100644 --- a/src/generators/project/generateImportsBlock.ts +++ b/src/generators/project/generateImportsBlock.ts @@ -12,9 +12,12 @@ type GenerateImportsBlockProps = { authOption: CreateConfiguration['authOption']; databaseEngine: CreateConfiguration['databaseEngine']; databaseHost: CreateConfiguration['databaseHost']; + databaseDirectory: CreateConfiguration['databaseDirectory']; frontendDirectories: CreateConfiguration['frontendDirectories']; }; +const defaultDbDir = 'db'; + export const generateImportsBlock = ({ backendDirectory, deps, @@ -23,6 +26,7 @@ export const generateImportsBlock = ({ authOption, databaseEngine, databaseHost, + databaseDirectory = defaultDbDir, frontendDirectories }: GenerateImportsBlockProps) => { const rawImports: string[] = []; @@ -99,15 +103,15 @@ export const generateImportsBlock = ({ databaseEngine !== undefined && databaseEngine !== 'none'; const noOrm = orm === undefined || orm === 'none'; + const schemaImport = `import { schema } from '../../${databaseDirectory}/schema'`; + const ormImports = { drizzle: [ `import { Elysia } from 'elysia'`, ...(databaseEngine === 'sqlite' && !isRemoteHost ? [] : [`import { getEnv } from '@absolutejs/absolute'`]), - ...(authOption === 'abs' - ? [`import { schema } from '../../db/schema'`] - : [`import { schema } from '../../db/schema'`]) + schemaImport ] } as const; @@ -263,41 +267,82 @@ export const generateImportsBlock = ({ rawImports.push(`import { vueImports } from './utils/vueImporter'`); } - const importMap = new Map< - string, - { defaultImport: string | null; namedImports: Set } - >(); + type ImportEntry = { + defaultImport: string | null; + typeOnlyNames: Set; + valueNames: Set; + }; + + const importMap = new Map(); for (const stmt of rawImports) { - const match = stmt.match(/^import\s+(.+)\s+from\s+['"](.+)['"];?/); - if (!match) continue; - const [, importClause, modulePath] = match; + const typeMatch = stmt.match( + /^import\s+type\s+\{([^}]+)\}\s+from\s+['"](.+)['"];?/ + ); + const valueMatch = stmt.match(/^import\s+(.+)\s+from\s+['"](.+)['"];?/); + if (typeMatch) { + const [, names, modulePath] = typeMatch; + if (!names || !modulePath) continue; + const entry = importMap.get(modulePath) ?? { + defaultImport: null, + typeOnlyNames: new Set(), + valueNames: new Set() + }; + importMap.set(modulePath, entry); + names + .split(',') + .map((s) => s.trim()) + .filter(Boolean) + .forEach((name) => entry.typeOnlyNames.add(name)); + continue; + } + if (!valueMatch) continue; + const [, importClause, modulePath] = valueMatch; if (!importClause || !modulePath) continue; const entry = importMap.get(modulePath) ?? { defaultImport: null, - namedImports: new Set() + typeOnlyNames: new Set(), + valueNames: new Set() }; importMap.set(modulePath, entry); - void (importClause.startsWith('{') - ? importClause - .slice(1, -1) - .split(',') - .map((segment) => segment.trim()) - .filter(Boolean) - .forEach((name) => entry.namedImports.add(name)) - : (entry.defaultImport = importClause.trim())); + if (importClause.startsWith('{')) { + importClause + .slice(1, -1) + .split(',') + .map((segment) => segment.trim()) + .filter(Boolean) + .forEach((name) => entry.valueNames.add(name)); + } else { + entry.defaultImport = importClause.trim(); + } } return Array.from(importMap.entries()) .sort(([a], [b]) => a.localeCompare(b)) - .map(([path, { defaultImport, namedImports }]) => { + .map(([path, { defaultImport, typeOnlyNames, valueNames }]) => { + const typeOnlyNotValue = [...typeOnlyNames].filter( + (name) => !valueNames.has(name) + ); + const hasValues = valueNames.size > 0 || defaultImport !== null; + if (!hasValues && typeOnlyNotValue.length > 0) { + return `import type { ${typeOnlyNotValue.sort().join(', ')} } from '${path}'`; + } const parts: string[] = []; if (defaultImport) parts.push(defaultImport); - if (namedImports.size) - parts.push(`{ ${[...namedImports].sort().join(', ')} }`); - + if (valueNames.size > 0 || typeOnlyNotValue.length > 0) { + const sortedValues = [...valueNames].sort(); + const named = [ + ...typeOnlyNotValue.map((n) => `type ${n}`), + ...sortedValues + ].sort((a, b) => { + const aNorm = a.replace(/^type /, ''); + const bNorm = b.replace(/^type /, ''); + return aNorm.localeCompare(bNorm); + }); + parts.push(`{ ${named.join(', ')} }`); + } return `import ${parts.join(', ')} from '${path}'`; }) .join('\n'); diff --git a/src/generators/project/generateServer.ts b/src/generators/project/generateServer.ts index df5bed3..99b8316 100644 --- a/src/generators/project/generateServer.ts +++ b/src/generators/project/generateServer.ts @@ -19,6 +19,7 @@ type CreateServerFileProps = Pick< | 'orm' | 'assetsDirectory' | 'frontendDirectories' + | 'databaseDirectory' > & { backendDirectory: string; }; @@ -30,6 +31,7 @@ export const generateServerFile = ({ buildDirectory, databaseEngine, databaseHost, + databaseDirectory, orm, assetsDirectory, frontendDirectories, @@ -43,6 +45,7 @@ export const generateServerFile = ({ const importsBlock = generateImportsBlock({ authOption, backendDirectory, + databaseDirectory, databaseEngine, databaseHost, deps, @@ -60,7 +63,12 @@ export const generateServerFile = ({ let dbBlock = ''; if (databaseEngine && databaseEngine !== 'none') { - dbBlock = generateDBBlock({ databaseEngine, databaseHost, orm }); + dbBlock = generateDBBlock({ + databaseDirectory, + databaseEngine, + databaseHost, + orm + }); } const useBlock = deps diff --git a/src/generators/project/scaffoldBackend.ts b/src/generators/project/scaffoldBackend.ts index 171e9d5..819d5a1 100644 --- a/src/generators/project/scaffoldBackend.ts +++ b/src/generators/project/scaffoldBackend.ts @@ -10,6 +10,7 @@ type ScaffoldBackendProps = Pick< | 'absProviders' | 'authOption' | 'buildDirectory' + | 'databaseDirectory' | 'databaseEngine' | 'databaseHost' | 'frontendDirectories' @@ -26,6 +27,7 @@ export const scaffoldBackend = ({ absProviders, backendDirectory, buildDirectory, + databaseDirectory, databaseEngine, databaseHost, frontendDirectories, @@ -38,6 +40,7 @@ export const scaffoldBackend = ({ authOption, backendDirectory, buildDirectory, + databaseDirectory, databaseEngine, databaseHost, frontendDirectories, diff --git a/src/scaffold.ts b/src/scaffold.ts index 4205a2e..f5eb5dd 100644 --- a/src/scaffold.ts +++ b/src/scaffold.ts @@ -71,6 +71,7 @@ export const scaffold = async ({ scaffoldConfigurationFiles({ codeQualityTool, + databaseDirectory, databaseEngine, databaseHost, databasePort, @@ -102,6 +103,7 @@ export const scaffold = async ({ authOption, backendDirectory, buildDirectory, + databaseDirectory, databaseEngine, databaseHost, frontendDirectories, diff --git a/src/utils/toDockerProjectName.ts b/src/utils/toDockerProjectName.ts new file mode 100644 index 0000000..d62f98b --- /dev/null +++ b/src/utils/toDockerProjectName.ts @@ -0,0 +1,5 @@ +export const toDockerProjectName = (name: string): string => + name + .replace(/[^a-zA-Z0-9_-]/g, '-') + .replace(/-+/g, '-') + .replace(/^-|-$/g, '') || 'db'; From f28a5275059d2e58d880d14814ff1377193b02a0 Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Sun, 8 Feb 2026 22:30:14 -0500 Subject: [PATCH 38/39] Root User Docker Approach --- src/generators/configurations/generateEnv.ts | 27 +++++------------ .../configurations/generatePackageJson.ts | 10 +++---- src/generators/db/dockerInitTemplates.ts | 16 +++++----- src/generators/db/generateDockerContainer.ts | 18 +++++------- src/generators/db/generatePrismaSchema.ts | 29 ++----------------- 5 files changed, 30 insertions(+), 70 deletions(-) diff --git a/src/generators/configurations/generateEnv.ts b/src/generators/configurations/generateEnv.ts index 267cfcf..0bb09ca 100644 --- a/src/generators/configurations/generateEnv.ts +++ b/src/generators/configurations/generateEnv.ts @@ -16,22 +16,16 @@ const urlBuilders: Record< > = { cockroachdb: (port) => `postgresql://root@localhost:${port}/database`, gel: (port) => `gel://admin@localhost:${port}/main?tls_security=insecure`, - mariadb: (port) => `mysql://user:userpassword@localhost:${port}/database`, - mongodb: (port) => `mongodb://user:password@localhost:${port}/database?authSource=admin`, + mariadb: (port) => `mysql://root:rootpassword@localhost:${port}/database`, + mongodb: (port) => + `mongodb://root:rootpassword@localhost:${port}/database?authSource=admin`, mssql: (port) => `Server=localhost,${port};Database=master;User Id=sa;Password=SApassword1;Encrypt=true;TrustServerCertificate=true`, - mysql: (port) => `mysql://user:userpassword@localhost:${port}/database`, + mysql: (port) => `mysql://root:rootpassword@localhost:${port}/database`, postgresql: (port) => - `postgresql://user:password@localhost:${port}/database`, - singlestore: (port) => `mysql://root:password@localhost:${port}/database` -}; - -const shadowDbUrlBuilders: Record< - 'mariadb' | 'mysql', - (port: number) => string -> = { - mariadb: (port) => `mysql://root:rootpassword@localhost:${port}/`, - mysql: (port) => `mysql://root:rootpassword@localhost:${port}/` + `postgresql://postgres:rootpassword@localhost:${port}/database`, + singlestore: (port) => + `mysql://root:rootpassword@localhost:${port}/database` }; export const generateEnv = ({ @@ -58,13 +52,6 @@ export const generateEnv = ({ ) { const databaseURL = urlBuilders[databaseEngine](databasePort); vars.push(`DATABASE_URL=${databaseURL}`); - if ( - (databaseEngine === 'mysql' || databaseEngine === 'mariadb') && - shadowDbUrlBuilders[databaseEngine] - ) { - const shadowUrl = shadowDbUrlBuilders[databaseEngine](databasePort); - vars.push(`SHADOW_DATABASE_URL=${shadowUrl}`); - } } if (vars.length === 0) return; diff --git a/src/generators/configurations/generatePackageJson.ts b/src/generators/configurations/generatePackageJson.ts index 34ba937..91ea74d 100644 --- a/src/generators/configurations/generatePackageJson.ts +++ b/src/generators/configurations/generatePackageJson.ts @@ -47,12 +47,12 @@ const dbScripts = { }, mariadb: { clientCmd: - 'MYSQL_PWD=userpassword mariadb -h127.0.0.1 -u user database', + 'MYSQL_PWD=rootpassword mariadb -h127.0.0.1 -u root database', waitCmd: initTemplates.mariadb.wait }, mongodb: { clientCmd: - 'mongosh -u user -p password --authenticationDatabase admin database', + 'mongosh -u root -p rootpassword --authenticationDatabase admin database', waitCmd: initTemplates.mongodb.wait }, mssql: { @@ -61,15 +61,15 @@ const dbScripts = { waitCmd: initTemplates.mssql.wait }, mysql: { - clientCmd: 'MYSQL_PWD=userpassword mysql -h127.0.0.1 -u user database', + clientCmd: 'MYSQL_PWD=rootpassword mysql -h127.0.0.1 -u root database', waitCmd: initTemplates.mysql.wait }, postgresql: { - clientCmd: 'psql -h localhost -U user -d database', + clientCmd: 'psql -h localhost -U postgres -d database', waitCmd: initTemplates.postgresql.wait }, singlestore: { - clientCmd: 'singlestore -u root -ppassword -D database', + clientCmd: 'singlestore -u root -prootpassword -D database', waitCmd: initTemplates.singlestore.wait } } as const; diff --git a/src/generators/db/dockerInitTemplates.ts b/src/generators/db/dockerInitTemplates.ts index dd445cf..22f849c 100644 --- a/src/generators/db/dockerInitTemplates.ts +++ b/src/generators/db/dockerInitTemplates.ts @@ -135,27 +135,27 @@ export const initTemplates = { wait: 'until gel query -H localhost -P 5656 -u admin --tls-security insecure "select 1"; do sleep 1; done' }, mariadb: { - cli: 'MYSQL_PWD=userpassword mariadb -h127.0.0.1 -u user database -e', + cli: 'MYSQL_PWD=rootpassword mariadb -h127.0.0.1 -u root database -e', wait: 'until mariadb-admin ping -h127.0.0.1 --silent; do sleep 1; done' }, mongodb: { - cli: 'mongosh -u user -p password --authenticationDatabase admin database --eval', - wait: 'for i in $(seq 1 60); do mongosh -u user -p password --authenticationDatabase admin --eval "db.adminCommand(\\"ping\\")" --quiet 2>/dev/null && exit 0; sleep 1; done; exit 1' + cli: 'mongosh -u root -p rootpassword --authenticationDatabase admin database --eval', + wait: 'for i in $(seq 1 60); do mongosh -u root -p rootpassword --authenticationDatabase admin --eval "db.adminCommand(\\"ping\\")" --quiet 2>/dev/null && exit 0; sleep 1; done; exit 1' }, mssql: { cli: '/opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P SApassword1 -Q', wait: 'until /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P SApassword1 -Q "SELECT 1" >/dev/null 2>&1; do sleep 1; done' }, mysql: { - cli: 'MYSQL_PWD=userpassword mysql -h127.0.0.1 -u user database -e', + cli: 'MYSQL_PWD=rootpassword mysql -h127.0.0.1 -u root database -e', wait: 'until mysqladmin ping -h127.0.0.1 --silent; do sleep 1; done' }, postgresql: { - cli: 'psql -U user -d database -c', - wait: 'until pg_isready -U user -h localhost --quiet; do sleep 1; done' + cli: 'psql -U postgres -d database -c', + wait: 'until pg_isready -U postgres -h localhost --quiet; do sleep 1; done' }, singlestore: { - cli: 'singlestore -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS \\`database\\`" > /dev/null && singlestore -u root -ppassword -D database -e', - wait: 'until singlestore -u root -ppassword -e "SELECT 1" >/dev/null 2>&1; do sleep 1; done' + cli: 'singlestore -u root -prootpassword -e "CREATE DATABASE IF NOT EXISTS \\`database\\`" > /dev/null && singlestore -u root -prootpassword -D database -e', + wait: 'until singlestore -u root -prootpassword -e "SELECT 1" >/dev/null 2>&1; do sleep 1; done' } } as const; diff --git a/src/generators/db/generateDockerContainer.ts b/src/generators/db/generateDockerContainer.ts index 56950cd..1ff848e 100644 --- a/src/generators/db/generateDockerContainer.ts +++ b/src/generators/db/generateDockerContainer.ts @@ -33,9 +33,7 @@ const templates: Record< containerPort: 3306, env: { MYSQL_DATABASE: 'database', - MYSQL_PASSWORD: 'userpassword', - MYSQL_ROOT_PASSWORD: 'rootpassword', - MYSQL_USER: 'user' + MYSQL_ROOT_PASSWORD: 'rootpassword' }, image: 'mariadb:11.4', volumePath: '/var/lib/mysql' @@ -44,8 +42,8 @@ const templates: Record< containerPort: 27017, env: { MONGO_INITDB_DATABASE: 'database', - MONGO_INITDB_ROOT_PASSWORD: 'password', - MONGO_INITDB_ROOT_USERNAME: 'user' + MONGO_INITDB_ROOT_PASSWORD: 'rootpassword', + MONGO_INITDB_ROOT_USERNAME: 'root' }, image: 'mongo:7.0', volumePath: '/data/db' @@ -63,9 +61,7 @@ const templates: Record< containerPort: 3306, env: { MYSQL_DATABASE: 'database', - MYSQL_PASSWORD: 'userpassword', - MYSQL_ROOT_PASSWORD: 'rootpassword', - MYSQL_USER: 'user' + MYSQL_ROOT_PASSWORD: 'rootpassword' }, image: 'mysql:8.0', volumePath: '/var/lib/mysql' @@ -74,8 +70,8 @@ const templates: Record< containerPort: 5432, env: { POSTGRES_DB: 'database', - POSTGRES_PASSWORD: 'password', - POSTGRES_USER: 'user' + POSTGRES_PASSWORD: 'rootpassword', + POSTGRES_USER: 'postgres' }, image: 'postgres:15', volumePath: '/var/lib/postgresql/data' @@ -83,7 +79,7 @@ const templates: Record< singlestore: { containerPort: 3306, env: { - ROOT_PASSWORD: 'password' + ROOT_PASSWORD: 'rootpassword' }, image: 'ghcr.io/singlestore-labs/singlestoredb-dev', // NOTE: No tag specified due to data persistence volumePath: '/data' diff --git a/src/generators/db/generatePrismaSchema.ts b/src/generators/db/generatePrismaSchema.ts index a60c134..a2db41e 100644 --- a/src/generators/db/generatePrismaSchema.ts +++ b/src/generators/db/generatePrismaSchema.ts @@ -46,16 +46,6 @@ type GeneratePrismaSchemaProps = { databaseHost: DatabaseHost; }; -const needsShadowDatabaseUrl = ( - databaseEngine: AvailablePrismaDialect, - databaseHost: DatabaseHost -) => { - const isLocal = databaseHost === undefined || databaseHost === 'none'; - const isMySQLOrMariaDB = - databaseEngine === 'mysql' || databaseEngine === 'mariadb'; - return isLocal && isMySQLOrMariaDB; -}; - const buildGeneratorBlock = (databaseHost: DatabaseHost) => { const needsDriverAdapters = databaseHost === 'neon' || databaseHost === 'planetscale'; @@ -68,19 +58,10 @@ const buildGeneratorBlock = (databaseHost: DatabaseHost) => { }`; }; -const buildDatasourceBlock = ( - cfg: DialectConfig, - databaseEngine: AvailablePrismaDialect, - databaseHost: DatabaseHost -) => { - const shadowDbLine = needsShadowDatabaseUrl(databaseEngine, databaseHost) - ? '\n shadowDatabaseUrl = env("SHADOW_DATABASE_URL")' - : ''; - return `datasource db { +const buildDatasourceBlock = (cfg: DialectConfig) => `datasource db { provider = "${cfg.provider}" - url = env("DATABASE_URL")${shadowDbLine} + url = env("DATABASE_URL") }`; -}; const buildUserModel = () => `model User { auth_sub String @id @@ -111,11 +92,7 @@ export const generatePrismaSchema = ({ } const generatorBlock = buildGeneratorBlock(databaseHost); - const datasourceBlock = buildDatasourceBlock( - cfg, - databaseEngine, - databaseHost - ); + const datasourceBlock = buildDatasourceBlock(cfg); const modelBlock = authOption === 'abs' ? buildUserModel() : buildCountHistoryModel(cfg); From 974e6914a8acd5cc57ea711bf5a7611f110f4121 Mon Sep 17 00:00:00 2001 From: eugenegraves Date: Thu, 12 Feb 2026 00:21:37 -0500 Subject: [PATCH 39/39] Run Prisma in Docker Env + Match Root Credentials --- src/generators/configurations/generateEnv.ts | 2 +- src/generators/db/generateDockerContainer.ts | 6 +- src/generators/db/scaffoldDatabase.ts | 74 ++++++++++++++++---- 3 files changed, 63 insertions(+), 19 deletions(-) diff --git a/src/generators/configurations/generateEnv.ts b/src/generators/configurations/generateEnv.ts index 883ef66..c3f29d9 100644 --- a/src/generators/configurations/generateEnv.ts +++ b/src/generators/configurations/generateEnv.ts @@ -14,7 +14,7 @@ const databaseURLS = { gel: 'gel://admin@localhost:5656/main?tls_security=insecure', mariadb: 'mysql://root:rootpassword@localhost:3306/database', mongodb: - 'mongodb://root:rootpassword@localhost:27017/database?authSource=admin', + 'mongodb://root:rootpassword@127.0.0.1:27017/database?authSource=admin&directConnection=true', mssql: 'Server=localhost,1433;Database=master;User Id=sa;Password=SApassword1;Encrypt=true;TrustServerCertificate=true', mysql: 'mysql://root:rootpassword@localhost:3306/database', diff --git a/src/generators/db/generateDockerContainer.ts b/src/generators/db/generateDockerContainer.ts index afb0ea2..5edd02f 100644 --- a/src/generators/db/generateDockerContainer.ts +++ b/src/generators/db/generateDockerContainer.ts @@ -62,7 +62,7 @@ const templates: Record< }, healthcheck: { startPeriod: '5s', - test: 'mongosh -u user -p password --authenticationDatabase admin --eval "db.adminCommand(\'ping\')" --quiet' + test: 'mongosh -u root -p rootpassword --authenticationDatabase admin --eval "db.adminCommand(\'ping\')" --quiet' }, image: 'mongo:7.0', port: '27017:27017', @@ -102,7 +102,7 @@ const templates: Record< }, healthcheck: { startPeriod: '5s', - test: 'pg_isready -U user -h localhost --quiet' + test: 'pg_isready -U postgres -h localhost --quiet' }, image: 'postgres:15', port: '5432:5432', @@ -114,7 +114,7 @@ const templates: Record< }, healthcheck: { startPeriod: '30s', - test: 'singlestore -u root -ppassword -e "SELECT 1" >/dev/null 2>&1' + test: 'singlestore -u root -prootpassword -e "SELECT 1" >/dev/null 2>&1' }, image: 'ghcr.io/singlestore-labs/singlestoredb-dev', // NOTE: No tag specified due to data persistence port: '3306:3306', diff --git a/src/generators/db/scaffoldDatabase.ts b/src/generators/db/scaffoldDatabase.ts index b632eac..3a715fb 100644 --- a/src/generators/db/scaffoldDatabase.ts +++ b/src/generators/db/scaffoldDatabase.ts @@ -1,10 +1,11 @@ import { mkdirSync, writeFileSync } from 'fs'; -import { join } from 'path'; +import { join, resolve } from 'path'; import { $ } from 'bun'; import { isDrizzleDialect, isPrismaDialect } from '../../typeGuards'; import type { CreateConfiguration } from '../../types'; import { checkDockerInstalled } from '../../utils/checkDockerInstalled'; import { checkSqliteInstalled } from '../../utils/checkSqliteInstalled'; +import { resolveDockerExe } from '../../utils/checkDockerInstalled'; import { toDockerProjectName } from '../../utils/toDockerProjectName'; import { createDrizzleConfig } from '../configurations/generateDrizzleConfig'; import { generatePrismaClient } from '../configurations/generatePrismaClient'; @@ -74,6 +75,7 @@ export const scaffoldDatabase = async ({ ); } + let dockerFreshInstall = false; // For Prisma, we need to create the docker-compose file but skip schema initialization // For Drizzle and no ORM, we use scaffoldDocker which handles schema initialization if ( @@ -82,15 +84,14 @@ export const scaffoldDatabase = async ({ databaseEngine !== undefined && databaseEngine !== 'none' ) { - const { dockerFreshInstall } = await scaffoldDocker({ + const result = await scaffoldDocker({ authOption, databaseDirectory, databaseEngine, projectDatabaseDirectory, projectName }); - - return { dockerFreshInstall }; + dockerFreshInstall = result.dockerFreshInstall; } if (orm === 'drizzle') { @@ -115,10 +116,10 @@ export const scaffoldDatabase = async ({ }); writeFileSync(join(typesDirectory, 'databaseTypes.ts'), drizzleTypes); - return { dockerFreshInstall: false }; + return { dockerFreshInstall }; } - if (orm !== 'prisma') return { dockerFreshInstall: false }; + if (orm !== 'prisma') return { dockerFreshInstall }; if (!isPrismaDialect(databaseEngine)) { throw new Error('Internal type error: Expected a Prisma dialect'); @@ -149,7 +150,7 @@ export const scaffoldDatabase = async ({ } const isLocalDatabase = !databaseHost || databaseHost === 'none'; - if (!isLocalDatabase) return { dockerFreshInstall: false }; + if (!isLocalDatabase) return { dockerFreshInstall }; // For non-SQLite databases, ensure Docker container is running before migrations if (databaseEngine !== 'sqlite') { @@ -169,27 +170,70 @@ export const scaffoldDatabase = async ({ } else { await new Promise((resolve) => setTimeout(resolve, 5000)); } + // Brief delay for MongoDB to fully stabilize before Prisma connections + if (databaseEngine === 'mongodb') { + await new Promise((resolve) => setTimeout(resolve, 3000)); + } } catch (error) { console.error('Error starting database container:', error); } } - if (databaseEngine === 'sqlite' || databaseEngine === 'mongodb') { + if (databaseEngine === 'sqlite') { const result = await $`npx prisma db push --schema ${schemaArg}` .cwd(projectCwd) .nothrow(); if (result.exitCode !== 0) console.error('Error running Prisma migrations:', result.stderr); - return { dockerFreshInstall: false }; + return { dockerFreshInstall }; } - const result = - await $`npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}` - .cwd(projectCwd) + if (databaseEngine === 'mongodb') { + const docker = resolveDockerExe(); + const projectPath = resolve(projectCwd); + const network = `${toDockerProjectName(projectName)}_default`; + const mongoUrl = + 'mongodb://root:rootpassword@db:27017/database?authSource=admin'; + + const result = await $`${docker} run --rm --network ${network} -v ${projectPath}:/app -w /app -e "DATABASE_URL=${mongoUrl}" node:20-slim npx prisma db push --schema ${schemaArg}` + .nothrow(); + + if (result.exitCode !== 0) + console.error('Error running Prisma migrations:', result.stderr); + + return { dockerFreshInstall }; + } + + // Run prisma migrate from inside Docker to connect via network (avoids host connection auth issues) + const dockerNetworkUrls: Record = { + cockroachdb: 'postgresql://root@db:26257/database', + mariadb: 'mysql://root:rootpassword@db:3306/database', + mssql: + 'Server=db,1433;Database=master;User Id=sa;Password=SApassword1;Encrypt=true;TrustServerCertificate=true', + mysql: 'mysql://root:rootpassword@db:3306/database', + postgresql: 'postgresql://postgres:rootpassword@db:5432/database' + }; + const dbUrl = dockerNetworkUrls[databaseEngine]; + + if (dbUrl !== undefined) { + const docker = resolveDockerExe(); + const projectPath = resolve(projectCwd); + const network = `${toDockerProjectName(projectName)}_default`; + + const result = await $`${docker} run --rm --network ${network} -v ${projectPath}:/app -w /app -e "DATABASE_URL=${dbUrl}" node:20-slim npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}` .nothrow(); - if (result.exitCode !== 0) - console.error('Error running Prisma migrations:', result.stderr); - return { dockerFreshInstall: false }; + if (result.exitCode !== 0) + console.error('Error running Prisma migrations:', result.stderr); + } else { + const result = + await $`npx prisma migrate dev --name init --skip-generate --schema ${schemaArg}` + .cwd(projectCwd) + .nothrow(); + if (result.exitCode !== 0) + console.error('Error running Prisma migrations:', result.stderr); + } + + return { dockerFreshInstall }; };
- -

AbsoluteJS + React

- -

- Edit example/react/pages/ReactExample.tsx then save - and refresh to update the page. -

-

- ( Hot Module Reloading is coming soon ) -

-

- Explore the other pages to see how AbsoluteJS seamlessly unifies - multiple frameworks on a single server. -

-

- Click on the AbsoluteJS and React logos to learn more. -

-
+ +

AbsoluteJS + React

+ +

+ Edit example/react/pages/ReactExample.tsx then save + and refresh to update the page. +

+

+ ( Hot Module Reloading is coming soon ) +

+

+ Explore the other pages to see how AbsoluteJS seamlessly unifies + multiple frameworks on a single server. +

+

+ Click on the AbsoluteJS and React logos to learn more. +

+