@git.zone/tsdoc 1.1.16

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.
Files changed (52) hide show
  1. package/assets/.gitkeep +0 -0
  2. package/cli.js +4 -0
  3. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  4. package/dist_ts/00_commitinfo_data.js +9 -0
  5. package/dist_ts/aidocs_classes/description.d.ts +7 -0
  6. package/dist_ts/aidocs_classes/description.js +49 -0
  7. package/dist_ts/aidocs_classes/index.d.ts +3 -0
  8. package/dist_ts/aidocs_classes/index.js +4 -0
  9. package/dist_ts/aidocs_classes/projectcontext.d.ts +16 -0
  10. package/dist_ts/aidocs_classes/projectcontext.js +50 -0
  11. package/dist_ts/aidocs_classes/readme.d.ts +7 -0
  12. package/dist_ts/aidocs_classes/readme.js +63 -0
  13. package/dist_ts/classes.aidoc.d.ts +14 -0
  14. package/dist_ts/classes.aidoc.js +65 -0
  15. package/dist_ts/classes.typedoc.d.ts +10 -0
  16. package/dist_ts/classes.typedoc.js +49 -0
  17. package/dist_ts/cli.d.ts +1 -0
  18. package/dist_ts/cli.js +36 -0
  19. package/dist_ts/index.d.ts +2 -0
  20. package/dist_ts/index.js +11 -0
  21. package/dist_ts/logging.d.ts +2 -0
  22. package/dist_ts/logging.js +14 -0
  23. package/dist_ts/paths.d.ts +8 -0
  24. package/dist_ts/paths.js +12 -0
  25. package/dist_ts/plugins.d.ts +17 -0
  26. package/dist_ts/plugins.js +20 -0
  27. package/dist_ts/tsdoc.classes.typedoc.d.ts +10 -0
  28. package/dist_ts/tsdoc.classes.typedoc.js +48 -0
  29. package/dist_ts/tsdoc.cli.d.ts +1 -0
  30. package/dist_ts/tsdoc.cli.js +32 -0
  31. package/dist_ts/tsdoc.logging.d.ts +2 -0
  32. package/dist_ts/tsdoc.logging.js +14 -0
  33. package/dist_ts/tsdoc.paths.d.ts +8 -0
  34. package/dist_ts/tsdoc.paths.js +12 -0
  35. package/dist_ts/tsdoc.plugins.d.ts +11 -0
  36. package/dist_ts/tsdoc.plugins.js +15 -0
  37. package/license +19 -0
  38. package/npmextra.json +34 -0
  39. package/package.json +68 -0
  40. package/readme.md +101 -0
  41. package/ts/00_commitinfo_data.ts +8 -0
  42. package/ts/aidocs_classes/description.ts +73 -0
  43. package/ts/aidocs_classes/index.ts +3 -0
  44. package/ts/aidocs_classes/projectcontext.ts +73 -0
  45. package/ts/aidocs_classes/readme.ts +84 -0
  46. package/ts/classes.aidoc.ts +80 -0
  47. package/ts/classes.typedoc.ts +58 -0
  48. package/ts/cli.ts +42 -0
  49. package/ts/index.ts +12 -0
  50. package/ts/logging.ts +15 -0
  51. package/ts/paths.ts +13 -0
  52. package/ts/plugins.ts +24 -0
