fix(core): update
This commit is contained in:
		
							
								
								
									
										66
									
								
								.gitea/workflows/default_nottags.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								.gitea/workflows/default_nottags.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | name: Default (not tags) | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags-ignore: | ||||||
|  |       - '**' | ||||||
|  |  | ||||||
|  | env: | ||||||
|  |   IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci | ||||||
|  |   NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git | ||||||
|  |   NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} | ||||||
|  |   NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} | ||||||
|  |   NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} | ||||||
|  |   NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   security: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     continue-on-error: true | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Install pnpm and npmci | ||||||
|  |         run: | | ||||||
|  |           pnpm install -g pnpm | ||||||
|  |           pnpm install -g @ship.zone/npmci | ||||||
|  |  | ||||||
|  |       - name: Run npm prepare | ||||||
|  |         run: npmci npm prepare | ||||||
|  |  | ||||||
|  |       - name: Audit production dependencies | ||||||
|  |         run: | | ||||||
|  |           npmci command npm config set registry https://registry.npmjs.org | ||||||
|  |           npmci command pnpm audit --audit-level=high --prod | ||||||
|  |         continue-on-error: true | ||||||
|  |  | ||||||
|  |       - name: Audit development dependencies | ||||||
|  |         run: | | ||||||
|  |           npmci command npm config set registry https://registry.npmjs.org | ||||||
|  |           npmci command pnpm audit --audit-level=high --dev | ||||||
|  |         continue-on-error: true | ||||||
|  |  | ||||||
|  |   test: | ||||||
|  |     if: ${{ always() }} | ||||||
|  |     needs: security | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Test stable | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm install | ||||||
|  |           npmci npm test | ||||||
|  |  | ||||||
|  |       - name: Test build | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm install | ||||||
|  |           npmci npm build | ||||||
							
								
								
									
										124
									
								
								.gitea/workflows/default_tags.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								.gitea/workflows/default_tags.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,124 @@ | |||||||
|  | name: Default (tags) | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: | ||||||
|  |       - '*' | ||||||
|  |  | ||||||
|  | env: | ||||||
|  |   IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci | ||||||
|  |   NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git | ||||||
|  |   NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}} | ||||||
|  |   NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}} | ||||||
|  |   NPMCI_GIT_GITHUBTOKEN: ${{secrets.NPMCI_GIT_GITHUBTOKEN}} | ||||||
|  |   NPMCI_URL_CLOUDLY: ${{secrets.NPMCI_URL_CLOUDLY}} | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   security: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     continue-on-error: true | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Prepare | ||||||
|  |         run: | | ||||||
|  |           pnpm install -g pnpm | ||||||
|  |           pnpm install -g @ship.zone/npmci | ||||||
|  |           npmci npm prepare | ||||||
|  |  | ||||||
|  |       - name: Audit production dependencies | ||||||
|  |         run: | | ||||||
|  |           npmci command npm config set registry https://registry.npmjs.org | ||||||
|  |           npmci command pnpm audit --audit-level=high --prod | ||||||
|  |         continue-on-error: true | ||||||
|  |  | ||||||
|  |       - name: Audit development dependencies | ||||||
|  |         run: | | ||||||
|  |           npmci command npm config set registry https://registry.npmjs.org | ||||||
|  |           npmci command pnpm audit --audit-level=high --dev | ||||||
|  |         continue-on-error: true | ||||||
|  |  | ||||||
|  |   test: | ||||||
|  |     if: ${{ always() }} | ||||||
|  |     needs: security | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Prepare | ||||||
|  |         run: | | ||||||
|  |           pnpm install -g pnpm | ||||||
|  |           pnpm install -g @ship.zone/npmci | ||||||
|  |           npmci npm prepare | ||||||
|  |  | ||||||
|  |       - name: Test stable | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm install | ||||||
|  |           npmci npm test | ||||||
|  |  | ||||||
|  |       - name: Test build | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm install | ||||||
|  |           npmci npm build | ||||||
|  |  | ||||||
|  |   release: | ||||||
|  |     needs: test | ||||||
|  |     if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Prepare | ||||||
|  |         run: | | ||||||
|  |           pnpm install -g pnpm | ||||||
|  |           pnpm install -g @ship.zone/npmci | ||||||
|  |           npmci npm prepare | ||||||
|  |  | ||||||
|  |       - name: Release | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm publish | ||||||
|  |  | ||||||
|  |   metadata: | ||||||
|  |     needs: test | ||||||
|  |     if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     container: | ||||||
|  |       image: ${{ env.IMAGE }} | ||||||
|  |     continue-on-error: true | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Prepare | ||||||
|  |         run: | | ||||||
|  |           pnpm install -g pnpm | ||||||
|  |           pnpm install -g @ship.zone/npmci | ||||||
|  |           npmci npm prepare | ||||||
|  |  | ||||||
|  |       - name: Code quality | ||||||
|  |         run: | | ||||||
|  |           npmci command npm install -g typescript | ||||||
|  |           npmci npm install | ||||||
|  |  | ||||||
|  |       - name: Trigger | ||||||
|  |         run: npmci trigger | ||||||
|  |  | ||||||
|  |       - name: Build docs and upload artifacts | ||||||
|  |         run: | | ||||||
|  |           npmci node install stable | ||||||
|  |           npmci npm install | ||||||
|  |           pnpm install -g @git.zone/tsdoc | ||||||
|  |           npmci command tsdoc | ||||||
|  |         continue-on-error: true | ||||||
							
								
								
									
										32
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								package.json
									
									
									
									
									
								
							| @@ -14,30 +14,32 @@ | |||||||
