diff --git a/CHANGELOG.md b/CHANGELOG.md index 63d4844..aaba76c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ The version numbering does not follow semantic versioning but instead aligns wit -## [13.0.0-1] (2024-12-08) +## [13.0.0] (2024-12-31) ### Added @@ -21,6 +21,10 @@ The version numbering does not follow semantic versioning but instead aligns wit - *Breaking:* Typescript 5.0 or higher is required ([#79]) +## [13.0.0-1] (2024-12-08) + +(Released in 13.0.0) + ## 13.0.0-0 (2024-12-08) [YANKED] Published from wrong branch. @@ -184,6 +188,7 @@ Published from wrong branch. - inferred types for `.action()` - inferred types for `.opts()` +[13.0.0]: https://github.com/commander-js/extra-typings/compare/v12.1.0...v13.0.0 [13.0.0-1]: https://github.com/commander-js/extra-typings/compare/v12.1.0...v13.0.0-1 [12.1.0]: https://github.com/commander-js/extra-typings/compare/v12.0.1...v12.1.0 [12.0.1]: https://github.com/commander-js/extra-typings/compare/v12.0.0...v12.0.1 diff --git a/index.d.ts b/index.d.ts index 75f728e..67addc0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1239,6 +1239,22 @@ export class Command< */ parseAsync(argv?: readonly string[], options?: ParseOptions): Promise; + /** + * Called the first time parse is called to save state and allow a restore before subsequent calls to parse. + * Not usually called directly, but available for subclasses to save their custom state. + * + * This is called in a lazy way. Only commands used in parsing chain will have state saved. + */ + saveStateBeforeParse(): void; + + /** + * Restore state before parse for calls after the first. + * Not usually called directly, but available for subclasses to save their custom state. + * + * This is called in a lazy way. Only commands used in parsing chain will have state restored. + */ + restoreStateBeforeParse(): void; + /** * Parse options from `argv` removing known options, * and return argv split into operands and unknown arguments. diff --git a/package-lock.json b/package-lock.json index 6c4fbef..2939205 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,17 @@ { "name": "@commander-js/extra-typings", - "version": "13.0.0-1", + "version": "13.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@commander-js/extra-typings", - "version": "13.0.0-1", + "version": "13.0.0", "license": "MIT", "devDependencies": { "@jest/globals": "^29.3.1", "@types/node": "^22.10.1", - "commander": "~13.0.0-0", + "commander": "^13.0.0", "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-jest": "^28.9.0", @@ -24,7 +24,7 @@ "typescript-eslint": "^8.11.0" }, "peerDependencies": { - "commander": "~13.0.0-0" + "commander": "~13.0.0" } }, "node_modules/@ampproject/remapping": { @@ -2192,9 +2192,9 @@ "license": "MIT" }, "node_modules/commander": { - "version": "13.0.0-0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.0.0-0.tgz", - "integrity": "sha512-3CshrHCF8M4mJhtBruqZvYzMoRplFO1NmsIzF6uaIxZpzvW+ZI6xU/fx5LmprLNYB5sH5F2CnjTkXflGfkYgkQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.0.0.tgz", + "integrity": "sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 88798a8..998d307 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@commander-js/extra-typings", - "version": "13.0.0-1", + "version": "13.0.0", "description": "Infer strong typings for commander options and action handlers", "main": "index.js", "scripts": { @@ -43,12 +43,12 @@ }, "homepage": "https://github.com/commander-js/extra-typings#readme", "peerDependencies": { - "commander": "~13.0.0-0" + "commander": "~13.0.0" }, "devDependencies": { "@jest/globals": "^29.3.1", "@types/node": "^22.10.1", - "commander": "~13.0.0-0", + "commander": "^13.0.0", "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-jest": "^28.9.0", diff --git a/tests/commander.test-d.ts b/tests/commander.test-d.ts index 35b85bc..d6c481f 100644 --- a/tests/commander.test-d.ts +++ b/tests/commander.test-d.ts @@ -362,6 +362,10 @@ expectType<{ operands: string[]; unknown: string[] }>( program.parseOptions(['node', 'script.js', 'hello']), ); +// save/restore state +expectType(program.saveStateBeforeParse()); +expectType(program.restoreStateBeforeParse()); + // opts const opts = program.opts(); expectAssignable(opts);