diff --git a/_redirects b/_redirects index b503e743..f9df9fe5 100644 --- a/_redirects +++ b/_redirects @@ -75,6 +75,8 @@ /tags /search 301! /posts/0 /posts/ 200! /links/0 /links/ 200! +/watching/movies-to-watch/0 /watching/movies-to-watch/ 200! +/watching/shows-to-watch/0 /watching/shows-to-watch/ 200! /mastodon https://social.lol/@cory 301! /coffee https://www.buymeacoffee.com/cory 301! /speedlify https://speedlify.coryd.dev 301! diff --git a/config/filters/index.js b/config/filters/index.js index 790d980b..1fe90296 100644 --- a/config/filters/index.js +++ b/config/filters/index.js @@ -72,6 +72,9 @@ export default { return text }, + // watching + featuredWatching: (watching, count) => shuffleArray(watching.filter(watch => watch.favorite === true)).slice(0, count), + // authors authorLookup: (url) => { if (!url) return null diff --git a/package-lock.json b/package-lock.json index 5c8f6677..2ce7c0f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "coryd.dev", - "version": "14.6.0", + "version": "15.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "14.6.0", + "version": "15.0.0", "license": "MIT", "dependencies": { "@cdransf/api-text": "^1.2.2", - "@cdransf/select-pagination": "^1.0.5", + "@cdransf/select-pagination": "^1.1.0", "@cdransf/theme-toggle": "^1.2.3", "@daviddarnes/link-peek": "^1.1.0", "@daviddarnes/mastodon-post": "^1.3.0", @@ -25,7 +25,7 @@ "@11ty/eleventy-plugin-rss": "^1.2.0", "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", "@11tyrocks/eleventy-plugin-lightningcss": "^1.4.0", - "@aws-sdk/client-s3": "^3.575.0", + "@aws-sdk/client-s3": "^3.576.0", "@cdransf/eleventy-plugin-tabler-icons": "^1.3.0", "@supabase/supabase-js": "^2.43.1", "dotenv-flow": "^4.1.0", @@ -451,18 +451,18 @@ "dev": true }, "node_modules/@aws-sdk/client-s3": { - "version": "3.575.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.575.0.tgz", - "integrity": "sha512-4h0YIvLNcKNqwPbxWqwHCH3KWMpRdKhfQPq7kZcZXzFRi3yVAVaAsZcH8eXZsKPlitxkfWNgvfcTXOjStL1uHA==", + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.576.0.tgz", + "integrity": "sha512-6Xhj8x7ijLqoLYncKMUn433QKWzEezDLR3TipKv/qHThTa8oYXkymMat/MfJ/lx3jsc8wS72i+1kTwO+AFUg6w==", "dev": true, "dependencies": { "@aws-crypto/sha1-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sso-oidc": "3.575.0", - "@aws-sdk/client-sts": "3.575.0", - "@aws-sdk/core": "3.575.0", - "@aws-sdk/credential-provider-node": "3.575.0", + "@aws-sdk/client-sso-oidc": "3.576.0", + "@aws-sdk/client-sts": "3.576.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.576.0", "@aws-sdk/middleware-bucket-endpoint": "3.575.0", "@aws-sdk/middleware-expect-continue": "3.575.0", "@aws-sdk/middleware-flexible-checksums": "3.575.0", @@ -519,15 +519,66 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.575.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.575.0.tgz", - "integrity": "sha512-elFWpAtktD3XBy47etG80GKXK9Lh3sNCMXLjcSs0NS0fdRIQJS2zKxC8qK22UQmdFKpXxthND5FKk7fNEqrR+g==", + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.576.0.tgz", + "integrity": "sha512-GHqqfRcUW/nGE4lpRafNKRxi4K7+SaQjYLjQnTEioUhr+w1IT/fFb3rGZYHHnN9ZCzbnrBULRC+1XOPIQWyLsw==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.575.0", + "@aws-sdk/client-sso-oidc": "3.576.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.576.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.576.0.tgz", + "integrity": "sha512-xbKE4bf3HYvkdrvn5kkpUdcoi3mg7uDLLkSbGaj0tzW3vNSdx9qLrCMuwfV7KrhVKWwx+lnw/2LGuCR2B5y0IA==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.576.0", "@aws-sdk/middleware-host-header": "3.575.0", "@aws-sdk/middleware-logger": "3.575.0", "@aws-sdk/middleware-recursion-detection": "3.575.0", @@ -569,16 +620,67 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.575.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.575.0.tgz", - "integrity": "sha512-YCstVaW5tAvXs+v4LR9gNAO+VRhIObjk1/knCdVQ5QQRTevtVQtdJWeNrDZYo4ATo0OHGyqGCj5Z09TWMv+e1Q==", + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.576.0.tgz", + "integrity": "sha512-6U8933O9h6iMnQDpH3OtFhS3G3FVttYZUqTpC2T0FnSSX7zgG0GnlxdQiyZh1j1aFrEB8bFw/RSmxPcMJJuSlQ==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.575.0", - "@aws-sdk/core": "3.575.0", - "@aws-sdk/credential-provider-node": "3.575.0", + "@aws-sdk/client-sts": "3.576.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.576.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc/node_modules/@aws-sdk/client-sts": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.576.0.tgz", + "integrity": "sha512-GHqqfRcUW/nGE4lpRafNKRxi4K7+SaQjYLjQnTEioUhr+w1IT/fFb3rGZYHHnN9ZCzbnrBULRC+1XOPIQWyLsw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.576.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.576.0", "@aws-sdk/middleware-host-header": "3.575.0", "@aws-sdk/middleware-logger": "3.575.0", "@aws-sdk/middleware-recursion-detection": "3.575.0", @@ -624,6 +726,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.575.0.tgz", "integrity": "sha512-8MrT4J2dRiskf0JFMGL5VNBqPvc6igNa218LGBJzHXmLsm1WfGCGnce84R7U2USr8oPOenu0XzSCLvMQyZbGWQ==", "dev": true, + "peer": true, "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", @@ -670,11 +773,218 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-sdk/core": { + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.575.0.tgz", + "integrity": "sha512-elFWpAtktD3XBy47etG80GKXK9Lh3sNCMXLjcSs0NS0fdRIQJS2zKxC8qK22UQmdFKpXxthND5FKk7fNEqrR+g==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.575.0.tgz", + "integrity": "sha512-YCstVaW5tAvXs+v4LR9gNAO+VRhIObjk1/knCdVQ5QQRTevtVQtdJWeNrDZYo4ATo0OHGyqGCj5Z09TWMv+e1Q==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.575.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/credential-provider-node": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.575.0.tgz", "integrity": "sha512-117U+kQki2XoKcYQfepmlRcNxn6rELGlOFOBQ8Z2JTBXEYHblW2ke067a0CLmxFwp/zCWuc7IGjd3in3x4Q3rg==", "dev": true, + "peer": true, + "dependencies": { + "@smithy/core": "^2.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.575.0.tgz", + "integrity": "sha512-rEdNpqW2jEc5kwbf/s9XQywMLQlIkMjuCK6mw9sF2OVRGHGVnh+6eh/1JFx8Kj+eU51ctifQ7KaHe8dGco8HYQ==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.575.0", + "@aws-sdk/credential-provider-http": "3.575.0", + "@aws-sdk/credential-provider-ini": "3.575.0", + "@aws-sdk/credential-provider-process": "3.575.0", + "@aws-sdk/credential-provider-sso": "3.575.0", + "@aws-sdk/credential-provider-web-identity": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.575.0.tgz", + "integrity": "sha512-NtXA9OPIKsqavs2F7hhLT/t2ZDjwJsvQevj31ov1NpmTNYMc7OWFWDptOG7rppsWMsk5KKmfiL2qViQJnezXNA==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-sso": "3.575.0", + "@aws-sdk/token-providers": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/token-providers": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.575.0.tgz", + "integrity": "sha512-EPNDPQoQkjKqn4D2t70qVzbfdtlaAy9KBdG58qD1yNWVxq8Rh/lXdwmB+aE2PSahtyfVikZdCRoZiFzxDh5IUA==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "3.575.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.576.0.tgz", + "integrity": "sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==", + "dev": true, "dependencies": { "@smithy/core": "^2.0.0", "@smithy/protocol-http": "^4.0.0", @@ -750,6 +1060,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.575.0.tgz", "integrity": "sha512-BdM6a/5VUuNge3c6yRuxvO+4srLoSfqHfkQGfUDfhTdTJpljlpfnc9h3z2Ni1+aueOHPZMNFWIktHDcX5wUGBg==", "dev": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.575.0", "@aws-sdk/credential-provider-process": "3.575.0", @@ -769,11 +1080,133 @@ "@aws-sdk/client-sts": "3.575.0" } }, - "node_modules/@aws-sdk/credential-provider-node": { + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/client-sso": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.575.0.tgz", + "integrity": "sha512-elFWpAtktD3XBy47etG80GKXK9Lh3sNCMXLjcSs0NS0fdRIQJS2zKxC8qK22UQmdFKpXxthND5FKk7fNEqrR+g==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.575.0.tgz", + "integrity": "sha512-YCstVaW5tAvXs+v4LR9gNAO+VRhIObjk1/knCdVQ5QQRTevtVQtdJWeNrDZYo4ATo0OHGyqGCj5Z09TWMv+e1Q==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.575.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/credential-provider-node": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/core": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.575.0.tgz", + "integrity": "sha512-117U+kQki2XoKcYQfepmlRcNxn6rELGlOFOBQ8Z2JTBXEYHblW2ke067a0CLmxFwp/zCWuc7IGjd3in3x4Q3rg==", + "dev": true, + "peer": true, + "dependencies": { + "@smithy/core": "^2.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/credential-provider-node": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.575.0.tgz", "integrity": "sha512-rEdNpqW2jEc5kwbf/s9XQywMLQlIkMjuCK6mw9sF2OVRGHGVnh+6eh/1JFx8Kj+eU51ctifQ7KaHe8dGco8HYQ==", "dev": true, + "peer": true, "dependencies": { "@aws-sdk/credential-provider-env": "3.575.0", "@aws-sdk/credential-provider-http": "3.575.0", @@ -792,6 +1225,167 @@ "node": ">=16.0.0" } }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.575.0.tgz", + "integrity": "sha512-NtXA9OPIKsqavs2F7hhLT/t2ZDjwJsvQevj31ov1NpmTNYMc7OWFWDptOG7rppsWMsk5KKmfiL2qViQJnezXNA==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/client-sso": "3.575.0", + "@aws-sdk/token-providers": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/token-providers": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.575.0.tgz", + "integrity": "sha512-EPNDPQoQkjKqn4D2t70qVzbfdtlaAy9KBdG58qD1yNWVxq8Rh/lXdwmB+aE2PSahtyfVikZdCRoZiFzxDh5IUA==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "3.575.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.576.0.tgz", + "integrity": "sha512-Ad244g3TJnfY1QFlZ+cywD6kgGD2yj+qg47Ryt50Y42bwmNuuqSpF9n0C71opRR68Rcl7ksOxixCJomWqpcHbA==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.575.0", + "@aws-sdk/credential-provider-http": "3.575.0", + "@aws-sdk/credential-provider-ini": "3.576.0", + "@aws-sdk/credential-provider-process": "3.575.0", + "@aws-sdk/credential-provider-sso": "3.576.0", + "@aws-sdk/credential-provider-web-identity": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/client-sts": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.576.0.tgz", + "integrity": "sha512-GHqqfRcUW/nGE4lpRafNKRxi4K7+SaQjYLjQnTEioUhr+w1IT/fFb3rGZYHHnN9ZCzbnrBULRC+1XOPIQWyLsw==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.576.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.576.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.576.0.tgz", + "integrity": "sha512-AwH/+29SbjhxGJVYhFn6+7r0MZ7TjJClySTJzuOoyjJGPWAifTdEuFkyOw8Bs9fEvbJ0ExgFxSaa445fO56kmg==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.575.0", + "@aws-sdk/credential-provider-process": "3.575.0", + "@aws-sdk/credential-provider-sso": "3.576.0", + "@aws-sdk/credential-provider-web-identity": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "3.576.0" + } + }, "node_modules/@aws-sdk/credential-provider-process": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.575.0.tgz", @@ -809,10 +1403,124 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.576.0.tgz", + "integrity": "sha512-1F17issiqf+mSG7KJ+D0SfZRYBZPAmRcA5+VHDUuMLozhh8tyYMe0mwzOt9IKc7ocrJA+2Wp7l7sg3h6aanedQ==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.576.0", + "@aws-sdk/token-providers": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.575.0.tgz", + "integrity": "sha512-YCstVaW5tAvXs+v4LR9gNAO+VRhIObjk1/knCdVQ5QQRTevtVQtdJWeNrDZYo4ATo0OHGyqGCj5Z09TWMv+e1Q==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.575.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/credential-provider-node": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/core": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.575.0.tgz", + "integrity": "sha512-117U+kQki2XoKcYQfepmlRcNxn6rELGlOFOBQ8Z2JTBXEYHblW2ke067a0CLmxFwp/zCWuc7IGjd3in3x4Q3rg==", + "dev": true, + "peer": true, + "dependencies": { + "@smithy/core": "^2.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.575.0.tgz", + "integrity": "sha512-rEdNpqW2jEc5kwbf/s9XQywMLQlIkMjuCK6mw9sF2OVRGHGVnh+6eh/1JFx8Kj+eU51ctifQ7KaHe8dGco8HYQ==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.575.0", + "@aws-sdk/credential-provider-http": "3.575.0", + "@aws-sdk/credential-provider-ini": "3.575.0", + "@aws-sdk/credential-provider-process": "3.575.0", + "@aws-sdk/credential-provider-sso": "3.575.0", + "@aws-sdk/credential-provider-web-identity": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/credential-provider-sso": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.575.0.tgz", "integrity": "sha512-NtXA9OPIKsqavs2F7hhLT/t2ZDjwJsvQevj31ov1NpmTNYMc7OWFWDptOG7rppsWMsk5KKmfiL2qViQJnezXNA==", "dev": true, + "peer": true, "dependencies": { "@aws-sdk/client-sso": "3.575.0", "@aws-sdk/token-providers": "3.575.0", @@ -826,6 +1534,98 @@ "node": ">=16.0.0" } }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/client-sso": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.575.0.tgz", + "integrity": "sha512-elFWpAtktD3XBy47etG80GKXK9Lh3sNCMXLjcSs0NS0fdRIQJS2zKxC8qK22UQmdFKpXxthND5FKk7fNEqrR+g==", + "dev": true, + "peer": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.575.0", + "@aws-sdk/middleware-host-header": "3.575.0", + "@aws-sdk/middleware-logger": "3.575.0", + "@aws-sdk/middleware-recursion-detection": "3.575.0", + "@aws-sdk/middleware-user-agent": "3.575.0", + "@aws-sdk/region-config-resolver": "3.575.0", + "@aws-sdk/types": "3.575.0", + "@aws-sdk/util-endpoints": "3.575.0", + "@aws-sdk/util-user-agent-browser": "3.575.0", + "@aws-sdk/util-user-agent-node": "3.575.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": { + "version": "3.575.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.575.0.tgz", + "integrity": "sha512-EPNDPQoQkjKqn4D2t70qVzbfdtlaAy9KBdG58qD1yNWVxq8Rh/lXdwmB+aE2PSahtyfVikZdCRoZiFzxDh5IUA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.575.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "3.575.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/@aws-sdk/credential-provider-web-identity": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.575.0.tgz", @@ -1056,25 +1856,6 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.575.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.575.0.tgz", - "integrity": "sha512-EPNDPQoQkjKqn4D2t70qVzbfdtlaAy9KBdG58qD1yNWVxq8Rh/lXdwmB+aE2PSahtyfVikZdCRoZiFzxDh5IUA==", - "dev": true, - "dependencies": { - "@aws-sdk/types": "3.575.0", - "@smithy/property-provider": "^3.0.0", - "@smithy/shared-ini-file-loader": "^3.0.0", - "@smithy/types": "^3.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@aws-sdk/client-sso-oidc": "3.575.0" - } - }, "node_modules/@aws-sdk/types": { "version": "3.575.0", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.575.0.tgz", @@ -1196,9 +1977,9 @@ "dev": true }, "node_modules/@cdransf/select-pagination": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@cdransf/select-pagination/-/select-pagination-1.0.5.tgz", - "integrity": "sha512-qxv6MxSuJXbyCsB+zsdzjwgY/sqVZNhIwAnXP2bfh1CpHkt5043qtZLOMI1KdzCmcNxraDZXC5TsEIcz8XC4xA==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@cdransf/select-pagination/-/select-pagination-1.1.0.tgz", + "integrity": "sha512-h7uUAFbyr7exKqvkK1F1sdl5G6esEixJ0CpWApBRLRvdE5kh3BiiCgKU4H6syIXHer47n5L9UxgMvfcL4B6KUg==" }, "node_modules/@cdransf/theme-toggle": { "version": "1.2.3", @@ -1881,16 +2662,16 @@ } }, "node_modules/@smithy/core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.0.0.tgz", - "integrity": "sha512-y1VuiOpU8nL0KlL0pvYpOddKGK+8xpD4Jvg9NN42Bl6gHWAr46LpAzWi4I78WxcFIMN1vw1+RUVOlcqR/vfs5g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.0.1.tgz", + "integrity": "sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==", "dev": true, "dependencies": { "@smithy/middleware-endpoint": "^3.0.0", - "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-retry": "^3.0.1", "@smithy/middleware-serde": "^3.0.0", "@smithy/protocol-http": "^4.0.0", - "@smithy/smithy-client": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", "@smithy/types": "^3.0.0", "@smithy/util-middleware": "^3.0.0", "tslib": "^2.6.2" @@ -1983,9 +2764,9 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.0.tgz", - "integrity": "sha512-gP1MlOpIB/onIbh4g9eSG3XdI/G31cAvd9Lo11192eL4mxks3xpkPaa+RIcZaX2Vmb8I8HzxBddPSXviY1iq0w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz", + "integrity": "sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==", "dev": true, "dependencies": { "@smithy/protocol-http": "^4.0.0", @@ -2102,15 +2883,15 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.0.tgz", - "integrity": "sha512-kFaBiTa50y0iwhrOjX5UISo1SfiXPrE1EsMtZJAVF7Oci3AUpVzaMzRxzQJFGnxioSyCwSmzqiE9x4X3dW+7VQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz", + "integrity": "sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==", "dev": true, "dependencies": { "@smithy/node-config-provider": "^3.0.0", "@smithy/protocol-http": "^4.0.0", "@smithy/service-error-classification": "^3.0.0", - "@smithy/smithy-client": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", "@smithy/types": "^3.0.0", "@smithy/util-middleware": "^3.0.0", "@smithy/util-retry": "^3.0.0", @@ -2275,16 +3056,16 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.0.0.tgz", - "integrity": "sha512-HTLlEOPOoPxyVCoqzwRGJuRh4hyAAo+eveRcEPi7UpIaq2PCAmdFZM76jabUuzlPPR9ge+OQlKzZre+LT1nXzA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.0.1.tgz", + "integrity": "sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==", "dev": true, "dependencies": { "@smithy/middleware-endpoint": "^3.0.0", "@smithy/middleware-stack": "^3.0.0", "@smithy/protocol-http": "^4.0.0", "@smithy/types": "^3.0.0", - "@smithy/util-stream": "^3.0.0", + "@smithy/util-stream": "^3.0.1", "tslib": "^2.6.2" }, "engines": { @@ -2375,13 +3156,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.0.tgz", - "integrity": "sha512-/ChTQXFZVK/92dLR9RLW2fOG03ghgUYZnRfrs9d9T3L7UxtsGx9QitF7Ppu64A8xcUHqA30kV7TUayFRBd7YQw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz", + "integrity": "sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==", "dev": true, "dependencies": { "@smithy/property-provider": "^3.0.0", - "@smithy/smithy-client": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", "@smithy/types": "^3.0.0", "bowser": "^2.11.0", "tslib": "^2.6.2" @@ -2391,16 +3172,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.0.tgz", - "integrity": "sha512-gfABCXswcMgDUcVO+16e4BgTFnouaXNCowp9mVxV8dgaOCpUT9eEWIC+PK3ZoEm26QwlwT7WgfuN1Y22HKX36g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz", + "integrity": "sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==", "dev": true, "dependencies": { "@smithy/config-resolver": "^3.0.0", "@smithy/credential-provider-imds": "^3.0.0", "@smithy/node-config-provider": "^3.0.0", "@smithy/property-provider": "^3.0.0", - "@smithy/smithy-client": "^3.0.0", + "@smithy/smithy-client": "^3.0.1", "@smithy/types": "^3.0.0", "tslib": "^2.6.2" }, @@ -2462,12 +3243,12 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.0.tgz", - "integrity": "sha512-AYQeeAxBi3yee9SXC0HgrbeIchQeo6EAkpiwwmmCK6Z7uq8GnMGe8AxRZT3O4wyMNRNK2qfjZSvx6+wKfuMajg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.1.tgz", + "integrity": "sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==", "dev": true, "dependencies": { - "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/fetch-http-handler": "^3.0.1", "@smithy/node-http-handler": "^3.0.0", "@smithy/types": "^3.0.0", "@smithy/util-base64": "^3.0.0", @@ -3432,9 +4213,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.767", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.767.tgz", - "integrity": "sha512-nzzHfmQqBss7CE3apQHkHjXW77+8w3ubGCIoEijKCJebPufREaFETgGXWTkh32t259F3Kcq+R8MZdFdOJROgYw==", + "version": "1.4.768", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.768.tgz", + "integrity": "sha512-z2U3QcvNuxdkk33YV7R1bVMNq7fL23vq3WfO5BHcqrm4TnDGReouBfYKLEFh5umoK1XACjEwp8mmnhXk2EJigw==", "dev": true }, "node_modules/encodeurl": { diff --git a/package.json b/package.json index 6555a92d..8c508254 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "14.6.1", + "version": "15.0.0", "description": "The source for my personal site. Built using 11ty.", "type": "module", "scripts": { @@ -22,7 +22,7 @@ "license": "MIT", "dependencies": { "@cdransf/api-text": "^1.2.2", - "@cdransf/select-pagination": "^1.0.5", + "@cdransf/select-pagination": "^1.1.0", "@cdransf/theme-toggle": "^1.2.3", "@daviddarnes/link-peek": "^1.1.0", "@daviddarnes/mastodon-post": "^1.3.0", @@ -37,7 +37,7 @@ "@11ty/eleventy-plugin-rss": "^1.2.0", "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", "@11tyrocks/eleventy-plugin-lightningcss": "^1.4.0", - "@aws-sdk/client-s3": "^3.575.0", + "@aws-sdk/client-s3": "^3.576.0", "@cdransf/eleventy-plugin-tabler-icons": "^1.3.0", "@supabase/supabase-js": "^2.43.1", "dotenv-flow": "^4.1.0", diff --git a/src/_data/movies.js b/src/_data/movies.js index 6b62da50..226c3ea8 100644 --- a/src/_data/movies.js +++ b/src/_data/movies.js @@ -5,27 +5,49 @@ const SUPABASE_URL = process.env.SUPABASE_URL const SUPABASE_KEY = process.env.SUPABASE_KEY const supabase = createClient(SUPABASE_URL, SUPABASE_KEY) +const PAGE_SIZE = 1000 + +const fetchAllMovies = async () => { + let movies = [] + let rangeStart = 0 + + while (true) { + const { data, error } = await supabase + .from('movies') + .select(` + tmdb_id, + slug, + last_watched, + title, + year, + collected, + plays, + favorite + `) + .order('last_watched', { ascending: false }) + .range(rangeStart, rangeStart + PAGE_SIZE - 1) + + if (error) { + console.error(error) + break + } + + movies = movies.concat(data) + + if (data.length < PAGE_SIZE) break + rangeStart += PAGE_SIZE + } + + return movies +} + export default async function () { - const { data: movies, error } = await supabase - .from('movies') - .select(` - tmdb_id, - slug, - last_watched, - title, - year, - collected, - plays, - favorite - `) - .order('last_watched', { ascending: false }) - - if (error) return [] - - const formatMovieData = (movies) => movies.map((item) => { + const movies = await fetchAllMovies() + const formatMovieData = (movies, watched = true) => movies.map((item) => { const movie = { title: item['title'], - dateAdded: item['last_watched'], + lastWatched: item['last_watched'], + year: item['year'], url: `https://www.themoviedb.org/movie/${item['tmdb_id']}`, description: `
${item['title']} (${item['year']})
Watched at: ${DateTime.fromISO(item['last_watched'], { zone: 'utc' }).setZone('America/Los_Angeles').toFormat('MMMM d, yyyy, h:mma')}
`, type: 'movie', @@ -35,17 +57,18 @@ export default async function () { collected: item['collected'], favorite: item['favorite'], } - return movie; - }) - + return movie + }).filter(movie => watched ? movie['lastWatched'] : !movie['lastWatched']) const favoriteMovies = movies.filter(movie => movie['favorite']) const collectedMovies = movies.filter(movie => movie['collected']) + const recentlyWatchedMovies = movies.filter(movie => movie['last_watched']).sort((a, b) => new Date(b['last_watched']) - new Date(a['last_watched'])).slice(0, 6) return { movies, watchHistory: formatMovieData(movies), - recentlyWatched: formatMovieData(movies.slice(0, 6)), - favorites: formatMovieData(favoriteMovies), + recentlyWatched: formatMovieData(recentlyWatchedMovies), + favorites: formatMovieData(favoriteMovies).sort((a, b) => a['title'].localeCompare(b['title'])), collection: formatMovieData(collectedMovies), + toWatch: formatMovieData(movies, false).sort((a, b) => a['title'].localeCompare(b['title'])), } } \ No newline at end of file diff --git a/src/_data/music.js b/src/_data/music.js index 8ed1a143..362f1032 100644 --- a/src/_data/music.js +++ b/src/_data/music.js @@ -32,6 +32,32 @@ const fetchDataForPeriod = async (startPeriod, fields, table) => { return rows } +const fetchAllTimeData = async (fields, table) => { + const PAGE_SIZE = 1000 + let rows = [] + let rangeStart = 0 + + while (true) { + const { data, error } = await supabase + .from(table) + .select(fields) + .order('listened_at', { ascending: false }) + .range(rangeStart, rangeStart + PAGE_SIZE - 1) + + if (error) { + console.error(error) + break + } + + rows = rows.concat(data) + + if (data.length < PAGE_SIZE) break + rangeStart += PAGE_SIZE + } + + return rows +} + const aggregateData = (data, groupByField, groupByType, sort = true) => { const aggregation = {} data.forEach(item => { @@ -65,16 +91,14 @@ const aggregateData = (data, groupByField, groupByType, sort = true) => { aggregation[key].plays++ }) const aggregatedData = sort ? Object.values(aggregation).sort((a, b) => b.plays - a.plays) : Object.values(aggregation) - return aggregatedData + return aggregatedData.filter(item => item.plays > 0) } - export default async function() { const periods = { - week: DateTime.now().minus({ days: 7 }).startOf('day'), // Last week - month: DateTime.now().minus({ days: 30 }).startOf('day'), // Last 30 days - threeMonth: DateTime.now().minus({ months: 3 }).startOf('day'), // Last three months - year: DateTime.now().minus({ years: 1 }).startOf('day'), // Last 365 days + week: DateTime.now().minus({ days: 7 }).startOf('day'), // last week + month: DateTime.now().minus({ days: 30 }).startOf('day'), // last 30 days + threeMonth: DateTime.now().minus({ months: 3 }).startOf('day'), // last three months } const results = {} @@ -97,15 +121,23 @@ export default async function() { } } + // Fetch and aggregate all-time data + const allTimeData = await fetchAllTimeData(selectFields, 'listens') + results['allTime'] = { + artists: aggregateData(allTimeData, 'artist_name', 'artists'), + albums: aggregateData(allTimeData, 'album_name', 'albums'), + tracks: aggregateData(allTimeData, 'track_name', 'track') + } + const recentData = await fetchDataForPeriod(DateTime.now().minus({ days: 7 }), selectFields, 'listens') - results.recent = { + results['recent'] = { artists: aggregateData(recentData, 'artist_name', 'artists'), albums: aggregateData(recentData, 'album_name', 'albums'), tracks: aggregateData(recentData, 'track_name', 'track'), tracksChronological: aggregateData(recentData, 'track_name', 'track', false), } - results.nowPlaying = results.recent.tracksChronological[0] + results['nowPlaying'] = results['recent']['tracksChronological'][0] return results } \ No newline at end of file diff --git a/src/_data/nav.js b/src/_data/nav.js index ed863e91..5983bb11 100644 --- a/src/_data/nav.js +++ b/src/_data/nav.js @@ -21,7 +21,7 @@ export default async function () { { name: 'npm', url: 'https://www.npmjs.com/~cdransf', icon: 'brand-npm'}, { name: 'Mastodon', url: 'https://social.lol/@cory', icon: 'brand-mastodon' }, { name: 'ListenBrainz', url: 'https://listenbrainz.org/user/cdransf/', icon: 'brain' }, - { name: 'Trakt', url: 'https://trakt.tv/users/cdransf', icon: 'device-tv' }, + { name: 'Watching', url: '/watching', icon: 'device-tv' }, { name: 'Instapaper', url: 'https://www.instapaper.com/p/coryd', icon: 'news' }, { name: 'Books', url: '/books', icon: 'books' }, { name: 'Webrings', url: '/webrings', icon: 'heart-handshake' }, diff --git a/src/_data/tv.js b/src/_data/tv.js index 2a4c3058..ed9e1158 100644 --- a/src/_data/tv.js +++ b/src/_data/tv.js @@ -4,22 +4,45 @@ const SUPABASE_URL = process.env.SUPABASE_URL const SUPABASE_KEY = process.env.SUPABASE_KEY const supabase = createClient(SUPABASE_URL, SUPABASE_KEY) -export default async function () { - const { data: shows, error } = await supabase - .from('shows') - .select(` - title, - tmdb_id, - collected, - favorite, - episodes ( - episode_number, - season_number, - last_watched_at - ) - `) +const PAGE_SIZE = 1000 - if (error) return [] +const fetchAllShows = async () => { + let shows = [] + let rangeStart = 0 + + while (true) { + const { data, error } = await supabase + .from('shows') + .select(` + title, + tmdb_id, + collected, + favorite, + year, + episodes ( + episode_number, + season_number, + last_watched_at + ) + `) + .range(rangeStart, rangeStart + PAGE_SIZE - 1) + + if (error) { + console.error(error) + break + } + + shows = shows.concat(data) + + if (data.length < PAGE_SIZE) break + rangeStart += PAGE_SIZE + } + + return shows +} + +export default async function () { + const shows = await fetchAllShows() let episodes = [] shows.forEach(show => { @@ -29,14 +52,15 @@ export default async function () { show_title: show['title'], show_tmdb_id: show['tmdb_id'], collected: show['collected'], - favorite: show['favorite'] + favorite: show['favorite'], + year: show['year'] }) }) }) episodes.sort((a, b) => new Date(b['last_watched_at']) - new Date(a['last_watched_at'])) const allEpisodes = episodes - episodes = episodes.slice(0, 75) + const recentlyWatchedEpisodes = episodes.slice(0, 75) const formatEpisodeData = (episodes) => { const episodeData = [] @@ -55,8 +79,9 @@ export default async function () { showEpisodesMap[showTmdbId] = { title: showTitle, tmdbId: showTmdbId, - collected: collected, - favorite: favorite, + collected, + favorite, + lastWatchedAt, episodes: [] } } @@ -71,7 +96,7 @@ export default async function () { type: 'tv', image: `https://coryd.dev/media/shows/poster-${showTmdbId}.jpg`, backdrop: `https://coryd.dev/media/shows/backdrops/backdrop-${showTmdbId}.jpg`, - lastWatchedAt: lastWatchedAt + lastWatchedAt }) }) @@ -101,8 +126,8 @@ export default async function () { }) } else { const singleEpisode = show['episodes'][0] - singleEpisode.collected = show['collected'] - singleEpisode.favorite = show['favorite'] + singleEpisode['collected'] = show['collected'] + singleEpisode['favorite'] = show['favorite'] episodeData.push(singleEpisode) } }) @@ -112,24 +137,26 @@ export default async function () { const favoriteShows = shows.filter(show => show['favorite']) const collectedShows = shows.filter(show => show['collected']) + const toWatch = shows.filter(show => !show.episodes.some(episode => episode.last_watched_at)).sort((a, b) => a['title'].localeCompare(b['title'])) return { shows, watchHistory: formatEpisodeData(allEpisodes), - recentlyWatched: formatEpisodeData(episodes), + recentlyWatched: formatEpisodeData(recentlyWatchedEpisodes), favorites: formatEpisodeData(favoriteShows.flatMap(show => show['episodes'].map(episode => ({ ...episode, show_title: show['title'], show_tmdb_id: show['tmdb_id'], collected: show['collected'], favorite: show['favorite'] - })))), + })))).sort((a, b) => a['name'].localeCompare(b['name'])), collection: formatEpisodeData(collectedShows.flatMap(show => show['episodes'].map(episode => ({ ...episode, show_title: show['title'], show_tmdb_id: show['tmdb_id'], collected: show['collected'], favorite: show['favorite'] - })))) + })))), + toWatch } -} +} \ No newline at end of file diff --git a/src/_includes/book-year.liquid b/src/_includes/book-year.liquid index 0da28540..62350f46 100644 --- a/src/_includes/book-year.liquid +++ b/src/_includes/book-year.liquid @@ -5,7 +5,7 @@ layout: default {%- capture currentYear -%}{% currentYear %}{%- endcapture -%} {%- assign yearString = year | append: '' -%} {%- assign currentYearString = currentYear | append: '' -%} -{% tablericon "arrow-left" "Go back" %} Go back
+{% tablericon "arrow-left" "Go back" %} Go back
This is a now page, and if you have your own site, you should make one too.
This page was last updated on {{ "now" | date: "%B %-d, %-I:%M%p", "America/Los_Angeles" }}.
\ No newline at end of file diff --git a/src/_includes/partials/home/posts.liquid b/src/_includes/partials/home/posts.liquid index 0bc15d2b..019eb3f1 100644 --- a/src/_includes/partials/home/posts.liquid +++ b/src/_includes/partials/home/posts.liquid @@ -23,6 +23,6 @@ {% endfor %} {% if postType != 'featured' %} - View all posts {% tablericon "arrow-right" "View all posts" %} + View all posts {% tablericon "arrow-right" "View all posts" %} {% endif %}{% tablericon "arrow-left" "Go back" %} Go back
+These are my favorite movies. There are many like them, but these are mine.
+{% render "partials/watching/favorites-grid.liquid", favorites:movies.favorites, count: 99 %} \ No newline at end of file diff --git a/src/pages/watching/favorite-shows.html b/src/pages/watching/favorite-shows.html new file mode 100644 index 00000000..197f4c04 --- /dev/null +++ b/src/pages/watching/favorite-shows.html @@ -0,0 +1,9 @@ +--- +title: Favorite shows +layout: default +permalink: "/watching/favorite-shows/index.html" +--- +{% tablericon "arrow-left" "Go back" %} Go back
+These are my favorite shows. There are many like them, but these are mine.
+{% render "partials/watching/favorites-grid.liquid", favorites:tv.favorites, count: 99 %} \ No newline at end of file diff --git a/src/pages/watching/index.html b/src/pages/watching/index.html new file mode 100644 index 00000000..952a26f5 --- /dev/null +++ b/src/pages/watching/index.html @@ -0,0 +1,35 @@ +--- +title: Watching +layout: default +permalink: "/watching/index.html" +--- +{% assign featuredMovie = movies.favorites | featuredWatching: 1 | first %} +Here's all of the TV and movies I've been watching recently presented in what is (hopefully) an organized fashion. You can also take a look at the movies and shows I'm planning to watch.
+{% tablericon "arrow-left" "Go back" %} Go back
+{% if pagination.pageNumber == 0 %} +These are movies I want to watch, sorted in alphabetical order. As one would expect, it will change as I navigate through and add to it.
+{% tablericon "arrow-left" "Go back" %} Go back
+{% if pagination.pageNumber == 0 %} +These are shpws I want to watch, sorted in alphabetical order. As one would expect, it will change as I navigate through and add to it.
+