@rxap/plugin-gpt 19.0.3-dev.1 → 19.0.3-dev.2
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/CHANGELOG.md +4 -0
- package/generators.json +5 -0
- package/package.json +5 -5
- package/src/generators/documentation/system-prompts/class.txt +36 -0
- package/src/generators/documentation/system-prompts/function.txt +39 -1
- package/src/generators/documentation/system-prompts/method.txt +41 -0
- package/src/generators/init/generator.d.ts +4 -0
- package/src/generators/init/generator.js +106 -0
- package/src/generators/init/generator.js.map +1 -0
- package/src/generators/init/schema.d.ts +2 -0
- package/src/generators/init/schema.json +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [19.0.3-dev.2](https://gitlab.com/rxap/packages/compare/@rxap/plugin-gpt@19.0.3-dev.1...@rxap/plugin-gpt@19.0.3-dev.2) (2024-06-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rxap/plugin-gpt
|
|
9
|
+
|
|
6
10
|
## [19.0.3-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/plugin-gpt@19.0.3-dev.0...@rxap/plugin-gpt@19.0.3-dev.1) (2024-06-20)
|
|
7
11
|
|
|
8
12
|
### Bug Fixes
|
package/generators.json
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"factory": "./src/generators/documentation/generator",
|
|
5
5
|
"schema": "./src/generators/documentation/schema.json",
|
|
6
6
|
"description": "documentation generator"
|
|
7
|
+
},
|
|
8
|
+
"init": {
|
|
9
|
+
"factory": "./src/generators/init/generator",
|
|
10
|
+
"schema": "./src/generators/init/schema.json",
|
|
11
|
+
"description": "Initialize the package in the workspace"
|
|
7
12
|
}
|
|
8
13
|
},
|
|
9
14
|
"schematics": {
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.0.3-dev.
|
|
2
|
+
"version": "19.0.3-dev.2",
|
|
3
3
|
"name": "@rxap/plugin-gpt",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@nx/devkit": "19.3.0",
|
|
7
|
-
"@rxap/ts-morph": "^1.4.1-dev.
|
|
8
|
-
"@rxap/workspace-ts-morph": "
|
|
9
|
-
"@rxap/workspace-utilities": "^19.3.0-dev.
|
|
7
|
+
"@rxap/ts-morph": "^1.4.1-dev.1",
|
|
8
|
+
"@rxap/workspace-ts-morph": "^19.1.1-dev.2",
|
|
9
|
+
"@rxap/workspace-utilities": "^19.3.0-dev.1",
|
|
10
10
|
"gpt-3-encoder": "^1.1.4",
|
|
11
11
|
"openai": "^4.52.0",
|
|
12
12
|
"ts-morph": "18.0.0",
|
|
@@ -43,6 +43,6 @@
|
|
|
43
43
|
},
|
|
44
44
|
"schematics": "./generators.json",
|
|
45
45
|
"type": "commonjs",
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "bbecc3ca89ac11dedf7969bed08705f22dfaa186",
|
|
47
47
|
"main": "./src/index.js"
|
|
48
48
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
You are an assistant designed to generate comprehensive JSDoc comments for TypeScript classes. Your task is to take the full implementation of a TypeScript class and produce a detailed JSDoc comment for the class itself in Markdown format. The generated comment should provide a complete understanding of the class's purpose, usage, and any important details about its properties and methods. The comment should enhance readability and comprehension for anyone reading it. Ensure that the output is strictly the content of the comment without any extra formatting characters such as leading asterisks.
|
|
2
|
+
|
|
3
|
+
Here is what you need to do:
|
|
4
|
+
|
|
5
|
+
1. Analyze the given TypeScript class to understand its structure and functionality.
|
|
6
|
+
2. Create a JSDoc comment for the class that includes:
|
|
7
|
+
- A comprehensive description of the class's purpose and behavior.
|
|
8
|
+
- Examples of how to use the class (`@example`). Ensure the example code is correctly indented.
|
|
9
|
+
- A concise summary of what the class does (`@summary <description>`).
|
|
10
|
+
3. Ensure the comment is written in clear and concise English.
|
|
11
|
+
4. Format the comment in Markdown for improved readability.
|
|
12
|
+
5. Output only the content of the comment.
|
|
13
|
+
|
|
14
|
+
**Example Output:**
|
|
15
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
16
|
+
This class provides basic arithmetic operations such as addition, subtraction, multiplication, and division. It ensures
|
|
17
|
+
that inputs are valid numbers and throws errors for invalid operations. This class can be used in various applications
|
|
18
|
+
where basic arithmetic operations are needed.
|
|
19
|
+
|
|
20
|
+
@example
|
|
21
|
+
```typescript
|
|
22
|
+
const calculator = new Calculator();
|
|
23
|
+
calculator.add(2, 3);
|
|
24
|
+
console.log(calculator.result); // Outputs: 5
|
|
25
|
+
calculator.subtract(2);
|
|
26
|
+
console.log(calculator.result); // Outputs: 3
|
|
27
|
+
calculator.multiply(4);
|
|
28
|
+
console.log(calculator.result); // Outputs: 12
|
|
29
|
+
calculator.divide(3);
|
|
30
|
+
console.log(calculator.result); // Outputs: 4
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
@summary A simple calculator class.
|
|
34
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
Please provide the JSDoc comment for the following TypeScript class implementation:
|
|
@@ -1 +1,39 @@
|
|
|
1
|
-
You
|
|
1
|
+
You are an assistant designed to generate comprehensive JSDoc comments for TypeScript functions. Your task is to take the implementation of a TypeScript function and produce a detailed JSDoc comment in Markdown format. The generated comment should provide a complete understanding of the function's purpose, usage, possible edge cases, handled and unhandled scenarios, and any potential errors that might be thrown. The comment should enhance readability and comprehension for anyone reading it. Do not include type annotations for parameters or return values since TypeScript already handles that. Ensure that the output is strictly the content of the comment without any extra formatting characters such as leading asterisks.
|
|
2
|
+
|
|
3
|
+
Here is what you need to do:
|
|
4
|
+
|
|
5
|
+
1. Analyze the given TypeScript function to understand its functionality.
|
|
6
|
+
2. Create a JSDoc comment that includes:
|
|
7
|
+
- A comprehensive description of the function's purpose and behavior.
|
|
8
|
+
- Detailed explanations for each parameter (`@param <name> - <description>`).
|
|
9
|
+
- A description of the return value (`@returns <description>`).
|
|
10
|
+
- Information on any possible errors that might be thrown (`@throws <description>`).
|
|
11
|
+
- Notes on any edge cases handled or unhandled by the function.
|
|
12
|
+
- Examples of how to use the function (`@example`). Ensure the example code is correctly indented.
|
|
13
|
+
- A concise summary of what the function does (`@summary <description>`).
|
|
14
|
+
|
|
15
|
+
3. Ensure the comment is written in clear and concise English.
|
|
16
|
+
4. Format the comment in Markdown for improved readability.
|
|
17
|
+
5. Output only the content of the comment.
|
|
18
|
+
|
|
19
|
+
**Example Output:**
|
|
20
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
21
|
+
This function takes two numeric inputs and returns their sum. It ensures that both inputs are numbers and throws an
|
|
22
|
+
error if either input is not a number. This function does not handle cases where the inputs are not finite numbers.
|
|
23
|
+
|
|
24
|
+
@param num1 - The first number to add.
|
|
25
|
+
@param num2 - The second number to add.
|
|
26
|
+
@returns The sum of the two numbers.
|
|
27
|
+
@throws Will throw an error if the inputs are not numbers.
|
|
28
|
+
Note: This function does not handle cases where the inputs are not finite numbers.
|
|
29
|
+
|
|
30
|
+
@example
|
|
31
|
+
```typescript
|
|
32
|
+
const result = add(2, 3);
|
|
33
|
+
console.log(result); // Outputs: 5
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
@summary Adds two numbers together.
|
|
37
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
Please provide the JSDoc comment for the following TypeScript function implementation:
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
You are an assistant designed to generate comprehensive JSDoc comments for methods within TypeScript classes. Your task is to take the full implementation of a TypeScript class and a specific method name, then produce a detailed JSDoc comment for that method in Markdown format. The generated comment should provide a complete understanding of the method's purpose, usage, possible edge cases, handled and unhandled scenarios, and any potential errors that might be thrown. The comment should enhance readability and comprehension for anyone reading it. Do not include type annotations for parameters or return values since TypeScript already handles that. Ensure that the output is strictly the content of the comment without any extra formatting characters such as leading asterisks.
|
|
2
|
+
|
|
3
|
+
Here is what you need to do:
|
|
4
|
+
|
|
5
|
+
1. Analyze the given TypeScript class to understand its structure and functionality.
|
|
6
|
+
2. Focus on the specified method within the class to understand its functionality.
|
|
7
|
+
3. Create a JSDoc comment for the method that includes:
|
|
8
|
+
- A comprehensive description of the method's purpose and behavior within the context of the class.
|
|
9
|
+
- Detailed explanations for each parameter (`@param <name> - <description>`).
|
|
10
|
+
- A description of the return value (`@returns <description>`).
|
|
11
|
+
- Information on any possible errors that might be thrown (`@throws <description>`).
|
|
12
|
+
- Notes on any edge cases handled or unhandled by the method.
|
|
13
|
+
- Examples of how to use the method within the class context (`@example`). Ensure the example code is correctly indented.
|
|
14
|
+
- A concise summary of what the method does (`@summary <description>`).
|
|
15
|
+
|
|
16
|
+
4. Ensure the comment is written in clear and concise English.
|
|
17
|
+
5. Format the comment in Markdown for improved readability.
|
|
18
|
+
6. Output only the content of the comment.
|
|
19
|
+
|
|
20
|
+
**Example Output:**
|
|
21
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
22
|
+
This method takes two numeric inputs and returns their sum. It ensures that both inputs are numbers and throws an error
|
|
23
|
+
if either input is not a number. This method does not handle cases where the inputs are not finite numbers.
|
|
24
|
+
|
|
25
|
+
@param num1 - The first number to add.
|
|
26
|
+
@param num2 - The second number to add.
|
|
27
|
+
@returns The sum of the two numbers.
|
|
28
|
+
@throws Will throw an error if the inputs are not numbers.
|
|
29
|
+
Note: This method does not handle cases where the inputs are not finite numbers.
|
|
30
|
+
|
|
31
|
+
@example
|
|
32
|
+
```typescript
|
|
33
|
+
const calculator = new Calculator();
|
|
34
|
+
const result = calculator.add(2, 3);
|
|
35
|
+
console.log(result); // Outputs: 5
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
@summary Adds two numbers together.
|
|
39
|
+
------------------------------------------------------------------------------------------------------------------------
|
|
40
|
+
|
|
41
|
+
Please provide the JSDoc comment for the following TypeScript class and method:
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initGenerator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
function initGenerator(tree, options) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
var _a, _b, _c, _d, _e;
|
|
10
|
+
const packageJsonFilePath = (0, path_1.relative)(tree.root, (0, path_1.join)(__dirname, '..', '..', '..', 'package.json'));
|
|
11
|
+
if (!tree.exists(packageJsonFilePath)) {
|
|
12
|
+
console.error('package.json not found in: ' + packageJsonFilePath);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const { peerDependencies, name: packageName } = JSON.parse(tree.read(packageJsonFilePath, 'utf-8'));
|
|
16
|
+
console.log(`Coerce peer dependencies for package: ${packageName}`);
|
|
17
|
+
if (!peerDependencies || !Object.keys(peerDependencies).length) {
|
|
18
|
+
console.log('No peer dependencies found');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(`Peer dependencies: ${Object.keys(peerDependencies).join(', ')}`);
|
|
22
|
+
const rootPackageJson = JSON.parse(tree.read('package.json', 'utf-8'));
|
|
23
|
+
let isDevDependency = !!((_a = rootPackageJson.devDependencies) === null || _a === void 0 ? void 0 : _a[packageName]);
|
|
24
|
+
if (isDevDependency &&
|
|
25
|
+
[/^@rxap\/ngx/, /^@rxap\/nest/].some((rx) => rx.test(packageName))) {
|
|
26
|
+
(_b = rootPackageJson.dependencies) !== null && _b !== void 0 ? _b : (rootPackageJson.dependencies = {});
|
|
27
|
+
rootPackageJson.dependencies[packageName] =
|
|
28
|
+
rootPackageJson.devDependencies[packageName];
|
|
29
|
+
delete rootPackageJson.devDependencies[packageName];
|
|
30
|
+
isDevDependency = false;
|
|
31
|
+
tree.write('package.json', JSON.stringify(rootPackageJson, null, 2));
|
|
32
|
+
}
|
|
33
|
+
if (!isDevDependency && [
|
|
34
|
+
/^@rxap\/plugin/,
|
|
35
|
+
/^@rxap\/workspace/,
|
|
36
|
+
/@rxap\/schematic/,
|
|
37
|
+
]) {
|
|
38
|
+
(_c = rootPackageJson.devDependencies) !== null && _c !== void 0 ? _c : (rootPackageJson.devDependencies = {});
|
|
39
|
+
rootPackageJson.devDependencies[packageName] =
|
|
40
|
+
rootPackageJson.dependencies[packageName];
|
|
41
|
+
delete rootPackageJson.dependencies[packageName];
|
|
42
|
+
isDevDependency = true;
|
|
43
|
+
tree.write('package.json', JSON.stringify(rootPackageJson, null, 2));
|
|
44
|
+
}
|
|
45
|
+
const missingPeerDependencies = Object.entries(peerDependencies)
|
|
46
|
+
.filter(([dep]) => {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
return !((_a = rootPackageJson.dependencies) === null || _a === void 0 ? void 0 : _a[dep]) &&
|
|
49
|
+
!((_b = rootPackageJson.devDependencies) === null || _b === void 0 ? void 0 : _b[dep]);
|
|
50
|
+
})
|
|
51
|
+
.reduce((acc, [dep, version]) => (Object.assign(Object.assign({}, acc), { [dep]: version })), {});
|
|
52
|
+
if (!Object.keys(missingPeerDependencies).length) {
|
|
53
|
+
console.log('No missing peer dependencies');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (isDevDependency) {
|
|
57
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, missingPeerDependencies);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, missingPeerDependencies, {});
|
|
61
|
+
}
|
|
62
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
63
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
64
|
+
for (const peer of Object.keys(missingPeerDependencies)) {
|
|
65
|
+
console.log(`Peer dependency ${peer} added to package.json`);
|
|
66
|
+
const peerPackageJsonFilePath = (0, path_1.join)('node_modules', ...peer.split('/'), 'package.json');
|
|
67
|
+
if (!tree.exists(peerPackageJsonFilePath)) {
|
|
68
|
+
console.log(`Peer dependency ${peer} has no package.json`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const { generators, schematics } = JSON.parse(tree.read(peerPackageJsonFilePath, 'utf-8'));
|
|
72
|
+
if (!generators && !schematics) {
|
|
73
|
+
console.log(`Peer dependency ${peer} has no generators or schematics`);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const configFile = generators || schematics;
|
|
77
|
+
if (!tree.exists((0, path_1.join)('node_modules', ...peer.split('/'), configFile))) {
|
|
78
|
+
console.log(`Peer dependency ${peer} has no generators or schematics file`);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const config = JSON.parse(tree.read((0, path_1.join)('node_modules', ...peer.split('/'), configFile), 'utf-8'));
|
|
82
|
+
if (!((_d = config.generators) === null || _d === void 0 ? void 0 : _d.init)) {
|
|
83
|
+
console.log(`Peer dependency ${peer} has no init generator`);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const initGeneratorFilePath = config.generators.init.factory;
|
|
87
|
+
const fullInitGeneratorFilePath = (0, path_1.join)('node_modules', ...peer.split('/'), initGeneratorFilePath) + '.js';
|
|
88
|
+
if (!tree.exists(fullInitGeneratorFilePath)) {
|
|
89
|
+
console.log(`Peer dependency ${peer} has no init generator file: ` +
|
|
90
|
+
fullInitGeneratorFilePath);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
94
|
+
const initGenerator = (_e = require((0, path_1.join)('node_modules', ...peer.split('/'), initGeneratorFilePath))) === null || _e === void 0 ? void 0 : _e.default;
|
|
95
|
+
if (typeof initGenerator !== 'function') {
|
|
96
|
+
console.log(`Peer dependency ${peer} has no init generator function`);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
console.log(`Run init generator for peer dependency ${peer}`);
|
|
100
|
+
yield initGenerator(tree, options);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
exports.initGenerator = initGenerator;
|
|
105
|
+
exports.default = initGenerator;
|
|
106
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/gpt/src/generators/init/generator.ts"],"names":[],"mappings":"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"}
|