@bemoje/cli 0.1.27 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/arg/ArgumentBuilder.d.ts +23 -0
- package/cjs/arg/ArgumentBuilder.d.ts.map +1 -0
- package/cjs/arg/ArgumentBuilder.js +52 -0
- package/cjs/arg/ArgumentBuilder.js.map +1 -0
- package/cjs/arg/ArgumentParserSelector.d.ts +9 -0
- package/cjs/arg/ArgumentParserSelector.d.ts.map +1 -0
- package/cjs/arg/ArgumentParserSelector.js +15 -0
- package/cjs/arg/ArgumentParserSelector.js.map +1 -0
- package/cjs/arg/ArgumentReader.d.ts +15 -0
- package/cjs/arg/ArgumentReader.d.ts.map +1 -0
- package/cjs/arg/ArgumentReader.js +38 -0
- package/cjs/arg/ArgumentReader.js.map +1 -0
- package/cjs/arg/ArgumentValidatorSelector.d.ts +8 -0
- package/cjs/arg/ArgumentValidatorSelector.d.ts.map +1 -0
- package/cjs/arg/ArgumentValidatorSelector.js +16 -0
- package/cjs/arg/ArgumentValidatorSelector.js.map +1 -0
- package/cjs/cmd/CommandBuilder.d.ts +410 -0
- package/cjs/cmd/CommandBuilder.d.ts.map +1 -0
- package/cjs/cmd/CommandBuilder.js +1277 -0
- package/cjs/cmd/CommandBuilder.js.map +1 -0
- package/cjs/cmd/CommandBuilderMetaData.d.ts +26 -0
- package/cjs/cmd/CommandBuilderMetaData.d.ts.map +1 -0
- package/cjs/cmd/CommandBuilderMetaData.js +45 -0
- package/cjs/cmd/CommandBuilderMetaData.js.map +1 -0
- package/cjs/cmd/CommandFeatureSelector.d.ts +80 -0
- package/cjs/cmd/CommandFeatureSelector.d.ts.map +1 -0
- package/cjs/cmd/CommandFeatureSelector.js +114 -0
- package/cjs/cmd/CommandFeatureSelector.js.map +1 -0
- package/cjs/cmd/DefaultHelpConfig.d.ts +29 -0
- package/cjs/cmd/DefaultHelpConfig.d.ts.map +1 -0
- package/cjs/cmd/DefaultHelpConfig.js +177 -0
- package/cjs/cmd/DefaultHelpConfig.js.map +1 -0
- package/cjs/cmd/commanderBackRefs.d.ts +10 -0
- package/cjs/cmd/commanderBackRefs.d.ts.map +1 -0
- package/cjs/cmd/commanderBackRefs.js +38 -0
- package/cjs/cmd/commanderBackRefs.js.map +1 -0
- package/cjs/core/OutputManager.d.ts +64 -0
- package/cjs/core/OutputManager.d.ts.map +1 -0
- package/cjs/core/OutputManager.js +92 -0
- package/cjs/core/OutputManager.js.map +1 -0
- package/cjs/core/ParserSelector.d.ts +23 -0
- package/cjs/core/ParserSelector.d.ts.map +1 -0
- package/cjs/core/ParserSelector.js +46 -0
- package/cjs/core/ParserSelector.js.map +1 -0
- package/cjs/core/ValidatorSelector.d.ts +19 -0
- package/cjs/core/ValidatorSelector.d.ts.map +1 -0
- package/cjs/core/ValidatorSelector.js +42 -0
- package/cjs/core/ValidatorSelector.js.map +1 -0
- package/cjs/core/splitCombinedArgvShorts.d.ts +2 -0
- package/cjs/core/splitCombinedArgvShorts.d.ts.map +1 -0
- package/cjs/core/splitCombinedArgvShorts.js +15 -0
- package/cjs/core/splitCombinedArgvShorts.js.map +1 -0
- package/cjs/db/AbstractJsonFileSection.d.ts +136 -0
- package/cjs/db/AbstractJsonFileSection.d.ts.map +1 -0
- package/cjs/db/AbstractJsonFileSection.js +190 -0
- package/cjs/db/AbstractJsonFileSection.js.map +1 -0
- package/cjs/db/AppDataSection.d.ts +31 -0
- package/cjs/db/AppDataSection.d.ts.map +1 -0
- package/cjs/db/AppDataSection.js +49 -0
- package/cjs/db/AppDataSection.js.map +1 -0
- package/cjs/db/ConfigSection.d.ts +46 -0
- package/cjs/db/ConfigSection.d.ts.map +1 -0
- package/cjs/db/ConfigSection.js +71 -0
- package/cjs/db/ConfigSection.js.map +1 -0
- package/cjs/db/JsonFile.d.ts +36 -0
- package/cjs/db/JsonFile.d.ts.map +1 -0
- package/cjs/db/JsonFile.js +60 -0
- package/cjs/db/JsonFile.js.map +1 -0
- package/cjs/db/PresetsSection.d.ts +45 -0
- package/cjs/db/PresetsSection.d.ts.map +1 -0
- package/cjs/db/PresetsSection.js +82 -0
- package/cjs/db/PresetsSection.js.map +1 -0
- package/cjs/index.d.ts +25 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +26 -3
- package/cjs/index.js.map +1 -1
- package/cjs/opt/OptionArgumentParserSelector.d.ts +8 -0
- package/cjs/opt/OptionArgumentParserSelector.d.ts.map +1 -0
- package/cjs/opt/OptionArgumentParserSelector.js +16 -0
- package/cjs/opt/OptionArgumentParserSelector.js.map +1 -0
- package/cjs/opt/OptionArgumentValidatorSelector.d.ts +8 -0
- package/cjs/opt/OptionArgumentValidatorSelector.d.ts.map +1 -0
- package/cjs/opt/OptionArgumentValidatorSelector.js +19 -0
- package/cjs/opt/OptionArgumentValidatorSelector.js.map +1 -0
- package/cjs/opt/OptionBuilder.d.ts +32 -0
- package/cjs/opt/OptionBuilder.d.ts.map +1 -0
- package/cjs/opt/OptionBuilder.js +97 -0
- package/cjs/opt/OptionBuilder.js.map +1 -0
- package/cjs/opt/OptionHelpers.d.ts +33 -0
- package/cjs/opt/OptionHelpers.d.ts.map +1 -0
- package/cjs/opt/OptionHelpers.js +57 -0
- package/cjs/opt/OptionHelpers.js.map +1 -0
- package/cjs/opt/OptionReader.d.ts +24 -0
- package/cjs/opt/OptionReader.d.ts.map +1 -0
- package/cjs/opt/OptionReader.js +66 -0
- package/cjs/opt/OptionReader.js.map +1 -0
- package/cjs/types/IConfig.d.ts +22 -0
- package/cjs/types/IConfig.d.ts.map +1 -0
- package/cjs/{lib/types.js → types/IConfig.js} +1 -1
- package/cjs/types/IConfig.js.map +1 -0
- package/cjs/types/IPreset.d.ts +15 -0
- package/cjs/types/IPreset.d.ts.map +1 -0
- package/cjs/types/IPreset.js +3 -0
- package/cjs/types/IPreset.js.map +1 -0
- package/package.json +1 -1
- package/cjs/lib/autostudy.d.ts +0 -2
- package/cjs/lib/autostudy.d.ts.map +0 -1
- package/cjs/lib/autostudy.js +0 -33
- package/cjs/lib/autostudy.js.map +0 -1
- package/cjs/lib/core/assertValidOptions.d.ts +0 -3
- package/cjs/lib/core/assertValidOptions.d.ts.map +0 -1
- package/cjs/lib/core/assertValidOptions.js +0 -32
- package/cjs/lib/core/assertValidOptions.js.map +0 -1
- package/cjs/lib/core/defaultParams.d.ts +0 -4
- package/cjs/lib/core/defaultParams.d.ts.map +0 -1
- package/cjs/lib/core/defaultParams.js +0 -18
- package/cjs/lib/core/defaultParams.js.map +0 -1
- package/cjs/lib/core/ensureEnglish.d.ts +0 -3
- package/cjs/lib/core/ensureEnglish.d.ts.map +0 -1
- package/cjs/lib/core/ensureEnglish.js +0 -15
- package/cjs/lib/core/ensureEnglish.js.map +0 -1
- package/cjs/lib/core/pdfParser.d.ts +0 -2
- package/cjs/lib/core/pdfParser.d.ts.map +0 -1
- package/cjs/lib/core/pdfParser.js +0 -19
- package/cjs/lib/core/pdfParser.js.map +0 -1
- package/cjs/lib/core/renderMarkdown.d.ts +0 -3
- package/cjs/lib/core/renderMarkdown.d.ts.map +0 -1
- package/cjs/lib/core/renderMarkdown.js +0 -32
- package/cjs/lib/core/renderMarkdown.js.map +0 -1
- package/cjs/lib/core/study.d.ts +0 -7
- package/cjs/lib/core/study.d.ts.map +0 -1
- package/cjs/lib/core/study.js +0 -33
- package/cjs/lib/core/study.js.map +0 -1
- package/cjs/lib/core/studySelections.d.ts +0 -7
- package/cjs/lib/core/studySelections.d.ts.map +0 -1
- package/cjs/lib/core/studySelections.js +0 -30
- package/cjs/lib/core/studySelections.js.map +0 -1
- package/cjs/lib/core/writeMarkdownFileResult.d.ts +0 -6
- package/cjs/lib/core/writeMarkdownFileResult.d.ts.map +0 -1
- package/cjs/lib/core/writeMarkdownFileResult.js +0 -22
- package/cjs/lib/core/writeMarkdownFileResult.js.map +0 -1
- package/cjs/lib/gpt/determineLanguage.d.ts +0 -3
- package/cjs/lib/gpt/determineLanguage.d.ts.map +0 -1
- package/cjs/lib/gpt/determineLanguage.js +0 -16
- package/cjs/lib/gpt/determineLanguage.js.map +0 -1
- package/cjs/lib/gpt/getAnswer.d.ts +0 -4
- package/cjs/lib/gpt/getAnswer.d.ts.map +0 -1
- package/cjs/lib/gpt/getAnswer.js +0 -17
- package/cjs/lib/gpt/getAnswer.js.map +0 -1
- package/cjs/lib/gpt/getConcepts.d.ts +0 -4
- package/cjs/lib/gpt/getConcepts.d.ts.map +0 -1
- package/cjs/lib/gpt/getConcepts.js +0 -17
- package/cjs/lib/gpt/getConcepts.js.map +0 -1
- package/cjs/lib/gpt/getSummary.d.ts +0 -4
- package/cjs/lib/gpt/getSummary.d.ts.map +0 -1
- package/cjs/lib/gpt/getSummary.js +0 -17
- package/cjs/lib/gpt/getSummary.js.map +0 -1
- package/cjs/lib/gpt/translateDaToEn.d.ts +0 -3
- package/cjs/lib/gpt/translateDaToEn.d.ts.map +0 -1
- package/cjs/lib/gpt/translateDaToEn.js +0 -14
- package/cjs/lib/gpt/translateDaToEn.js.map +0 -1
- package/cjs/lib/main.d.ts +0 -2
- package/cjs/lib/main.d.ts.map +0 -1
- package/cjs/lib/main.js +0 -9
- package/cjs/lib/main.js.map +0 -1
- package/cjs/lib/templates/getArticleConfigTemplate.d.ts +0 -3
- package/cjs/lib/templates/getArticleConfigTemplate.d.ts.map +0 -1
- package/cjs/lib/templates/getArticleConfigTemplate.js +0 -28
- package/cjs/lib/templates/getArticleConfigTemplate.js.map +0 -1
- package/cjs/lib/templates/getBookConfigTemplate.d.ts +0 -3
- package/cjs/lib/templates/getBookConfigTemplate.d.ts.map +0 -1
- package/cjs/lib/templates/getBookConfigTemplate.js +0 -35
- package/cjs/lib/templates/getBookConfigTemplate.js.map +0 -1
- package/cjs/lib/types.d.ts +0 -37
- package/cjs/lib/types.d.ts.map +0 -1
- package/cjs/lib/types.js.map +0 -1
package/cjs/index.d.ts
CHANGED
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './arg/ArgumentBuilder';
|
|
2
|
+
export * from './arg/ArgumentParserSelector';
|
|
3
|
+
export * from './arg/ArgumentReader';
|
|
4
|
+
export * from './arg/ArgumentValidatorSelector';
|
|
5
|
+
export * from './cmd/CommandBuilder';
|
|
6
|
+
export * from './cmd/CommandBuilderMetaData';
|
|
7
|
+
export * from './cmd/commanderBackRefs';
|
|
8
|
+
export * from './cmd/CommandFeatureSelector';
|
|
9
|
+
export * from './cmd/DefaultHelpConfig';
|
|
10
|
+
export * from './core/OutputManager';
|
|
11
|
+
export * from './core/ParserSelector';
|
|
12
|
+
export * from './core/splitCombinedArgvShorts';
|
|
13
|
+
export * from './core/ValidatorSelector';
|
|
14
|
+
export * from './db/AbstractJsonFileSection';
|
|
15
|
+
export * from './db/AppDataSection';
|
|
16
|
+
export * from './db/ConfigSection';
|
|
17
|
+
export * from './db/JsonFile';
|
|
18
|
+
export * from './db/PresetsSection';
|
|
19
|
+
export * from './opt/OptionArgumentParserSelector';
|
|
20
|
+
export * from './opt/OptionArgumentValidatorSelector';
|
|
21
|
+
export * from './opt/OptionBuilder';
|
|
22
|
+
export * from './opt/OptionHelpers';
|
|
23
|
+
export * from './opt/OptionReader';
|
|
24
|
+
export * from './types/IConfig';
|
|
25
|
+
export * from './types/IPreset';
|
|
2
26
|
//# sourceMappingURL=index.d.ts.map
|
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/cli/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oCAAoC,CAAA;AAClD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
|
package/cjs/index.js
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./arg/ArgumentBuilder"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./arg/ArgumentParserSelector"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./arg/ArgumentReader"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./arg/ArgumentValidatorSelector"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./cmd/CommandBuilder"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./cmd/CommandBuilderMetaData"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./cmd/commanderBackRefs"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./cmd/CommandFeatureSelector"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./cmd/DefaultHelpConfig"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./core/OutputManager"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./core/ParserSelector"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./core/splitCombinedArgvShorts"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./core/ValidatorSelector"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./db/AbstractJsonFileSection"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./db/AppDataSection"), exports);
|
|
19
|
+
tslib_1.__exportStar(require("./db/ConfigSection"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./db/JsonFile"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./db/PresetsSection"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./opt/OptionArgumentParserSelector"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./opt/OptionArgumentValidatorSelector"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./opt/OptionBuilder"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./opt/OptionHelpers"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./opt/OptionReader"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./types/IConfig"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./types/IPreset"), exports);
|
|
6
29
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/cli/src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAqC;AACrC,uEAA4C;AAC5C,+DAAoC;AACpC,0EAA+C;AAC/C,+DAAoC;AACpC,uEAA4C;AAC5C,kEAAuC;AACvC,uEAA4C;AAC5C,kEAAuC;AACvC,+DAAoC;AACpC,gEAAqC;AACrC,yEAA8C;AAC9C,mEAAwC;AACxC,uEAA4C;AAC5C,8DAAmC;AACnC,6DAAkC;AAClC,wDAA6B;AAC7B,8DAAmC;AACnC,6EAAkD;AAClD,gFAAqD;AACrD,8DAAmC;AACnC,8DAAmC;AACnC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OptionBuilder } from './OptionBuilder';
|
|
2
|
+
import { ParserSelector } from '../core/ParserSelector';
|
|
3
|
+
import { TStringParser } from '@bemoje/types';
|
|
4
|
+
export declare class OptionArgumentParserSelector extends ParserSelector<OptionBuilder> {
|
|
5
|
+
constructor(builder: OptionBuilder);
|
|
6
|
+
custom<T>(parser: TStringParser<T>): OptionBuilder;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OptionArgumentParserSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionArgumentParserSelector.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionArgumentParserSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,aAAa,CAAC;gBACjE,OAAO,EAAE,aAAa;IAGlC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CAKnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OptionArgumentParserSelector = void 0;
|
|
4
|
+
const ParserSelector_1 = require("../core/ParserSelector");
|
|
5
|
+
class OptionArgumentParserSelector extends ParserSelector_1.ParserSelector {
|
|
6
|
+
constructor(builder) {
|
|
7
|
+
super(builder);
|
|
8
|
+
}
|
|
9
|
+
custom(parser) {
|
|
10
|
+
const name = this.builder.$.attributeName();
|
|
11
|
+
this.builder.cmd.meta.optParsers[name] = parser;
|
|
12
|
+
return this.builder;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.OptionArgumentParserSelector = OptionArgumentParserSelector;
|
|
16
|
+
//# sourceMappingURL=OptionArgumentParserSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionArgumentParserSelector.js","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionArgumentParserSelector.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAGvD,MAAa,4BAA6B,SAAQ,+BAA6B;IAC7E,YAAY,OAAsB;QAChC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IACD,MAAM,CAAI,MAAwB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AATD,oEASC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OptionBuilder } from './OptionBuilder';
|
|
2
|
+
import { TValidator } from '@bemoje/types';
|
|
3
|
+
import { ValidatorSelector } from '../core/ValidatorSelector';
|
|
4
|
+
export declare class OptionArgumentValidatorSelector extends ValidatorSelector<OptionBuilder> {
|
|
5
|
+
constructor(builder: OptionBuilder);
|
|
6
|
+
custom<T>(validator: TValidator<T>): OptionBuilder;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OptionArgumentValidatorSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionArgumentValidatorSelector.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionArgumentValidatorSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,+BAAgC,SAAQ,iBAAiB,CAAC,aAAa,CAAC;gBACvE,OAAO,EAAE,aAAa;IAGlC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;CAOnC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OptionArgumentValidatorSelector = void 0;
|
|
4
|
+
const ValidatorSelector_1 = require("../core/ValidatorSelector");
|
|
5
|
+
class OptionArgumentValidatorSelector extends ValidatorSelector_1.ValidatorSelector {
|
|
6
|
+
constructor(builder) {
|
|
7
|
+
super(builder);
|
|
8
|
+
}
|
|
9
|
+
custom(validator) {
|
|
10
|
+
const name = this.builder.$.attributeName();
|
|
11
|
+
const obj = this.builder.cmd.meta.optValidators;
|
|
12
|
+
if (!obj[name])
|
|
13
|
+
obj[name] = [];
|
|
14
|
+
obj[name].push(validator);
|
|
15
|
+
return this.builder;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.OptionArgumentValidatorSelector = OptionArgumentValidatorSelector;
|
|
19
|
+
//# sourceMappingURL=OptionArgumentValidatorSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionArgumentValidatorSelector.js","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionArgumentValidatorSelector.ts"],"names":[],"mappings":";;;AAEA,iEAA6D;AAE7D,MAAa,+BAAgC,SAAQ,qCAAgC;IACnF,YAAY,OAAsB;QAChC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IACD,MAAM,CAAI,SAAwB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAA;QAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzB,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AAXD,0EAWC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CommandBuilder } from '../cmd/CommandBuilder';
|
|
2
|
+
import { Option } from '@commander-js/extra-typings';
|
|
3
|
+
import { OptionArgumentParserSelector } from './OptionArgumentParserSelector';
|
|
4
|
+
import { OptionArgumentValidatorSelector } from './OptionArgumentValidatorSelector';
|
|
5
|
+
import { OptionReader } from './OptionReader';
|
|
6
|
+
import { OptionValues } from '@commander-js/extra-typings';
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper around the @see Option class, for more intuitive construction.
|
|
9
|
+
* @remarks Options are one of boolean, negated, required argument, or optional argument.
|
|
10
|
+
*/
|
|
11
|
+
export declare class OptionBuilder {
|
|
12
|
+
readonly cmd: CommandBuilder;
|
|
13
|
+
readonly $: Option;
|
|
14
|
+
constructor(cmd: CommandBuilder, flags: string);
|
|
15
|
+
get hasValidators(): boolean;
|
|
16
|
+
get hasParser(): boolean;
|
|
17
|
+
description(...lines: string[]): this;
|
|
18
|
+
mandatory(mandatory?: boolean): this;
|
|
19
|
+
hidden(hidden?: boolean): this;
|
|
20
|
+
preset(arg: unknown): this;
|
|
21
|
+
default(value: unknown, description?: string): this;
|
|
22
|
+
choices(values: readonly string[]): this;
|
|
23
|
+
conflicts(names: string | string[]): this;
|
|
24
|
+
implies(optionValues: OptionValues): this;
|
|
25
|
+
env(name: string): this;
|
|
26
|
+
short(short: string): this;
|
|
27
|
+
get parser(): OptionArgumentParserSelector;
|
|
28
|
+
get validator(): OptionArgumentValidatorSelector;
|
|
29
|
+
get get(): OptionReader;
|
|
30
|
+
protected camelcase(str: string): string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=OptionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionBuilder.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D;;;GAGG;AACH,qBAAa,aAAa;IAGZ,QAAQ,CAAC,GAAG,EAAE,cAAc;IAFxC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;gBAEG,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAOvD,IAAI,aAAa,YAEhB;IACD,IAAI,SAAS,YAEZ;IACD,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAI9B,SAAS,CAAC,SAAS,UAAO;IAI1B,MAAM,CAAC,MAAM,UAAO;IAKpB,MAAM,CAAC,GAAG,EAAE,OAAO;IAInB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM;IAI5C,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE;IAOjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,OAAO,CAAC,YAAY,EAAE,YAAY;IAIlC,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,KAAK,CAAC,KAAK,EAAE,MAAM;IAInB,IAAI,MAAM,iCAKT;IACD,IAAI,SAAS,oCAKZ;IACD,IAAI,GAAG,iBAEN;IACD,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM;CAKhC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OptionBuilder = void 0;
|
|
4
|
+
const extra_typings_1 = require("@commander-js/extra-typings");
|
|
5
|
+
const OptionArgumentParserSelector_1 = require("./OptionArgumentParserSelector");
|
|
6
|
+
const OptionArgumentValidatorSelector_1 = require("./OptionArgumentValidatorSelector");
|
|
7
|
+
const OptionHelpers_1 = require("./OptionHelpers");
|
|
8
|
+
const OptionReader_1 = require("./OptionReader");
|
|
9
|
+
const object_1 = require("@bemoje/object");
|
|
10
|
+
/**
|
|
11
|
+
* Wrapper around the @see Option class, for more intuitive construction.
|
|
12
|
+
* @remarks Options are one of boolean, negated, required argument, or optional argument.
|
|
13
|
+
*/
|
|
14
|
+
class OptionBuilder {
|
|
15
|
+
cmd;
|
|
16
|
+
$;
|
|
17
|
+
constructor(cmd, flags) {
|
|
18
|
+
this.cmd = cmd;
|
|
19
|
+
flags = flags
|
|
20
|
+
.split(' ')
|
|
21
|
+
.map((s) => (s.startsWith('--') ? '--' + this.camelcase(s.slice(2)) : s))
|
|
22
|
+
.join(' ');
|
|
23
|
+
this.$ = new extra_typings_1.Option(flags);
|
|
24
|
+
}
|
|
25
|
+
get hasValidators() {
|
|
26
|
+
return this.cmd.meta.optValidators[this.$.attributeName()]?.length > 0;
|
|
27
|
+
}
|
|
28
|
+
get hasParser() {
|
|
29
|
+
return this.cmd.meta.optParsers[this.$.attributeName()] !== undefined;
|
|
30
|
+
}
|
|
31
|
+
description(...lines) {
|
|
32
|
+
this.$.description = lines.join('\n');
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
mandatory(mandatory = true) {
|
|
36
|
+
this.$.makeOptionMandatory(mandatory);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
hidden(hidden = true) {
|
|
40
|
+
this.$.hidden = hidden;
|
|
41
|
+
this.$.hideHelp(hidden);
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
preset(arg) {
|
|
45
|
+
this.$.preset(arg);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
default(value, description) {
|
|
49
|
+
this.$.default(value, description);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
choices(values) {
|
|
53
|
+
if (!OptionHelpers_1.OptionHelpers.hasArgument(this.$)) {
|
|
54
|
+
throw new Error('Cannot set choices on option with no argument: ' + this.$.name());
|
|
55
|
+
}
|
|
56
|
+
this.$.choices(values);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
conflicts(names) {
|
|
60
|
+
this.$.conflicts(names);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
implies(optionValues) {
|
|
64
|
+
this.$.implies(optionValues);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
env(name) {
|
|
68
|
+
this.$.env(name);
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
short(short) {
|
|
72
|
+
OptionHelpers_1.OptionHelpers.setShort(this.$, short);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
get parser() {
|
|
76
|
+
if (!OptionHelpers_1.OptionHelpers.hasArgument(this.$)) {
|
|
77
|
+
throw new Error('Cannot set parser on option with no argument: ' + this.$.attributeName());
|
|
78
|
+
}
|
|
79
|
+
return new OptionArgumentParserSelector_1.OptionArgumentParserSelector(this);
|
|
80
|
+
}
|
|
81
|
+
get validator() {
|
|
82
|
+
if (!OptionHelpers_1.OptionHelpers.hasArgument(this.$)) {
|
|
83
|
+
throw new Error('Cannot set validator on option with no argument: ' + this.$.attributeName());
|
|
84
|
+
}
|
|
85
|
+
return new OptionArgumentValidatorSelector_1.OptionArgumentValidatorSelector(this);
|
|
86
|
+
}
|
|
87
|
+
get get() {
|
|
88
|
+
return (0, object_1.realizeLazyProperty)(this, 'get', new OptionReader_1.OptionReader(this));
|
|
89
|
+
}
|
|
90
|
+
camelcase(str) {
|
|
91
|
+
return str.split('-').reduce((str, word) => {
|
|
92
|
+
return str + word[0].toUpperCase() + word.slice(1);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.OptionBuilder = OptionBuilder;
|
|
97
|
+
//# sourceMappingURL=OptionBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionBuilder.js","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Option } from '@commander-js/extra-typings';
|
|
2
|
+
/**
|
|
3
|
+
* Extract the argument name from an option's 'flags' string.
|
|
4
|
+
*/
|
|
5
|
+
declare function getArgumentName(opt: Option): string;
|
|
6
|
+
/**
|
|
7
|
+
* Check if an option has an argument.
|
|
8
|
+
*/
|
|
9
|
+
declare function hasArgument(opt: Option): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Update an Option's 'flags' property from its 'short' and 'long' properties.
|
|
12
|
+
* The flags property is not automatically updated when 'short' or 'long' are changed.
|
|
13
|
+
*/
|
|
14
|
+
declare function renderFlags(opt: Option): string;
|
|
15
|
+
/**
|
|
16
|
+
* Set an Option's 'long' name. The 'flags' property is updated accordingly.
|
|
17
|
+
* The '--' prefix is automatically added if not present.
|
|
18
|
+
*/
|
|
19
|
+
declare function setLong(opt: Option, long: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Set an Option's 'short' name. The 'flags' property is updated accordingly.
|
|
22
|
+
* The '-' prefix is automatically added if not present.
|
|
23
|
+
*/
|
|
24
|
+
declare function setShort(opt: Option, short: string): void;
|
|
25
|
+
export declare const OptionHelpers: {
|
|
26
|
+
getArgumentName: typeof getArgumentName;
|
|
27
|
+
hasArgument: typeof hasArgument;
|
|
28
|
+
renderFlags: typeof renderFlags;
|
|
29
|
+
setLong: typeof setLong;
|
|
30
|
+
setShort: typeof setShort;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=OptionHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionHelpers.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAGpD;;GAEG;AACH,iBAAS,eAAe,CAAC,GAAG,EAAE,MAAM,UAInC;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,WAE/B;AAED;;;GAGG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,UAM/B;AAED;;;GAGG;AACH,iBAAS,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAGzC;AAED;;;GAGG;AACH,iBAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAG3C;AAED,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OptionHelpers = void 0;
|
|
4
|
+
const array_1 = require("@bemoje/array");
|
|
5
|
+
const string_1 = require("@bemoje/string");
|
|
6
|
+
/**
|
|
7
|
+
* Extract the argument name from an option's 'flags' string.
|
|
8
|
+
*/
|
|
9
|
+
function getArgumentName(opt) {
|
|
10
|
+
const result = (0, array_1.arrLast)(opt.flags.trim().split(' '));
|
|
11
|
+
if (/-/.test(result))
|
|
12
|
+
return undefined;
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Check if an option has an argument.
|
|
17
|
+
*/
|
|
18
|
+
function hasArgument(opt) {
|
|
19
|
+
return /[<>[\]]/.test(opt.flags);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Update an Option's 'flags' property from its 'short' and 'long' properties.
|
|
23
|
+
* The flags property is not automatically updated when 'short' or 'long' are changed.
|
|
24
|
+
*/
|
|
25
|
+
function renderFlags(opt) {
|
|
26
|
+
const shortLong = [];
|
|
27
|
+
if (opt.short)
|
|
28
|
+
shortLong.push(opt.short);
|
|
29
|
+
if (opt.long)
|
|
30
|
+
shortLong.push(opt.long);
|
|
31
|
+
const argName = getArgumentName(opt);
|
|
32
|
+
return shortLong.join(', ') + (argName ? ' ' + argName : '');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set an Option's 'long' name. The 'flags' property is updated accordingly.
|
|
36
|
+
* The '--' prefix is automatically added if not present.
|
|
37
|
+
*/
|
|
38
|
+
function setLong(opt, long) {
|
|
39
|
+
opt.long = (0, string_1.strEnsureStartsWith)(long, '--').replace(/^-+/, '--');
|
|
40
|
+
opt.flags = renderFlags(opt);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set an Option's 'short' name. The 'flags' property is updated accordingly.
|
|
44
|
+
* The '-' prefix is automatically added if not present.
|
|
45
|
+
*/
|
|
46
|
+
function setShort(opt, short) {
|
|
47
|
+
opt.short = (0, string_1.strEnsureStartsWith)(short, '-').replace(/^-+/, '-');
|
|
48
|
+
opt.flags = renderFlags(opt);
|
|
49
|
+
}
|
|
50
|
+
exports.OptionHelpers = {
|
|
51
|
+
getArgumentName,
|
|
52
|
+
hasArgument,
|
|
53
|
+
renderFlags,
|
|
54
|
+
setLong,
|
|
55
|
+
setShort,
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=OptionHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionHelpers.js","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionHelpers.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAEvC,2CAAoD;AAEpD;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IACtC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,IAAI,GAAG,CAAC,KAAK;QAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACxC,IAAI,GAAG,CAAC,IAAI;QAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IACpC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IACxC,GAAG,CAAC,IAAI,GAAG,IAAA,4BAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/D,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,KAAa;IAC1C,GAAG,CAAC,KAAK,GAAG,IAAA,4BAAmB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/D,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAEY,QAAA,aAAa,GAAG;IAC3B,eAAe;IACf,WAAW;IACX,WAAW;IACX,OAAO;IACP,QAAQ;CACT,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OptionBuilder } from './OptionBuilder';
|
|
2
|
+
export declare class OptionReader {
|
|
3
|
+
protected readonly parent: OptionBuilder;
|
|
4
|
+
constructor(parent: OptionBuilder);
|
|
5
|
+
get $(): import("@commander-js/extra-typings").Option<"", undefined, undefined, undefined, false, undefined>;
|
|
6
|
+
get option(): import("@commander-js/extra-typings").Option<"", undefined, undefined, undefined, false, undefined>;
|
|
7
|
+
get description(): string;
|
|
8
|
+
get optional(): boolean;
|
|
9
|
+
get mandatory(): boolean;
|
|
10
|
+
get hidden(): boolean;
|
|
11
|
+
get variadic(): boolean;
|
|
12
|
+
get short(): string;
|
|
13
|
+
get long(): string;
|
|
14
|
+
get preset(): unknown;
|
|
15
|
+
get default(): any;
|
|
16
|
+
get choices(): string[];
|
|
17
|
+
get env(): string;
|
|
18
|
+
get flags(): string;
|
|
19
|
+
get name(): string;
|
|
20
|
+
get attributeName(): string;
|
|
21
|
+
get defaultValueDescription(): string;
|
|
22
|
+
get hasArgument(): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=OptionReader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionReader.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,qBAAa,YAAY;IACX,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;gBAArB,MAAM,EAAE,aAAa;IAEpD,IAAI,CAAC,wGAEJ;IACD,IAAI,MAAM,wGAET;IACD,IAAI,WAAW,WAEd;IACD,IAAI,QAAQ,YAEX;IACD,IAAI,SAAS,YAEZ;IACD,IAAI,MAAM,YAET;IACD,IAAI,QAAQ,YAEX;IACD,IAAI,KAAK,WAER;IACD,IAAI,IAAI,WAEP;IACD,IAAI,MAAM,YAET;IACD,IAAI,OAAO,QAEV;IACD,IAAI,OAAO,aAEV;IACD,IAAI,GAAG,WAEN;IACD,IAAI,KAAK,WAER;IACD,IAAI,IAAI,WAEP;IACD,IAAI,aAAa,WAEhB;IACD,IAAI,uBAAuB,WAE1B;IACD,IAAI,WAAW,YAEd;CACF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OptionReader = void 0;
|
|
4
|
+
const OptionHelpers_1 = require("./OptionHelpers");
|
|
5
|
+
class OptionReader {
|
|
6
|
+
parent;
|
|
7
|
+
constructor(parent) {
|
|
8
|
+
this.parent = parent;
|
|
9
|
+
}
|
|
10
|
+
get $() {
|
|
11
|
+
return this.parent.$;
|
|
12
|
+
}
|
|
13
|
+
get option() {
|
|
14
|
+
return this.parent.$;
|
|
15
|
+
}
|
|
16
|
+
get description() {
|
|
17
|
+
return this.$.description;
|
|
18
|
+
}
|
|
19
|
+
get optional() {
|
|
20
|
+
return this.$.optional;
|
|
21
|
+
}
|
|
22
|
+
get mandatory() {
|
|
23
|
+
return this.$.mandatory;
|
|
24
|
+
}
|
|
25
|
+
get hidden() {
|
|
26
|
+
return this.$.hidden;
|
|
27
|
+
}
|
|
28
|
+
get variadic() {
|
|
29
|
+
return this.$.variadic;
|
|
30
|
+
}
|
|
31
|
+
get short() {
|
|
32
|
+
return this.$.short;
|
|
33
|
+
}
|
|
34
|
+
get long() {
|
|
35
|
+
return this.$.long;
|
|
36
|
+
}
|
|
37
|
+
get preset() {
|
|
38
|
+
return this.$.presetArg;
|
|
39
|
+
}
|
|
40
|
+
get default() {
|
|
41
|
+
return this.$.defaultValue;
|
|
42
|
+
}
|
|
43
|
+
get choices() {
|
|
44
|
+
return this.$.argChoices;
|
|
45
|
+
}
|
|
46
|
+
get env() {
|
|
47
|
+
return this.$.envVar;
|
|
48
|
+
}
|
|
49
|
+
get flags() {
|
|
50
|
+
return this.$.flags;
|
|
51
|
+
}
|
|
52
|
+
get name() {
|
|
53
|
+
return this.$.name();
|
|
54
|
+
}
|
|
55
|
+
get attributeName() {
|
|
56
|
+
return this.$.attributeName();
|
|
57
|
+
}
|
|
58
|
+
get defaultValueDescription() {
|
|
59
|
+
return this.$.defaultValueDescription;
|
|
60
|
+
}
|
|
61
|
+
get hasArgument() {
|
|
62
|
+
return OptionHelpers_1.OptionHelpers.hasArgument(this.parent.$);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.OptionReader = OptionReader;
|
|
66
|
+
//# sourceMappingURL=OptionReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionReader.js","sourceRoot":"","sources":["../../../../../packages/cli/src/opt/OptionReader.ts"],"names":[],"mappings":";;;AACA,mDAA+C;AAE/C,MAAa,YAAY;IACQ;IAA/B,YAA+B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAExD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAA;IAC3B,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IACxB,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACzB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACtB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IACxB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACpB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACzB,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IAC5B,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1B,CAAC;IACD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACtB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC/B,CAAC;IACD,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAA;IACvC,CAAC;IACD,IAAI,WAAW;QACb,OAAO,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAzDD,oCAyDC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JsonValue } from '@bemoje/types';
|
|
2
|
+
import { TStringParser } from '@bemoje/types';
|
|
3
|
+
import { TValidator } from '@bemoje/types';
|
|
4
|
+
export interface IConfig<Val extends JsonValue> {
|
|
5
|
+
/**
|
|
6
|
+
* The default value of the property.
|
|
7
|
+
*/
|
|
8
|
+
defaultValue: Val;
|
|
9
|
+
/**
|
|
10
|
+
* The description of the property.
|
|
11
|
+
*/
|
|
12
|
+
description: string;
|
|
13
|
+
/**
|
|
14
|
+
* A function that parses a string to the desired type.
|
|
15
|
+
*/
|
|
16
|
+
parse?: TStringParser<Val>;
|
|
17
|
+
/**
|
|
18
|
+
* A function that validates the value.
|
|
19
|
+
*/
|
|
20
|
+
validate?: TValidator<Val>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=IConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IConfig.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/types/IConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,WAAW,OAAO,CAAC,GAAG,SAAS,SAAS;IAC5C;;OAEG;IACH,YAAY,EAAE,GAAG,CAAA;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IConfig.js","sourceRoot":"","sources":["../../../../../packages/cli/src/types/IConfig.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Any } from '@bemoje/types';
|
|
2
|
+
import { OptionValues } from '@commander-js/extra-typings';
|
|
3
|
+
export interface IPreset {
|
|
4
|
+
description: string;
|
|
5
|
+
presets: string[];
|
|
6
|
+
args: Any[];
|
|
7
|
+
options: OptionValues;
|
|
8
|
+
}
|
|
9
|
+
export interface IPresetPartial {
|
|
10
|
+
description: string;
|
|
11
|
+
presets?: string[];
|
|
12
|
+
args?: Any[];
|
|
13
|
+
options?: OptionValues;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=IPreset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IPreset.d.ts","sourceRoot":"","sources":["../../../../../packages/cli/src/types/IPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,OAAO,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IPreset.js","sourceRoot":"","sources":["../../../../../packages/cli/src/types/IPreset.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
package/cjs/lib/autostudy.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autostudy.d.ts","sourceRoot":"","sources":["../../../../../packages/autostudy/src/lib/autostudy.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,qGA+BpB,CAAA"}
|
package/cjs/lib/autostudy.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.autostudy = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
6
|
-
const cli_1 = require("@bemoje/cli");
|
|
7
|
-
const getArticleConfigTemplate_1 = require("./templates/getArticleConfigTemplate");
|
|
8
|
-
const getBookConfigTemplate_1 = require("./templates/getBookConfigTemplate");
|
|
9
|
-
const yaml_1 = require("yaml");
|
|
10
|
-
const study_1 = require("./core/study");
|
|
11
|
-
exports.autostudy = (0, cli_1.CLI)('autostudy', (c) => {
|
|
12
|
-
c.version('0.0.2');
|
|
13
|
-
c.description(`Use ChatGPT to study a book or article.`);
|
|
14
|
-
c.argument('filepath', 'JSON or YAML configuration filepath.');
|
|
15
|
-
c.option('-t, --template [type]', 'Instead of reading at filepath, write a template/example config file to it.', (c) => {
|
|
16
|
-
c.choices(['book', 'article']);
|
|
17
|
-
});
|
|
18
|
-
c.option('-a, --apiKey <key>', 'OpenAI API key');
|
|
19
|
-
c.action(async (filepath, opts) => {
|
|
20
|
-
if (opts.template) {
|
|
21
|
-
const config = opts.template === 'book' ? (0, getBookConfigTemplate_1.getBookConfigTemplate)() : (0, getArticleConfigTemplate_1.getArticleConfigTemplate)();
|
|
22
|
-
const string = filepath.endsWith('json') ? JSON.stringify(config, null, 2) : (0, yaml_1.stringify)(config);
|
|
23
|
-
await fs_extra_1.default.writeFile(filepath, string);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const config = (filepath.endsWith('json') ? await fs_extra_1.default.readJSON(filepath) : (0, yaml_1.parse)(await fs_extra_1.default.readFile(filepath, 'utf8')));
|
|
27
|
-
if (opts.apiKey)
|
|
28
|
-
config.apiKey = opts.apiKey;
|
|
29
|
-
await (0, study_1.study)(config);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=autostudy.js.map
|
package/cjs/lib/autostudy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autostudy.js","sourceRoot":"","sources":["../../../../../packages/autostudy/src/lib/autostudy.ts"],"names":[],"mappings":";;;;AAAA,gEAAyB;AACzB,qCAAiC;AACjC,mFAA+E;AAC/E,6EAAyE;AACzE,+BAAqE;AACrE,wCAAoC;AAGvB,QAAA,SAAS,GAAG,IAAA,SAAG,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAA;IAExD,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;IAE9D,CAAC,CAAC,MAAM,CACN,uBAAuB,EACvB,6EAA6E,EAC7E,CAAC,CAAC,EAAE,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAChC,CAAC,CACF,CAAA;IAED,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;IAEhD,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAwD,EAAE,EAAE;QAC5F,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,6CAAqB,GAAE,CAAC,CAAC,CAAC,IAAA,mDAAwB,GAAE,CAAA;YAC9F,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAa,EAAC,MAAM,CAAC,CAAA;YAClG,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,MAAM,GAAG,CACb,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,YAAS,EAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CACzF,CAAA;YAEjB,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAE5C,MAAM,IAAA,aAAK,EAAC,MAAM,CAAC,CAAA;SACpB;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertValidOptions.d.ts","sourceRoot":"","sources":["../../../../../../packages/autostudy/src/lib/core/assertValidOptions.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,QA2BpD"}
|