diff --git a/apps/shade/package.json b/apps/shade/package.json index 80922eb3a2d..b120dd6efa2 100644 --- a/apps/shade/package.json +++ b/apps/shade/package.json @@ -140,7 +140,6 @@ "clsx": "catalog:", "cmdk": "1.1.1", "color": "5.0.3", - "date-fns": "4.1.0", "lucide-react": "catalog:", "moment-timezone": "^0.5.48", "react": "catalog:", diff --git a/ghost/core/core/frontend/services/llms/handler.js b/ghost/core/core/frontend/services/llms/handler.js index 86ed1f148e2..b79b2c6677b 100644 --- a/ghost/core/core/frontend/services/llms/handler.js +++ b/ghost/core/core/frontend/services/llms/handler.js @@ -41,7 +41,8 @@ function createLlmsHandler({llmsService, config, settingsCache}) { const eventDetails = {route: req.path}; logging.error({ - system: {event: eventName, ...eventDetails}, + event: {name: eventName}, + url: {path: req.path}, err }, `${LLMS_LOG_KEY} ${err.message}`); diff --git a/ghost/core/core/server/services/indexnow.js b/ghost/core/core/server/services/indexnow.js index 0e76fc9240a..4f669ef5847 100644 --- a/ghost/core/core/server/services/indexnow.js +++ b/ghost/core/core/server/services/indexnow.js @@ -91,12 +91,8 @@ async function ping(post) { if (!url || url.endsWith('/404/')) { logging.warn({ - system: { - event: 'indexnow.unresolved_url', - post_id: post.id, - post_slug: post.slug, - url - } + event: {name: 'indexnow.unresolved_url'}, + post: {id: post.id, slug: post.slug, url} }, `${INDEXNOW_LOG_KEY} Skipped ping - post has no resolvable URL`); return; } @@ -105,11 +101,8 @@ async function ping(post) { const key = getApiKey(); if (!key) { logging.warn({ - system: { - event: 'indexnow.api_key_missing', - post_id: post.id, - post_slug: post.slug - } + event: {name: 'indexnow.api_key_missing'}, + post: {id: post.id, slug: post.slug} }, `${INDEXNOW_LOG_KEY} API key not available`); return; } @@ -139,13 +132,9 @@ async function ping(post) { } logging.info({ - system: { - event: 'indexnow.pinged', - post_id: post.id, - post_slug: post.slug, - url, - status_code: response.statusCode - } + event: {name: 'indexnow.pinged'}, + post: {id: post.id, slug: post.slug, url}, + http: {response: {status_code: response.statusCode}} }, `${INDEXNOW_LOG_KEY} Successfully pinged ${url}`); } catch (err) { // Log errors but don't throw - IndexNow failures shouldn't disrupt publishing @@ -180,13 +169,9 @@ async function ping(post) { } logging.warn({ - system: { - event: eventName, - post_id: post.id, - post_slug: post.slug, - url, - status_code: err.statusCode ?? null - }, + event: {name: eventName}, + post: {id: post.id, slug: post.slug, url}, + http: {response: {status_code: err.statusCode ?? null}}, err: error }, `${INDEXNOW_LOG_KEY} ${error.message}`); } diff --git a/ghost/core/core/server/services/themes/upload-size-limit-reporter.js b/ghost/core/core/server/services/themes/upload-size-limit-reporter.js index 809f00048ea..ac1149a494f 100644 --- a/ghost/core/core/server/services/themes/upload-size-limit-reporter.js +++ b/ghost/core/core/server/services/themes/upload-size-limit-reporter.js @@ -20,7 +20,7 @@ const reportThemeUploadSizeLimitError = (err, {themeName = null, zip = null} = { const eventName = `theme_upload.${SIZE_LIMIT_EVENTS_BY_CODE[err.code]}`; const errorDetails = err.errorDetails || {}; const eventDetails = { - theme_name: themeName, + name: themeName, entry_name: errorDetails.entryName ?? null, observed_bytes: errorDetails.observedBytes, limit_bytes: errorDetails.limitBytes, @@ -28,7 +28,8 @@ const reportThemeUploadSizeLimitError = (err, {themeName = null, zip = null} = { }; logging.error({ - system: {event: eventName, ...eventDetails}, + event: {name: eventName}, + theme: eventDetails, err }, `${THEME_UPLOAD_LOG_KEY} ${err.message}`); diff --git a/ghost/core/test/unit/server/services/indexnow.test.js b/ghost/core/test/unit/server/services/indexnow.test.js index 6bcd550dbec..df8f3f51548 100644 --- a/ghost/core/test/unit/server/services/indexnow.test.js +++ b/ghost/core/test/unit/server/services/indexnow.test.js @@ -267,8 +267,8 @@ describe('IndexNow', function () { await ping(testPost); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.pinged'); - assert.equal(loggingStub.args[0][0].system.status_code, 200); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.pinged'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 200); }); it('does not ping when the post has no resolvable URL (/404/)', async function () { @@ -283,11 +283,11 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), false); sinon.assert.calledOnce(loggingStub); - const logged = loggingStub.args[0][0].system; - assert.equal(logged.event, 'indexnow.unresolved_url'); - assert.equal(logged.url, 'https://example.com/404/'); - assert.equal(logged.post_id, testPost.id); - assert.equal(logged.post_slug, testPost.slug); + const logged = loggingStub.args[0][0]; + assert.equal(logged.event.name, 'indexnow.unresolved_url'); + assert.equal(logged.post.url, 'https://example.com/404/'); + assert.equal(logged.post.id, testPost.id); + assert.equal(logged.post.slug, testPost.slug); }); it('with default post should not execute ping', async function () { @@ -355,7 +355,7 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), false); // Should have logged a warning with a structured event sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.api_key_missing'); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.api_key_missing'); assert(loggingStub.args[0][1].includes('API key not available')); }); @@ -370,8 +370,8 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), true); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.pinged'); - assert.equal(loggingStub.args[0][0].system.status_code, 202); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.pinged'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 202); }); it('captures && logs errors from 400 requests', async function () { @@ -385,8 +385,8 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), true); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.ping_failed'); - assert.equal(loggingStub.args[0][0].system.status_code, 400); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.ping_failed'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 400); }); it('captures && logs validation errors from 422 requests', async function () { @@ -400,8 +400,8 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), true); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.key_validation_failed'); - assert.equal(loggingStub.args[0][0].system.status_code, 422); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.key_validation_failed'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 422); }); it('should behave correctly when getting a 429', async function () { @@ -415,8 +415,8 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), true); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.rate_limited'); - assert.equal(loggingStub.args[0][0].system.status_code, 429); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.rate_limited'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 429); }); it('logs the real status code for an unexpected 2xx response', async function () { @@ -432,8 +432,8 @@ describe('IndexNow', function () { assert.equal(pingRequest.isDone(), true); sinon.assert.calledOnce(loggingStub); - assert.equal(loggingStub.args[0][0].system.event, 'indexnow.ping_failed'); - assert.equal(loggingStub.args[0][0].system.status_code, 204); + assert.equal(loggingStub.args[0][0].event.name, 'indexnow.ping_failed'); + assert.equal(loggingStub.args[0][0].http.response.status_code, 204); }); }); diff --git a/ghost/core/test/unit/server/services/themes/upload-size-limit-reporter.test.js b/ghost/core/test/unit/server/services/themes/upload-size-limit-reporter.test.js index 267c7e3e242..141d5cfc12e 100644 --- a/ghost/core/test/unit/server/services/themes/upload-size-limit-reporter.test.js +++ b/ghost/core/test/unit/server/services/themes/upload-size-limit-reporter.test.js @@ -46,9 +46,9 @@ describe('Theme upload size limit reporter', function () { sinon.assert.calledOnce(loggingStub); sinon.assert.calledWith(loggingStub, { - system: { - event: 'theme_upload.entry_too_large', - theme_name: 'large-theme', + event: {name: 'theme_upload.entry_too_large'}, + theme: { + name: 'large-theme', entry_name: 'assets/big.jpg', observed_bytes: 101, limit_bytes: 100, @@ -60,7 +60,7 @@ describe('Theme upload size limit reporter', function () { sinon.assert.calledOnceWithExactly(sentryStub, err, { tags: {source: 'theme_upload.entry_too_large'}, extra: { - theme_name: 'large-theme', + name: 'large-theme', entry_name: 'assets/big.jpg', observed_bytes: 101, limit_bytes: 100, diff --git a/package.json b/package.json index 50f2e06231f..8bd42cb3aec 100644 --- a/package.json +++ b/package.json @@ -69,8 +69,8 @@ }, "devDependencies": { "@playwright/test": "catalog:", - "@secretlint/secretlint-rule-pattern": "12.3.1", - "@secretlint/secretlint-rule-preset-recommend": "12.3.1", + "@secretlint/secretlint-rule-pattern": "13.0.2", + "@secretlint/secretlint-rule-preset-recommend": "13.0.2", "eslint": "catalog:", "eslint-plugin-ghost": "3.5.0", "eslint-plugin-react": "7.37.5", @@ -80,7 +80,7 @@ "lint-staged": "17.0.5", "nx": "22.7.4", "rimraf": "6.1.3", - "secretlint": "12.3.1", + "secretlint": "13.0.2", "semver": "7.7.4", "typescript": "catalog:", "vitest": "catalog:" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37b2bcb69f5..1f8889520ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -354,11 +354,11 @@ importers: specifier: 'catalog:' version: 1.60.0 '@secretlint/secretlint-rule-pattern': - specifier: 12.3.1 - version: 12.3.1 + specifier: 13.0.2 + version: 13.0.2 '@secretlint/secretlint-rule-preset-recommend': - specifier: 12.3.1 - version: 12.3.1 + specifier: 13.0.2 + version: 13.0.2 eslint: specifier: 'catalog:' version: 8.57.1 @@ -387,8 +387,8 @@ importers: specifier: 6.1.3 version: 6.1.3 secretlint: - specifier: 12.3.1 - version: 12.3.1 + specifier: 13.0.2 + version: 13.0.2 semver: specifier: 7.7.4 version: 7.7.4 @@ -1488,9 +1488,6 @@ importers: color: specifier: 5.0.3 version: 5.0.3 - date-fns: - specifier: 4.1.0 - version: 4.1.0 lucide-react: specifier: 'catalog:' version: 1.17.0(react@18.3.1) @@ -6888,50 +6885,54 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@secretlint/config-creator@12.3.1': - resolution: {integrity: sha512-CCRvPfrQLt2fPg3eWTIDGXNcVFQd6ZnvQCZ5lzclV9OF7iRqXQ4l5lfGO8NS68tIZx7YvBKhcO8/eVxdqm89HA==} + '@secretlint/config-creator@13.0.2': + resolution: {integrity: sha512-wEHE/x7jeaWnDqVhzUg3qLsnl3NOQTA2fVnxwc0Z7dn3SOSh5sEKFr6xTp/LhZxyuHnKJltlcF085UDUFOoqYQ==} engines: {node: '>=22.0.0'} - '@secretlint/config-loader@12.3.1': - resolution: {integrity: sha512-PNrxz8tnAU/y5PmfOtKfVb+zEA3I+1iZqP1f9fXvIBtauBKs0h0Y+Cmvj0gG1a34kxaD1aQvFh8qHEhRV05gWg==} + '@secretlint/config-loader@13.0.2': + resolution: {integrity: sha512-r0ZVJ3oGUwWqoFPwhR9RK/fnp358TImaa72UhrBdBiuzMvAcPtE6EbnAYhbj0Yr5QS6ns+GI11jV344MLqkhTg==} engines: {node: '>=22.0.0'} - '@secretlint/core@12.3.1': - resolution: {integrity: sha512-ulcfARo1TANr8tWzDO/5cFxSNEEfRzgW6YPHYUijgpH3iYfwtUhWEU/r/BiFGl2PNaGzzVE1N9A6nZ74xbYvUQ==} + '@secretlint/core@13.0.2': + resolution: {integrity: sha512-15vg+zCmjQuDFVoOPNt0TyEu0Z95eir2MO19++wG82yM/vbPtFu/m9qd6oh54ZOBXgMcchdGDTxMwJNDnCLxcA==} engines: {node: '>=22.0.0'} - '@secretlint/formatter@12.3.1': - resolution: {integrity: sha512-SXpTiRzuuFNbHa59zk0eUxFOB/LYxnuHSfqq7zU9lIt0z5rox6NrnN9WWkoQai2V9s7n3VqUVUpZqnhxQ2Jzpw==} + '@secretlint/formatter@13.0.2': + resolution: {integrity: sha512-DoU+aEsqPQxiWTQBNkTvQDmGTWB+TQS4UC6XEliWYv4KHpMV81O52jOE7XKS7QUoDMD4dbjh5wUTAgNO1dpzEg==} engines: {node: '>=22.0.0'} - '@secretlint/node@12.3.1': - resolution: {integrity: sha512-1T08nqwWIJqSRrfkebk4Op5MwYgNnB6gwjv9v+X+V+HEIeG1GB/EgH8CJa8jK4uYdhUuaKyXpu36FIbjNa1wqA==} + '@secretlint/node@13.0.2': + resolution: {integrity: sha512-xAK+0INjjMASH5guHLSozl++6kDyeOTy4FNC6dhPA7ieebCmHe/+QiAsr4KP9yDRZoh/uRmEno2NMDy5lgQpkA==} engines: {node: '>=22.0.0'} - '@secretlint/profiler@12.3.1': - resolution: {integrity: sha512-lztyqJPTfkY0Ze9P7vNs3zm7p2Wq1+4ilFXVrxin0sDyFVXpkt+0+vsKsmdx9yBHabxrLDZgxa7fIsfV721cLw==} + '@secretlint/profiler@13.0.2': + resolution: {integrity: sha512-vGaLZCoi9KewOF+sM0iIEBviWaH9mls1HmQFBgEPq4fnvmVO4PfKIkVr4CcAFm3Msg4NjzFE2RBAGwRR+5HEmQ==} - '@secretlint/resolver@12.3.1': - resolution: {integrity: sha512-/QwcX5azKRdz9mBIbTBUsqp+cmWQZYGNdOHLbsMOBTLXa7KoEBffhmeaMSc0kNSrdgbgfu/7j+qeeaF4QwJf3A==} + '@secretlint/resolver@13.0.2': + resolution: {integrity: sha512-Ko50V0P3YAtEO20xBTczOzguBVk6+taSqkoAPHoOSdsTsSq1gzeYggY1UC8vVEHPGyRp/mb2QOuwIShdJZ8JFg==} - '@secretlint/secretlint-rule-pattern@12.3.1': - resolution: {integrity: sha512-s7YqD/gzdv9XY1kBaH3kbYIvAvV3Ygl50/sh56P3rVUPcaKAhBk5xlxEskHIdUOZsSJJpBfiafTF6nCLzN6dsw==} + '@secretlint/secretlint-rule-pattern@13.0.2': + resolution: {integrity: sha512-ntXHndXRJLB4TEt9bGY+dKH4naOq3mHM8h4hwftg/HA1EyrmuRN8+6qPUbBzsJvZWmMd7CZBBBU7DsNERdMqCQ==} engines: {node: '>=22.0.0'} - '@secretlint/secretlint-rule-preset-recommend@12.3.1': - resolution: {integrity: sha512-w9x9rIP1+qhV0k9k15aSIBo+6NrM4npAYIoNs7UmKIxuQSA6b91rhWpdMxgCv2/EQtym+gpuyN7rTSvG5wlYlw==} + '@secretlint/secretlint-rule-preset-recommend@13.0.2': + resolution: {integrity: sha512-D03Kw51qOgffj9zNlJFZUarVmP8zGcCZNi7A14+vZtHskbbBPEsS/f09idb48rrlMSaRMBN29IkqfbmPyL9xtw==} engines: {node: '>=22.0.0'} - '@secretlint/source-creator@12.3.1': - resolution: {integrity: sha512-RCkmyKdoe6VFWMzzVm5a9W+a+ptJSusVX+YOrcNy/heklMIWLg0bL+HYFcyYCm8rU2dRq2HuSYTOamDjNs0LZg==} + '@secretlint/source-creator@13.0.2': + resolution: {integrity: sha512-tSooHad8QL+lqHP88zH9F8GMoR7bHUqPja5M/QnNHGnvOq/8OT1V8t1uigm6jlD03oJWNLwwF8QeHIedWKJ13g==} engines: {node: '>=22.0.0'} - '@secretlint/tester@12.3.1': - resolution: {integrity: sha512-DFnJ8srTTsyyti543T5SEvqmZp/c/1JfFMYUbAsFyzLuDgDkvMUEE6m6FQrYl0p/DEIL3k30LgnskmmDxO9VtQ==} + '@secretlint/tester@13.0.2': + resolution: {integrity: sha512-4336ry9t/LHhOjL1nQqzaVMwVS9NNnWhZoIOCavr1QU2ICDeizslUuucrVMOzM6ptc1IRx1xk8PG2qUiOOwf0w==} engines: {node: '>=22.0.0'} - '@secretlint/types@12.3.1': - resolution: {integrity: sha512-Qv3fKvPkzUJpS9Ps6m2EPjC0RdxS2ZZrRfZAhIdl2u0zSjgf+Z0+AaCngmHRR+3Vtbw6s2FrCf4T6mLirm8Hgg==} + '@secretlint/types@13.0.2': + resolution: {integrity: sha512-cAZjr6ZTKgSuJMLyTGDrUEtK3XEZa+JStIkD+DmdkT32VGAN+dQJiYr1So3XJopsKSrqhP5kjZKT8WWtftZIpQ==} + engines: {node: '>=22.0.0'} + + '@secretlint/walker@13.0.2': + resolution: {integrity: sha512-9GtWeTb763Ilr/nbRzdFidfZTBtbNEsz/BKrilgqLpKR9EqSWe9eYWDQaLIYb4PddIhwOgHuahRrX2BYATNcLQ==} engines: {node: '>=22.0.0'} '@selderee/plugin-htmlparser2@0.6.0': @@ -14572,10 +14573,6 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@16.2.0: - resolution: {integrity: sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==} - engines: {node: '>=20'} - globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -14585,7 +14582,7 @@ packages: csstype: ^3.0.10 google-caja-bower@https://codeload.github.com/acburdine/google-caja-bower/tar.gz/275cb75249f038492094a499756a73719ae071fd: - resolution: {gitHosted: true, integrity: sha512-mmCXdxGKGKDznjgkNzVqzTslaldslk5KMb/A7l8rxWnqyxzwsdPhuBJ6oT1Kh/Y3k4jN54ISee/2AgjFyCBxYw==, tarball: https://codeload.github.com/acburdine/google-caja-bower/tar.gz/275cb75249f038492094a499756a73719ae071fd} + resolution: {gitHosted: true, tarball: https://codeload.github.com/acburdine/google-caja-bower/tar.gz/275cb75249f038492094a499756a73719ae071fd} version: 6011.0.0 gopd@1.2.0: @@ -15350,10 +15347,6 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -15985,7 +15978,7 @@ packages: engines: {node: '>= 0.6'} keymaster@https://codeload.github.com/madrobby/keymaster/tar.gz/f8f43ddafad663b505dc0908e72853bcf8daea49: - resolution: {gitHosted: true, integrity: sha512-/WVovQslVEqPGNoD97TbqNHuCDPYu2v4/ggrZj0a+9PVPw3Rud4Ut2K7fOi0kMqzoJINkgP68e9m09Al/wFZ8g==, tarball: https://codeload.github.com/madrobby/keymaster/tar.gz/f8f43ddafad663b505dc0908e72853bcf8daea49} + resolution: {gitHosted: true, tarball: https://codeload.github.com/madrobby/keymaster/tar.gz/f8f43ddafad663b505dc0908e72853bcf8daea49} version: 1.6.3 keypair@1.0.4: @@ -17194,7 +17187,7 @@ packages: hasBin: true mock-knex@https://codeload.github.com/TryGhost/mock-knex/tar.gz/68948e11b0ea4fe63456098dfdc169bea7f62009: - resolution: {gitHosted: true, integrity: sha512-VVShGrOVsuUDz9ueLO/3hcMzwNGr/e/dvYoiXCJSs7hI8TWdSWsEXDURWp251+NZHEZG/CI+L78lBFv+piGfxg==, tarball: https://codeload.github.com/TryGhost/mock-knex/tar.gz/68948e11b0ea4fe63456098dfdc169bea7f62009} + resolution: {gitHosted: true, tarball: https://codeload.github.com/TryGhost/mock-knex/tar.gz/68948e11b0ea4fe63456098dfdc169bea7f62009} version: 0.4.13 peerDependencies: knex: '> 0.8' @@ -19777,8 +19770,8 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - secretlint@12.3.1: - resolution: {integrity: sha512-wv8TKCjU5hbBxo5jKEX8wIE78VAoL0Ux7pu18+TxtbICMZ2OCbu6EmO3OJLbUbyfUXSPVryNLNmGVgvwY6Z0xw==} + secretlint@13.0.2: + resolution: {integrity: sha512-veYNpVC+Yw9H/EWzdGyEsYHqCFXgKOinGEMbRffvnkHoWnE0CongrCnWXZJ1bkYmirlhemq/gkiOZ5zdHcHCQg==} engines: {node: '>=22.0.0'} hasBin: true @@ -26457,34 +26450,34 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@secretlint/config-creator@12.3.1': + '@secretlint/config-creator@13.0.2': dependencies: - '@secretlint/types': 12.3.1 + '@secretlint/types': 13.0.2 - '@secretlint/config-loader@12.3.1': + '@secretlint/config-loader@13.0.2': dependencies: - '@secretlint/profiler': 12.3.1 - '@secretlint/resolver': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/profiler': 13.0.2 + '@secretlint/resolver': 13.0.2 + '@secretlint/types': 13.0.2 ajv: 8.20.0 debug: 4.4.3(supports-color@5.5.0) rc-config-loader: 4.1.4 transitivePeerDependencies: - supports-color - '@secretlint/core@12.3.1': + '@secretlint/core@13.0.2': dependencies: - '@secretlint/profiler': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/profiler': 13.0.2 + '@secretlint/types': 13.0.2 debug: 4.4.3(supports-color@5.5.0) structured-source: 4.0.0 transitivePeerDependencies: - supports-color - '@secretlint/formatter@12.3.1': + '@secretlint/formatter@13.0.2': dependencies: - '@secretlint/resolver': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/resolver': 13.0.2 + '@secretlint/types': 13.0.2 '@textlint/linter-formatter': 15.7.1 '@textlint/module-interop': 15.7.1 '@textlint/types': 15.7.1 @@ -26497,49 +26490,54 @@ snapshots: transitivePeerDependencies: - supports-color - '@secretlint/node@12.3.1': + '@secretlint/node@13.0.2': dependencies: - '@secretlint/config-loader': 12.3.1 - '@secretlint/core': 12.3.1 - '@secretlint/formatter': 12.3.1 - '@secretlint/profiler': 12.3.1 - '@secretlint/source-creator': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/config-loader': 13.0.2 + '@secretlint/core': 13.0.2 + '@secretlint/formatter': 13.0.2 + '@secretlint/profiler': 13.0.2 + '@secretlint/source-creator': 13.0.2 + '@secretlint/types': 13.0.2 debug: 4.4.3(supports-color@5.5.0) p-map: 7.0.4 transitivePeerDependencies: - supports-color - '@secretlint/profiler@12.3.1': {} + '@secretlint/profiler@13.0.2': {} - '@secretlint/resolver@12.3.1': {} + '@secretlint/resolver@13.0.2': {} - '@secretlint/secretlint-rule-pattern@12.3.1': + '@secretlint/secretlint-rule-pattern@13.0.2': dependencies: - '@secretlint/tester': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/tester': 13.0.2 + '@secretlint/types': 13.0.2 '@textlint/regexp-string-matcher': 2.0.2 micromatch: 4.0.8 transitivePeerDependencies: - supports-color - '@secretlint/secretlint-rule-preset-recommend@12.3.1': {} + '@secretlint/secretlint-rule-preset-recommend@13.0.2': {} - '@secretlint/source-creator@12.3.1': + '@secretlint/source-creator@13.0.2': dependencies: - '@secretlint/types': 12.3.1 + '@secretlint/types': 13.0.2 istextorbinary: 9.5.0 - '@secretlint/tester@12.3.1': + '@secretlint/tester@13.0.2': dependencies: - '@secretlint/config-loader': 12.3.1 - '@secretlint/core': 12.3.1 - '@secretlint/source-creator': 12.3.1 - '@secretlint/types': 12.3.1 + '@secretlint/config-loader': 13.0.2 + '@secretlint/core': 13.0.2 + '@secretlint/source-creator': 13.0.2 + '@secretlint/types': 13.0.2 transitivePeerDependencies: - supports-color - '@secretlint/types@12.3.1': {} + '@secretlint/types@13.0.2': {} + + '@secretlint/walker@13.0.2': + dependencies: + ignore: 7.0.5 + picomatch: 4.0.4 '@selderee/plugin-htmlparser2@0.6.0': dependencies: @@ -37396,15 +37394,6 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 - globby@16.2.0: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - fast-glob: 3.3.3 - ignore: 7.0.5 - is-path-inside: 4.0.0 - slash: 5.1.0 - unicorn-magic: 0.4.0 - globrex@0.1.2: {} goober@2.1.19(csstype@3.2.3): @@ -38291,8 +38280,6 @@ snapshots: is-path-inside@3.0.3: {} - is-path-inside@4.0.0: {} - is-plain-obj@2.1.0: {} is-plain-obj@4.1.0: {} @@ -44074,15 +44061,15 @@ snapshots: ajv-formats: 2.1.1(ajv@8.20.0) ajv-keywords: 5.1.0(ajv@8.20.0) - secretlint@12.3.1: + secretlint@13.0.2: dependencies: - '@secretlint/config-creator': 12.3.1 - '@secretlint/formatter': 12.3.1 - '@secretlint/node': 12.3.1 - '@secretlint/profiler': 12.3.1 - '@secretlint/resolver': 12.3.1 + '@secretlint/config-creator': 13.0.2 + '@secretlint/formatter': 13.0.2 + '@secretlint/node': 13.0.2 + '@secretlint/profiler': 13.0.2 + '@secretlint/resolver': 13.0.2 + '@secretlint/walker': 13.0.2 debug: 4.4.3(supports-color@5.5.0) - globby: 16.2.0 read-pkg: 10.1.0 transitivePeerDependencies: - supports-color