Finally fix the build pagination issue
This commit is contained in:
parent
2881835dee
commit
5de0e3aa32
450
package-lock.json
generated
450
package-lock.json
generated
@ -8,7 +8,7 @@
|
||||
"name": "michalvankodev",
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"@vanilla-extract/css": "^1.6.8",
|
||||
"@vanilla-extract/css": "^1.7.0",
|
||||
"@vanilla-extract/sprinkles": "^1.4.0",
|
||||
"@vanilla-extract/vite-plugin": "^3.1.4",
|
||||
"classnames": "^2.3.1",
|
||||
@ -17,31 +17,31 @@
|
||||
"front-matter": "^4.0.2",
|
||||
"marked": "^3.0.8",
|
||||
"modern-normalize": "^1.1.0",
|
||||
"polished": "^4.1.4",
|
||||
"prismjs": "^1.27.0",
|
||||
"polished": "^4.2.2",
|
||||
"prismjs": "^1.28.0",
|
||||
"ramda": "^0.28.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-static": "^1.0.0-next.29",
|
||||
"@sveltejs/kit": "^1.0.0-next.302",
|
||||
"@tsconfig/svelte": "^2.0.1",
|
||||
"@sveltejs/kit": "^1.0.0-next.316",
|
||||
"@tsconfig/svelte": "^3.0.0",
|
||||
"@types/classnames": "^2.3.1",
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/ramda": "^0.28.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.16.0",
|
||||
"@typescript-eslint/parser": "^5.16.0",
|
||||
"eslint": "^8.11.0",
|
||||
"@types/ramda": "^0.28.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.20.0",
|
||||
"@typescript-eslint/parser": "^5.20.0",
|
||||
"eslint": "^8.13.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-svelte3": "^3.4.1",
|
||||
"prettier": "~2.6.0",
|
||||
"prettier-plugin-svelte": "^2.6.0",
|
||||
"svelte": "^3.46.4",
|
||||
"svelte-preprocess": "^4.10.4",
|
||||
"prettier": "~2.6.2",
|
||||
"prettier-plugin-svelte": "^2.7.0",
|
||||
"svelte": "^3.47.0",
|
||||
"svelte-preprocess": "^4.10.6",
|
||||
"svgstore-cli": "^2.0.1",
|
||||
"tslib": "^2.3.1",
|
||||
"typescript": "^4.6.2",
|
||||
"vite": "^2.8.6",
|
||||
"vitest": "^0.7.13",
|
||||
"typescript": "^4.6.3",
|
||||
"vite": "^2.9.5",
|
||||
"vitest": "^0.9.3",
|
||||
"vitest-svelte-kit": "^0.0.6"
|
||||
}
|
||||
},
|
||||
@ -505,14 +505,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/kit": {
|
||||
"version": "1.0.0-next.302",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.302.tgz",
|
||||
"integrity": "sha512-+YUSU7uN5n8i0NOVRaBQgxbaCgFqn63YNudm8kqu27iaw8iCw9Ua6YuE0uMeAtYif+uSletFiMy73f55mMfJNQ==",
|
||||
"version": "1.0.0-next.316",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.316.tgz",
|
||||
"integrity": "sha512-oLjWOWzjriJD2t210r7ALuH/8ZADrJGsOODzRCRSJvRBCt0Q7VKVLqwKbM/RlZzD1k8Af2uRodQT11kP98hAIA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@sveltejs/vite-plugin-svelte": "^1.0.0-next.32",
|
||||
"sade": "^1.7.4",
|
||||
"vite": "^2.8.0"
|
||||
"vite": "^2.9.0"
|
||||
},
|
||||
"bin": {
|
||||
"svelte-kit": "svelte-kit.js"
|
||||
@ -563,9 +563,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@tsconfig/svelte": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-2.0.1.tgz",
|
||||
"integrity": "sha512-aqkICXbM1oX5FfgZd2qSSAGdyo/NRxjWCamxoyi3T8iVQnzGge19HhDYzZ6NrVOW7bhcWNSq9XexWFtMzbB24A==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz",
|
||||
"integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/chai": {
|
||||
@ -594,9 +594,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/json-schema": {
|
||||
"version": "7.0.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz",
|
||||
"integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==",
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
@ -611,9 +611,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/ramda": {
|
||||
"version": "0.28.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.1.tgz",
|
||||
"integrity": "sha512-8wnJK5aPaGL7AYhQSe7olwxjhIB9GO4GOCxd6JjYlVNe128DHJDOu7Kyve4kx4uazeKJdnOS3N5TVRv0z1bb1g==",
|
||||
"version": "0.28.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.11.tgz",
|
||||
"integrity": "sha512-FG40c+CduBSpGL6gh9M2Ybe+Rhkj/G6HeCnvufO1HbEcnY5fbFfL7EPuj1mXNcEKfxdZw6mRu4cy+GMHen79DQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ts-toolbelt": "^6.15.1"
|
||||
@ -629,14 +629,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
|
||||
"integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz",
|
||||
"integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/type-utils": "5.16.0",
|
||||
"@typescript-eslint/utils": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/type-utils": "5.20.0",
|
||||
"@typescript-eslint/utils": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"ignore": "^5.1.8",
|
||||
@ -677,14 +677,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz",
|
||||
"integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz",
|
||||
"integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/typescript-estree": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/typescript-estree": "5.20.0",
|
||||
"debug": "^4.3.2"
|
||||
},
|
||||
"engines": {
|
||||
@ -704,13 +704,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz",
|
||||
"integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz",
|
||||
"integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/visitor-keys": "5.16.0"
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/visitor-keys": "5.20.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@ -721,12 +721,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz",
|
||||
"integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz",
|
||||
"integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/utils": "5.16.0",
|
||||
"@typescript-eslint/utils": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
@ -747,9 +747,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz",
|
||||
"integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz",
|
||||
"integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@ -760,13 +760,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz",
|
||||
"integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz",
|
||||
"integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/visitor-keys": "5.16.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/visitor-keys": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"globby": "^11.0.4",
|
||||
"is-glob": "^4.0.3",
|
||||
@ -787,9 +787,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||
"version": "7.3.7",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
@ -802,15 +802,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz",
|
||||
"integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz",
|
||||
"integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/typescript-estree": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/typescript-estree": "5.20.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0"
|
||||
},
|
||||
@ -826,12 +826,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz",
|
||||
"integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz",
|
||||
"integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"eslint-visitor-keys": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
@ -843,13 +843,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@vanilla-extract/css": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.6.8.tgz",
|
||||
"integrity": "sha512-wkZay2jWe9a3Dt30j+WTJicK4+YV7i65lr+QnpkigVY9uU2KPzaiASEyUV8AouT2cZm7AOhteBBVKI8cYeWnVQ==",
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.7.0.tgz",
|
||||
"integrity": "sha512-2Abpr5aJskwKS+waMWxWnTBqq/rj4J93KtGteW0VSORMUsijrupwjOXECd7Llh+nSFfx/Y6usuexF5/ffyDF8A==",
|
||||
"dependencies": {
|
||||
"@emotion/hash": "^0.8.0",
|
||||
"@vanilla-extract/private": "^1.0.3",
|
||||
"chalk": "^4.1.1",
|
||||
"css-mediaquery": "^0.1.2",
|
||||
"css-what": "^5.0.1",
|
||||
"cssesc": "^3.0.0",
|
||||
"csstype": "^3.0.7",
|
||||
@ -1285,6 +1286,11 @@
|
||||
"is-what": "^3.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/css-mediaquery": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
|
||||
"integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA="
|
||||
},
|
||||
"node_modules/css-select": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
|
||||
@ -1844,9 +1850,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz",
|
||||
"integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==",
|
||||
"version": "8.13.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz",
|
||||
"integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint/eslintrc": "^1.2.1",
|
||||
@ -2963,13 +2969,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
|
||||
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"braces": "^3.0.1",
|
||||
"picomatch": "^2.2.3"
|
||||
"braces": "^3.0.2",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.6"
|
||||
@ -3251,11 +3257,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/polished": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz",
|
||||
"integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==",
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz",
|
||||
"integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.7"
|
||||
"@babel/runtime": "^7.17.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
@ -3319,9 +3325,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz",
|
||||
"integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==",
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
|
||||
"integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
@ -3334,9 +3340,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-svelte": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz",
|
||||
"integrity": "sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==",
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.7.0.tgz",
|
||||
"integrity": "sha512-fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"prettier": "^1.16.4 || ^2.0.0",
|
||||
@ -3344,9 +3350,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.27.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
|
||||
"integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==",
|
||||
"version": "1.28.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz",
|
||||
"integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@ -3683,9 +3689,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/svelte": {
|
||||
"version": "3.46.4",
|
||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
||||
"integrity": "sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==",
|
||||
"version": "3.47.0",
|
||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.47.0.tgz",
|
||||
"integrity": "sha512-4JaJp3HEoTCGARRWZQIZDUanhYv0iyoHikklVHVLH9xFE9db22g4TDv7CPeNA8HD1JgjXI1vlhR1JZvvhaTu2Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
@ -3704,9 +3710,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/svelte-preprocess": {
|
||||
"version": "4.10.4",
|
||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.4.tgz",
|
||||
"integrity": "sha512-fuwol0N4UoHsNQolLFbMqWivqcJ9N0vfWO9IuPAiX/5okfoGXURyJ6nECbuEIv0nU3M8Xe2I1ONNje2buk7l6A==",
|
||||
"version": "4.10.6",
|
||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.6.tgz",
|
||||
"integrity": "sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
@ -3821,9 +3827,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tinyspy": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.0.tgz",
|
||||
"integrity": "sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==",
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.2.tgz",
|
||||
"integrity": "sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
@ -3919,9 +3925,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz",
|
||||
"integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==",
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
@ -3947,12 +3953,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "2.8.6",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-2.8.6.tgz",
|
||||
"integrity": "sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==",
|
||||
"version": "2.9.5",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-2.9.5.tgz",
|
||||
"integrity": "sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==",
|
||||
"dependencies": {
|
||||
"esbuild": "^0.14.14",
|
||||
"postcss": "^8.4.6",
|
||||
"esbuild": "^0.14.27",
|
||||
"postcss": "^8.4.12",
|
||||
"resolve": "^1.22.0",
|
||||
"rollup": "^2.59.0"
|
||||
},
|
||||
@ -4017,9 +4023,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vitest": {
|
||||
"version": "0.7.13",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.7.13.tgz",
|
||||
"integrity": "sha512-UCHeJEOK+qCBa/e4UtkCfv0wIZ125T4Nf2R0J/46v/Wnv6bt9zGfAyKAI6siYFhvLvg20MgDIreROtVgedHFWw==",
|
||||
"version": "0.9.3",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.9.3.tgz",
|
||||
"integrity": "sha512-hKjqdBI732cV5giNLERyAsaJBebstrX5mvTbZr+jUDYUHnX1O4DpAJcHtqBOutuBi7lVIGQ5IF8eWvHHqbCHBA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/chai": "^4.3.0",
|
||||
@ -4027,14 +4033,14 @@
|
||||
"chai": "^4.3.6",
|
||||
"local-pkg": "^0.4.1",
|
||||
"tinypool": "^0.1.2",
|
||||
"tinyspy": "^0.3.0",
|
||||
"vite": "^2.8.6"
|
||||
"tinyspy": "^0.3.2",
|
||||
"vite": "^2.9.1"
|
||||
},
|
||||
"bin": {
|
||||
"vitest": "vitest.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v14.19.1"
|
||||
"node": ">=v14.16.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
@ -4542,14 +4548,14 @@
|
||||
}
|
||||
},
|
||||
"@sveltejs/kit": {
|
||||
"version": "1.0.0-next.302",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.302.tgz",
|
||||
"integrity": "sha512-+YUSU7uN5n8i0NOVRaBQgxbaCgFqn63YNudm8kqu27iaw8iCw9Ua6YuE0uMeAtYif+uSletFiMy73f55mMfJNQ==",
|
||||
"version": "1.0.0-next.316",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.316.tgz",
|
||||
"integrity": "sha512-oLjWOWzjriJD2t210r7ALuH/8ZADrJGsOODzRCRSJvRBCt0Q7VKVLqwKbM/RlZzD1k8Af2uRodQT11kP98hAIA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@sveltejs/vite-plugin-svelte": "^1.0.0-next.32",
|
||||
"sade": "^1.7.4",
|
||||
"vite": "^2.8.0"
|
||||
"vite": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"@sveltejs/vite-plugin-svelte": {
|
||||
@ -4577,9 +4583,9 @@
|
||||
}
|
||||
},
|
||||
"@tsconfig/svelte": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-2.0.1.tgz",
|
||||
"integrity": "sha512-aqkICXbM1oX5FfgZd2qSSAGdyo/NRxjWCamxoyi3T8iVQnzGge19HhDYzZ6NrVOW7bhcWNSq9XexWFtMzbB24A==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz",
|
||||
"integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/chai": {
|
||||
@ -4607,9 +4613,9 @@
|
||||
}
|
||||
},
|
||||
"@types/json-schema": {
|
||||
"version": "7.0.10",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz",
|
||||
"integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==",
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
@ -4624,9 +4630,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/ramda": {
|
||||
"version": "0.28.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.1.tgz",
|
||||
"integrity": "sha512-8wnJK5aPaGL7AYhQSe7olwxjhIB9GO4GOCxd6JjYlVNe128DHJDOu7Kyve4kx4uazeKJdnOS3N5TVRv0z1bb1g==",
|
||||
"version": "0.28.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.11.tgz",
|
||||
"integrity": "sha512-FG40c+CduBSpGL6gh9M2Ybe+Rhkj/G6HeCnvufO1HbEcnY5fbFfL7EPuj1mXNcEKfxdZw6mRu4cy+GMHen79DQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ts-toolbelt": "^6.15.1"
|
||||
@ -4642,14 +4648,14 @@
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
|
||||
"integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz",
|
||||
"integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/type-utils": "5.16.0",
|
||||
"@typescript-eslint/utils": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/type-utils": "5.20.0",
|
||||
"@typescript-eslint/utils": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"ignore": "^5.1.8",
|
||||
@ -4670,52 +4676,52 @@
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz",
|
||||
"integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz",
|
||||
"integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/typescript-estree": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/typescript-estree": "5.20.0",
|
||||
"debug": "^4.3.2"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz",
|
||||
"integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz",
|
||||
"integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/visitor-keys": "5.16.0"
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/visitor-keys": "5.20.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/type-utils": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz",
|
||||
"integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz",
|
||||
"integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/utils": "5.16.0",
|
||||
"@typescript-eslint/utils": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"tsutils": "^3.21.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz",
|
||||
"integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz",
|
||||
"integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz",
|
||||
"integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz",
|
||||
"integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/visitor-keys": "5.16.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/visitor-keys": "5.20.0",
|
||||
"debug": "^4.3.2",
|
||||
"globby": "^11.0.4",
|
||||
"is-glob": "^4.0.3",
|
||||
@ -4724,9 +4730,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||
"version": "7.3.7",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
|
||||
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
@ -4735,37 +4741,38 @@
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/utils": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz",
|
||||
"integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz",
|
||||
"integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@typescript-eslint/scope-manager": "5.16.0",
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/typescript-estree": "5.16.0",
|
||||
"@typescript-eslint/scope-manager": "5.20.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"@typescript-eslint/typescript-estree": "5.20.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz",
|
||||
"integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==",
|
||||
"version": "5.20.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz",
|
||||
"integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.16.0",
|
||||
"@typescript-eslint/types": "5.20.0",
|
||||
"eslint-visitor-keys": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"@vanilla-extract/css": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.6.8.tgz",
|
||||
"integrity": "sha512-wkZay2jWe9a3Dt30j+WTJicK4+YV7i65lr+QnpkigVY9uU2KPzaiASEyUV8AouT2cZm7AOhteBBVKI8cYeWnVQ==",
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.7.0.tgz",
|
||||
"integrity": "sha512-2Abpr5aJskwKS+waMWxWnTBqq/rj4J93KtGteW0VSORMUsijrupwjOXECd7Llh+nSFfx/Y6usuexF5/ffyDF8A==",
|
||||
"requires": {
|
||||
"@emotion/hash": "^0.8.0",
|
||||
"@vanilla-extract/private": "^1.0.3",
|
||||
"chalk": "^4.1.1",
|
||||
"css-mediaquery": "^0.1.2",
|
||||
"css-what": "^5.0.1",
|
||||
"cssesc": "^3.0.0",
|
||||
"csstype": "^3.0.7",
|
||||
@ -5110,6 +5117,11 @@
|
||||
"is-what": "^3.12.0"
|
||||
}
|
||||
},
|
||||
"css-mediaquery": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
|
||||
"integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA="
|
||||
},
|
||||
"css-select": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
|
||||
@ -5410,9 +5422,9 @@
|
||||
"peer": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.11.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz",
|
||||
"integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==",
|
||||
"version": "8.13.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz",
|
||||
"integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint/eslintrc": "^1.2.1",
|
||||
@ -6245,13 +6257,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
|
||||
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"braces": "^3.0.1",
|
||||
"picomatch": "^2.2.3"
|
||||
"braces": "^3.0.2",
|
||||
"picomatch": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
@ -6458,11 +6470,11 @@
|
||||
"peer": true
|
||||
},
|
||||
"polished": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz",
|
||||
"integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==",
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz",
|
||||
"integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.16.7"
|
||||
"@babel/runtime": "^7.17.8"
|
||||
}
|
||||
},
|
||||
"postcss": {
|
||||
@ -6492,22 +6504,22 @@
|
||||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz",
|
||||
"integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==",
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
|
||||
"integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
|
||||
"dev": true
|
||||
},
|
||||
"prettier-plugin-svelte": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz",
|
||||
"integrity": "sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==",
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.7.0.tgz",
|
||||
"integrity": "sha512-fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"prismjs": {
|
||||
"version": "1.27.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
|
||||
"integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="
|
||||
"version": "1.28.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz",
|
||||
"integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw=="
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
@ -6732,9 +6744,9 @@
|
||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
|
||||
},
|
||||
"svelte": {
|
||||
"version": "3.46.4",
|
||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
||||
"integrity": "sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==",
|
||||
"version": "3.47.0",
|
||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.47.0.tgz",
|
||||
"integrity": "sha512-4JaJp3HEoTCGARRWZQIZDUanhYv0iyoHikklVHVLH9xFE9db22g4TDv7CPeNA8HD1JgjXI1vlhR1JZvvhaTu2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"svelte-hmr": {
|
||||
@ -6745,9 +6757,9 @@
|
||||
"requires": {}
|
||||
},
|
||||
"svelte-preprocess": {
|
||||
"version": "4.10.4",
|
||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.4.tgz",
|
||||
"integrity": "sha512-fuwol0N4UoHsNQolLFbMqWivqcJ9N0vfWO9IuPAiX/5okfoGXURyJ6nECbuEIv0nU3M8Xe2I1ONNje2buk7l6A==",
|
||||
"version": "4.10.6",
|
||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.6.tgz",
|
||||
"integrity": "sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/pug": "^2.0.4",
|
||||
@ -6801,9 +6813,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"tinyspy": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.0.tgz",
|
||||
"integrity": "sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==",
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.2.tgz",
|
||||
"integrity": "sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"to-fast-properties": {
|
||||
@ -6874,9 +6886,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz",
|
||||
"integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==",
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"dev": true
|
||||
},
|
||||
"uri-js": {
|
||||
@ -6895,13 +6907,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"vite": {
|
||||
"version": "2.8.6",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-2.8.6.tgz",
|
||||
"integrity": "sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==",
|
||||
"version": "2.9.5",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-2.9.5.tgz",
|
||||
"integrity": "sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==",
|
||||
"requires": {
|
||||
"esbuild": "^0.14.14",
|
||||
"esbuild": "^0.14.27",
|
||||
"fsevents": "~2.3.2",
|
||||
"postcss": "^8.4.6",
|
||||
"postcss": "^8.4.12",
|
||||
"resolve": "^1.22.0",
|
||||
"rollup": "^2.59.0"
|
||||
},
|
||||
@ -6936,9 +6948,9 @@
|
||||
}
|
||||
},
|
||||
"vitest": {
|
||||
"version": "0.7.13",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.7.13.tgz",
|
||||
"integrity": "sha512-UCHeJEOK+qCBa/e4UtkCfv0wIZ125T4Nf2R0J/46v/Wnv6bt9zGfAyKAI6siYFhvLvg20MgDIreROtVgedHFWw==",
|
||||
"version": "0.9.3",
|
||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.9.3.tgz",
|
||||
"integrity": "sha512-hKjqdBI732cV5giNLERyAsaJBebstrX5mvTbZr+jUDYUHnX1O4DpAJcHtqBOutuBi7lVIGQ5IF8eWvHHqbCHBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/chai": "^4.3.0",
|
||||
@ -6946,8 +6958,8 @@
|
||||
"chai": "^4.3.6",
|
||||
"local-pkg": "^0.4.1",
|
||||
"tinypool": "^0.1.2",
|
||||
"tinyspy": "^0.3.0",
|
||||
"vite": "^2.8.6"
|
||||
"tinyspy": "^0.3.2",
|
||||
"vite": "^2.9.1"
|
||||
}
|
||||
},
|
||||
"vitest-svelte-kit": {
|
||||
|
32
package.json
32
package.json
@ -16,7 +16,7 @@
|
||||
"svgstore": "svgstore -o static/build/icons-sprite.svg src/svg/**.svg"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vanilla-extract/css": "^1.6.8",
|
||||
"@vanilla-extract/css": "^1.7.0",
|
||||
"@vanilla-extract/sprinkles": "^1.4.0",
|
||||
"@vanilla-extract/vite-plugin": "^3.1.4",
|
||||
"classnames": "^2.3.1",
|
||||
@ -25,31 +25,31 @@
|
||||
"front-matter": "^4.0.2",
|
||||
"marked": "^3.0.8",
|
||||
"modern-normalize": "^1.1.0",
|
||||
"polished": "^4.1.4",
|
||||
"prismjs": "^1.27.0",
|
||||
"polished": "^4.2.2",
|
||||
"prismjs": "^1.28.0",
|
||||
"ramda": "^0.28.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-static": "^1.0.0-next.29",
|
||||
"@sveltejs/kit": "^1.0.0-next.302",
|
||||
"@tsconfig/svelte": "^2.0.1",
|
||||
"@sveltejs/kit": "^1.0.0-next.316",
|
||||
"@tsconfig/svelte": "^3.0.0",
|
||||
"@types/classnames": "^2.3.1",
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/ramda": "^0.28.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.16.0",
|
||||
"@typescript-eslint/parser": "^5.16.0",
|
||||
"eslint": "^8.11.0",
|
||||
"@types/ramda": "^0.28.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.20.0",
|
||||
"@typescript-eslint/parser": "^5.20.0",
|
||||
"eslint": "^8.13.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-svelte3": "^3.4.1",
|
||||
"prettier": "~2.6.0",
|
||||
"prettier-plugin-svelte": "^2.6.0",
|
||||
"svelte": "^3.46.4",
|
||||
"svelte-preprocess": "^4.10.4",
|
||||
"prettier": "~2.6.2",
|
||||
"prettier-plugin-svelte": "^2.7.0",
|
||||
"svelte": "^3.47.0",
|
||||
"svelte-preprocess": "^4.10.6",
|
||||
"svgstore-cli": "^2.0.1",
|
||||
"tslib": "^2.3.1",
|
||||
"typescript": "^4.6.2",
|
||||
"vite": "^2.8.6",
|
||||
"vitest": "^0.7.13",
|
||||
"typescript": "^4.6.3",
|
||||
"vite": "^2.9.5",
|
||||
"vitest": "^0.9.3",
|
||||
"vitest-svelte-kit": "^0.0.6"
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { toParams } from '$lib/pagination/searchParams'
|
||||
import { toParams } from '$lib/pagination/dropTakeParams'
|
||||
import { last, range } from 'ramda'
|
||||
|
||||
export const Divider = 'divider'
|
||||
@ -45,6 +45,5 @@ export function createHref(
|
||||
pageNumber: number
|
||||
) {
|
||||
const filtersPath = toParams(filters)
|
||||
console.log(filtersPath, filters)
|
||||
return `/${href}/${filtersPath ? filtersPath + '/' : ''}page/${pageNumber}`
|
||||
}
|
||||
|
11
src/lib/pagination/dropTakeParams.test.ts
Normal file
11
src/lib/pagination/dropTakeParams.test.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { describe, test, expect } from 'vitest'
|
||||
import { getDropTakeFromPageParams } from './dropTakeParams'
|
||||
|
||||
describe('convert search params', () => {
|
||||
test('should convert from page size and page to offset and limit', () => {
|
||||
expect(getDropTakeFromPageParams(7, 2)).toEqual({
|
||||
offset: 7,
|
||||
limit: 7,
|
||||
})
|
||||
})
|
||||
})
|
42
src/lib/pagination/dropTakeParams.ts
Normal file
42
src/lib/pagination/dropTakeParams.ts
Normal file
@ -0,0 +1,42 @@
|
||||
import { splitEvery } from 'ramda'
|
||||
|
||||
export function parseParams(params: string) {
|
||||
const splittedParams = params.split('/')
|
||||
if (splittedParams.length % 2 !== 0) {
|
||||
return []
|
||||
}
|
||||
const splits = splitEvery(2, splittedParams)
|
||||
return Object.fromEntries(splits)
|
||||
}
|
||||
|
||||
export function toParams(records: Record<string, string>) {
|
||||
return Object.entries(records)
|
||||
.map(([key, value]) => `${key}/${value}`)
|
||||
.join('/')
|
||||
}
|
||||
|
||||
export interface PaginationParams {
|
||||
pageSize: number
|
||||
page: number
|
||||
filters?: Record<string, string>
|
||||
}
|
||||
|
||||
export interface DropTakeParams {
|
||||
offset: number
|
||||
limit: number
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert svelte `load` params into a `offset` and `limit` so they can be used to fetch endpoints with pagination queries
|
||||
*/
|
||||
export function getDropTakeFromPageParams(
|
||||
pageSize: number,
|
||||
page: number
|
||||
): DropTakeParams {
|
||||
const offset = pageSize * (page - 1)
|
||||
const limit = pageSize
|
||||
return {
|
||||
offset,
|
||||
limit,
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
import { describe, test, expect } from 'vitest'
|
||||
import {
|
||||
getPaginationQueryFromSearchParams,
|
||||
getPaginationSearchParams,
|
||||
parseParams,
|
||||
} from './searchParams'
|
||||
|
||||
describe('convert search params', () => {
|
||||
test('drop take params are not taken as filters', () => {
|
||||
expect(
|
||||
getPaginationQueryFromSearchParams(
|
||||
new URLSearchParams('offset=2&limit=5')
|
||||
)
|
||||
).toEqual({ offset: 2, limit: 5 })
|
||||
})
|
||||
|
||||
test('return empty paginationQuery if ', () => {
|
||||
expect(getPaginationQueryFromSearchParams(new URLSearchParams(''))).toEqual(
|
||||
{}
|
||||
)
|
||||
})
|
||||
|
||||
test('other than drop take params are moved to filters ', () => {
|
||||
expect(
|
||||
getPaginationQueryFromSearchParams(new URLSearchParams('tag=news'))
|
||||
).toEqual({ filters: { tag: 'news' } })
|
||||
})
|
||||
|
||||
test('offset and filter combined', () => {
|
||||
expect(
|
||||
getPaginationQueryFromSearchParams(
|
||||
new URLSearchParams('offset=3&tag=news')
|
||||
)
|
||||
).toEqual({ offset: 3, filters: { tag: 'news' } })
|
||||
})
|
||||
})
|
||||
|
||||
describe('get search params', () => {
|
||||
test('parse params', () => {
|
||||
const params = 'tags/News/page/1'
|
||||
expect(parseParams(params)).toEqual({ tags: 'News', page: '1' })
|
||||
})
|
||||
|
||||
test('should parse values into searchParams for first page', () => {
|
||||
const params = {
|
||||
pageSize: 7,
|
||||
page: 1,
|
||||
filters: {
|
||||
tags: 'News',
|
||||
},
|
||||
}
|
||||
expect(getPaginationSearchParams(params).toString()).toEqual(
|
||||
'limit=7&offset=0&tags=News'
|
||||
)
|
||||
})
|
||||
|
||||
test('should parse values into searchParams for third page', () => {
|
||||
const params = {
|
||||
pageSize: 7,
|
||||
page: 3,
|
||||
filters: {
|
||||
tags: 'News',
|
||||
},
|
||||
}
|
||||
expect(getPaginationSearchParams(params).toString()).toEqual(
|
||||
'limit=7&offset=14&tags=News'
|
||||
)
|
||||
})
|
||||
|
||||
test('should return first page without any params specified', () => {
|
||||
const params = {
|
||||
pageSize: 7,
|
||||
page: 1,
|
||||
}
|
||||
expect(getPaginationSearchParams(params).toString()).toEqual(
|
||||
'limit=7&offset=0'
|
||||
)
|
||||
})
|
||||
})
|
@ -1,60 +0,0 @@
|
||||
import { splitEvery } from 'ramda'
|
||||
import type { PaginationQuery } from './pagination'
|
||||
|
||||
export function getPaginationQueryFromSearchParams(
|
||||
searchParams: URLSearchParams
|
||||
) {
|
||||
return Array.from(searchParams).reduce<PaginationQuery>(
|
||||
(acc, [key, value]) => {
|
||||
const isDropTake = ['offset', 'limit'].includes(key)
|
||||
if (isDropTake) {
|
||||
return {
|
||||
...acc,
|
||||
[key]: Number(value),
|
||||
}
|
||||
}
|
||||
return {
|
||||
...acc,
|
||||
filters: {
|
||||
...acc.filters,
|
||||
[key]: value,
|
||||
},
|
||||
}
|
||||
},
|
||||
{}
|
||||
)
|
||||
}
|
||||
|
||||
export function parseParams(params: string) {
|
||||
const splittedParams = params.split('/')
|
||||
if (splittedParams.length % 2 !== 0) {
|
||||
return []
|
||||
}
|
||||
const splits = splitEvery(2, splittedParams)
|
||||
return Object.fromEntries(splits)
|
||||
}
|
||||
|
||||
export function toParams(records: Record<string, string>) {
|
||||
return Object.entries(records)
|
||||
.map(([key, value]) => `${key}/${value}`)
|
||||
.join('/')
|
||||
}
|
||||
|
||||
export interface PaginationSearchParams {
|
||||
pageSize: number
|
||||
page: number
|
||||
filters?: Record<string, string>
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert svelte `load` params into a `URLSearchParams` so they can be used to fetch endpoints with pagination queries
|
||||
*/
|
||||
export function getPaginationSearchParams({
|
||||
pageSize,
|
||||
page,
|
||||
filters,
|
||||
}: PaginationSearchParams) {
|
||||
const offset = pageSize * (page - 1)
|
||||
const limit = pageSize
|
||||
return new URLSearchParams({ limit, offset, ...filters })
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
/** @type {import('@sveltejs/kit').ParamMatcher} */
|
||||
export function match(param: string) {
|
||||
console.debug('parma', param)
|
||||
return !['tags', 'page'].some((keyword) => param.startsWith(keyword))
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
import type { LoadInput, LoadOutput } from '@sveltejs/kit/types/page'
|
||||
|
||||
export async function load({ fetch, url }: LoadInput): Promise<LoadOutput> {
|
||||
const blogPostsResponse = await fetch(`/blog/articles?limit=5`)
|
||||
const blogPostsResponse = await fetch(`/blog/articles/pageSize/5.json`)
|
||||
const blogPostsContent = await blogPostsResponse.json()
|
||||
return {
|
||||
props: {
|
||||
|
@ -1,21 +1,13 @@
|
||||
<script lang="ts" context="module">
|
||||
import {
|
||||
getPaginationSearchParams,
|
||||
parseParams,
|
||||
} from '$lib/pagination/searchParams'
|
||||
|
||||
const pageSize = 7
|
||||
import { parseParams } from '$lib/pagination/dropTakeParams'
|
||||
|
||||
/**
|
||||
* @type {import('@sveltejs/kit').Load}
|
||||
*/
|
||||
export async function load({ fetch, params }) {
|
||||
console.log('params', params)
|
||||
const { page = 1, ...filters } = parseParams(params.params)
|
||||
const searchParams = getPaginationSearchParams({ pageSize, page, filters })
|
||||
console.log('searchpprsm', searchParams)
|
||||
const { page = 1, pageSize = 7, ...filters } = parseParams(params.params)
|
||||
const articleResponse = await fetch(
|
||||
`/blog/articles?${searchParams.toString()}`
|
||||
`/blog/articles/${params.params ? params.params : 'index'}.json`
|
||||
).then((r) => r.json())
|
||||
|
||||
return {
|
||||
@ -40,6 +32,7 @@
|
||||
export let filters: Record<string, string>
|
||||
export let page: number
|
||||
export let pageSize: number
|
||||
|
||||
let totalPages = Math.ceil(posts.totalCount / pageSize)
|
||||
</script>
|
||||
|
||||
@ -47,7 +40,6 @@
|
||||
<title>My blog @michalvankodev</title>
|
||||
</svelte:head>
|
||||
|
||||
{@debug posts}
|
||||
{#if posts.items.length === 0}
|
||||
<p class="no-posts">You've found void in the space.</p>
|
||||
{:else}
|
||||
@ -75,7 +67,7 @@
|
||||
/>
|
||||
</header>
|
||||
<ul class="post-list {postListClass}">
|
||||
{#each posts.items as post}
|
||||
{#each posts.items as post (post.slug)}
|
||||
<li>
|
||||
<article>
|
||||
<header>
|
||||
|
@ -1,14 +0,0 @@
|
||||
import { getPaginationQueryFromSearchParams } from '$lib/pagination/searchParams'
|
||||
import { getBlogListing } from './_content'
|
||||
|
||||
export async function get({ url: { searchParams } }) {
|
||||
const paginationQuery = getPaginationQueryFromSearchParams(searchParams)
|
||||
const filteredContents = await getBlogListing(paginationQuery)
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
posts: filteredContents,
|
||||
},
|
||||
}
|
||||
}
|
25
src/routes/blog/articles/[...params].json.ts
Normal file
25
src/routes/blog/articles/[...params].json.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import {
|
||||
getDropTakeFromPageParams,
|
||||
parseParams,
|
||||
} from '$lib/pagination/dropTakeParams'
|
||||
import { getBlogListing } from '../_content'
|
||||
|
||||
export async function get({ params }) {
|
||||
console.log('article-params', params)
|
||||
const handledParams = params.params === 'index' ? '' : params.params
|
||||
const { page = 1, pageSize = 7, ...filters } = parseParams(handledParams)
|
||||
const paginationParams = getDropTakeFromPageParams(
|
||||
Number(pageSize),
|
||||
Number(page)
|
||||
)
|
||||
const paginationQuery = { ...paginationParams, filters }
|
||||
const filteredContents = await getBlogListing(paginationQuery)
|
||||
console.log(filteredContents.items.map((item) => item.slug))
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
posts: filteredContents,
|
||||
},
|
||||
}
|
||||
}
|
BIN
static/m-logo-64.png
(Stored with Git LFS)
Normal file
BIN
static/m-logo-64.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -10,7 +10,7 @@ const config = {
|
||||
kit: {
|
||||
adapter: adapterStatic(),
|
||||
vite: { plugins: [vanillaExtractPlugin()] },
|
||||
prerender: { default: true }
|
||||
prerender: { default: true },
|
||||
},
|
||||
preprocess: preprocess({
|
||||
sourceMap: dev,
|
||||
|
Loading…
Reference in New Issue
Block a user