@git.zone/tsdoc 1.3.12 → 1.4.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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/tsdoc',
|
|
6
|
-
version: '1.
|
|
6
|
+
version: '1.4.0',
|
|
7
7
|
description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLG1IQUFtSDtDQUNqSSxDQUFBIn0=
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
|
+
import * as paths from '../paths.js';
|
|
2
3
|
import { ProjectContext } from './projectcontext.js';
|
|
4
|
+
import { logger } from '../logging.js';
|
|
3
5
|
export class Readme {
|
|
4
6
|
constructor(aiDocsRef, projectDirArg) {
|
|
5
7
|
this.aiDocsRef = aiDocsRef;
|
|
@@ -63,7 +65,62 @@ The Readme should follow the following template:
|
|
|
63
65
|
const readme = (await projectContext.gatherFiles()).smartfilesReadme;
|
|
64
66
|
readme.contents = Buffer.from(finalReadmeString);
|
|
65
67
|
await readme.write();
|
|
68
|
+
// lets care about monorepo aspects
|
|
69
|
+
const tsPublishInstance = new plugins.tspublish.TsPublish();
|
|
70
|
+
const subModules = tsPublishInstance.getModuleSubDirs(paths.cwd);
|
|
71
|
+
logger.log('info', `Found ${Object.keys(subModules).length} sub modules`);
|
|
72
|
+
for (const subModule of Object.keys(subModules)) {
|
|
73
|
+
logger.log('info', `Building readme for ${subModule}`);
|
|
74
|
+
const subModuleContextString = await projectContext.update();
|
|
75
|
+
let result = await this.aiDocsRef.openaiInstance.chat({
|
|
76
|
+
systemMessage: `
|
|
77
|
+
You create markdown readmes for npm projects. You only output the markdown readme.
|
|
78
|
+
|
|
79
|
+
IMPORTANT: YOU ARE NOW CREATING THE README FOR THE FOLLOWING SUB MODULE: ${subModule} !!!!!!!!!!!
|
|
80
|
+
The Sub Module will be published with the following data:
|
|
81
|
+
${JSON.stringify(plugins.smartfile.fs.toStringSync(plugins.path.join(paths.cwd, subModule, 'tspublish.json')), null, 2)}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
The Readme should follow the following template:
|
|
85
|
+
|
|
86
|
+
# Project Name
|
|
87
|
+
[
|
|
88
|
+
The name is the module name of package.json
|
|
89
|
+
The description is in the description field of package.json
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
## Install
|
|
93
|
+
[
|
|
94
|
+
Write a short text on how to install the project
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
## Usage
|
|
98
|
+
[
|
|
99
|
+
Give code examples here.
|
|
100
|
+
Construct sensible scenarios for the user.
|
|
101
|
+
Make sure to show a complete set of features of the module.
|
|
102
|
+
Don't omit use cases.
|
|
103
|
+
It does not matter how much time you need.
|
|
104
|
+
ALWAYS USE ESM SYNTAX AND TYPESCRIPT.
|
|
105
|
+
DON'T CHICKEN OUT. Write at least 4000 words. More if necessary.
|
|
106
|
+
If there is already a readme, take the Usage section as base. Remove outdated content, and expand and improve upon the valid parts.
|
|
107
|
+
Super important: Check for completenes.
|
|
108
|
+
Don't include any licensing information. This will be added in a later step.
|
|
109
|
+
Avoid "in conclusions".
|
|
110
|
+
|
|
111
|
+
Good to know:
|
|
112
|
+
* npmextra.json contains overall module information.
|
|
113
|
+
* readme.hints.md provides valuable hints about module ideas.
|
|
114
|
+
]
|
|
115
|
+
`,
|
|
116
|
+
messageHistory: [],
|
|
117
|
+
userMessage: subModuleContextString,
|
|
118
|
+
});
|
|
119
|
+
const subModuleReadmeString = result.message + '\n' + legalInfo;
|
|
120
|
+
await plugins.smartfile.memory.toFs(subModuleReadmeString, plugins.path.join(paths.cwd, subModule, 'readme.md'));
|
|
121
|
+
logger.log('success', `Built readme for ${subModule}`);
|
|
122
|
+
}
|
|
66
123
|
return result.message;
|
|
67
124
|
}
|
|
68
125
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvYWlkb2NzX2NsYXNzZXMvcmVhZG1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE1BQU0sT0FBTyxNQUFNO0lBS2pCLFlBQVksU0FBZ0IsRUFBRSxhQUFxQjtRQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFM0IsK0NBQStDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxNQUFNLGFBQWEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVwRCxxREFBcUQ7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDN0IsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FDaEYsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7WUFDdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNy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
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import * as path from 'path';
|
|
3
2
|
export { path };
|
|
4
3
|
import * as npmextra from '@push.rocks/npmextra';
|
|
@@ -15,5 +14,7 @@ import * as smartpath from '@push.rocks/smartpath';
|
|
|
15
14
|
import * as smartshell from '@push.rocks/smartshell';
|
|
16
15
|
import * as smarttime from '@push.rocks/smarttime';
|
|
17
16
|
export { npmextra, qenv, smartai, smartcli, smartdelay, smartfile, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
17
|
+
import * as tspublish from '@git.zone/tspublish';
|
|
18
|
+
export { tspublish };
|
|
18
19
|
import * as typedoc from 'typedoc';
|
|
19
20
|
export { typedoc };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -16,7 +16,10 @@ import * as smartpath from '@push.rocks/smartpath';
|
|
|
16
16
|
import * as smartshell from '@push.rocks/smartshell';
|
|
17
17
|
import * as smarttime from '@push.rocks/smarttime';
|
|
18
18
|
export { npmextra, qenv, smartai, smartcli, smartdelay, smartfile, smartgit, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell, smarttime, };
|
|
19
|
+
// @git.zone scope
|
|
20
|
+
import * as tspublish from '@git.zone/tspublish';
|
|
21
|
+
export { tspublish };
|
|
19
22
|
// third party scope
|
|
20
23
|
import * as typedoc from 'typedoc';
|
|
21
24
|
export { typedoc };
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssYUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLHdCQUF3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEdBQ1YsQ0FBQztBQUVGLGtCQUFrQjtBQUNsQixPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUVyQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFFbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/tsdoc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.",
|
|
6
6
|
"type": "module",
|
|
@@ -17,9 +17,10 @@
|
|
|
17
17
|
"@git.zone/tsrun": "^1.2.46",
|
|
18
18
|
"@git.zone/tstest": "^1.0.90",
|
|
19
19
|
"@push.rocks/tapbundle": "^5.0.23",
|
|
20
|
-
"@types/node": "^
|
|
20
|
+
"@types/node": "^22.8.1"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
+
"@git.zone/tspublish": "^1.5.5",
|
|
23
24
|
"@push.rocks/early": "^4.0.3",
|
|
24
25
|
"@push.rocks/npmextra": "^5.0.23",
|
|
25
26
|
"@push.rocks/qenv": "^6.0.5",
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { AiDoc } from '../classes.aidoc.js';
|
|
2
2
|
import * as plugins from '../plugins.js';
|
|
3
|
+
import * as paths from '../paths.js';
|
|
3
4
|
import { ProjectContext } from './projectcontext.js';
|
|
5
|
+
import { logger } from '../logging.js';
|
|
4
6
|
|
|
5
7
|
export class Readme {
|
|
6
8
|
// INSTANCE
|
|
@@ -21,7 +23,7 @@ export class Readme {
|
|
|
21
23
|
|
|
22
24
|
// lets first check legal before introducung any cost
|
|
23
25
|
const npmExtraJson = JSON.parse(
|
|
24
|
-
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString()
|
|
26
|
+
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString()
|
|
25
27
|
);
|
|
26
28
|
const legalInfo = npmExtraJson?.tsdoc?.legal;
|
|
27
29
|
if (!legalInfo) {
|
|
@@ -79,6 +81,62 @@ The Readme should follow the following template:
|
|
|
79
81
|
readme.contents = Buffer.from(finalReadmeString);
|
|
80
82
|
await readme.write();
|
|
81
83
|
|
|
84
|
+
// lets care about monorepo aspects
|
|
85
|
+
const tsPublishInstance = new plugins.tspublish.TsPublish();
|
|
86
|
+
const subModules = tsPublishInstance.getModuleSubDirs(paths.cwd);
|
|
87
|
+
logger.log('info', `Found ${Object.keys(subModules).length} sub modules`);
|
|
88
|
+
for (const subModule of Object.keys(subModules)) {
|
|
89
|
+
logger.log('info', `Building readme for ${subModule}`);
|
|
90
|
+
const subModuleContextString = await projectContext.update();
|
|
91
|
+
let result = await this.aiDocsRef.openaiInstance.chat({
|
|
92
|
+
systemMessage: `
|
|
93
|
+
You create markdown readmes for npm projects. You only output the markdown readme.
|
|
94
|
+
|
|
95
|
+
IMPORTANT: YOU ARE NOW CREATING THE README FOR THE FOLLOWING SUB MODULE: ${subModule} !!!!!!!!!!!
|
|
96
|
+
The Sub Module will be published with the following data:
|
|
97
|
+
${JSON.stringify(plugins.smartfile.fs.toStringSync(plugins.path.join(paths.cwd, subModule, 'tspublish.json')), null, 2)}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
The Readme should follow the following template:
|
|
101
|
+
|
|
102
|
+
# Project Name
|
|
103
|
+
[
|
|
104
|
+
The name is the module name of package.json
|
|
105
|
+
The description is in the description field of package.json
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
## Install
|
|
109
|
+
[
|
|
110
|
+
Write a short text on how to install the project
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
## Usage
|
|
114
|
+
[
|
|
115
|
+
Give code examples here.
|
|
116
|
+
Construct sensible scenarios for the user.
|
|
117
|
+
Make sure to show a complete set of features of the module.
|
|
118
|
+
Don't omit use cases.
|
|
119
|
+
It does not matter how much time you need.
|
|
120
|
+
ALWAYS USE ESM SYNTAX AND TYPESCRIPT.
|
|
121
|
+
DON'T CHICKEN OUT. Write at least 4000 words. More if necessary.
|
|
122
|
+
If there is already a readme, take the Usage section as base. Remove outdated content, and expand and improve upon the valid parts.
|
|
123
|
+
Super important: Check for completenes.
|
|
124
|
+
Don't include any licensing information. This will be added in a later step.
|
|
125
|
+
Avoid "in conclusions".
|
|
126
|
+
|
|
127
|
+
Good to know:
|
|
128
|
+
* npmextra.json contains overall module information.
|
|
129
|
+
* readme.hints.md provides valuable hints about module ideas.
|
|
130
|
+
]
|
|
131
|
+
`,
|
|
132
|
+
messageHistory: [],
|
|
133
|
+
userMessage: subModuleContextString,
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
const subModuleReadmeString = result.message + '\n' + legalInfo;
|
|
137
|
+
await plugins.smartfile.memory.toFs(subModuleReadmeString, plugins.path.join(paths.cwd, subModule, 'readme.md'));
|
|
138
|
+
logger.log('success', `Built readme for ${subModule}`);
|
|
139
|
+
}
|
|
82
140
|
return result.message;
|
|
83
141
|
}
|
|
84
142
|
}
|