diff --git a/README.md b/README.md index 60283e9..6c919df 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ A crash between a script's external side effect and inbox completion can repeat As in the old middleware, incoming DM/private-channel commands are disabled. Thread replies retain the old adapter's thread context. Text on `file_share` messages now reaches listeners; edited/deleted/hidden messages remain excluded. Outbound text is split into 4,000-character chunks, with ordering per destination; send failures are logged. Legacy external command endpoints are unchanged: the HTTP helper follows redirects and fails after 15 seconds, but unavailable third-party services still require an operator-selected replacement. -`natural` and `node-cron` are pinned to the baseline installed versions to preserve tokenizer imports and named-day schedules. The obsolete quote HTML parsers have been replaced without changing the quote command format. +`natural` remains pinned to the baseline installed version to preserve tokenizer imports. `node-cron` uses v4, which supports the existing named-weekday schedules. The obsolete quote HTML parsers have been replaced without changing the quote command format. ## Persistent environment commands diff --git a/package-lock.json b/package-lock.json index aeafde2..3c3a3ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "htmlparser2": "10.0.0", "moment": "^2.18.1", "natural": "0.5.6", - "node-cron": "1.2.1", + "node-cron": "4.6.0", "node-time-ago": "^1.0.0", "redis": "^6.2.1", "undici": "^7.0.0" @@ -231,7 +231,6 @@ "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, "license": "MIT", "dependencies": { "@types/connect": "*", @@ -242,7 +241,6 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -252,7 +250,6 @@ "version": "5.0.6", "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", - "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -264,7 +261,6 @@ "version": "5.1.3", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -277,7 +273,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, "license": "MIT" }, "node_modules/@types/jsonwebtoken": { @@ -309,14 +304,12 @@ "version": "6.15.1", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", - "dev": true, "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, "license": "MIT" }, "node_modules/@types/retry": { @@ -329,7 +322,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -339,7 +331,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -1394,9 +1385,13 @@ } }, "node_modules/node-cron": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-1.2.1.tgz", - "integrity": "sha512-lgci/ub6KWL6SUnKOIiMkhfjmUk3jvEuO/Ypa2/CGSXiC8z4x9EkwMx7Dcu7Dt4LktcfOl8/WcLT2x7gInBa7g==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-4.6.0.tgz", + "integrity": "sha512-Si/bzYiKRHOB8/a99T2+SDGN582ONDMSTlJr5oCkT6GtnqPjZ2s10eoQRYkW9ZHwjVxONL+W8Fb+qR0AHMQsdg==", + "license": "ISC", + "engines": { + "node": ">=20" + } }, "node_modules/node-time-ago": { "version": "1.0.0", diff --git a/package.json b/package.json index 50cb571..e8adf07 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "htmlparser2": "10.0.0", "moment": "^2.18.1", "natural": "0.5.6", - "node-cron": "1.2.1", + "node-cron": "4.6.0", "node-time-ago": "^1.0.0", "redis": "^6.2.1", "undici": "^7.0.0" diff --git a/src-ts/types/vendor.d.ts b/src-ts/types/vendor.d.ts index 8624f6b..afa9a8f 100644 --- a/src-ts/types/vendor.d.ts +++ b/src-ts/types/vendor.d.ts @@ -14,11 +14,6 @@ declare module "moment" { export = moment; } -declare module "node-cron" { - /** Schedules `fn` per the cron expression; returns the scheduled task. */ - export function schedule(expression: string, fn: () => void): unknown; -} - declare module "natural/lib/natural/tokenizers/regexp_tokenizer" { export class WordTokenizer { tokenize(text: string): string[];