@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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/tspublish',
6
- version: '1.7.6',
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,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
- resultDependencies[dependency] = monoRepoPackageJson.dependencies[dependency];
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 originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'), await this.createTsconfigJson(), 'utf8');
119
- await originalTsConfigJson.write();
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,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.6",
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.6',
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,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
- resultDependencies[dependency] = monoRepoPackageJson.dependencies[dependency];
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[path][0] =
97
- `.${originalTsConfig.compilerOptions.paths[path][0]}`;
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 originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(
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 originalTsConfigJson.write();
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
  }
@@ -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 };