|   "scripts": { |   "scripts": { | ||||||
|     "test": "(tstest test/) && npm run testCli", |     "test": "(tstest test/) && npm run testCli", | ||||||
|     "testCli": "(node ./cli.ts.js) && (node ./cli.ts.js aidocs)", |     "testCli": "(node ./cli.ts.js) && (node ./cli.ts.js aidocs)", | ||||||
|     "build": "(tsbuild --web --allowimplicitany)" |     "build": "(tsbuild --web --allowimplicitany)", | ||||||
|  |     "buildDocs": "tsdoc" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@git.zone/tsbuild": "^2.1.76", |     "@git.zone/tsbuild": "^2.1.80", | ||||||
|     "@git.zone/tsrun": "^1.2.46", |     "@git.zone/tsrun": "^1.2.46", | ||||||
|     "@git.zone/tstest": "^1.0.90", |     "@git.zone/tstest": "^1.0.90", | ||||||
|     "@push.rocks/tapbundle": "^5.0.23", |     "@push.rocks/tapbundle": "^5.0.23", | ||||||
|     "@types/node": "^20.12.12" |     "@types/node": "^20.14.8" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@push.rocks/early": "^4.0.3", |     "@push.rocks/early": "^4.0.3", | ||||||
|     "@push.rocks/npmextra": "^5.0.13", |     "@push.rocks/npmextra": "^5.0.23", | ||||||
|     "@push.rocks/qenv": "^6.0.5", |     "@push.rocks/qenv": "^6.0.5", | ||||||
|     "@push.rocks/smartai": "^0.0.17", |     "@push.rocks/smartai": "^0.0.17", | ||||||
|     "@push.rocks/smartcli": "^4.0.10", |     "@push.rocks/smartcli": "^4.0.11", | ||||||
|     "@push.rocks/smartdelay": "^3.0.5", |     "@push.rocks/smartdelay": "^3.0.5", | ||||||
|     "@push.rocks/smartfile": "^11.0.14", |     "@push.rocks/smartfile": "^11.0.20", | ||||||
|  |     "@push.rocks/smartgit": "^3.0.4", | ||||||
|     "@push.rocks/smartinteract": "^2.0.15", |     "@push.rocks/smartinteract": "^2.0.15", | ||||||
|     "@push.rocks/smartlog": "^3.0.1", |     "@push.rocks/smartlog": "^3.0.7", | ||||||
|     "@push.rocks/smartlog-destination-local": "^9.0.2", |     "@push.rocks/smartlog-destination-local": "^9.0.2", | ||||||
|     "@push.rocks/smartpath": "^5.0.18", |     "@push.rocks/smartpath": "^5.0.18", | ||||||
|     "@push.rocks/smartshell": "^3.0.5", |     "@push.rocks/smartshell": "^3.0.5", | ||||||
|     "typedoc": "^0.25.13", |     "typedoc": "^0.26.0", | ||||||
|     "typescript": "^5.4.5" |     "typescript": "^5.5.2" | ||||||
|   }, |   }, | ||||||
|   "files": [ |   "files": [ | ||||||
|     "ts/**/*", |     "ts/**/*", | ||||||
| @@ -65,5 +67,13 @@ | |||||||
|     "API documentation", |     "API documentation", | ||||||
|     "technical writing", |     "technical writing", | ||||||
|     "code quality improvement" |     "code quality improvement" | ||||||
|   ] |   ], | ||||||
| } |   "repository": { | ||||||
|  |     "type": "git", | ||||||
|  |     "url": "git+https://gitlab.com/gitzone/tsdoc.git" | ||||||
|  |   }, | ||||||
|  |   "bugs": { | ||||||
|  |     "url": "https://gitlab.com/gitzone/tsdoc/issues" | ||||||
|  |   }, | ||||||
|  |   "homepage": "https://gitlab.com/gitzone/tsdoc#readme" | ||||||
|  | } | ||||||
							
								
								
									
										582
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										582
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -3,6 +3,6 @@ | |||||||
|  */ |  */ | ||||||
| export const commitinfo = { | export const commitinfo = { | ||||||
|   name: '@git.zone/tsdoc', |   name: '@git.zone/tsdoc', | ||||||
|   version: '1.1.29', |   version: '1.1.30', | ||||||
|   description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.' |   description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.' | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										55
									
								
								ts/aidocs_classes/commit.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								ts/aidocs_classes/commit.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | import * as plugins from '../plugins.js'; | ||||||
|  | import { AiDoc } from '../classes.aidoc.js'; | ||||||
|  | import { ProjectContext } from './projectcontext.js'; | ||||||
|  |  | ||||||
|  | export class Commit { | ||||||
|  |   private aiDocsRef: AiDoc; | ||||||
|  |   private projectDir: string; | ||||||
|  |  | ||||||
|  |   constructor(aiDocsRef: AiDoc, projectDirArg: string) { | ||||||
|  |     this.aiDocsRef = aiDocsRef; | ||||||
|  |     this.projectDir = projectDirArg; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public async build() { | ||||||
|  |     const projectContext = new ProjectContext(this.projectDir); | ||||||
|  |     const contextString = await projectContext.update(); | ||||||
|  |  | ||||||
|  |     let result = await this.aiDocsRef.openaiInstance.chat({ | ||||||
|  |       systemMessage: ` | ||||||
|  | You create a commit message for a git commit. | ||||||
|  | The commit message should be based on the files in the project. | ||||||
|  | You should not include any licensing information. | ||||||
|  | You should not include any personal information. | ||||||
|  |  | ||||||
|  | Important: Answer only in valid JSON. | ||||||
|  |  | ||||||
|  | Your answer should be parseable with JSON.parse() without modifying anything. | ||||||
|  |  | ||||||
|  | Here is the structure of the JSON you should return: | ||||||
|  | { | ||||||
|  |   recommendedNextVersionLevel: 'patch' | 'minor' | 'major'; // the recommended next version level of the project | ||||||
|  |   recommendedNextVersion: string; // the recommended next version of the project | ||||||
|  |   message: string; // the commit message. use conventional commits format | ||||||
|  | } | ||||||
|  |  | ||||||
|  | You are being given the files of the project. You should use them to create the commit message. | ||||||
|  | Also you are given a diff | ||||||
|  |  | ||||||
|  | `, | ||||||
|  |       messageHistory: [], | ||||||
|  |       userMessage: contextString, | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     console.log(result.message); | ||||||
|  |     const resultObject = JSON.parse(result.message.replace('```json', '').replace('```', '')); | ||||||
|  |  | ||||||
|  |     const npmextraJson = (await projectContext.gatherFiles()).smartfilesNpmextraJSON; | ||||||
|  |     const npmextraJsonContent = JSON.parse(npmextraJson.contents.toString()); | ||||||
|  |  | ||||||
|  |     npmextraJsonContent.gitzone.module.commit = resultObject.message; | ||||||
|  |  | ||||||
|  |     npmextraJson.contents = Buffer.from(JSON.stringify(npmextraJsonContent, null, 2)); | ||||||
|  |     await npmextraJson.write(); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -84,4 +84,13 @@ export class AiDoc { | |||||||
|     const descriptionInstance = new aiDocsClasses.Description(this, projectDirArg); |     const descriptionInstance = new aiDocsClasses.Description(this, projectDirArg); | ||||||
|     return await descriptionInstance.build(); |     return await descriptionInstance.build(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   public async buildNextCommit(projectDirArg: string) { | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public async getProjectContext(projectDirArg: string) { | ||||||
|  |     const projectContextInstance = new aiDocsClasses.ProjectContext(projectDirArg); | ||||||
|  |     return await projectContextInstance.gatherFiles(); | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -10,13 +10,27 @@ import * as smartai from '@push.rocks/smartai'; | |||||||
| import * as smartcli from '@push.rocks/smartcli'; | import * as smartcli from '@push.rocks/smartcli'; | ||||||
| import * as smartdelay from '@push.rocks/smartdelay'; | import * as smartdelay from '@push.rocks/smartdelay'; | ||||||
| import * as smartfile from '@push.rocks/smartfile'; | import * as smartfile from '@push.rocks/smartfile'; | ||||||
|  | import * as smartgit from '@push.rocks/smartgit'; | ||||||
| import * as smartinteract from '@push.rocks/smartinteract'; | import * as smartinteract from '@push.rocks/smartinteract'; | ||||||
| import * as smartlog from '@push.rocks/smartlog'; | import * as smartlog from '@push.rocks/smartlog'; | ||||||
| import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local'; | import * as smartlogDestinationLocal from '@push.rocks/smartlog-destination-local'; | ||||||
| import * as smartpath from '@push.rocks/smartpath'; | import * as smartpath from '@push.rocks/smartpath'; | ||||||
| import * as smartshell from '@push.rocks/smartshell'; | import * as smartshell from '@push.rocks/smartshell'; | ||||||
|  |  | ||||||
| export { npmextra, qenv, smartai, smartcli, smartdelay, smartfile, smartinteract, smartlog, smartlogDestinationLocal, smartpath, smartshell }; | export { | ||||||
|  |   npmextra, | ||||||
|  |   qenv, | ||||||
|  |   smartai, | ||||||
|  |   smartcli, | ||||||
|  |   smartdelay, | ||||||
|  |   smartfile, | ||||||
|  |   smartgit, | ||||||
|  |   smartinteract, | ||||||
|  |   smartlog, | ||||||
|  |   smartlogDestinationLocal, | ||||||
|  |   smartpath, | ||||||
|  |   smartshell, | ||||||
|  | }; | ||||||
|  |  | ||||||
| // third party scope | // third party scope | ||||||
| import * as typedoc from 'typedoc'; | import * as typedoc from 'typedoc'; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user