File without changes
package/cli.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ process.env.CLI_CALL = 'true';
3
+ const cliTool = await import('./dist_ts/index.js');
4
+ cliTool.runCli();
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export declare const commitinfo: {
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@git.zone/tsdoc',
6
+ version: '1.1.16',
7
+ description: 'An advanced TypeScript documentation tool leveraging AI for enhanced insights and automated documentation generation.'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVIQUF1SDtDQUNySSxDQUFBIn0=
@@ -0,0 +1,7 @@
1
+ import type { AiDoc } from '../classes.aidoc.js';
2
+ export declare class Description {
3
+ private aiDocsRef;
4
+ private projectDir;
5
+ constructor(aiDocsRef: AiDoc, projectDirArg: string);
6
+ build(): Promise<string>;
7
+ }
@@ -0,0 +1,49 @@
1
+ import * as plugins from '../plugins.js';
2
+ import { ProjectContext } from './projectcontext.js';
3
+ export class Description {
4
+ constructor(aiDocsRef, projectDirArg) {
5
+ this.aiDocsRef = aiDocsRef;
6
+ this.projectDir = projectDirArg;
7
+ }
8
+ async build() {
9
+ // we can now assemble the directory structure.
10
+ const projectContext = new ProjectContext(this.projectDir);
11
+ const contextString = await projectContext.update();
12
+ let result = await this.aiDocsRef.openaiInstance.chat(`
13
+ You create a json adhering the following interface:
14
+ {
15
+ description: string; // a sensible short, one sentence description of the project
16
+ keywords: string[]; // an array of tags that describe the project
17
+ }
18
+
19
+ The description should be based on what you understand from the project's files.
20
+ The keywords should be based on use cases you see from the files.
21
+ Don't be cheap about the way you think.
22
+
23
+ Important: Answer only in valid JSON.
24
+ You answer should be parseable with JSON.parse() without modifying anything.
25
+
26
+ Don't wrap the JSON in three ticks json!!!
27
+ `, contextString, []);
28
+ console.log(result.message.content);
29
+ const resultObject = JSON.parse(result.message.content.replace('```json', '').replace('```', ''));
30
+ const npmextraJson = (await projectContext.gatherFiles()).smartfilesNpmextraJSON;
31
+ const npmextraJsonContent = JSON.parse(npmextraJson.contents.toString());
32
+ npmextraJsonContent.gitzone.module.description = resultObject.description;
33
+ npmextraJsonContent.gitzone.module.keywords = resultObject.keywords;
34
+ npmextraJson.contents = Buffer.from(JSON.stringify(npmextraJsonContent, null, 2));
35
+ await npmextraJson.write();
36
+ // do the same with packageJson
37
+ const packageJson = (await projectContext.gatherFiles()).smartfilePackageJSON;
38
+ const packageJsonContent = JSON.parse(packageJson.contents.toString());
39
+ packageJsonContent.description = resultObject.description;
40
+ packageJsonContent.keywords = resultObject.keywords;
41
+ packageJson.contents = Buffer.from(JSON.stringify(packageJsonContent, null, 2));
42
+ await packageJson.write();
43
+ console.log(`\n======================\n`);
44
+ console.log(JSON.stringify(resultObject, null, 2));
45
+ console.log(`\n======================\n`);
46
+ return result.message.content;
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9haWRvY3NfY2xhc3Nlcy9kZXNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPckQsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxTQUFnQixFQUFFLGFBQXFCO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQiwrQ0FBK0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELE1BQU0sYUFBYSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXBELElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNuRDs7Ozs7Ozs7Ozs7Ozs7O09BZUMsRUFDRCxhQUFhLEVBQ2IsRUFBRSxDQUNILENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQTBCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFekgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO1FBQ2pGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFekUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUMxRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBRXBFLFlBQVksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTNCLCtCQUErQjtRQUMvQixNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDOUUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RSxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUMxRCxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUcxQixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,3 @@
1
+ export * from './description.js';
2
+ export * from './projectcontext.js';
3
+ export * from './readme.js';
@@ -0,0 +1,4 @@
1
+ export * from './description.js';
2
+ export * from './projectcontext.js';
3
+ export * from './readme.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9haWRvY3NfY2xhc3Nlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUMifQ==
@@ -0,0 +1,16 @@
1
+ import * as plugins from '../plugins.js';
2
+ export declare class ProjectContext {
3
+ static fromDir(dirArg: string): Promise<void>;
4
+ projectDir: string;
5
+ constructor(projectDirArg: string);
6
+ gatherFiles(): Promise<{
7
+ smartfilePackageJSON: plugins.smartfile.SmartFile;
8
+ smartfilesReadme: plugins.smartfile.SmartFile;
9
+ smartfilesNpmextraJSON: plugins.smartfile.SmartFile;
10
+ smartfilesMod: plugins.smartfile.SmartFile[];
11
+ smartfilesTest: plugins.smartfile.SmartFile[];
12
+ }>;
13
+ convertFilesToContext(filesArg: plugins.smartfile.SmartFile[]): Promise<string>;
14
+ private buildContext;
15
+ update(): Promise<string>;
16
+ }
@@ -0,0 +1,50 @@
1
+ import * as plugins from '../plugins.js';
2
+ export class ProjectContext {
3
+ static async fromDir(dirArg) { }
4
+ constructor(projectDirArg) {
5
+ this.projectDir = projectDirArg;
6
+ }
7
+ async gatherFiles() {
8
+ const smartfilePackageJSON = await plugins.smartfile.SmartFile.fromFilePath(plugins.path.join(this.projectDir, 'package.json'), this.projectDir);
9
+ const smartfilesReadme = await plugins.smartfile.SmartFile.fromFilePath(plugins.path.join(this.projectDir, 'readme.md'), this.projectDir);
10
+ const smartfilesNpmextraJSON = await plugins.smartfile.SmartFile.fromFilePath(plugins.path.join(this.projectDir, 'npmextra.json'), this.projectDir);
11
+ const smartfilesMod = await plugins.smartfile.fs.fileTreeToObject(this.projectDir, 'ts/**/*.ts');
12
+ const smartfilesTest = await plugins.smartfile.fs.fileTreeToObject(this.projectDir, 'test/**/*.ts');
13
+ return {
14
+ smartfilePackageJSON,
15
+ smartfilesReadme,
16
+ smartfilesNpmextraJSON,
17
+ smartfilesMod,
18
+ smartfilesTest,
19
+ };
20
+ }
21
+ async convertFilesToContext(filesArg) {
22
+ return filesArg
23
+ .map((smartfile) => {
24
+ return `
25
+ ====== START OF FILE ${smartfile.relative} ======
26
+
27
+ ${smartfile.contents.toString()}
28
+
29
+ ====== END OF FILE ${smartfile.relative} ======
30
+ `;
31
+ })
32
+ .join('\n');
33
+ }
34
+ async buildContext(dirArg) {
35
+ const files = await this.gatherFiles();
36
+ let context = await this.convertFilesToContext([
37
+ files.smartfilePackageJSON,
38
+ files.smartfilesReadme,
39
+ files.smartfilesNpmextraJSON,
40
+ ...files.smartfilesMod,
41
+ ...files.smartfilesTest,
42
+ ]);
43
+ return context;
44
+ }
45
+ async update() {
46
+ const result = await this.buildContext(this.projectDir);
47
+ return result;
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9haWRvY3NfY2xhc3Nlcy9wcm9qZWN0Y29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLE9BQU8sY0FBYztJQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFjLElBQUcsQ0FBQztJQUs5QyxZQUFZLGFBQXFCO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLG9CQUFvQixHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUN6RSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxFQUNsRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQzNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQ25ELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUMvRCxJQUFJLENBQUMsVUFBVSxFQUNmLFlBQVksQ0FDYixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDaEUsSUFBSSxDQUFDLFVBQVUsRUFDZixjQUFjLENBQ2YsQ0FBQztRQUNGLE9BQU87WUFDTCxvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QixhQUFhO1lBQ2IsY0FBYztTQUNmLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQXVDO1FBQ3hFLE9BQU8sUUFBUTthQUNaLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2pCLE9BQU87dUJBQ1EsU0FBUyxDQUFDLFFBQVE7O0VBRXZDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFOztxQkFFVixTQUFTLENBQUMsUUFBUTtTQUM5QixDQUFDO1FBQ0osQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDN0MsS0FBSyxDQUFDLG9CQUFvQjtZQUMxQixLQUFLLENBQUMsZ0JBQWdCO1lBQ3RCLEtBQUssQ0FBQyxzQkFBc0I7WUFDNUIsR0FBRyxLQUFLLENBQUMsYUFBYTtZQUN0QixHQUFHLEtBQUssQ0FBQyxjQUFjO1NBQ3hCLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiJ9
@@ -0,0 +1,7 @@
1
+ import type { AiDoc } from '../classes.aidoc.js';
2
+ export declare class Readme {
3
+ private aiDocsRef;
4
+ private projectDir;
5
+ constructor(aiDocsRef: AiDoc, projectDirArg: string);
6
+ build(): Promise<string>;
7
+ }
@@ -0,0 +1,63 @@
1
+ import * as plugins from '../plugins.js';
2
+ import { ProjectContext } from './projectcontext.js';
3
+ export class Readme {
4
+ constructor(aiDocsRef, projectDirArg) {
5
+ this.aiDocsRef = aiDocsRef;
6
+ this.projectDir = projectDirArg;
7
+ }
8
+ async build() {
9
+ let finalReadmeString = ``;
10
+ // we can now assemble the directory structure.
11
+ const projectContext = new ProjectContext(this.projectDir);
12
+ const contextString = await projectContext.update();
13
+ // lets first check legal before introducung any cost
14
+ const npmExtraJson = JSON.parse(((await projectContext.gatherFiles()).smartfilesNpmextraJSON).contents.toString());
15
+ const legalInfo = npmExtraJson?.tsdoc?.legal;
16
+ if (!legalInfo) {
17
+ const error = new Error(`No legal information found in npmextra.json`);
18
+ console.log(error);
19
+ }
20
+ let result = await this.aiDocsRef.openaiInstance.chat(`
21
+ You create markdown readmes for npm projects. You only output the markdown readme.
22
+
23
+ The Readme should follow the following template:
24
+
25
+ # Project Name
26
+ [
27
+ The name is the module name of package.json
28
+ The description is in the description field of package.json
29
+ ]
30
+
31
+ ## Install
32
+ [
33
+ Write a short text on how to install the project
34
+ ]
35
+
36
+ ## Usage
37
+ [
38
+ Give code examples here.
39
+ Construct sensible scenarios for the user.
40
+ Make sure to show a complete set of features of the module.
41
+ Don't omit use cases.
42
+ It does not matter how much time you need.
43
+ ALWAYS USE ESM SYNTAX AND TYPESCRIPT.
44
+ DON'T CHICKEN OUT. Write at least 4000 words. More if necessary.
45
+ If there is already a readme, take the Usage section as base. Remove outdated content, and expand and improve upon the valid parts.
46
+ Super important: Check for completenes.
47
+ Don't include any licensing information. This will be added in a later step.
48
+ Avoid "in conclusions".
49
+
50
+ npmextra.json has a tsdocs section that provides valuable information about module ideas.
51
+ ]
52
+ `, contextString, []);
53
+ finalReadmeString += result.message.content + '\n' + legalInfo;
54
+ console.log(`\n======================\n`);
55
+ console.log(result.message.content);
56
+ console.log(`\n======================\n`);
57
+ const readme = (await projectContext.gatherFiles()).smartfilesReadme;
58
+ readme.contents = Buffer.from(finalReadmeString);
59
+ await readme.write();
60
+ return result.message.content;
61
+ }
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvYWlkb2NzX2NsYXNzZXMvcmVhZG1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sTUFBTTtJQU1qQixZQUFZLFNBQWdCLEVBQUUsYUFBcUI7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRTNCLCtDQUErQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFcEQscURBQXFEO1FBQ3JELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuSCxNQUFNLFNBQVMsR0FBRyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQ0MsRUFDRCxhQUFhLEVBQ2IsRUFBRSxDQUNILENBQUM7UUFHRixpQkFBaUIsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBSS9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRSxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLENBQUM7Q0FDRiJ9
@@ -0,0 +1,14 @@
1
+ import * as plugins from './plugins.js';
2
+ export declare class AiDoc {
3
+ private openaiToken;
4
+ npmextraKV: plugins.npmextra.KeyValueStore;
5
+ qenvInstance: plugins.qenv.Qenv;
6
+ smartinteractInstance: plugins.smartinteract.SmartInteract;
7
+ openaiInstance: plugins.smartai.OpenAiProvider;
8
+ argvArg: any;
9
+ constructor(argvArg?: any);
10
+ private printSanitizedToken;
11
+ start(): Promise<void>;
12
+ buildReadme(projectDirArg: string): Promise<string>;
13
+ buildDescription(projectDirArg: string): Promise<string>;
14
+ }
@@ -0,0 +1,65 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as aiDocsClasses from './aidocs_classes/index.js';
3
+ export class AiDoc {
4
+ constructor(argvArg) {
5
+ this.argvArg = argvArg;
6
+ }
7
+ printSanitizedToken() {
8
+ // Check if the token length is greater than the sum of startLength and endLength
9
+ let printToken;
10
+ if (this.openaiToken.length > 6) {
11
+ // Extract the beginning and end parts of the token
12
+ const start = this.openaiToken.substring(0, 3);
13
+ const end = this.openaiToken.substring(this.openaiToken.length - 3);
14
+ printToken = `${start}...${end}`;
15
+ }
16
+ else {
17
+ // If the token is not long enough, return it as is
18
+ printToken = this.openaiToken;
19
+ }
20
+ console.log(`OpenAI Token on record: ${printToken}`);
21
+ }
22
+ async start() {
23
+ // lets care about prerequisites
24
+ this.smartinteractInstance = new plugins.smartinteract.SmartInteract();
25
+ this.qenvInstance = new plugins.qenv.Qenv();
26
+ if (!(await this.qenvInstance.getEnvVarOnDemand('OPENAI_TOKEN'))) {
27
+ this.npmextraKV = new plugins.npmextra.KeyValueStore({
28
+ typeArg: 'userHomeDir',
29
+ identityArg: 'tsdoc',
30
+ mandatoryKeys: ['OPENAI_TOKEN'],
31
+ });
32
+ const missingKeys = this.npmextraKV.getMissingMandatoryKeys();
33
+ if (missingKeys.length > 0) {
34
+ // lets try argv
35
+ if (this.argvArg?.OPENAI_TOKEN) {
36
+ this.openaiToken = this.argvArg.OPENAI_TOKEN;
37
+ }
38
+ else {
39
+ // lets try smartinteract
40
+ const answerObject = await this.smartinteractInstance.askQuestion({
41
+ type: 'input',
42
+ message: `Please provide your OpenAI token`,
43
+ name: 'OPENAI_TOKEN',
44
+ default: '',
45
+ });
46
+ this.openaiToken = answerObject.value;
47
+ }
48
+ this.printSanitizedToken();
49
+ // await this.npmextraKV.writeKey('OPENAI_TOKEN', this.openaiToken);
50
+ }
51
+ }
52
+ // lets assume we have an OPENAI_Token now
53
+ this.openaiInstance = new plugins.smartai.OpenAiProvider(this.openaiToken);
54
+ await this.openaiInstance.start();
55
+ }
56
+ async buildReadme(projectDirArg) {
57
+ const readmeInstance = new aiDocsClasses.Readme(this, projectDirArg);
58
+ return await readmeInstance.build();
59
+ }
60
+ async buildDescription(projectDirArg) {
61
+ const descriptionInstance = new aiDocsClasses.Description(this, projectDirArg);
62
+ return await descriptionInstance.build();
63
+ }
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5haWRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuYWlkb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sS0FBSztJQVVoQixZQUFZLE9BQWE7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixpRkFBaUY7UUFDakYsSUFBSSxVQUFrQixDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsbURBQW1EO1lBQ25ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxVQUFVLEdBQUcsR0FBRyxLQUFLLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixtREFBbUQ7WUFDbkQsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLGdDQUFnQztRQUNoQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUNuRCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLGFBQWEsRUFBRSxDQUFDLGNBQWMsQ0FBQzthQUNoQyxDQUFDLENBQUM7WUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDOUQsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQixnQkFBZ0I7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFDL0MsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHlCQUF5QjtvQkFDekIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDO3dCQUNoRSxJQUFJLEVBQUUsT0FBTzt3QkFDYixPQUFPLEVBQUUsa0NBQWtDO3dCQUMzQyxJQUFJLEVBQUUsY0FBYzt3QkFDcEIsT0FBTyxFQUFFLEVBQUU7cUJBQ1osQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDeEMsQ0FBQztnQkFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0Isb0VBQW9FO1lBQ3RFLENBQUM7UUFDSCxDQUFDO1FBRUQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0UsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQXFCO1FBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckUsT0FBTyxNQUFNLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQXFCO1FBQ2pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvRSxPQUFPLE1BQU0sbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGIn0=
@@ -0,0 +1,10 @@
1
+ import * as plugins from './plugins.js';
2
+ export declare class TypeDoc {
3
+ smartshellInstance: plugins.smartshell.Smartshell;
4
+ static isTypeDocDir(dirPathArg: string): Promise<boolean>;
5
+ typedocDirectory: string;
6
+ constructor(dirPathArg: any);
7
+ compile(options?: {
8
+ publicSubdir?: string;
9
+ }): Promise<void>;
10
+ }
@@ -0,0 +1,49 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from './paths.js';
3
+ export class TypeDoc {
4
+ // Static
5
+ static async isTypeDocDir(dirPathArg) {
6
+ return true;
7
+ }
8
+ constructor(dirPathArg) {
9
+ this.smartshellInstance = new plugins.smartshell.Smartshell({
10
+ executor: 'bash',
11
+ pathDirectories: [paths.binDir],
12
+ });
13
+ this.typedocDirectory = dirPathArg;
14
+ }
15
+ async compile(options) {
16
+ const data = {
17
+ "compilerOptions": {
18
+ "experimentalDecorators": true,
19
+ "useDefineForClassFields": false,
20
+ "target": "ES2022",
21
+ "module": "NodeNext",
22
+ "moduleResolution": "NodeNext",
23
+ "esModuleInterop": true,
24
+ "verbatimModuleSyntax": true,
25
+ "skipLibCheck": true,
26
+ },
27
+ include: [],
28
+ };
29
+ let startDirectory = '';
30
+ if (plugins.smartfile.fs.isDirectory(plugins.path.join(paths.cwd, './ts'))) {
31
+ data.include.push(plugins.path.join(paths.cwd, './ts/**/*'));
32
+ startDirectory = 'ts';
33
+ }
34
+ if (plugins.smartfile.fs.isDirectory(plugins.path.join(paths.cwd, './ts_web'))) {
35
+ data.include.push(plugins.path.join(paths.cwd, './ts_web/**/*'));
36
+ if (!startDirectory) {
37
+ startDirectory = 'ts_web';
38
+ }
39
+ }
40
+ await plugins.smartfile.memory.toFs(JSON.stringify(data), paths.tsconfigFile);
41
+ let targetDir = paths.publicDir;
42
+ if (options?.publicSubdir) {
43
+ targetDir = plugins.path.join(targetDir, options.publicSubdir);
44
+ }
45
+ await this.smartshellInstance.exec(`typedoc --tsconfig ${paths.tsconfigFile} --out ${targetDir} ${startDirectory}/index.ts`);
46
+ plugins.smartfile.fs.remove(paths.tsconfigFile);
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50eXBlZG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy50eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxPQUFPO0lBTWxCLFNBQVM7SUFDRixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFrQjtRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFJRCxZQUFZLFVBQVU7UUFaZix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQzVELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGVBQWUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDaEMsQ0FBQyxDQUFDO1FBVUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFtQztRQUN0RCxNQUFNLElBQUksR0FBRztZQUNYLGlCQUFpQixFQUFFO2dCQUNqQix3QkFBd0IsRUFBRSxJQUFJO2dCQUM5Qix5QkFBeUIsRUFBRSxLQUFLO2dCQUNoQyxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGtCQUFrQixFQUFFLFVBQVU7Z0JBQzlCLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLHNCQUFzQixFQUFFLElBQUk7Z0JBQzVCLGNBQWMsRUFBRSxJQUFJO2FBQ3JCO1lBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ0YsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RCxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQixjQUFjLEdBQUcsUUFBUSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUMxQixTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNoQyxzQkFBc0IsS0FBSyxDQUFDLFlBQVksVUFBVSxTQUFTLElBQUksY0FBYyxXQUFXLENBQ3pGLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ export declare const run: () => Promise<void>;
package/dist_ts/cli.js ADDED
@@ -0,0 +1,36 @@
1
+ import * as plugins from './plugins.js';
2
+ import * as paths from './paths.js';
3
+ import { logger } from './logging.js';
4
+ import { TypeDoc } from './classes.typedoc.js';
5
+ import { AiDoc } from './classes.aidoc.js';
6
+ export const run = async () => {
7
+ const tsdocCli = new plugins.smartcli.Smartcli();
8
+ tsdocCli.standardCommand().subscribe(async (argvArg) => {
9
+ logger.log('warn', `Auto detecting environment!`);
10
+ switch (true) {
11
+ case await TypeDoc.isTypeDocDir(paths.cwd):
12
+ logger.log('ok', `Detected TypeDoc compliant directory at ${paths.cwd}`);
13
+ tsdocCli.triggerCommand('typedoc', argvArg);
14
+ break;
15
+ default:
16
+ logger.log('error', `Cannot determine docs format at ${paths.cwd}`);
17
+ }
18
+ });
19
+ tsdocCli.addCommand('typedoc').subscribe(async (argvArg) => {
20
+ const typeDocInstance = new TypeDoc(paths.cwd);
21
+ await typeDocInstance.compile({
22
+ publicSubdir: argvArg.publicSubdir,
23
+ });
24
+ });
25
+ tsdocCli.addCommand('aidocs').subscribe(async (argvArg) => {
26
+ const aidocs = new AiDoc();
27
+ });
28
+ tsdocCli.addCommand('test').subscribe((argvArg) => {
29
+ tsdocCli.triggerCommand('typedoc', argvArg);
30
+ process.on('exit', async () => {
31
+ await plugins.smartfile.fs.remove(paths.publicDir);
32
+ });
33
+ });
34
+ tsdocCli.startParse();
35
+ };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRWpELFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLDJDQUEyQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07WUFDUjtnQkFDRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxtQ0FBbUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3pELE1BQU0sZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxNQUFNLGVBQWUsQ0FBQyxPQUFPLENBQUM7WUFDNUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUE7SUFFRixRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2hELFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export declare const runCli: () => Promise<void>;
2
+ export * from './classes.aidoc.js';
@@ -0,0 +1,11 @@
1
+ import * as early from '@push.rocks/early';
2
+ early.start('tsdoc');
3
+ import * as plugins from './plugins.js';
4
+ import * as cli from './cli.js';
5
+ early.stop();
6
+ export const runCli = async () => {
7
+ await cli.run();
8
+ };
9
+ // exports
10
+ export * from './classes.aidoc.js';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ import * as plugins from './plugins.js';
2
+ export declare const logger: plugins.smartlog.Smartlog;
@@ -0,0 +1,14 @@
1
+ import * as plugins from './plugins.js';
2
+ export const logger = new plugins.smartlog.Smartlog({
3
+ logContext: {
4
+ company: 'Some Company',
5
+ companyunit: 'Some CompanyUnit',
6
+ containerName: 'Some Containername',
7
+ environment: 'local',
8
+ runtime: 'node',
9
+ zone: 'gitzone',
10
+ },
11
+ minimumLogLevel: 'silly',
12
+ });
13
+ logger.addLogDestination(new plugins.smartlogDestinationLocal.DestinationLocal());
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDbEQsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLGNBQWM7UUFDdkIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixhQUFhLEVBQUUsb0JBQW9CO1FBQ25DLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxlQUFlLEVBQUUsT0FBTztDQUN6QixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,8 @@
1
+ export declare const packageDir: string;
2
+ export declare const cwd: string;
3
+ export declare const binDir: string;
4
+ export declare const assetsDir: string;
5
+ export declare const publicDir: string;
6
+ export declare const tsDir: string;
7
+ export declare const tsconfigFile: string;
8
+ export declare const typedocOptionsFile: string;
@@ -0,0 +1,12 @@
1
+ import * as plugins from './plugins.js';
2
+ // dirs
3
+ export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
4
+ export const cwd = process.cwd();
5
+ export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
6
+ export const assetsDir = plugins.path.join(packageDir, './assets');
7
+ export const publicDir = plugins.path.join(cwd, './public');
8
+ export const tsDir = plugins.path.join(cwd, './ts');
9
+ // files
10
+ export const tsconfigFile = plugins.path.join(assetsDir, './tsconfig.json');
11
+ export const typedocOptionsFile = plugins.path.join(assetsDir, './typedoc.json');
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxPQUFPO0FBQ1AsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDcEgsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFcEQsUUFBUTtBQUNSLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import * as path from 'path';
3
+ export { path };
4
+ import * as npmextra from '@push.rocks/npmextra';
5
+ import * as qenv from '@push.rocks/qenv';
6
+ import * as smartai from '@push.rocks/smartai';
7
+ import * as smartcli from '@push.rocks/smartcli';
8
+ import * as smartdelay from '@push.rocks/smartdelay';
9
+ import * as smartfile from '@push.rocks/smartfile';
10
+ import * as smartinteract from '@push.rocks/smartinteract';
11
+ import * as smartlog from '@push.rocks/smartlog';
12
+ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
13
+ import * as smartpath from '@push.rocks/smartpath';
14
+ import * as smartshell from '@push.rocks/smartshell';
15
+ export { npmextra, qenv, smartai, smartcli, smartdelay, smartfile, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell };
16
+ import * as typedoc from 'typedoc';
17
+ export { typedoc };
@@ -0,0 +1,20 @@
1
+ // node native
2
+ import * as path from 'path';
3
+ export { path };
4
+ // pushrocks scope
5
+ import * as npmextra from '@push.rocks/npmextra';
6
+ import * as qenv from '@push.rocks/qenv';
7
+ import * as smartai from '@push.rocks/smartai';
8
+ import * as smartcli from '@push.rocks/smartcli';
9
+ import * as smartdelay from '@push.rocks/smartdelay';
10
+ import * as smartfile from '@push.rocks/smartfile';
11
+ import * as smartinteract from '@push.rocks/smartinteract';
12
+ import * as smartlog from '@push.rocks/smartlog';
13
+ import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local';
14
+ import * as smartpath from '@push.rocks/smartpath';
15
+ import * as smartshell from '@push.rocks/smartshell';
16
+ export { npmextra, qenv, smartai, smartcli, smartdelay, smartfile, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell };
17
+ // third party scope
18
+ import * as typedoc from 'typedoc';
19
+ export { typedoc };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBRTlJLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ import * as plugins from './tsdoc.plugins.js';
2
+ export declare class TypeDoc {
3
+ smartshellInstance: plugins.smartshell.Smartshell;
4
+ static isTypeDocDir(dirPathArg: string): Promise<boolean>;
5
+ typedocDirectory: string;
6
+ constructor(dirPathArg: any);
7
+ compile(options?: {
8
+ publicSubdir?: string;
9
+ }): Promise<void>;
10
+ }
@@ -0,0 +1,48 @@
1
+ import * as plugins from './tsdoc.plugins.js';
2
+ import * as paths from './tsdoc.paths.js';
3
+ export class TypeDoc {
4
+ constructor(dirPathArg) {
5
+ this.smartshellInstance = new plugins.smartshell.Smartshell({
6
+ executor: 'bash',
7
+ pathDirectories: [paths.binDir],
8
+ });
9
+ this.typedocDirectory = dirPathArg;
10
+ }
11
+ // Static
12
+ static async isTypeDocDir(dirPathArg) {
13
+ return true;
14
+ }
15
+ async compile(options) {
16
+ const data = {
17
+ compilerOptions: {
18
+ "experimentalDecorators": true,
19
+ "useDefineForClassFields": false,
20
+ "target": "ES2022",
21
+ "module": "ES2022",
22
+ "moduleResolution": "nodenext",
23
+ "skipLibCheck": true,
24
+ "allowSyntheticDefaultImports": true,
25
+ },
26
+ include: [],
27
+ };
28
+ let startDirectory = '';
29
+ if (plugins.smartfile.fs.isDirectory(plugins.path.join(paths.cwd, './ts'))) {
30
+ data.include.push(plugins.path.join(paths.cwd, './ts/**/*'));
31
+ startDirectory = 'ts';
32
+ }
33
+ if (plugins.smartfile.fs.isDirectory(plugins.path.join(paths.cwd, './ts_web'))) {
34
+ data.include.push(plugins.path.join(paths.cwd, './ts_web/**/*'));
35
+ if (!startDirectory) {
36
+ startDirectory = 'ts_web';
37
+ }
38
+ }
39
+ await plugins.smartfile.memory.toFs(JSON.stringify(data), paths.tsconfigFile);
40
+ let targetDir = paths.publicDir;
41
+ if (options?.publicSubdir) {
42
+ targetDir = plugins.path.join(targetDir, options.publicSubdir);
43
+ }
44
+ await this.smartshellInstance.exec(`typedoc --tsconfig ${paths.tsconfigFile} --out ${targetDir} ${startDirectory}/index.ts`);
45
+ plugins.smartfile.fs.remove(paths.tsconfigFile);
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNkb2MuY2xhc3Nlcy50eXBlZG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHNkb2MuY2xhc3Nlcy50eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sT0FBTztJQWFsQixZQUFZLFVBQVU7UUFaZix1QkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQzVELFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGVBQWUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDaEMsQ0FBQyxDQUFDO1FBVUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBVEQsU0FBUztJQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQVFNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBbUM7UUFDdEQsTUFBTSxJQUFJLEdBQUc7WUFDWCxlQUFlLEVBQUU7Z0JBQ2Ysd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixrQkFBa0IsRUFBRSxVQUFVO2dCQUM5QixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsOEJBQThCLEVBQUUsSUFBSTthQUNyQztZQUNELE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUNGLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7WUFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzdELGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDdkI7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUU7WUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ25CLGNBQWMsR0FBRyxRQUFRLENBQUM7YUFDM0I7U0FDRjtRQUVELE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxPQUFPLEVBQUUsWUFBWSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNoQyxzQkFBc0IsS0FBSyxDQUFDLFlBQVksVUFBVSxTQUFTLElBQUksY0FBYyxXQUFXLENBQ3pGLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ export declare const run: () => Promise<void>;