@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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tspublish',
6
- version: '1.7.7',
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
- export interface ITsPublishJson {
2
- name: string;
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 originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'), await this.createTsconfigJson(), 'utf8');
124
- await originalTsConfigJson.write();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5wdWJsaXNobW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5wdWJsaXNobW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFtQnRDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLFlBQVksT0FBOEI7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQzlCLENBQUM7UUFFRixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FDM0UsQ0FBQztRQUNGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDcEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUks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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50c3B1Ymxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnRzcHVibGlzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLGdCQUFlLENBQUM7SUFFVCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUM7UUFDbkYsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLEdBQUcsQ0FDUixNQUFNLEVBQ04sc0JBQXNCLGFBQWEsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQy9FLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHVDQUF1QyxhQUFhLGVBQWUsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQzlDLFdBQVcsRUFBRSxjQUFjO2dCQUMzQixnQkFBZ0IsRUFBRSxhQUFhO2FBQ2hDLENBQUMsQ0FBQztZQUNILE1BQU0scUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsTUFBTSxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3JELE1BQU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEMsTUFBTSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELE1BQU0sY0FBYyxHQUFpRCxFQUFFLENBQUM7UUFDeEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM3QixTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQixTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHlCQUF5QixNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FDL0UsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFFbEQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGIn0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy50c3B1Ymxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnRzcHVibGlzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sU0FBUztJQUdwQjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUN6QyxZQUFZLEVBQUUsMEJBQTBCO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUM7UUFDbkYsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLEdBQUcsQ0FDUixNQUFNLEVBQ04sc0JBQXNCLGFBQWEsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQy9FLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHVDQUF1QyxhQUFhLGVBQWUsQ0FBQyxDQUFDO2dCQUN4RixTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUNwRCxXQUFXLEVBQUUsY0FBYztnQkFDM0IsZ0JBQWdCLEVBQUUsYUFBYTthQUNoQyxDQUFDLENBQUM7WUFDSCxNQUFNLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0scUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNyRCxNQUFNLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BDLE1BQU0scUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBYztRQUMxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxNQUFNLGNBQWMsR0FBaUQsRUFBRSxDQUFDO1FBQ3hFLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekUsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN0RCxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQy9FLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sa0JBQWtCLENBQUMsQ0FBQztRQUNoRixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBRWxELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
@@ -6,4 +6,8 @@ export interface ITsPublishJson {
6
6
  name: string;
7
7
  dependencies: string[];
8
8
  registries: string[];
9
+ /**
10
+ * allows the sepcification of bin names that invoke cli scripts
11
+ */
12
+ bin: string[];
9
13
  }
@@ -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 };
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
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.7.7",
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": [
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tspublish',
6
- version: '1.7.7',
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
  }
@@ -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
- export interface ITsPublishJson {
6
- name: string;
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[path][0] =
101
- `.${originalTsConfig.compilerOptions.paths[path][0]}`;
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 originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(
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 originalTsConfigJson.write();
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
  }
@@ -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
- constructor() {}
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
  }
@@ -6,4 +6,8 @@ export interface ITsPublishJson {
6
6
  name: string;
7
7
  dependencies: string[];
8
8
  registries: string[];
9
+ /**
10
+ * allows the sepcification of bin names that invoke cli scripts
11
+ */
12
+ bin: string[];
9
13
  }
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 };