@git.zone/tspublish 1.7.6 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.giteaassets.d.ts +32 -0
- package/dist_ts/classes.giteaassets.js +75 -0
- package/dist_ts/classes.publishmodule.d.ts +5 -6
- package/dist_ts/classes.publishmodule.js +33 -8
- package/dist_ts/classes.tspublish.d.ts +2 -0
- package/dist_ts/classes.tspublish.js +8 -3
- package/dist_ts/interfaces/tspublish.d.ts +4 -0
- package/dist_ts/plugins.d.ts +2 -1
- package/dist_ts/plugins.js +3 -2
- package/package.json +3 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.giteaassets.ts +103 -0
- package/ts/classes.publishmodule.ts +56 -26
- package/ts/classes.tspublish.ts +12 -5
- package/ts/interfaces/tspublish.ts +4 -0
- package/ts/plugins.ts +2 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/tspublish',
|
|
6
|
-
version: '1.
|
|
6
|
+
version: '1.9.0',
|
|
7
7
|
description: 'A tool to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHdJQUF3STtDQUN0SixDQUFBIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
interface IRepoFile {
|
|
2
|
+
name: string;
|
|
3
|
+
path: string;
|
|
4
|
+
type: 'file' | 'dir';
|
|
5
|
+
download_url: string | null;
|
|
6
|
+
base64Content: string | null;
|
|
7
|
+
encoding: string | null;
|
|
8
|
+
}
|
|
9
|
+
interface IGiteaAssetsOptions {
|
|
10
|
+
giteaBaseUrl: string;
|
|
11
|
+
token?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class GiteaAssets {
|
|
14
|
+
private baseUrl;
|
|
15
|
+
private headers;
|
|
16
|
+
constructor(options: IGiteaAssetsOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Get all files in a directory of a repository
|
|
19
|
+
* @param owner - Repository owner
|
|
20
|
+
* @param repo - Repository name
|
|
21
|
+
* @param directory - Directory path ('' for root)
|
|
22
|
+
* @param branch - Branch name (optional)
|
|
23
|
+
* @returns A list of files in the directory
|
|
24
|
+
*/
|
|
25
|
+
getFiles(owner: string, repo: string, directory: string, branch?: string): Promise<IRepoFile[]>;
|
|
26
|
+
/**
|
|
27
|
+
* gets the current cli entry file from the code.foss.global/git.zone/cli repository
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
getBinCliEntryFile(): Promise<IRepoFile>;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
export class GiteaAssets {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.headers = {};
|
|
5
|
+
this.baseUrl = options.giteaBaseUrl;
|
|
6
|
+
if (this.baseUrl.endsWith('/')) {
|
|
7
|
+
this.baseUrl = this.baseUrl.slice(0, -1);
|
|
8
|
+
}
|
|
9
|
+
this.baseUrl += '/api/v1';
|
|
10
|
+
this.headers = options.token
|
|
11
|
+
? { ...this.headers, 'Authorization': `token ${options.token}` }
|
|
12
|
+
: this.headers;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get all files in a directory of a repository
|
|
16
|
+
* @param owner - Repository owner
|
|
17
|
+
* @param repo - Repository name
|
|
18
|
+
* @param directory - Directory path ('' for root)
|
|
19
|
+
* @param branch - Branch name (optional)
|
|
20
|
+
* @returns A list of files in the directory
|
|
21
|
+
*/
|
|
22
|
+
async getFiles(owner, repo, directory, branch) {
|
|
23
|
+
try {
|
|
24
|
+
const response = await plugins.smartrequest.request(this.baseUrl + `/repos/${owner}/${repo}/contents/${directory}`, {
|
|
25
|
+
headers: this.headers,
|
|
26
|
+
method: 'GET',
|
|
27
|
+
queryParams: branch ? { ref: branch } : {},
|
|
28
|
+
});
|
|
29
|
+
if (!Array.isArray(response.body) && typeof response.body === 'object') {
|
|
30
|
+
response.body = [response.body];
|
|
31
|
+
}
|
|
32
|
+
else if (Array.isArray(response.body)) {
|
|
33
|
+
for (const entry of response.body) {
|
|
34
|
+
if (entry.type === 'dir') {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
else if (entry.type === 'file') {
|
|
38
|
+
const response2 = await plugins.smartrequest.request(this.baseUrl + `/repos/${owner}/${repo}/contents/${entry.path}`, {
|
|
39
|
+
headers: this.headers,
|
|
40
|
+
method: 'GET',
|
|
41
|
+
queryParams: branch ? { ref: branch } : {},
|
|
42
|
+
});
|
|
43
|
+
entry.encoding = response2.body.encoding;
|
|
44
|
+
entry.content = response2.body.content;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// lets map to the IRepoFile interface
|
|
49
|
+
response.body = response.body.map((entry) => {
|
|
50
|
+
return {
|
|
51
|
+
name: entry.name,
|
|
52
|
+
path: entry.path,
|
|
53
|
+
type: entry.type,
|
|
54
|
+
download_url: entry.download_url,
|
|
55
|
+
base64Content: entry.content,
|
|
56
|
+
encoding: entry.encoding,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
return response.body;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('Error fetching repository files:', error);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* gets the current cli entry file from the code.foss.global/git.zone/cli repository
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
async getBinCliEntryFile() {
|
|
71
|
+
const files = await this.getFiles('git.zone', 'cli', 'assets/templates/cli/cli.js');
|
|
72
|
+
return files[0];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5naXRlYWFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuZ2l0ZWFhc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFnQnhDLE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQVksT0FBNEI7UUFGaEMsWUFBTyxHQUE0QixFQUFFLENBQUM7UUFHNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFBO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLO1lBQ3hCLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUNaLEtBQWEsRUFDYixJQUFZLEVBQ1osU0FBaUIsRUFDakIsTUFBZTtRQUVmLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxLQUFLLElBQUksSUFBSSxhQUFhLFNBQVMsRUFBRSxFQUM5RDtnQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLE1BQU0sRUFBRSxL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
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
dependencies: string[];
|
|
4
|
-
registries: string[];
|
|
5
|
-
}
|
|
1
|
+
import { type ITsPublishJson } from './interfaces/index.js';
|
|
2
|
+
import type { TsPublish } from './classes.tspublish.js';
|
|
6
3
|
export interface IPublishModuleOptions {
|
|
7
4
|
monoRepoDir: string;
|
|
8
5
|
packageSubFolder: string;
|
|
@@ -16,13 +13,15 @@ export interface IPublishModuleOptions {
|
|
|
16
13
|
};
|
|
17
14
|
}
|
|
18
15
|
export declare class PublishModule {
|
|
16
|
+
tsPublishRef: TsPublish;
|
|
19
17
|
options: IPublishModuleOptions;
|
|
20
|
-
constructor(options: IPublishModuleOptions);
|
|
18
|
+
constructor(tsPublishRef: TsPublish, options: IPublishModuleOptions);
|
|
21
19
|
init(): Promise<void>;
|
|
22
20
|
getLatestVersionOfPackage(name: string): Promise<string>;
|
|
23
21
|
createTsconfigJson(): Promise<string>;
|
|
24
22
|
createPackageJson(): Promise<string>;
|
|
25
23
|
createPublishModuleDir(): Promise<void>;
|
|
26
24
|
build(): Promise<void>;
|
|
25
|
+
createBinCliSetup(): Promise<void>;
|
|
27
26
|
publish(): Promise<void>;
|
|
28
27
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import * as paths from './paths.js';
|
|
3
3
|
import { logger } from './logging.js';
|
|
4
|
+
import {} from './interfaces/index.js';
|
|
4
5
|
export class PublishModule {
|
|
5
|
-
constructor(options) {
|
|
6
|
+
constructor(tsPublishRef, options) {
|
|
7
|
+
this.tsPublishRef = tsPublishRef;
|
|
6
8
|
this.options = options;
|
|
7
9
|
}
|
|
8
10
|
async init() {
|
|
@@ -12,13 +14,19 @@ export class PublishModule {
|
|
|
12
14
|
throw new Error('subFolder must start with "ts"');
|
|
13
15
|
}
|
|
14
16
|
this.options.tsPublishJson = plugins.smartfile.fs.toObjectSync(plugins.path.join(this.options.packageSubFolderFullPath, 'tspublish.json'));
|
|
17
|
+
// the package.json of the parent mono repo
|
|
15
18
|
const monoRepoPackageJson = JSON.parse(plugins.smartfile.fs.toStringSync(plugins.path.join(this.options.monoRepoDir, 'package.json')));
|
|
16
19
|
this.options.dependencies = {
|
|
17
20
|
...this.options.dependencies,
|
|
18
21
|
...(() => {
|
|
19
22
|
const resultDependencies = {};
|
|
20
23
|
for (const dependency of this.options.tsPublishJson.dependencies) {
|
|
21
|
-
|
|
24
|
+
if (monoRepoPackageJson.dependencies[dependency]) {
|
|
25
|
+
resultDependencies[dependency] = monoRepoPackageJson.dependencies[dependency];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
resultDependencies[dependency] = monoRepoPackageJson.version;
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
31
|
return resultDependencies;
|
|
24
32
|
})(),
|
|
@@ -56,8 +64,7 @@ export class PublishModule {
|
|
|
56
64
|
const originalTsConfig = plugins.smartfile.fs.toObjectSync(plugins.path.join(paths.cwd, 'tsconfig.json'));
|
|
57
65
|
if (originalTsConfig?.compilerOptions?.paths) {
|
|
58
66
|
for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) {
|
|
59
|
-
originalTsConfig.compilerOptions.paths[path][0] =
|
|
60
|
-
`.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
67
|
+
originalTsConfig.compilerOptions.paths[path][0] = `.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
const tsconfigJson = {
|
|
@@ -105,6 +112,15 @@ export class PublishModule {
|
|
|
105
112
|
'npmextra.json',
|
|
106
113
|
'readme.md',
|
|
107
114
|
],
|
|
115
|
+
...this.options.tsPublishJson.bin ? {
|
|
116
|
+
bin: (() => {
|
|
117
|
+
const binObject = {};
|
|
118
|
+
for (const bin of this.options.tsPublishJson.bin) {
|
|
119
|
+
binObject[bin] = `./cli.js`;
|
|
120
|
+
}
|
|
121
|
+
return binObject;
|
|
122
|
+
})()
|
|
123
|
+
} : {},
|
|
108
124
|
};
|
|
109
125
|
return JSON.stringify(packageJson, null, 2);
|
|
110
126
|
}
|
|
@@ -115,14 +131,16 @@ export class PublishModule {
|
|
|
115
131
|
const packageJson = await plugins.smartfile.SmartFile.fromString(plugins.path.join(this.options.publishModDirFullPath, 'package.json'), await this.createPackageJson(), 'utf8');
|
|
116
132
|
await packageJson.write();
|
|
117
133
|
// tsconfig.json
|
|
118
|
-
const
|
|
119
|
-
await
|
|
120
|
-
// ts folder
|
|
134
|
+
const tsconfigJson = await plugins.smartfile.SmartFile.fromString(plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'), await this.createTsconfigJson(), 'utf8');
|
|
135
|
+
await tsconfigJson.write();
|
|
136
|
+
// ts subfolder, the folder that contains the source code and is being transpiled
|
|
121
137
|
await plugins.smartfile.fs.copy(this.options.packageSubFolderFullPath, plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder));
|
|
122
138
|
// readme
|
|
123
139
|
await plugins.smartfile.fs.copy(plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'), plugins.path.join(this.options.publishModDirFullPath, 'readme.md'));
|
|
124
140
|
// license
|
|
125
141
|
await plugins.smartfile.fs.copy(plugins.path.join(this.options.monoRepoDir, 'license'), plugins.path.join(this.options.publishModDirFullPath, 'license'));
|
|
142
|
+
// cli stuff
|
|
143
|
+
this.createBinCliSetup();
|
|
126
144
|
}
|
|
127
145
|
async build() {
|
|
128
146
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
@@ -130,6 +148,13 @@ export class PublishModule {
|
|
|
130
148
|
});
|
|
131
149
|
await smartshellInstance.exec(`cd ${this.options.publishModDirFullPath} && pnpm run build`);
|
|
132
150
|
}
|
|
151
|
+
async createBinCliSetup() {
|
|
152
|
+
const binSetupApplies = this.options.tsPublishJson.bin &&
|
|
153
|
+
Array.isArray(this.options.tsPublishJson.bin) &&
|
|
154
|
+
this.options.tsPublishJson.bin.length > 0;
|
|
155
|
+
const files = await this.tsPublishRef.giteaAssetsInstance.getFiles('git.zone', 'cli', 'assets/templates/cli/cli.js');
|
|
156
|
+
await plugins.smartfile.memory.toFs(atob(files[0].base64Content), plugins.path.join(this.options.publishModDirFullPath, 'cli.js'));
|
|
157
|
+
}
|
|
133
158
|
async publish() {
|
|
134
159
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
135
160
|
executor: 'bash',
|
|
@@ -142,4 +167,4 @@ export class PublishModule {
|
|
|
142
167
|
}
|
|
143
168
|
}
|
|
144
169
|
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wdWJsaXNobW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5wdWJsaXNobW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUF1QixNQUFNLHVCQUF1QixDQUFDO0FBYzVELE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQVksWUFBdUIsRUFBRSxPQUE4QjtRQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztRQUVGLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FDNUQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUMzRSxDQUFDO1FBRUYsMkNBQTJDO1FBQzNDLE1BQU0sbUJBQW1C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
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as interfaces from './interfaces/index.js';
|
|
2
|
+
import { GiteaAssets } from './classes.giteaassets.js';
|
|
2
3
|
export declare class TsPublish {
|
|
4
|
+
giteaAssetsInstance: GiteaAssets;
|
|
3
5
|
constructor();
|
|
4
6
|
publish(monorepoDirArg: string): Promise<void>;
|
|
5
7
|
getModuleSubDirs(dirArg: string): Promise<{
|
|
@@ -2,8 +2,13 @@ import { logger } from './logging.js';
|
|
|
2
2
|
import * as plugins from './plugins.js';
|
|
3
3
|
import * as interfaces from './interfaces/index.js';
|
|
4
4
|
import { PublishModule } from './classes.publishmodule.js';
|
|
5
|
+
import { GiteaAssets } from './classes.giteaassets.js';
|
|
5
6
|
export class TsPublish {
|
|
6
|
-
constructor() {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.giteaAssetsInstance = new GiteaAssets({
|
|
9
|
+
giteaBaseUrl: 'https://code.foss.global',
|
|
10
|
+
});
|
|
11
|
+
}
|
|
7
12
|
async publish(monorepoDirArg) {
|
|
8
13
|
const publishModules = await this.getModuleSubDirs(monorepoDirArg);
|
|
9
14
|
logger.log('info', `Found ${Object.keys(publishModules).length} publish modules:`);
|
|
@@ -16,7 +21,7 @@ export class TsPublish {
|
|
|
16
21
|
logger.log('warn', `no name found in tspublish.json for ${publishModule}. Skipping...`);
|
|
17
22
|
continue;
|
|
18
23
|
}
|
|
19
|
-
const publishModuleInstance = new PublishModule({
|
|
24
|
+
const publishModuleInstance = new PublishModule(this, {
|
|
20
25
|
monoRepoDir: monorepoDirArg,
|
|
21
26
|
packageSubFolder: publishModule,
|
|
22
27
|
});
|
|
@@ -46,4 +51,4 @@ export class TsPublish {
|
|
|
46
51
|
return publishModules;
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50c3B1Ymxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnRzcHVibGlzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sU0FBUztJQUdwQjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUN6QyxZQUFZLEVBQUUsMEJBQTBCO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUM7UUFDbkYsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLEdBQUcsQ0FDUixNQUFNLEVBQ04sc0JBQXNCLGFBQWEsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQy9FLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHVDQUF1QyxhQUFhLGVBQWUsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUNwRCxXQUFXLEVBQUUsY0FBYztnQkFDM0IsZ0JBQWdCLEVBQUUsYUFBYTthQUNoQyxDQUFDLENBQUM7WUFDSCxNQUFNLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0scUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNyRCxNQUFNLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BDLE1BQU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBYztRQUMxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxNQUFNLGNBQWMsR0FBaUQsRUFBRSxDQUFDO1FBQ3hFLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekUsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN0RCxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQy9FLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sa0JBQWtCLENBQUMsQ0FBQztRQUNoRixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRWxELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ import * as smartdelay from '@push.rocks/smartdelay';
|
|
|
6
6
|
import * as smartlog from '@push.rocks/smartlog';
|
|
7
7
|
import * as smartnpm from '@push.rocks/smartnpm';
|
|
8
8
|
import * as smartpath from '@push.rocks/smartpath';
|
|
9
|
+
import * as smartrequest from '@push.rocks/smartrequest';
|
|
9
10
|
import * as smartshell from '@push.rocks/smartshell';
|
|
10
|
-
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartshell };
|
|
11
|
+
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartrequest, smartshell };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -8,6 +8,7 @@ import * as smartdelay from '@push.rocks/smartdelay';
|
|
|
8
8
|
import * as smartlog from '@push.rocks/smartlog';
|
|
9
9
|
import * as smartnpm from '@push.rocks/smartnpm';
|
|
10
10
|
import * as smartpath from '@push.rocks/smartpath';
|
|
11
|
+
import * as smartrequest from '@push.rocks/smartrequest';
|
|
11
12
|
import * as smartshell from '@push.rocks/smartshell';
|
|
12
|
-
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartshell };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartrequest, smartshell };
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/tspublish",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A tool to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"author": "Task Venture Capital GmbH",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"bin": {
|
|
12
|
-
"tspublish": "cli.js"
|
|
12
|
+
"tspublish": "./cli.js"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@git.zone/tsbuild": "^2.1.85",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@push.rocks/smartlog": "^3.0.7",
|
|
50
50
|
"@push.rocks/smartnpm": "^2.0.4",
|
|
51
51
|
"@push.rocks/smartpath": "^5.0.18",
|
|
52
|
+
"@push.rocks/smartrequest": "^2.0.23",
|
|
52
53
|
"@push.rocks/smartshell": "^3.0.6"
|
|
53
54
|
},
|
|
54
55
|
"keywords": [
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
|
|
3
|
+
interface IRepoFile {
|
|
4
|
+
name: string;
|
|
5
|
+
path: string;
|
|
6
|
+
type: 'file' | 'dir';
|
|
7
|
+
download_url: string | null;
|
|
8
|
+
base64Content: string | null;
|
|
9
|
+
encoding: string | null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface IGiteaAssetsOptions {
|
|
13
|
+
giteaBaseUrl: string; // Base URL of your Gitea instance
|
|
14
|
+
token?: string; // Optional token for private repositories
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class GiteaAssets {
|
|
18
|
+
private baseUrl: string;
|
|
19
|
+
private headers: {[key: string]: string} = {};
|
|
20
|
+
|
|
21
|
+
constructor(options: IGiteaAssetsOptions) {
|
|
22
|
+
this.baseUrl = options.giteaBaseUrl
|
|
23
|
+
if (this.baseUrl.endsWith('/')) {
|
|
24
|
+
this.baseUrl = this.baseUrl.slice(0, -1);
|
|
25
|
+
}
|
|
26
|
+
this.baseUrl += '/api/v1';
|
|
27
|
+
this.headers = options.token
|
|
28
|
+
? { ...this.headers, 'Authorization': `token ${options.token}` }
|
|
29
|
+
: this.headers;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get all files in a directory of a repository
|
|
34
|
+
* @param owner - Repository owner
|
|
35
|
+
* @param repo - Repository name
|
|
36
|
+
* @param directory - Directory path ('' for root)
|
|
37
|
+
* @param branch - Branch name (optional)
|
|
38
|
+
* @returns A list of files in the directory
|
|
39
|
+
*/
|
|
40
|
+
async getFiles(
|
|
41
|
+
owner: string,
|
|
42
|
+
repo: string,
|
|
43
|
+
directory: string,
|
|
44
|
+
branch?: string
|
|
45
|
+
): Promise<IRepoFile[]> {
|
|
46
|
+
try {
|
|
47
|
+
const response = await plugins.smartrequest.request(
|
|
48
|
+
this.baseUrl + `/repos/${owner}/${repo}/contents/${directory}`,
|
|
49
|
+
{
|
|
50
|
+
headers: this.headers,
|
|
51
|
+
method: 'GET',
|
|
52
|
+
queryParams: branch ? { ref: branch } : {},
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
if (!Array.isArray(response.body) && typeof response.body === 'object') {
|
|
56
|
+
response.body = [response.body];
|
|
57
|
+
} else if (Array.isArray(response.body)) {
|
|
58
|
+
for (const entry of response.body) {
|
|
59
|
+
if (entry.type === 'dir') {
|
|
60
|
+
continue;
|
|
61
|
+
} else if (entry.type === 'file') {
|
|
62
|
+
const response2 = await plugins.smartrequest.request(
|
|
63
|
+
this.baseUrl + `/repos/${owner}/${repo}/contents/${entry.path}`,
|
|
64
|
+
{
|
|
65
|
+
headers: this.headers,
|
|
66
|
+
method: 'GET',
|
|
67
|
+
queryParams: branch ? { ref: branch } : {},
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
entry.encoding = response2.body.encoding;
|
|
71
|
+
entry.content = response2.body.content;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// lets map to the IRepoFile interface
|
|
77
|
+
response.body = response.body.map((entry: any) => {
|
|
78
|
+
return {
|
|
79
|
+
name: entry.name,
|
|
80
|
+
path: entry.path,
|
|
81
|
+
type: entry.type,
|
|
82
|
+
download_url: entry.download_url,
|
|
83
|
+
base64Content: entry.content,
|
|
84
|
+
encoding: entry.encoding,
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
return response.body;
|
|
89
|
+
} catch (error) {
|
|
90
|
+
console.error('Error fetching repository files:', error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* gets the current cli entry file from the code.foss.global/git.zone/cli repository
|
|
97
|
+
* @returns
|
|
98
|
+
*/
|
|
99
|
+
public async getBinCliEntryFile() {
|
|
100
|
+
const files = await this.getFiles('git.zone', 'cli', 'assets/templates/cli/cli.js');
|
|
101
|
+
return files[0];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -2,11 +2,8 @@ import * as plugins from './plugins.js';
|
|
|
2
2
|
import * as paths from './paths.js';
|
|
3
3
|
import { logger } from './logging.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
dependencies: string[];
|
|
8
|
-
registries: string[];
|
|
9
|
-
}
|
|
5
|
+
import { type ITsPublishJson } from './interfaces/index.js';
|
|
6
|
+
import type { TsPublish } from './classes.tspublish.js';
|
|
10
7
|
|
|
11
8
|
export interface IPublishModuleOptions {
|
|
12
9
|
monoRepoDir: string;
|
|
@@ -20,15 +17,17 @@ export interface IPublishModuleOptions {
|
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
export class PublishModule {
|
|
20
|
+
tsPublishRef: TsPublish;
|
|
23
21
|
public options: IPublishModuleOptions;
|
|
24
|
-
constructor(options: IPublishModuleOptions) {
|
|
22
|
+
constructor(tsPublishRef: TsPublish, options: IPublishModuleOptions) {
|
|
23
|
+
this.tsPublishRef = tsPublishRef;
|
|
25
24
|
this.options = options;
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
public async init() {
|
|
29
28
|
this.options.packageSubFolderFullPath = plugins.path.join(
|
|
30
29
|
this.options.monoRepoDir,
|
|
31
|
-
this.options.packageSubFolder
|
|
30
|
+
this.options.packageSubFolder
|
|
32
31
|
);
|
|
33
32
|
|
|
34
33
|
// check requirements
|
|
@@ -36,19 +35,24 @@ export class PublishModule {
|
|
|
36
35
|
throw new Error('subFolder must start with "ts"');
|
|
37
36
|
}
|
|
38
37
|
this.options.tsPublishJson = plugins.smartfile.fs.toObjectSync(
|
|
39
|
-
plugins.path.join(this.options.packageSubFolderFullPath, 'tspublish.json')
|
|
38
|
+
plugins.path.join(this.options.packageSubFolderFullPath, 'tspublish.json')
|
|
40
39
|
);
|
|
40
|
+
|
|
41
|
+
// the package.json of the parent mono repo
|
|
41
42
|
const monoRepoPackageJson = JSON.parse(
|
|
42
|
-
plugins.smartfile.fs.toStringSync(
|
|
43
|
-
plugins.path.join(this.options.monoRepoDir, 'package.json'),
|
|
44
|
-
),
|
|
43
|
+
plugins.smartfile.fs.toStringSync(plugins.path.join(this.options.monoRepoDir, 'package.json'))
|
|
45
44
|
);
|
|
45
|
+
|
|
46
46
|
this.options.dependencies = {
|
|
47
47
|
...this.options.dependencies,
|
|
48
48
|
...(() => {
|
|
49
49
|
const resultDependencies = {};
|
|
50
50
|
for (const dependency of this.options.tsPublishJson.dependencies) {
|
|
51
|
-
|
|
51
|
+
if (monoRepoPackageJson.dependencies[dependency]) {
|
|
52
|
+
resultDependencies[dependency] = monoRepoPackageJson.dependencies[dependency];
|
|
53
|
+
} else {
|
|
54
|
+
resultDependencies[dependency] = monoRepoPackageJson.version;
|
|
55
|
+
}
|
|
52
56
|
}
|
|
53
57
|
return resultDependencies;
|
|
54
58
|
})(),
|
|
@@ -71,7 +75,7 @@ export class PublishModule {
|
|
|
71
75
|
if (availableVersions.includes(this.options.version)) {
|
|
72
76
|
logger.log(
|
|
73
77
|
'error',
|
|
74
|
-
`package ${this.options.name} already exists with version ${this.options.version}
|
|
78
|
+
`package ${this.options.name} already exists with version ${this.options.version}`
|
|
75
79
|
);
|
|
76
80
|
process.exit(1);
|
|
77
81
|
}
|
|
@@ -89,12 +93,13 @@ export class PublishModule {
|
|
|
89
93
|
|
|
90
94
|
public async createTsconfigJson() {
|
|
91
95
|
const originalTsConfig = plugins.smartfile.fs.toObjectSync(
|
|
92
|
-
plugins.path.join(paths.cwd, 'tsconfig.json')
|
|
96
|
+
plugins.path.join(paths.cwd, 'tsconfig.json')
|
|
93
97
|
);
|
|
94
98
|
if (originalTsConfig?.compilerOptions?.paths) {
|
|
95
99
|
for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) {
|
|
96
|
-
originalTsConfig.compilerOptions.paths[
|
|
97
|
-
|
|
100
|
+
originalTsConfig.compilerOptions.paths[
|
|
101
|
+
path
|
|
102
|
+
][0] = `.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
const tsconfigJson = {
|
|
@@ -143,6 +148,15 @@ export class PublishModule {
|
|
|
143
148
|
'npmextra.json',
|
|
144
149
|
'readme.md',
|
|
145
150
|
],
|
|
151
|
+
...this.options.tsPublishJson.bin ? {
|
|
152
|
+
bin: (() => {
|
|
153
|
+
const binObject: {[key: string]: string} = {};
|
|
154
|
+
for (const bin of this.options.tsPublishJson.bin) {
|
|
155
|
+
binObject[bin] = `./cli.js`;
|
|
156
|
+
}
|
|
157
|
+
return binObject;
|
|
158
|
+
})()
|
|
159
|
+
} : {},
|
|
146
160
|
};
|
|
147
161
|
return JSON.stringify(packageJson, null, 2);
|
|
148
162
|
}
|
|
@@ -150,7 +164,7 @@ export class PublishModule {
|
|
|
150
164
|
public async createPublishModuleDir() {
|
|
151
165
|
this.options.publishModDirFullPath = plugins.path.join(
|
|
152
166
|
this.options.monoRepoDir,
|
|
153
|
-
`dist_publish_${this.options.packageSubFolder}
|
|
167
|
+
`dist_publish_${this.options.packageSubFolder}`
|
|
154
168
|
);
|
|
155
169
|
await plugins.smartfile.fs.ensureEmptyDir(this.options.publishModDirFullPath);
|
|
156
170
|
|
|
@@ -158,35 +172,38 @@ export class PublishModule {
|
|
|
158
172
|
const packageJson = await plugins.smartfile.SmartFile.fromString(
|
|
159
173
|
plugins.path.join(this.options.publishModDirFullPath, 'package.json'),
|
|
160
174
|
await this.createPackageJson(),
|
|
161
|
-
'utf8'
|
|
175
|
+
'utf8'
|
|
162
176
|
);
|
|
163
177
|
await packageJson.write();
|
|
164
178
|
|
|
165
179
|
// tsconfig.json
|
|
166
|
-
const
|
|
180
|
+
const tsconfigJson = await plugins.smartfile.SmartFile.fromString(
|
|
167
181
|
plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'),
|
|
168
182
|
await this.createTsconfigJson(),
|
|
169
|
-
'utf8'
|
|
183
|
+
'utf8'
|
|
170
184
|
);
|
|
171
|
-
await
|
|
185
|
+
await tsconfigJson.write();
|
|
172
186
|
|
|
173
|
-
// ts folder
|
|
187
|
+
// ts subfolder, the folder that contains the source code and is being transpiled
|
|
174
188
|
await plugins.smartfile.fs.copy(
|
|
175
189
|
this.options.packageSubFolderFullPath,
|
|
176
|
-
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder)
|
|
190
|
+
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder)
|
|
177
191
|
);
|
|
178
192
|
|
|
179
193
|
// readme
|
|
180
194
|
await plugins.smartfile.fs.copy(
|
|
181
195
|
plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'),
|
|
182
|
-
plugins.path.join(this.options.publishModDirFullPath, 'readme.md')
|
|
196
|
+
plugins.path.join(this.options.publishModDirFullPath, 'readme.md')
|
|
183
197
|
);
|
|
184
198
|
|
|
185
199
|
// license
|
|
186
200
|
await plugins.smartfile.fs.copy(
|
|
187
201
|
plugins.path.join(this.options.monoRepoDir, 'license'),
|
|
188
|
-
plugins.path.join(this.options.publishModDirFullPath, 'license')
|
|
202
|
+
plugins.path.join(this.options.publishModDirFullPath, 'license')
|
|
189
203
|
);
|
|
204
|
+
|
|
205
|
+
// cli stuff
|
|
206
|
+
this.createBinCliSetup();
|
|
190
207
|
}
|
|
191
208
|
|
|
192
209
|
public async build() {
|
|
@@ -196,6 +213,19 @@ export class PublishModule {
|
|
|
196
213
|
await smartshellInstance.exec(`cd ${this.options.publishModDirFullPath} && pnpm run build`);
|
|
197
214
|
}
|
|
198
215
|
|
|
216
|
+
public async createBinCliSetup() {
|
|
217
|
+
const binSetupApplies: boolean =
|
|
218
|
+
this.options.tsPublishJson.bin &&
|
|
219
|
+
Array.isArray(this.options.tsPublishJson.bin) &&
|
|
220
|
+
this.options.tsPublishJson.bin.length > 0;
|
|
221
|
+
const files = await this.tsPublishRef.giteaAssetsInstance.getFiles(
|
|
222
|
+
'git.zone',
|
|
223
|
+
'cli',
|
|
224
|
+
'assets/templates/cli/cli.js'
|
|
225
|
+
);
|
|
226
|
+
await plugins.smartfile.memory.toFs(atob(files[0].base64Content), plugins.path.join(this.options.publishModDirFullPath, 'cli.js'));
|
|
227
|
+
}
|
|
228
|
+
|
|
199
229
|
public async publish() {
|
|
200
230
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
201
231
|
executor: 'bash',
|
|
@@ -207,7 +237,7 @@ export class PublishModule {
|
|
|
207
237
|
await smartshellInstance.exec(
|
|
208
238
|
`cd ${this.options.publishModDirFullPath} && pnpm publish ${
|
|
209
239
|
registryAccessLevel === 'public' ? '--access public' : ''
|
|
210
|
-
} --no-git-checks --registry https://${registryUrl}
|
|
240
|
+
} --no-git-checks --registry https://${registryUrl}`
|
|
211
241
|
);
|
|
212
242
|
}
|
|
213
243
|
}
|
package/ts/classes.tspublish.ts
CHANGED
|
@@ -3,9 +3,16 @@ import * as plugins from './plugins.js';
|
|
|
3
3
|
import * as interfaces from './interfaces/index.js';
|
|
4
4
|
|
|
5
5
|
import { PublishModule } from './classes.publishmodule.js';
|
|
6
|
+
import { GiteaAssets } from './classes.giteaassets.js';
|
|
6
7
|
|
|
7
8
|
export class TsPublish {
|
|
8
|
-
|
|
9
|
+
public giteaAssetsInstance: GiteaAssets;
|
|
10
|
+
|
|
11
|
+
constructor() {
|
|
12
|
+
this.giteaAssetsInstance = new GiteaAssets({
|
|
13
|
+
giteaBaseUrl: 'https://code.foss.global',
|
|
14
|
+
});
|
|
15
|
+
}
|
|
9
16
|
|
|
10
17
|
public async publish(monorepoDirArg: string) {
|
|
11
18
|
const publishModules = await this.getModuleSubDirs(monorepoDirArg);
|
|
@@ -13,7 +20,7 @@ export class TsPublish {
|
|
|
13
20
|
for (const publishModule of Object.keys(publishModules)) {
|
|
14
21
|
logger.log(
|
|
15
22
|
'info',
|
|
16
|
-
`Publishing module: ${publishModule} -> ${publishModules[publishModule].name}
|
|
23
|
+
`Publishing module: ${publishModule} -> ${publishModules[publishModule].name}`
|
|
17
24
|
);
|
|
18
25
|
}
|
|
19
26
|
for (const publishModule of Object.keys(publishModules)) {
|
|
@@ -22,7 +29,7 @@ export class TsPublish {
|
|
|
22
29
|
logger.log('warn', `no name found in tspublish.json for ${publishModule}. Skipping...`);
|
|
23
30
|
continue;
|
|
24
31
|
}
|
|
25
|
-
const publishModuleInstance = new PublishModule({
|
|
32
|
+
const publishModuleInstance = new PublishModule(this, {
|
|
26
33
|
monoRepoDir: monorepoDirArg,
|
|
27
34
|
packageSubFolder: publishModule,
|
|
28
35
|
});
|
|
@@ -48,12 +55,12 @@ export class TsPublish {
|
|
|
48
55
|
|
|
49
56
|
logger.log('info', `found publish module: ${subDir}`);
|
|
50
57
|
publishModules[subDir] = JSON.parse(
|
|
51
|
-
plugins.smartfile.fs.toStringSync(plugins.path.join(subDir, 'tspublish.json'))
|
|
58
|
+
plugins.smartfile.fs.toStringSync(plugins.path.join(subDir, 'tspublish.json'))
|
|
52
59
|
);
|
|
53
60
|
}
|
|
54
61
|
logger.log('ok', `found ${Object.keys(publishModules).length} publish modules`);
|
|
55
62
|
logger.log('info', `Ordering publish modules...`);
|
|
56
|
-
|
|
63
|
+
|
|
57
64
|
return publishModules;
|
|
58
65
|
}
|
|
59
66
|
}
|
package/ts/plugins.ts
CHANGED
|
@@ -9,6 +9,7 @@ import * as smartdelay from '@push.rocks/smartdelay';
|
|
|
9
9
|
import * as smartlog from '@push.rocks/smartlog';
|
|
10
10
|
import * as smartnpm from '@push.rocks/smartnpm';
|
|
11
11
|
import * as smartpath from '@push.rocks/smartpath';
|
|
12
|
+
import * as smartrequest from '@push.rocks/smartrequest';
|
|
12
13
|
import * as smartshell from '@push.rocks/smartshell';
|
|
13
14
|
|
|
14
|
-
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartshell };
|
|
15
|
+
export { smartfile, smartcli, smartdelay, smartlog, smartnpm, smartpath, smartrequest, smartshell };
|