@git.zone/tspublish 1.7.7 → 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 +27 -7
- 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 +51 -25
- 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,6 +14,7 @@ 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,
|
|
@@ -61,8 +64,7 @@ export class PublishModule {
|
|
|
61
64
|
const originalTsConfig = plugins.smartfile.fs.toObjectSync(plugins.path.join(paths.cwd, 'tsconfig.json'));
|
|
62
65
|
if (originalTsConfig?.compilerOptions?.paths) {
|
|
63
66
|
for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) {
|
|
64
|
-
originalTsConfig.compilerOptions.paths[path][0] =
|
|
65
|
-
`.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
67
|
+
originalTsConfig.compilerOptions.paths[path][0] = `.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
const tsconfigJson = {
|
|
@@ -110,6 +112,15 @@ export class PublishModule {
|
|
|
110
112
|
'npmextra.json',
|
|
111
113
|
'readme.md',
|
|
112
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
|
+
} : {},
|
|
113
124
|
};
|
|
114
125
|
return JSON.stringify(packageJson, null, 2);
|
|
115
126
|
}
|
|
@@ -120,14 +131,16 @@ export class PublishModule {
|
|
|
120
131
|
const packageJson = await plugins.smartfile.SmartFile.fromString(plugins.path.join(this.options.publishModDirFullPath, 'package.json'), await this.createPackageJson(), 'utf8');
|
|
121
132
|
await packageJson.write();
|
|
122
133
|
// tsconfig.json
|
|
123
|
-
const
|
|
124
|
-
await
|
|
125
|
-
// 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
|
|
126
137
|
await plugins.smartfile.fs.copy(this.options.packageSubFolderFullPath, plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder));
|
|
127
138
|
// readme
|
|
128
139
|
await plugins.smartfile.fs.copy(plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'), plugins.path.join(this.options.publishModDirFullPath, 'readme.md'));
|
|
129
140
|
// license
|
|
130
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();
|
|
131
144
|
}
|
|
132
145
|
async build() {
|
|
133
146
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
@@ -135,6 +148,13 @@ export class PublishModule {
|
|
|
135
148
|
});
|
|
136
149
|
await smartshellInstance.exec(`cd ${this.options.publishModDirFullPath} && pnpm run build`);
|
|
137
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
|
+
}
|
|
138
158
|
async publish() {
|
|
139
159
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
140
160
|
executor: 'bash',
|
|
@@ -147,4 +167,4 @@ export class PublishModule {
|
|
|
147
167
|
}
|
|
148
168
|
}
|
|
149
169
|
}
|
|
150
|
-
//# 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,13 +35,14 @@ 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
|
...(() => {
|
|
@@ -75,7 +75,7 @@ export class PublishModule {
|
|
|
75
75
|
if (availableVersions.includes(this.options.version)) {
|
|
76
76
|
logger.log(
|
|
77
77
|
'error',
|
|
78
|
-
`package ${this.options.name} already exists with version ${this.options.version}
|
|
78
|
+
`package ${this.options.name} already exists with version ${this.options.version}`
|
|
79
79
|
);
|
|
80
80
|
process.exit(1);
|
|
81
81
|
}
|
|
@@ -93,12 +93,13 @@ export class PublishModule {
|
|
|
93
93
|
|
|
94
94
|
public async createTsconfigJson() {
|
|
95
95
|
const originalTsConfig = plugins.smartfile.fs.toObjectSync(
|
|
96
|
-
plugins.path.join(paths.cwd, 'tsconfig.json')
|
|
96
|
+
plugins.path.join(paths.cwd, 'tsconfig.json')
|
|
97
97
|
);
|
|
98
98
|
if (originalTsConfig?.compilerOptions?.paths) {
|
|
99
99
|
for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) {
|
|
100
|
-
originalTsConfig.compilerOptions.paths[
|
|
101
|
-
|
|
100
|
+
originalTsConfig.compilerOptions.paths[
|
|
101
|
+
path
|
|
102
|
+
][0] = `.${originalTsConfig.compilerOptions.paths[path][0]}`;
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
const tsconfigJson = {
|
|
@@ -147,6 +148,15 @@ export class PublishModule {
|
|
|
147
148
|
'npmextra.json',
|
|
148
149
|
'readme.md',
|
|
149
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
|
+
} : {},
|
|
150
160
|
};
|
|
151
161
|
return JSON.stringify(packageJson, null, 2);
|
|
152
162
|
}
|
|
@@ -154,7 +164,7 @@ export class PublishModule {
|
|
|
154
164
|
public async createPublishModuleDir() {
|
|
155
165
|
this.options.publishModDirFullPath = plugins.path.join(
|
|
156
166
|
this.options.monoRepoDir,
|
|
157
|
-
`dist_publish_${this.options.packageSubFolder}
|
|
167
|
+
`dist_publish_${this.options.packageSubFolder}`
|
|
158
168
|
);
|
|
159
169
|
await plugins.smartfile.fs.ensureEmptyDir(this.options.publishModDirFullPath);
|
|
160
170
|
|
|
@@ -162,35 +172,38 @@ export class PublishModule {
|
|
|
162
172
|
const packageJson = await plugins.smartfile.SmartFile.fromString(
|
|
163
173
|
plugins.path.join(this.options.publishModDirFullPath, 'package.json'),
|
|
164
174
|
await this.createPackageJson(),
|
|
165
|
-
'utf8'
|
|
175
|
+
'utf8'
|
|
166
176
|
);
|
|
167
177
|
await packageJson.write();
|
|
168
178
|
|
|
169
179
|
// tsconfig.json
|
|
170
|
-
const
|
|
180
|
+
const tsconfigJson = await plugins.smartfile.SmartFile.fromString(
|
|
171
181
|
plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'),
|
|
172
182
|
await this.createTsconfigJson(),
|
|
173
|
-
'utf8'
|
|
183
|
+
'utf8'
|
|
174
184
|
);
|
|
175
|
-
await
|
|
185
|
+
await tsconfigJson.write();
|
|
176
186
|
|
|
177
|
-
// ts folder
|
|
187
|
+
// ts subfolder, the folder that contains the source code and is being transpiled
|
|
178
188
|
await plugins.smartfile.fs.copy(
|
|
179
189
|
this.options.packageSubFolderFullPath,
|
|
180
|
-
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder)
|
|
190
|
+
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder)
|
|
181
191
|
);
|
|
182
192
|
|
|
183
193
|
// readme
|
|
184
194
|
await plugins.smartfile.fs.copy(
|
|
185
195
|
plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'),
|
|
186
|
-
plugins.path.join(this.options.publishModDirFullPath, 'readme.md')
|
|
196
|
+
plugins.path.join(this.options.publishModDirFullPath, 'readme.md')
|
|
187
197
|
);
|
|
188
198
|
|
|
189
199
|
// license
|
|
190
200
|
await plugins.smartfile.fs.copy(
|
|
191
201
|
plugins.path.join(this.options.monoRepoDir, 'license'),
|
|
192
|
-
plugins.path.join(this.options.publishModDirFullPath, 'license')
|
|
202
|
+
plugins.path.join(this.options.publishModDirFullPath, 'license')
|
|
193
203
|
);
|
|
204
|
+
|
|
205
|
+
// cli stuff
|
|
206
|
+
this.createBinCliSetup();
|
|
194
207
|
}
|
|
195
208
|
|
|
196
209
|
public async build() {
|
|
@@ -200,6 +213,19 @@ export class PublishModule {
|
|
|
200
213
|
await smartshellInstance.exec(`cd ${this.options.publishModDirFullPath} && pnpm run build`);
|
|
201
214
|
}
|
|
202
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
|
+
|
|
203
229
|
public async publish() {
|
|
204
230
|
const smartshellInstance = new plugins.smartshell.Smartshell({
|
|
205
231
|
executor: 'bash',
|
|
@@ -211,7 +237,7 @@ export class PublishModule {
|
|
|
211
237
|
await smartshellInstance.exec(
|
|
212
238
|
`cd ${this.options.publishModDirFullPath} && pnpm publish ${
|
|
213
239
|
registryAccessLevel === 'public' ? '--access public' : ''
|
|
214
|
-
} --no-git-checks --registry https://${registryUrl}
|
|
240
|
+
} --no-git-checks --registry https://${registryUrl}`
|
|
215
241
|
);
|
|
216
242
|
}
|
|
217
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 };
|