diff --git a/indiekit.config.mjs b/indiekit.config.mjs index 60f96949..6b6a7f00 100644 --- a/indiekit.config.mjs +++ b/indiekit.config.mjs @@ -63,9 +63,7 @@ export default { plugins: [ "@indiekit/store-github", - "@rmdes/indiekit-endpoint-posts", - "@rmdes/indiekit-endpoint-auth", - "@rmdes/indiekit-endpoint-share", + "@rmdes/indiekit-preset-eleventy", "@rmdes/indiekit-endpoint-github", "@rmdes/indiekit-endpoint-webmention-io", "@rmdes/indiekit-endpoint-conversations", @@ -77,7 +75,7 @@ export default { branch: "main", token: githubContentToken, }, - "@rmdes/indiekit-endpoint-posts": { + "@indiekit/endpoint-posts": { mountPath: "/blog", }, "@rmdes/indiekit-endpoint-github": { @@ -87,8 +85,8 @@ export default { "@rmdes/indiekit-endpoint-webmention-io": { token: process.env.WEBMENTION_IO_TOKEN, }, - "@rmdes/indiekit-endpoint-conversations": { - enabled: true, + "@rmdes/indiekit-endpoint-conversations": { + mountPath: "/conversations", }, "@rmdes/indiekit-endpoint-activitypub": { username: "blog.giersig.eu", diff --git a/package-lock.json b/package-lock.json index e9a91d4b..e943a9fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,10 @@ "dependencies": { "@indiekit/indiekit": "^1.0.0-beta.25", "@indiekit/store-github": "^1.0.0-beta.25", - "@rmdes/indiekit-endpoint-auth": "^1.0.0-beta.25", "@rmdes/indiekit-endpoint-conversations": "^2.1.6", "@rmdes/indiekit-endpoint-github": "^1.2.3", - "@rmdes/indiekit-endpoint-posts": "^1.0.0-beta.25", - "@rmdes/indiekit-endpoint-share": "^1.0.2", "@rmdes/indiekit-endpoint-webmention-io": "^1.0.7", + "@rmdes/indiekit-preset-eleventy": "^1.0.0-beta.33", "dotenv": "^17.3.1", "node-gyp": "^12.2.0" } @@ -1003,20 +1001,6 @@ "node": ">=20" } }, - "node_modules/@indiekit/endpoint-files": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/endpoint-files/-/endpoint-files-1.0.0-beta.25.tgz", - "integrity": "sha512-ql4InRaw70LO+zSTNU1gWluaXh86tvciYnlFD9bLLUV6j0ATNEsfkirNFD6VBHSV+0FxMuXGFnakkn48qrVbIA==", - "license": "MIT", - "dependencies": { - "@indiekit/error": "^1.0.0-beta.25", - "express": "^5.0.0", - "express-validator": "^7.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/@indiekit/endpoint-image": { "version": "1.0.0-beta.25", "resolved": "https://registry.npmjs.org/@indiekit/endpoint-image/-/endpoint-image-1.0.0-beta.25.tgz", @@ -1049,26 +1033,6 @@ "node": ">=20" } }, - "node_modules/@indiekit/endpoint-micropub": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/endpoint-micropub/-/endpoint-micropub-1.0.0-beta.25.tgz", - "integrity": "sha512-/NtKo94hlIWL4oP3TdokAYkxKPQooMMy31TwTfQisijSEGRGief25GvUzuhW3WGHWIVeGK/c5IevhhM8BV9NFg==", - "license": "MIT", - "dependencies": { - "@indiekit/error": "^1.0.0-beta.25", - "@indiekit/util": "^1.0.0-beta.25", - "@paulrobertlloyd/mf2tojf2": "^3.0.0", - "debug": "^4.3.2", - "express": "^5.0.0", - "lodash": "^4.17.21", - "markdown-it": "^14.0.0", - "newbase60": "^1.3.1", - "turndown": "^7.1.1" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/@indiekit/endpoint-posts": { "version": "1.0.0-beta.25", "resolved": "https://registry.npmjs.org/@indiekit/endpoint-posts/-/endpoint-posts-1.0.0-beta.25.tgz", @@ -1088,47 +1052,32 @@ "node": ">=20" } }, - "node_modules/@indiekit/endpoint-share": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/endpoint-share/-/endpoint-share-1.0.0-beta.25.tgz", - "integrity": "sha512-0UOG7vusxK5V2tVhpLTKwXmLQVCv8lsK+T6G8WECOFEEAj00xARamGj0vyPQAZAFeTNw4K3Iwncz8YJcHb2MEw==", + "node_modules/@indiekit/endpoint-posts/node_modules/@indiekit/endpoint-micropub": { + "name": "@rmdes/indiekit-endpoint-micropub", + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-micropub/-/indiekit-endpoint-micropub-1.0.0-beta.29.tgz", + "integrity": "sha512-94aUGNMsTOHnFVwUicqfGvbeJ4/HAJLKeReMw0iSoryGfgIi2Hz52DV5Ehub6UzzdLon6loXOCTqTMpM3UgxuA==", "license": "MIT", "dependencies": { "@indiekit/error": "^1.0.0-beta.25", + "@indiekit/util": "^1.0.0-beta.25", + "@paulrobertlloyd/mf2tojf2": "^3.0.0", + "debug": "^4.3.2", "express": "^5.0.0", - "express-validator": "^7.0.0" + "lodash": "^4.17.21", + "markdown-it": "^14.0.0", + "newbase60": "^1.3.1", + "turndown": "^7.1.1" }, "engines": { "node": ">=20" } }, - "node_modules/@indiekit/endpoint-syndicate": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/endpoint-syndicate/-/endpoint-syndicate-1.0.0-beta.25.tgz", - "integrity": "sha512-V5JAURGxHI5Nw07Sdgk3c1nhmsL+h+VT58/5zIWja9nBO0wBfaTA/JwKJZYrNH7x0EMow/H/2MoTX4/ETln5/A==", - "license": "MIT", - "dependencies": { - "@indiekit/error": "^1.0.0-beta.25", - "express": "^5.0.0", - "jsonwebtoken": "^9.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@indiekit/error": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/error/-/error-1.0.0-beta.25.tgz", - "integrity": "sha512-ZDM6cyC4qPaosv4Ji1gGObSYpOlHNMqys9v428E7/XvK1qT3uW5S8mAeqGu7ErbWdMZINe0ua0fuZwBlGmSPLg==", - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/@indiekit/frontend": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@indiekit/frontend/-/frontend-1.0.0-beta.25.tgz", - "integrity": "sha512-iukVUIRlqvpvi5x8ld7viT6xOkTqtd4un2awf2ceQXOGyKt4dylHWHvO90K6eP4rMZ19alWVKxQ1lmAC4YIy5g==", + "node_modules/@indiekit/endpoint-posts/node_modules/@indiekit/frontend": { + "name": "@rmdes/indiekit-frontend", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-frontend/-/indiekit-frontend-1.0.0-beta.27.tgz", + "integrity": "sha512-jvfkhTJJMkiWbDi15DqqHuvEt0BzbtdAuYsqL36t59e+Wa3PodGTV8SELl6REcbjyshuixgxOTBgkZVNTHoziQ==", "license": "MIT", "dependencies": { "@accessible-components/tag-input": "^0.2.0", @@ -1153,11 +1102,21 @@ "node": ">=20" } }, + "node_modules/@indiekit/error": { + "version": "1.0.0-beta.25", + "resolved": "https://registry.npmjs.org/@indiekit/error/-/error-1.0.0-beta.25.tgz", + "integrity": "sha512-ZDM6cyC4qPaosv4Ji1gGObSYpOlHNMqys9v428E7/XvK1qT3uW5S8mAeqGu7ErbWdMZINe0ua0fuZwBlGmSPLg==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/@indiekit/indiekit": { "version": "1.0.0-beta.25", "resolved": "https://registry.npmjs.org/@indiekit/indiekit/-/indiekit-1.0.0-beta.25.tgz", "integrity": "sha512-AB63jCDtjdVW/bPl9obLoBnwtH6LVBCFNuiXggVlLNR6FlSwU396yMl1693XOR4vbkk00tOVS83KHQpbl/eYGw==", "license": "MIT", + "peer": true, "dependencies": { "@indiekit/endpoint-auth": "^1.0.0-beta.25", "@indiekit/endpoint-files": "^1.0.0-beta.25", @@ -1199,6 +1158,104 @@ "node": ">=20" } }, + "node_modules/@indiekit/indiekit/node_modules/@indiekit/endpoint-files": { + "name": "@rmdes/indiekit-endpoint-files", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-files/-/indiekit-endpoint-files-1.0.0.tgz", + "integrity": "sha512-RAKg+ZSxEHEwCgtyRlLelsNe6TqHtpDUi/wx7qEpiFQ2OeHyJvQ2uQcVRLra9hiD8OsFFF6syUs42dX0C8Slkg==", + "license": "MIT", + "dependencies": { + "@indiekit/error": "^1.0.0-beta.25", + "express": "^5.0.0", + "express-validator": "^7.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@indiekit/indiekit/node_modules/@indiekit/endpoint-micropub": { + "name": "@rmdes/indiekit-endpoint-micropub", + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-micropub/-/indiekit-endpoint-micropub-1.0.0-beta.29.tgz", + "integrity": "sha512-94aUGNMsTOHnFVwUicqfGvbeJ4/HAJLKeReMw0iSoryGfgIi2Hz52DV5Ehub6UzzdLon6loXOCTqTMpM3UgxuA==", + "license": "MIT", + "dependencies": { + "@indiekit/error": "^1.0.0-beta.25", + "@indiekit/util": "^1.0.0-beta.25", + "@paulrobertlloyd/mf2tojf2": "^3.0.0", + "debug": "^4.3.2", + "express": "^5.0.0", + "lodash": "^4.17.21", + "markdown-it": "^14.0.0", + "newbase60": "^1.3.1", + "turndown": "^7.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@indiekit/indiekit/node_modules/@indiekit/endpoint-share": { + "name": "@rmdes/indiekit-endpoint-share", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-share/-/indiekit-endpoint-share-1.0.2.tgz", + "integrity": "sha512-rIjdvto0k97zEwDxExsXBCkusbSP/Dbn9CEHYh2675XWFZuzCdZtq+oO9SrMui5dLVl4MuGIxfGnhinCgE+n0A==", + "license": "MIT", + "dependencies": { + "@indiekit/error": "^1.0.0-beta.25", + "express": "^5.0.0", + "express-validator": "^7.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@indiekit/indiekit/node_modules/@indiekit/endpoint-syndicate": { + "name": "@rmdes/indiekit-endpoint-syndicate", + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-syndicate/-/indiekit-endpoint-syndicate-1.0.0-beta.34.tgz", + "integrity": "sha512-GGuJStYnqb4W8lHlRjpow8RRBf0BuQbnBP8QKnhCOw48UM+DyzUWVonGa5vxNJtOFw/n+A6LDzOHxr1VT11QbQ==", + "license": "MIT", + "dependencies": { + "@indiekit/error": "^1.0.0-beta.25", + "express": "^5.0.0", + "jsonwebtoken": "^9.0.0" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@indiekit/indiekit": ">=1.0.0-beta.25" + } + }, + "node_modules/@indiekit/indiekit/node_modules/@indiekit/frontend": { + "name": "@rmdes/indiekit-frontend", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-frontend/-/indiekit-frontend-1.0.0-beta.27.tgz", + "integrity": "sha512-jvfkhTJJMkiWbDi15DqqHuvEt0BzbtdAuYsqL36t59e+Wa3PodGTV8SELl6REcbjyshuixgxOTBgkZVNTHoziQ==", + "license": "MIT", + "dependencies": { + "@accessible-components/tag-input": "^0.2.0", + "@indiekit/error": "^1.0.0-beta.25", + "@indiekit/util": "^1.0.0-beta.25", + "color": "^5.0.0", + "easymde": "^2.18.0", + "esbuild": "^0.27.0", + "iso-639-1": "^3.0.0", + "lightningcss": "^1.29.3", + "lodash": "^4.17.21", + "markdown-it": "^14.0.0", + "markdown-it-abbr": "^2.0.0", + "markdown-it-deflist": "^3.0.0", + "markdown-it-footnote": "^4.0.0", + "markdown-it-image-figures": "^2.1.1", + "markdown-it-prism": "^3.0.0", + "nunjucks": "^3.2.3", + "sharp": "^0.34.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/@indiekit/post-type-article": { "version": "1.0.0-beta.25", "resolved": "https://registry.npmjs.org/@indiekit/post-type-article/-/post-type-article-1.0.0-beta.25.tgz", @@ -1760,24 +1817,6 @@ "node": ">=22" } }, - "node_modules/@rmdes/indiekit-endpoint-auth": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-auth/-/indiekit-endpoint-auth-1.0.0-beta.25.tgz", - "integrity": "sha512-pdQCFi96NERxGUTSSO4mkbmY0lJSx61STNcf9uBWTBdOapekAsjENlOTHMAO2tcEJ00v+r7GAtBYZ0afwwHnbw==", - "license": "MIT", - "dependencies": { - "@indiekit/error": "^1.0.0-beta.25", - "@indiekit/util": "^1.0.0-beta.25", - "bcrypt": "^6.0.0", - "express": "^5.0.0", - "express-validator": "^7.0.0", - "jsonwebtoken": "^9.0.0", - "microformats-parser": "^2.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/@rmdes/indiekit-endpoint-conversations": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-conversations/-/indiekit-endpoint-conversations-2.1.6.tgz", @@ -1791,6 +1830,35 @@ "node": ">=20" } }, + "node_modules/@rmdes/indiekit-endpoint-conversations/node_modules/@indiekit/frontend": { + "name": "@rmdes/indiekit-frontend", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-frontend/-/indiekit-frontend-1.0.0-beta.27.tgz", + "integrity": "sha512-jvfkhTJJMkiWbDi15DqqHuvEt0BzbtdAuYsqL36t59e+Wa3PodGTV8SELl6REcbjyshuixgxOTBgkZVNTHoziQ==", + "license": "MIT", + "dependencies": { + "@accessible-components/tag-input": "^0.2.0", + "@indiekit/error": "^1.0.0-beta.25", + "@indiekit/util": "^1.0.0-beta.25", + "color": "^5.0.0", + "easymde": "^2.18.0", + "esbuild": "^0.27.0", + "iso-639-1": "^3.0.0", + "lightningcss": "^1.29.3", + "lodash": "^4.17.21", + "markdown-it": "^14.0.0", + "markdown-it-abbr": "^2.0.0", + "markdown-it-deflist": "^3.0.0", + "markdown-it-footnote": "^4.0.0", + "markdown-it-image-figures": "^2.1.1", + "markdown-it-prism": "^3.0.0", + "nunjucks": "^3.2.3", + "sharp": "^0.34.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/@rmdes/indiekit-endpoint-github": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-github/-/indiekit-endpoint-github-1.2.3.tgz", @@ -1807,39 +1875,6 @@ "@indiekit/indiekit": ">=1.0.0-beta.25" } }, - "node_modules/@rmdes/indiekit-endpoint-posts": { - "version": "1.0.0-beta.25", - "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-posts/-/indiekit-endpoint-posts-1.0.0-beta.25.tgz", - "integrity": "sha512-Rh519QYIOQK3pipUESfp1lv2mDZSwVX0W32KPsMwZrs77LFCu4KCI+YjedgSr7dwZZO0qH0j24QhJ7SOkn+DaA==", - "license": "MIT", - "dependencies": { - "@indiekit/endpoint-micropub": "^1.0.0-beta.25", - "@indiekit/error": "^1.0.0-beta.25", - "@indiekit/frontend": "^1.0.0-beta.25", - "@indiekit/util": "^1.0.0-beta.25", - "@paulrobertlloyd/mf2tojf2": "^3.0.0", - "express": "^5.0.0", - "express-validator": "^7.0.0", - "formatcoords": "^1.1.3" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@rmdes/indiekit-endpoint-share": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-share/-/indiekit-endpoint-share-1.0.2.tgz", - "integrity": "sha512-rIjdvto0k97zEwDxExsXBCkusbSP/Dbn9CEHYh2675XWFZuzCdZtq+oO9SrMui5dLVl4MuGIxfGnhinCgE+n0A==", - "license": "MIT", - "dependencies": { - "@indiekit/error": "^1.0.0-beta.25", - "express": "^5.0.0", - "express-validator": "^7.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/@rmdes/indiekit-endpoint-webmention-io": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@rmdes/indiekit-endpoint-webmention-io/-/indiekit-endpoint-webmention-io-1.0.7.tgz", @@ -1858,6 +1893,49 @@ "@indiekit/indiekit": ">=1.0.0-beta.25" } }, + "node_modules/@rmdes/indiekit-endpoint-webmention-io/node_modules/@indiekit/frontend": { + "name": "@rmdes/indiekit-frontend", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-frontend/-/indiekit-frontend-1.0.0-beta.27.tgz", + "integrity": "sha512-jvfkhTJJMkiWbDi15DqqHuvEt0BzbtdAuYsqL36t59e+Wa3PodGTV8SELl6REcbjyshuixgxOTBgkZVNTHoziQ==", + "license": "MIT", + "dependencies": { + "@accessible-components/tag-input": "^0.2.0", + "@indiekit/error": "^1.0.0-beta.25", + "@indiekit/util": "^1.0.0-beta.25", + "color": "^5.0.0", + "easymde": "^2.18.0", + "esbuild": "^0.27.0", + "iso-639-1": "^3.0.0", + "lightningcss": "^1.29.3", + "lodash": "^4.17.21", + "markdown-it": "^14.0.0", + "markdown-it-abbr": "^2.0.0", + "markdown-it-deflist": "^3.0.0", + "markdown-it-footnote": "^4.0.0", + "markdown-it-image-figures": "^2.1.1", + "markdown-it-prism": "^3.0.0", + "nunjucks": "^3.2.3", + "sharp": "^0.34.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@rmdes/indiekit-preset-eleventy": { + "version": "1.0.0-beta.33", + "resolved": "https://registry.npmjs.org/@rmdes/indiekit-preset-eleventy/-/indiekit-preset-eleventy-1.0.0-beta.33.tgz", + "integrity": "sha512-47Nyvg6FqeAUPN90zzfhEqijeFxAsclcmqTz1ITdk/F9XBscCaBKyrNiJ+Ywk/c5wWsMK5NL0DpP8v7k8fi+cw==", + "license": "MIT", + "dependencies": { + "camelcase-keys": "^10.0.0", + "plur": "^6.0.0", + "yaml": "^2.6.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/@sindresorhus/slugify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-3.0.0.tgz", @@ -2200,6 +2278,63 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-9.0.0.tgz", + "integrity": "sha512-TO9xmyXTZ9HUHI8M1OnvExxYB0eYVS/1e5s7IDMTAoIcwUd+aNcFODs6Xk83mobk0velyHFQgA1yIrvYc6wclw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-10.0.2.tgz", + "integrity": "sha512-PVHCLVbJ7nWGal0lPAmBN5eSLjIynlMUk2EPmL9aPl6QyJ6+FoszTKwldPzkuVqg5teZbPTbb8Oenzyw9GSJRw==", + "license": "MIT", + "dependencies": { + "camelcase": "^9.0.0", + "map-obj": "6.0.0", + "quick-lru": "^7.3.0", + "type-fest": "^5.4.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/map-obj": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-6.0.0.tgz", + "integrity": "sha512-PwDvwt/tK70+luLw5k9ySLtzLAzwf7tZTY9GBj63Y010nHRPjwHcQTpTd5JwQqITC2ty7prtxBo71iwyYY0TAg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz", + "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==", + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/change-case": { "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", @@ -2975,6 +3110,7 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", + "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -3774,6 +3910,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -4180,6 +4317,7 @@ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "license": "MIT", + "peer": true, "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", @@ -5110,6 +5248,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/quick-lru": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz", + "integrity": "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/radix3": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", @@ -5482,6 +5632,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "license": "MIT", + "peer": true, "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" @@ -5632,6 +5783,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tar": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.10.tgz", diff --git a/package.json b/package.json index b41bfc8a..f3464f50 100644 --- a/package.json +++ b/package.json @@ -4,20 +4,29 @@ "description": "", "main": "index.js", "scripts": { + "postinstall": "node scripts/patch-lightningcss.mjs", + "serve": "node node_modules/@indiekit/indiekit/bin/cli.js serve --config indiekit.config.mjs", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "type": "commonjs", + "overrides": { + "@indiekit/endpoint-auth": "npm:@rmdes/indiekit-endpoint-auth@^1.0.0-beta.25", + "@indiekit/endpoint-files": "npm:@rmdes/indiekit-endpoint-files@^1.0.0", + "@indiekit/endpoint-micropub": "npm:@rmdes/indiekit-endpoint-micropub@^1.0.0-beta.29", + "@indiekit/endpoint-posts": "npm:@rmdes/indiekit-endpoint-posts@^1.0.0-beta.25", + "@indiekit/endpoint-share": "npm:@rmdes/indiekit-endpoint-share@^1.0.2", + "@indiekit/endpoint-syndicate": "npm:@rmdes/indiekit-endpoint-syndicate@^1.0.0-beta.34", + "@indiekit/frontend": "npm:@rmdes/indiekit-frontend@^1.0.0-beta.27" + }, "dependencies": { "@indiekit/indiekit": "^1.0.0-beta.25", "@indiekit/store-github": "^1.0.0-beta.25", - "@rmdes/indiekit-endpoint-auth": "^1.0.0-beta.25", "@rmdes/indiekit-endpoint-conversations": "^2.1.6", "@rmdes/indiekit-endpoint-github": "^1.2.3", - "@rmdes/indiekit-endpoint-posts": "^1.0.0-beta.25", - "@rmdes/indiekit-endpoint-share": "^1.0.2", + "@rmdes/indiekit-preset-eleventy": "^1.0.0-beta.33", "@rmdes/indiekit-endpoint-webmention-io": "^1.0.7", "dotenv": "^17.3.1", "node-gyp": "^12.2.0" diff --git a/scripts/patch-lightningcss.mjs b/scripts/patch-lightningcss.mjs new file mode 100644 index 00000000..fcb09fb9 --- /dev/null +++ b/scripts/patch-lightningcss.mjs @@ -0,0 +1,64 @@ +import { access, readFile, writeFile } from "node:fs/promises"; + +const candidates = [ + "node_modules/@indiekit/indiekit/node_modules/@indiekit/frontend/lib/lightningcss.js", + "node_modules/@indiekit/endpoint-posts/node_modules/@indiekit/frontend/lib/lightningcss.js", + "node_modules/@rmdes/indiekit-endpoint-conversations/node_modules/@indiekit/frontend/lib/lightningcss.js", + "node_modules/@rmdes/indiekit-endpoint-webmention-io/node_modules/@indiekit/frontend/lib/lightningcss.js", +]; + +const replacement = `function resolveModuleFilePath(filePath) { + const modulePathMatch = filePath.match(/(?:^|[\\\\/])~([^\\\\/].*)$/); + + if (modulePathMatch?.[1]) { + const moduleFilePath = modulePathMatch[1]; + return require.resolve(moduleFilePath); + } + + return filePath; +}`; + +const functionRegex = + /function resolveModuleFilePath\(filePath\) \{[\s\S]*?\n\}/m; + +async function exists(path) { + try { + await access(path); + return true; + } catch { + return false; + } +} + +let patched = 0; +let checked = 0; + +for (const filePath of candidates) { + if (!(await exists(filePath))) { + continue; + } + + checked += 1; + + const source = await readFile(filePath, "utf8"); + + if (source.includes("modulePathMatch = filePath.match")) { + continue; + } + + if (!functionRegex.test(source)) { + continue; + } + + const updated = source.replace(functionRegex, replacement); + await writeFile(filePath, updated, "utf8"); + patched += 1; +} + +if (checked === 0) { + console.log("[postinstall] No @indiekit/frontend lightningcss files found"); +} else if (patched === 0) { + console.log("[postinstall] lightningcss resolver already patched"); +} else { + console.log(`[postinstall] Patched lightningcss resolver in ${patched} file(s)`); +}