@tappify/cli 1.0.0 → 1.1.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.
Files changed (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -98
  3. package/dist/src/app.module.js +1 -1
  4. package/dist/src/app.module.js.map +1 -1
  5. package/dist/src/core/api/api.service.d.ts +1 -1
  6. package/dist/src/core/api/api.service.js +1 -1
  7. package/dist/src/core/api/api.service.js.map +1 -1
  8. package/dist/src/core/auth/auth.service.d.ts +1 -1
  9. package/dist/src/core/auth/auth.service.js +1 -1
  10. package/dist/src/core/auth/auth.service.js.map +1 -1
  11. package/dist/src/core/core.module.js +3 -2
  12. package/dist/src/core/core.module.js.map +1 -1
  13. package/dist/src/core/index.d.ts +1 -0
  14. package/dist/src/core/index.js +1 -0
  15. package/dist/src/core/index.js.map +1 -1
  16. package/dist/src/core/shell/shell.service.d.ts +17 -0
  17. package/dist/src/core/shell/shell.service.js +60 -0
  18. package/dist/src/core/shell/shell.service.js.map +1 -0
  19. package/dist/src/domains/auth/runners/login.runner.d.ts +1 -1
  20. package/dist/src/domains/auth/runners/login.runner.js +1 -1
  21. package/dist/src/domains/auth/runners/login.runner.js.map +1 -1
  22. package/dist/src/domains/auth/runners/logout.runner.d.ts +1 -1
  23. package/dist/src/domains/auth/runners/logout.runner.js +1 -1
  24. package/dist/src/domains/auth/runners/logout.runner.js.map +1 -1
  25. package/dist/src/domains/deploy/runners/deploy.runner.d.ts +1 -1
  26. package/dist/src/domains/deploy/runners/deploy.runner.js +2 -2
  27. package/dist/src/domains/deploy/runners/deploy.runner.js.map +1 -1
  28. package/dist/src/domains/deployments/deployments.module.js +5 -1
  29. package/dist/src/domains/deployments/deployments.module.js.map +1 -1
  30. package/dist/src/domains/deployments/runners/configure.runner.d.ts +19 -0
  31. package/dist/src/domains/deployments/runners/configure.runner.js +323 -0
  32. package/dist/src/domains/deployments/runners/configure.runner.js.map +1 -0
  33. package/dist/src/domains/deployments/runners/deployments.runner.d.ts +4 -0
  34. package/dist/src/domains/deployments/runners/deployments.runner.js +27 -0
  35. package/dist/src/domains/deployments/runners/deployments.runner.js.map +1 -0
  36. package/dist/src/domains/deployments/runners/index.d.ts +2 -0
  37. package/dist/src/domains/deployments/runners/index.js +2 -0
  38. package/dist/src/domains/deployments/runners/index.js.map +1 -1
  39. package/dist/tsconfig.build.tsbuildinfo +1 -1
  40. package/package.json +30 -27
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var DeploymentsConfigureRunner_1;
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.DeploymentsConfigureRunner = void 0;
47
+ const api_service_js_1 = require("../../../core/api/api.service.js");
48
+ const config_service_js_1 = require("../../../core/config/config.service.js");
49
+ const shell_service_js_1 = require("../../../core/shell/shell.service.js");
50
+ const common_1 = require("@nestjs/common");
51
+ const nest_commander_1 = require("nest-commander");
52
+ const node_crypto_1 = require("node:crypto");
53
+ const fs = __importStar(require("node:fs"));
54
+ const os = __importStar(require("node:os"));
55
+ const path = __importStar(require("node:path"));
56
+ const readline = __importStar(require("node:readline"));
57
+ const TAP_CONFIG = 'tap.config.json';
58
+ let DeploymentsConfigureRunner = DeploymentsConfigureRunner_1 = class DeploymentsConfigureRunner extends nest_commander_1.CommandRunner {
59
+ config;
60
+ api;
61
+ shell;
62
+ logger = new common_1.Logger(DeploymentsConfigureRunner_1.name);
63
+ constructor(config, api, shell) {
64
+ super();
65
+ this.config = config;
66
+ this.api = api;
67
+ this.shell = shell;
68
+ }
69
+ async run(_params, options) {
70
+ const chalk = (await import('chalk')).default;
71
+ const ora = (await import('ora')).default;
72
+ if (!this.config.isAuthenticated()) {
73
+ console.error(chalk.red('Not authenticated. Run `tappify login` first.'));
74
+ return;
75
+ }
76
+ const rl = readline.createInterface({
77
+ input: process.stdin,
78
+ output: process.stdout,
79
+ });
80
+ const ask = (question, def) => new Promise(resolve => {
81
+ const suffix = def ? ` (${def})` : '';
82
+ rl.question(`${chalk.cyan('?')} ${question}${suffix}: `, a => resolve(a.trim() || def || ''));
83
+ });
84
+ const select = async (question, choices) => {
85
+ console.log(`\n${chalk.cyan('?')} ${question}`);
86
+ choices.forEach((c, i) => console.log(` ${chalk.bold(String(i + 1))}. ${c}`));
87
+ const raw = await ask('Choose', '1');
88
+ const n = Number.parseInt(raw, 10);
89
+ return Number.isNaN(n) || n < 1 || n > choices.length ? 0 : n - 1;
90
+ };
91
+ let tempKeyPath = null;
92
+ try {
93
+ console.log();
94
+ console.log(chalk.bold.cyan(' Tappify · configure code signing'));
95
+ console.log(chalk.dim(' We generate your iOS signing certs with fastlane match and store them\n encrypted in a private repo — all wrapped here, no fastlane prompts.\n'));
96
+ const appId = await this.resolveAppId(options?.app, ask, select, chalk);
97
+ if (!appId)
98
+ return;
99
+ const hasGit = await this.shell.which('git');
100
+ const hasFastlane = await this.shell.which('fastlane');
101
+ if (!hasGit || !hasFastlane) {
102
+ console.error(chalk.red('\n Missing prerequisites:'));
103
+ if (!hasGit)
104
+ console.error(chalk.red(' • git — https://git-scm.com'));
105
+ if (!hasFastlane)
106
+ console.error(chalk.red(' • fastlane — `brew install fastlane` (needs Ruby)'));
107
+ console.error(chalk.dim(' Install the above and re-run `tappify deployments configure`.'));
108
+ return;
109
+ }
110
+ const repoChoice = await select('Where should the encrypted certificates repo live?', [
111
+ 'Let Tappify create a private repo for me (recommended)',
112
+ 'Create it with the GitHub CLI (`gh`) on this machine',
113
+ "I'll paste an existing empty private repo URL",
114
+ ]);
115
+ let gitUrl = '';
116
+ let gitBranch = 'main';
117
+ if (repoChoice === 0) {
118
+ const spinner = ora('Creating a private certificates repo…').start();
119
+ try {
120
+ const res = await this.api.post(`/deployments/apps/${appId}/signing/match-repo`, {});
121
+ gitUrl = res.gitUrl;
122
+ gitBranch = res.defaultBranch || 'main';
123
+ spinner.succeed(chalk.green(`Repo ready · ${gitUrl}`));
124
+ }
125
+ catch (err) {
126
+ spinner.fail(chalk.red(err.message));
127
+ return;
128
+ }
129
+ }
130
+ else if (repoChoice === 1) {
131
+ if (!(await this.shell.which('gh'))) {
132
+ console.error(chalk.red(' `gh` not found — install it from https://cli.github.com'));
133
+ return;
134
+ }
135
+ const name = await ask('New private repo name', 'ios-certificates');
136
+ const spinner = ora(`Creating ${name} with gh…`).start();
137
+ const res = await this.shell.run('gh', [
138
+ 'repo',
139
+ 'create',
140
+ name,
141
+ '--private',
142
+ '--clone=false',
143
+ ]);
144
+ if (res.code !== 0) {
145
+ spinner.fail(chalk.red('gh could not create the repo'));
146
+ console.error(chalk.dim(res.output.trim()));
147
+ return;
148
+ }
149
+ const match = res.output.match(/https?:\/\/\S+/);
150
+ gitUrl = match
151
+ ? `${match[0].replace(/\.git$/, '')}.git`
152
+ : await ask('Repo git URL');
153
+ spinner.succeed(chalk.green(`Repo ready · ${gitUrl}`));
154
+ }
155
+ else {
156
+ gitUrl = await ask('Existing empty private repo URL (git)');
157
+ gitBranch = await ask('Branch', 'main');
158
+ if (!gitUrl) {
159
+ console.error(chalk.red(' A repo URL is required.'));
160
+ return;
161
+ }
162
+ }
163
+ let passphrase = await ask('Match passphrase (encrypts the certs — leave blank to generate)');
164
+ if (!passphrase) {
165
+ passphrase = (0, node_crypto_1.randomBytes)(18).toString('base64url');
166
+ console.log(chalk.yellow(` Generated passphrase: ${chalk.bold(passphrase)} (save this)`));
167
+ }
168
+ const asc = await this.resolveAscKey(appId, ask, chalk);
169
+ if (!asc)
170
+ return;
171
+ tempKeyPath = path.join(os.tmpdir(), `tappify-asc-${appId}-${Date.now()}.json`);
172
+ fs.writeFileSync(tempKeyPath, JSON.stringify({
173
+ key_id: asc.keyId,
174
+ issuer_id: asc.issuerId,
175
+ key: Buffer.from(asc.p8Base64, 'base64').toString('utf-8'),
176
+ in_house: false,
177
+ }));
178
+ const spinner = ora('Generating signing certificates…').start();
179
+ const result = await this.shell.run('fastlane', [
180
+ 'match',
181
+ 'appstore',
182
+ '--git_url',
183
+ gitUrl,
184
+ '--git_branch',
185
+ gitBranch,
186
+ '--api_key_path',
187
+ tempKeyPath,
188
+ '--readonly',
189
+ 'false',
190
+ ], {
191
+ env: {
192
+ MATCH_PASSWORD: passphrase,
193
+ FASTLANE_DISABLE_COLORS: '1',
194
+ },
195
+ onLine: line => {
196
+ if (/error|failed|invalid/i.test(line))
197
+ return;
198
+ spinner.text = `match · ${line.slice(0, 60)}`;
199
+ },
200
+ });
201
+ if (result.code !== 0) {
202
+ spinner.fail(chalk.red('fastlane match failed'));
203
+ console.error(chalk.dim(result.output.split('\n').slice(-12).join('\n')));
204
+ return;
205
+ }
206
+ spinner.succeed(chalk.green('Certificates generated & encrypted'));
207
+ const reg = ora('Registering signing config with Tappify…').start();
208
+ try {
209
+ await this.api.post(`/deployments/apps/${appId}/signing/match`, {
210
+ gitUrl,
211
+ gitBranch,
212
+ passphrase,
213
+ });
214
+ reg.succeed(chalk.green('Signing configured'));
215
+ }
216
+ catch (err) {
217
+ reg.fail(chalk.red(err.message));
218
+ return;
219
+ }
220
+ console.log();
221
+ console.log(chalk.bold.green(' ✓ Done — your next build can sign automatically.'));
222
+ console.log(chalk.dim(' The signing page will show as configured on refresh.'));
223
+ }
224
+ finally {
225
+ rl.close();
226
+ if (tempKeyPath) {
227
+ try {
228
+ fs.unlinkSync(tempKeyPath);
229
+ }
230
+ catch {
231
+ }
232
+ }
233
+ }
234
+ }
235
+ async resolveAppId(flag, ask, select, chalk) {
236
+ if (flag)
237
+ return flag;
238
+ const configPath = path.resolve(process.cwd(), TAP_CONFIG);
239
+ if (fs.existsSync(configPath)) {
240
+ try {
241
+ const parsed = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
242
+ if (parsed.appId)
243
+ return parsed.appId;
244
+ }
245
+ catch {
246
+ }
247
+ }
248
+ let projects;
249
+ try {
250
+ projects = (await this.api.get('/projects')).items;
251
+ }
252
+ catch (err) {
253
+ console.error(chalk.red(err.message));
254
+ return '';
255
+ }
256
+ if (!projects?.length) {
257
+ console.error(chalk.red(' No projects found for your account.'));
258
+ return '';
259
+ }
260
+ const project = projects.length === 1
261
+ ? projects[0]
262
+ : projects[await select('Which project?', projects.map(p => p.name))];
263
+ let apps;
264
+ try {
265
+ apps = (await this.api.get(`/projects/${project.id}/apps`)).apps;
266
+ }
267
+ catch (err) {
268
+ console.error(chalk.red(err.message));
269
+ return '';
270
+ }
271
+ if (!apps?.length) {
272
+ console.error(chalk.red(` No apps in "${project.name}". Add an app first.`));
273
+ return '';
274
+ }
275
+ if (apps.length === 1)
276
+ return apps[0].id;
277
+ const idx = await select('Which app?', apps.map(a => `${a.name}${a.platform ? ` · ${a.platform}` : ''}${a.isLinked ? '' : ' (not linked)'}`));
278
+ return apps[idx].id;
279
+ }
280
+ async resolveAscKey(appId, ask, chalk) {
281
+ try {
282
+ return await this.api.get(`/deployments/apps/${appId}/signing/asc-key`);
283
+ }
284
+ catch {
285
+ console.log(chalk.yellow(' No connected App Store Connect key found — enter one to continue.'));
286
+ const issuerId = await ask('ASC Issuer ID');
287
+ const keyId = await ask('ASC Key ID');
288
+ const p8Path = await ask('Path to your .p8 key file');
289
+ if (!issuerId || !keyId || !p8Path || !fs.existsSync(p8Path)) {
290
+ console.error(chalk.red(' Incomplete ASC key details.'));
291
+ return null;
292
+ }
293
+ return {
294
+ issuerId,
295
+ keyId,
296
+ p8Base64: fs.readFileSync(p8Path).toString('base64'),
297
+ };
298
+ }
299
+ }
300
+ parseApp(val) {
301
+ return val;
302
+ }
303
+ };
304
+ exports.DeploymentsConfigureRunner = DeploymentsConfigureRunner;
305
+ __decorate([
306
+ (0, nest_commander_1.Option)({
307
+ flags: '-a, --app <id>',
308
+ description: 'App id to configure signing for',
309
+ }),
310
+ __metadata("design:type", Function),
311
+ __metadata("design:paramtypes", [String]),
312
+ __metadata("design:returntype", String)
313
+ ], DeploymentsConfigureRunner.prototype, "parseApp", null);
314
+ exports.DeploymentsConfigureRunner = DeploymentsConfigureRunner = DeploymentsConfigureRunner_1 = __decorate([
315
+ (0, nest_commander_1.SubCommand)({
316
+ name: 'configure',
317
+ description: 'Configure CI code signing (fastlane match) for an app',
318
+ }),
319
+ __metadata("design:paramtypes", [config_service_js_1.ConfigService,
320
+ api_service_js_1.ApiService,
321
+ shell_service_js_1.ShellService])
322
+ ], DeploymentsConfigureRunner);
323
+ //# sourceMappingURL=configure.runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.runner.js","sourceRoot":"","sources":["../../../../../src/domains/deployments/runners/configure.runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ export declare class DeploymentsCommand extends CommandRunner {
3
+ run(): Promise<void>;
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DeploymentsCommand = void 0;
10
+ const nest_commander_1 = require("nest-commander");
11
+ const configure_runner_js_1 = require("./configure.runner.js");
12
+ let DeploymentsCommand = class DeploymentsCommand extends nest_commander_1.CommandRunner {
13
+ async run() {
14
+ const chalk = (await import('chalk')).default;
15
+ console.log(`${chalk.bold('Usage:')} tappify deployments <command>\n\n` +
16
+ ` ${chalk.cyan('configure')} Configure CI code signing for an app`);
17
+ }
18
+ };
19
+ exports.DeploymentsCommand = DeploymentsCommand;
20
+ exports.DeploymentsCommand = DeploymentsCommand = __decorate([
21
+ (0, nest_commander_1.Command)({
22
+ name: 'deployments',
23
+ description: 'Manage app deployments',
24
+ subCommands: [configure_runner_js_1.DeploymentsConfigureRunner],
25
+ })
26
+ ], DeploymentsCommand);
27
+ //# sourceMappingURL=deployments.runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.runner.js","sourceRoot":"","sources":["../../../../../src/domains/deployments/runners/deployments.runner.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mDAAwD;AACxD,+DAAmE;AAW5D,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,8BAAa;IACnD,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9C,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oCAAoC;YACzD,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAyC,CACxE,CAAC;IACJ,CAAC;CACF,CAAA;AARY,gDAAkB;6BAAlB,kBAAkB;IAL9B,IAAA,wBAAO,EAAC;QACP,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,CAAC,gDAA0B,CAAC;KAC1C,CAAC;GACW,kBAAkB,CAQ9B"}
@@ -1 +1,3 @@
1
+ export * from './configure.runner';
1
2
  export * from './create-deployment.runner';
3
+ export * from './deployments.runner';
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./configure.runner"), exports);
17
18
  __exportStar(require("./create-deployment.runner"), exports);
19
+ __exportStar(require("./deployments.runner"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domains/deployments/runners/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domains/deployments/runners/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,6DAA2C;AAC3C,uDAAqC"}