From c91cb72b3862ef57c2d67a20b704fefb675441ae Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Tue, 26 Dec 2023 16:42:06 -0800 Subject: [PATCH] Adding exact search checkbox. --- package.json | 16 +- pnpm-lock.yaml | 208 ++++++++++++------------ src/lib/zodValidation.ts | 1 + src/routes/(app)/search/+page.server.ts | 12 +- src/routes/(app)/search/+page.svelte | 31 ++-- 5 files changed, 140 insertions(+), 128 deletions(-) diff --git a/package.json b/package.json index cad3baf..4b1b855 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@melt-ui/pp": "^0.1.4", - "@melt-ui/svelte": "^0.66.0", + "@melt-ui/svelte": "^0.66.3", "@playwright/test": "^1.40.1", "@resvg/resvg-js": "^2.4.1", "@sveltejs/adapter-auto": "^2.1.1", @@ -35,10 +35,10 @@ "@sveltejs/kit": "^1.30.3", "@types/cookie": "^0.5.4", "@types/node": "^18.19.3", - "@typescript-eslint/eslint-plugin": "^6.14.0", - "@typescript-eslint/parser": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", "autoprefixer": "^10.4.15", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", "just-clone": "^6.2.0", @@ -59,8 +59,8 @@ "svelte-preprocess": "^5.1.3", "svelte-sequential-preprocessor": "^2.0.1", "sveltekit-flash-message": "^2.3.0", - "sveltekit-superforms": "^1.12.0", - "tailwindcss": "^3.3.7", + "sveltekit-superforms": "^1.13.1", + "tailwindcss": "^3.4.0", "ts-node": "^10.9.2", "tslib": "^2.6.1", "typescript": "^5.3.3", @@ -90,7 +90,7 @@ "clsx": "^2.0.0", "cookie": "^0.5.0", "feather-icons": "^4.29.1", - "formsnap": "^0.4.1", + "formsnap": "^0.4.2", "html-entities": "^2.4.0", "iconify-icon": "^1.0.8", "just-kebab-case": "^4.2.0", @@ -102,7 +102,7 @@ "radix-svelte": "^0.9.0", "svelte-french-toast": "^1.2.0", "svelte-lazy-loader": "^1.0.0", - "tailwind-merge": "^2.1.0", + "tailwind-merge": "^2.2.0", "tailwind-variants": "^0.1.19", "tailwindcss-animate": "^1.0.6", "zod-to-json-schema": "^3.22.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 273a78d..32cc21c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,8 +54,8 @@ dependencies: specifier: ^4.29.1 version: 4.29.1 formsnap: - specifier: ^0.4.1 - version: 0.4.1(svelte@4.2.8)(sveltekit-superforms@1.12.0)(zod@3.22.4) + specifier: ^0.4.2 + version: 0.4.2(svelte@4.2.8)(sveltekit-superforms@1.13.1)(zod@3.22.4) html-entities: specifier: ^2.4.0 version: 2.4.0 @@ -90,14 +90,14 @@ dependencies: specifier: ^1.0.0 version: 1.0.0 tailwind-merge: - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^2.2.0 + version: 2.2.0 tailwind-variants: specifier: ^0.1.19 - version: 0.1.19(tailwindcss@3.3.7) + version: 0.1.19(tailwindcss@3.4.0) tailwindcss-animate: specifier: ^1.0.6 - version: 1.0.7(tailwindcss@3.3.7) + version: 1.0.7(tailwindcss@3.4.0) zod-to-json-schema: specifier: ^3.22.3 version: 3.22.3(zod@3.22.4) @@ -105,10 +105,10 @@ dependencies: devDependencies: '@melt-ui/pp': specifier: ^0.1.4 - version: 0.1.4(@melt-ui/svelte@0.66.0)(svelte@4.2.8) + version: 0.1.4(@melt-ui/svelte@0.66.3)(svelte@4.2.8) '@melt-ui/svelte': - specifier: ^0.66.0 - version: 0.66.0(svelte@4.2.8) + specifier: ^0.66.3 + version: 0.66.3(svelte@4.2.8) '@playwright/test': specifier: ^1.40.1 version: 1.40.1 @@ -131,23 +131,23 @@ devDependencies: specifier: ^18.19.3 version: 18.19.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.14.0 - version: 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) + specifier: ^6.16.0 + version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.14.0 - version: 6.14.0(eslint@8.55.0)(typescript@5.3.3) + specifier: ^6.16.0 + version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) autoprefixer: specifier: ^10.4.15 version: 10.4.16(postcss@8.4.32) eslint: - specifier: ^8.55.0 - version: 8.55.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.55.0) + version: 9.1.0(eslint@8.56.0) eslint-plugin-svelte: specifier: ^2.35.1 - version: 2.35.1(eslint@8.55.0)(svelte@4.2.8)(ts-node@10.9.2) + version: 2.35.1(eslint@8.56.0)(svelte@4.2.8)(ts-node@10.9.2) just-clone: specifier: ^6.2.0 version: 6.2.0 @@ -203,11 +203,11 @@ devDependencies: specifier: ^2.3.0 version: 2.3.0(@sveltejs/kit@1.30.3)(svelte@4.2.8) sveltekit-superforms: - specifier: ^1.12.0 - version: 1.12.0(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4) + specifier: ^1.13.1 + version: 1.13.1(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4) tailwindcss: - specifier: ^3.3.7 - version: 3.3.7(ts-node@10.9.2) + specifier: ^3.4.0 + version: 3.4.0(ts-node@10.9.2) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.3)(typescript@5.3.3) @@ -844,13 +844,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -867,7 +867,7 @@ packages: debug: 4.3.4 espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -876,8 +876,8 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1028,14 +1028,14 @@ packages: - supports-color dev: true - /@melt-ui/pp@0.1.4(@melt-ui/svelte@0.66.0)(svelte@4.2.8): + /@melt-ui/pp@0.1.4(@melt-ui/svelte@0.66.3)(svelte@4.2.8): resolution: {integrity: sha512-zR+Kl3CZJPJBHW8V7YcdQCMI/dVcnW9Ct3yGbVaIywYVStVRS7F9uEDOea3xLLT2WTGodQePzPlUn53yKFu87g==} engines: {pnpm: '>=8.6.3'} peerDependencies: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 dependencies: - '@melt-ui/svelte': 0.66.0(svelte@4.2.8) + '@melt-ui/svelte': 0.66.3(svelte@4.2.8) estree-walker: 3.0.3 svelte: 4.2.8 dev: true @@ -1054,8 +1054,8 @@ packages: svelte: 4.2.8 dev: false - /@melt-ui/svelte@0.66.0(svelte@4.2.8): - resolution: {integrity: sha512-vEF8V+MYNOovNxAgc54o9BWE8+TeQt6ey2zOxHjPuj8GnnIUsRHJxErMo96bjqdhpVjW7cMUEdOET0Tw0YqSIw==} + /@melt-ui/svelte@0.66.3(svelte@4.2.8): + resolution: {integrity: sha512-inwvI+YjvMWykK8PEYIg9sAx0sQHI29XeX9hfrdtP47mFVa61pQLqrLoADBpTSb5gO9ZzuL01agXGFfzjK1iPw==} peerDependencies: svelte: '>=3 <5' dependencies: @@ -1909,8 +1909,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1921,15 +1921,15 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/type-utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -1938,8 +1938,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==} + /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1948,27 +1948,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.14.0: - resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==} + /@typescript-eslint/scope-manager@6.16.0: + resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/type-utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==} + /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1977,23 +1977,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.14.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.14.0: - resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==} + /@typescript-eslint/types@6.16.0: + resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3): - resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==} + /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): + resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2001,11 +2001,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/visitor-keys': 6.14.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.3.3) typescript: 5.3.3 @@ -2013,30 +2014,30 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==} + /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.14.0 - '@typescript-eslint/types': 6.14.0 - '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.3.3) - eslint: 8.55.0 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.14.0: - resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==} + /@typescript-eslint/visitor-keys@6.16.0: + resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/types': 6.16.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2309,7 +2310,6 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: false /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2691,25 +2691,25 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.55.0): + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-svelte@2.35.1(eslint@8.55.0)(svelte@4.2.8)(ts-node@10.9.2): + /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.8)(ts-node@10.9.2): resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -2719,11 +2719,11 @@ packages: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) esutils: 2.0.3 known-css-properties: 0.29.0 postcss: 8.4.32 @@ -2751,15 +2751,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -2781,7 +2781,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -2952,15 +2952,15 @@ packages: is-callable: 1.2.7 dev: false - /formsnap@0.4.1(svelte@4.2.8)(sveltekit-superforms@1.12.0)(zod@3.22.4): - resolution: {integrity: sha512-hUOaDKb+KoBi4PamJRnxRqIQW3msp2BKPqohoqjHUuBb+vgBrhoaz0WYEFkXG4bzVQS3JngG55m/zX5ciZTyeA==} + /formsnap@0.4.2(svelte@4.2.8)(sveltekit-superforms@1.13.1)(zod@3.22.4): + resolution: {integrity: sha512-iUhGDUcjUW9tCOYLZ1rbNR1wkjtEbrXDxhUnl7+zPKjP5K8ikDfhZWH1cquKdUcHJoSE7M/Rruvg0fNQMjSNtA==} peerDependencies: svelte: ^4.0.0 sveltekit-superforms: ^1.7.1 zod: ^3.22.2 dependencies: svelte: 4.2.8 - sveltekit-superforms: 1.12.0(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4) + sveltekit-superforms: 1.13.1(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4) zod: 3.22.4 dev: false @@ -3165,11 +3165,6 @@ packages: '@iconify/types': 2.0.0 dev: false - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true - /ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -3523,6 +3518,13 @@ packages: brace-expansion: 2.0.1 dev: false + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -4830,8 +4832,8 @@ packages: svelte: 4.2.8 dev: true - /sveltekit-superforms@1.12.0(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4): - resolution: {integrity: sha512-yer9YKhfWsKsDIxXahFLuGuUel32gyi96qIdxTVFAOWXZM9ZaMEP7+FL2cMYRDg6Xqlrh5SQ9oQdkVYeLNG0eA==} + /sveltekit-superforms@1.13.1(@sveltejs/kit@1.30.3)(svelte@4.2.8)(zod@3.22.4): + resolution: {integrity: sha512-aWHAV6t6+7g37IGFNLRtbRIoqfC3a56Hf4/tTUNFZfwO2mOQGfeMb49WWBLdZZTrFRPGngfNRUxQzeoO3GspnQ==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x @@ -4848,32 +4850,32 @@ packages: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} dev: false - /tailwind-merge@2.1.0: - resolution: {integrity: sha512-l11VvI4nSwW7MtLSLYT4ldidDEUwQAMWuSHk7l4zcXZDgnCRa0V3OdCwFfM7DCzakVXMNRwAeje9maFFXT71dQ==} + /tailwind-merge@2.2.0: + resolution: {integrity: sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==} dependencies: '@babel/runtime': 7.23.6 dev: false - /tailwind-variants@0.1.19(tailwindcss@3.3.7): + /tailwind-variants@0.1.19(tailwindcss@3.4.0): resolution: {integrity: sha512-D9Yf5WqsxodnCtjZt6KifEoKwW8rTURXQV03KRKlojITQM5gV1vPVWufWNiIvd/ptC3QybYFpwmHK9cs4Ei08Q==} engines: {node: '>=16.x', pnpm: '>=7.x'} peerDependencies: tailwindcss: '*' dependencies: tailwind-merge: 1.14.0 - tailwindcss: 3.3.7(ts-node@10.9.2) + tailwindcss: 3.4.0(ts-node@10.9.2) dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.3.7): + /tailwindcss-animate@1.0.7(tailwindcss@3.4.0): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.3.7(ts-node@10.9.2) + tailwindcss: 3.4.0(ts-node@10.9.2) dev: false - /tailwindcss@3.3.7(ts-node@10.9.2): - resolution: {integrity: sha512-pjgQxDZPvyS/nG3ZYkyCvsbONJl7GdOejfm24iMt2ElYQQw8Jc4p0m8RdMp7mznPD0kUhfzwV3zAwa80qI0zmQ==} + /tailwindcss@3.4.0(ts-node@10.9.2): + resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: diff --git a/src/lib/zodValidation.ts b/src/lib/zodValidation.ts index 920e6e3..a7087f3 100644 --- a/src/lib/zodValidation.ts +++ b/src/lib/zodValidation.ts @@ -61,6 +61,7 @@ const Search = z.object({ export const search_schema = z .object({ q: z.string().trim().optional().default(''), + exact: z.preprocess((a) => Boolean(a), z.boolean().default(true)), minAge: IntegerString(z.number().min(1).max(120).optional()), minPlayers: IntegerString(z.number().min(1).max(50).optional()), maxPlayers: IntegerString(z.number().min(1).max(50).optional()), diff --git a/src/routes/(app)/search/+page.server.ts b/src/routes/(app)/search/+page.server.ts index 7c0c5a2..f984204 100644 --- a/src/routes/(app)/search/+page.server.ts +++ b/src/routes/(app)/search/+page.server.ts @@ -37,12 +37,12 @@ async function searchForGames( const response = await eventFetch(url, requestInit); console.log('response from internal api', response); - if (!response.ok) { - console.log('Status not 200', response.status); + if (response.status !== 404 && !response.ok) { + console.log('Status from internal api not 200', response.status); throw error(response.status); } - let games = await response.json(); + const games = await response.json(); console.log('games from DB', games); const gameNameSearch = urlQueryParams.get('q'); @@ -61,9 +61,9 @@ async function searchForGames( console.log('Back from external search', externalResponse); - if (!response.ok) { - console.log('Status not 200', response.status); - throw error(response.status); + if (!externalResponse.ok) { + console.log('Status not 200', externalResponse.status); + throw error(externalResponse.status); } if (externalResponse.ok) { diff --git a/src/routes/(app)/search/+page.svelte b/src/routes/(app)/search/+page.svelte index 8f32214..a1ab36d 100644 --- a/src/routes/(app)/search/+page.svelte +++ b/src/routes/(app)/search/+page.svelte @@ -10,6 +10,7 @@ import { Label } from '$lib/components/ui/label'; import { Input } from '$lib/components/ui/input'; import { Button } from '$lib/components/ui/button'; + import { Checkbox } from "$lib/components/ui/checkbox"; export let data; @@ -39,17 +40,25 @@
- +
+ + + {#if $errors.q} +

{$errors.q}

+ {/if} + + +
+
+ + +