@sw-tsdk/plugin-connector 3.13.1 → 3.13.2-next.3dfd44a

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 (74) hide show
  1. package/README.md +18 -18
  2. package/lib/commands/connector/build.js +168 -44
  3. package/lib/commands/connector/build.js.map +1 -1
  4. package/lib/commands/connector/sign.js +108 -12
  5. package/lib/commands/connector/sign.js.map +1 -1
  6. package/lib/commands/connector/validate.js +110 -10
  7. package/lib/commands/connector/validate.js.map +1 -1
  8. package/lib/commands/migrator/convert.d.ts +3 -0
  9. package/lib/commands/migrator/convert.js +201 -20
  10. package/lib/commands/migrator/convert.js.map +1 -1
  11. package/lib/templates/migrator-runners/plugin_override.txt +76 -4
  12. package/lib/templates/migrator-runners/runner_override.txt +30 -0
  13. package/lib/templates/migrator-runners/script_override.txt +77 -5
  14. package/lib/templates/swimlane/__init__.py +18 -0
  15. package/lib/templates/swimlane/core/__init__.py +0 -0
  16. package/lib/templates/swimlane/core/adapters/__init__.py +10 -0
  17. package/lib/templates/swimlane/core/adapters/app.py +59 -0
  18. package/lib/templates/swimlane/core/adapters/app_revision.py +49 -0
  19. package/lib/templates/swimlane/core/adapters/helper.py +84 -0
  20. package/lib/templates/swimlane/core/adapters/record.py +468 -0
  21. package/lib/templates/swimlane/core/adapters/record_revision.py +43 -0
  22. package/lib/templates/swimlane/core/adapters/report.py +65 -0
  23. package/lib/templates/swimlane/core/adapters/task.py +58 -0
  24. package/lib/templates/swimlane/core/adapters/usergroup.py +183 -0
  25. package/lib/templates/swimlane/core/bulk.py +48 -0
  26. package/lib/templates/swimlane/core/cache.py +165 -0
  27. package/lib/templates/swimlane/core/client.py +466 -0
  28. package/lib/templates/swimlane/core/cursor.py +100 -0
  29. package/lib/templates/swimlane/core/fields/__init__.py +46 -0
  30. package/lib/templates/swimlane/core/fields/attachment.py +82 -0
  31. package/lib/templates/swimlane/core/fields/base/__init__.py +15 -0
  32. package/lib/templates/swimlane/core/fields/base/cursor.py +90 -0
  33. package/lib/templates/swimlane/core/fields/base/field.py +149 -0
  34. package/lib/templates/swimlane/core/fields/base/multiselect.py +116 -0
  35. package/lib/templates/swimlane/core/fields/comment.py +48 -0
  36. package/lib/templates/swimlane/core/fields/datetime.py +112 -0
  37. package/lib/templates/swimlane/core/fields/history.py +28 -0
  38. package/lib/templates/swimlane/core/fields/list.py +266 -0
  39. package/lib/templates/swimlane/core/fields/number.py +38 -0
  40. package/lib/templates/swimlane/core/fields/reference.py +169 -0
  41. package/lib/templates/swimlane/core/fields/text.py +30 -0
  42. package/lib/templates/swimlane/core/fields/tracking.py +10 -0
  43. package/lib/templates/swimlane/core/fields/usergroup.py +137 -0
  44. package/lib/templates/swimlane/core/fields/valueslist.py +70 -0
  45. package/lib/templates/swimlane/core/resolver.py +46 -0
  46. package/lib/templates/swimlane/core/resources/__init__.py +0 -0
  47. package/lib/templates/swimlane/core/resources/app.py +136 -0
  48. package/lib/templates/swimlane/core/resources/app_revision.py +43 -0
  49. package/lib/templates/swimlane/core/resources/attachment.py +64 -0
  50. package/lib/templates/swimlane/core/resources/base.py +55 -0
  51. package/lib/templates/swimlane/core/resources/comment.py +33 -0
  52. package/lib/templates/swimlane/core/resources/record.py +499 -0
  53. package/lib/templates/swimlane/core/resources/record_revision.py +44 -0
  54. package/lib/templates/swimlane/core/resources/report.py +259 -0
  55. package/lib/templates/swimlane/core/resources/revision_base.py +69 -0
  56. package/lib/templates/swimlane/core/resources/task.py +16 -0
  57. package/lib/templates/swimlane/core/resources/usergroup.py +166 -0
  58. package/lib/templates/swimlane/core/search.py +31 -0
  59. package/lib/templates/swimlane/core/wrappedsession.py +12 -0
  60. package/lib/templates/swimlane/exceptions.py +191 -0
  61. package/lib/templates/swimlane/utils/__init__.py +132 -0
  62. package/lib/templates/swimlane/utils/date_validator.py +4 -0
  63. package/lib/templates/swimlane/utils/list_validator.py +7 -0
  64. package/lib/templates/swimlane/utils/str_validator.py +10 -0
  65. package/lib/templates/swimlane/utils/version.py +101 -0
  66. package/lib/transformers/base-transformer.js +61 -14
  67. package/lib/transformers/base-transformer.js.map +1 -1
  68. package/lib/transformers/connector-generator.d.ts +104 -2
  69. package/lib/transformers/connector-generator.js +1234 -51
  70. package/lib/transformers/connector-generator.js.map +1 -1
  71. package/lib/types/migrator-types.d.ts +22 -0
  72. package/lib/types/migrator-types.js.map +1 -1
  73. package/oclif.manifest.json +1 -1
  74. package/package.json +6 -6
package/README.md CHANGED
@@ -16,7 +16,7 @@ $ npm install -g @sw-tsdk/plugin-connector
16
16
  $ sw-tsdk-connector COMMAND
17
17
  running command...
18
18
  $ sw-tsdk-connector (--version)
19
- @sw-tsdk/plugin-connector/3.13.1 linux-x64 node-v20.19.0
19
+ @sw-tsdk/plugin-connector/3.13.2-next.3dfd44a linux-x64 node-v20.19.0
20
20
  $ sw-tsdk-connector --help [COMMAND]
21
21
  USAGE
22
22
  $ sw-tsdk-connector COMMAND
@@ -61,7 +61,7 @@ DESCRIPTION
61
61
  Update a connector action.
62
62
  ```
63
63
 
64
- _See code: [lib/commands/action/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/action/add.js)_
64
+ _See code: [lib/commands/action/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/action/add.js)_
65
65
 
66
66
  ## `sw-tsdk-connector action:generate:data`
67
67
 
@@ -86,7 +86,7 @@ DESCRIPTION
86
86
  Use to test a task in an integration
87
87
  ```
88
88
 
89
- _See code: [lib/commands/action/generate/data.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/action/generate/data.js)_
89
+ _See code: [lib/commands/action/generate/data.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/action/generate/data.js)_
90
90
 
91
91
  ## `sw-tsdk-connector action:generate:input`
92
92
 
@@ -111,7 +111,7 @@ DESCRIPTION
111
111
  Update action input schema.
112
112
  ```
113
113
 
114
- _See code: [lib/commands/action/generate/input.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/action/generate/input.js)_
114
+ _See code: [lib/commands/action/generate/input.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/action/generate/input.js)_
115
115
 
116
116
  ## `sw-tsdk-connector action:generate:output`
117
117
 
@@ -135,7 +135,7 @@ DESCRIPTION
135
135
  Update a connector action.
136
136
  ```
137
137
 
138
- _See code: [lib/commands/action/generate/output.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/action/generate/output.js)_
138
+ _See code: [lib/commands/action/generate/output.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/action/generate/output.js)_
139
139
 
140
140
  ## `sw-tsdk-connector action:run:local`
141
141
 
@@ -164,7 +164,7 @@ DESCRIPTION
164
164
  Runs a connector action. (Defaults to current image version in local repository).
165
165
  ```
166
166
 
167
- _See code: [lib/commands/action/run/local.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/action/run/local.js)_
167
+ _See code: [lib/commands/action/run/local.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/action/run/local.js)_
168
168
 
169
169
  ## `sw-tsdk-connector asset:add`
170
170
 
@@ -185,7 +185,7 @@ DESCRIPTION
185
185
  Update a connector action.
186
186
  ```
187
187
 
188
- _See code: [lib/commands/asset/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/asset/add.js)_
188
+ _See code: [lib/commands/asset/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/asset/add.js)_
189
189
 
190
190
  ## `sw-tsdk-connector connector:build`
191
191
 
@@ -215,7 +215,7 @@ DESCRIPTION
215
215
  Builds a local docker image of the connector.
216
216
  ```
217
217
 
218
- _See code: [lib/commands/connector/build.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/build.js)_
218
+ _See code: [lib/commands/connector/build.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/build.js)_
219
219
 
220
220
  ## `sw-tsdk-connector connector:create`
221
221
 
@@ -249,7 +249,7 @@ DESCRIPTION
249
249
  Scaffold a new connector
250
250
  ```
251
251
 
252
- _See code: [lib/commands/connector/create.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/create.js)_
252
+ _See code: [lib/commands/connector/create.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/create.js)_
253
253
 
254
254
  ## `sw-tsdk-connector connector:create:openapi`
255
255
 
@@ -278,7 +278,7 @@ DESCRIPTION
278
278
  Scaffold a new connector
279
279
  ```
280
280
 
281
- _See code: [lib/commands/connector/create/openapi.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/create/openapi.js)_
281
+ _See code: [lib/commands/connector/create/openapi.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/create/openapi.js)_
282
282
 
283
283
  ## `sw-tsdk-connector connector:create:source`
284
284
 
@@ -296,7 +296,7 @@ DESCRIPTION
296
296
  Generates 11x source from 10x
297
297
  ```
298
298
 
299
- _See code: [lib/commands/connector/create/source.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/create/source.js)_
299
+ _See code: [lib/commands/connector/create/source.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/create/source.js)_
300
300
 
301
301
  ## `sw-tsdk-connector connector:lint`
302
302
 
@@ -319,7 +319,7 @@ DESCRIPTION
319
319
  Use to lint the connector
320
320
  ```
321
321
 
322
- _See code: [lib/commands/connector/lint.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/lint.js)_
322
+ _See code: [lib/commands/connector/lint.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/lint.js)_
323
323
 
324
324
  ## `sw-tsdk-connector connector:logo`
325
325
 
@@ -338,7 +338,7 @@ DESCRIPTION
338
338
  Update a connector.
339
339
  ```
340
340
 
341
- _See code: [lib/commands/connector/logo.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/logo.js)_
341
+ _See code: [lib/commands/connector/logo.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/logo.js)_
342
342
 
343
343
  ## `sw-tsdk-connector connector:sign`
344
344
 
@@ -363,7 +363,7 @@ DESCRIPTION
363
363
  Builds a local docker image of the connector.
364
364
  ```
365
365
 
366
- _See code: [lib/commands/connector/sign.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/sign.js)_
366
+ _See code: [lib/commands/connector/sign.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/sign.js)_
367
367
 
368
368
  ## `sw-tsdk-connector connector:update`
369
369
 
@@ -383,7 +383,7 @@ DESCRIPTION
383
383
  Update a connector.
384
384
  ```
385
385
 
386
- _See code: [lib/commands/connector/update.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/update.js)_
386
+ _See code: [lib/commands/connector/update.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/update.js)_
387
387
 
388
388
  ## `sw-tsdk-connector connector:validate`
389
389
 
@@ -406,7 +406,7 @@ DESCRIPTION
406
406
  Use to validate an integration
407
407
  ```
408
408
 
409
- _See code: [lib/commands/connector/validate.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/connector/validate.js)_
409
+ _See code: [lib/commands/connector/validate.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/connector/validate.js)_
410
410
 
411
411
  ## `sw-tsdk-connector migrator:convert`
412
412
 
@@ -432,7 +432,7 @@ DESCRIPTION
432
432
  Convert scripts and forked plugins from Swimlane V10x to connectors.
433
433
  ```
434
434
 
435
- _See code: [lib/commands/migrator/convert.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/migrator/convert.js)_
435
+ _See code: [lib/commands/migrator/convert.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/migrator/convert.js)_
436
436
 
437
437
  ## `sw-tsdk-connector migrator:export`
438
438
 
@@ -453,5 +453,5 @@ DESCRIPTION
453
453
  Use to export python scripts from a Swimlane instance
454
454
  ```
455
455
 
456
- _See code: [lib/commands/migrator/export.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.1/lib/commands/migrator/export.js)_
456
+ _See code: [lib/commands/migrator/export.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.2-next.3dfd44a/lib/commands/migrator/export.js)_
457
457
  <!-- commandsstop -->
@@ -22,66 +22,190 @@ class Build extends core_2.Base {
22
22
  let { 'signing-password': signingPassword, 'key-name': keyName, } = flags;
23
23
  directory = (0, node_path_1.resolve)(directory || process.cwd());
24
24
  if (save) {
25
- const answers = await (0, inquirer_1.prompt)([await this.buildKeyQuestion(keyName), {
26
- type: 'password',
27
- name: 'signingPassword',
28
- message: 'Enter a signing password',
29
- when: () => (!signingPassword || signingPassword.length === 0),
30
- }]);
31
- signingPassword = signingPassword || answers.signingPassword;
32
- keyName = keyName || answers.keyName;
25
+ try {
26
+ const answers = await (0, inquirer_1.prompt)([await this.buildKeyQuestion(keyName), {
27
+ type: 'password',
28
+ name: 'signingPassword',
29
+ message: 'Enter a signing password',
30
+ when: () => (!signingPassword || signingPassword.length === 0),
31
+ }]);
32
+ signingPassword = signingPassword || answers.signingPassword;
33
+ keyName = keyName || answers.keyName;
34
+ }
35
+ catch (error) {
36
+ const errorMessage = error instanceof Error ? error.message : String(error);
37
+ core_1.ux.error('Failed to prompt for signing credentials.', { exit: false });
38
+ if (errorMessage) {
39
+ core_1.ux.log('');
40
+ core_1.ux.log('Error details:');
41
+ core_1.ux.log(` ${errorMessage}`);
42
+ }
43
+ core_1.ux.log('');
44
+ core_1.ux.log('Troubleshooting steps:');
45
+ core_1.ux.log(' 1. Ensure you have a terminal that supports interactive prompts');
46
+ core_1.ux.log(' 2. Try providing --signing-password and --key-name as command flags');
47
+ core_1.ux.log(' 3. Verify keys are available: tsdk turbine connector keys list local');
48
+ throw error;
49
+ }
33
50
  }
34
51
  try {
35
52
  await node_fs_1.promises.access(directory);
36
53
  }
37
- catch {
38
- this.error(`Could not access ${directory}`);
54
+ catch (error) {
55
+ const errorMessage = error instanceof Error ? error.message : String(error);
56
+ core_1.ux.error(`Could not access directory: ${directory}`, { exit: false });
57
+ core_1.ux.log('');
58
+ core_1.ux.log('Error details:');
59
+ core_1.ux.log(` ${errorMessage}`);
60
+ core_1.ux.log('');
61
+ core_1.ux.log('Please verify:');
62
+ core_1.ux.log(` 1. The directory path is correct: ${directory}`);
63
+ core_1.ux.log(' 2. The directory exists');
64
+ core_1.ux.log(' 3. You have proper permissions to access the directory');
65
+ this.error('Directory access failed');
39
66
  }
40
67
  const docker = new docker_1.Docker();
41
68
  core_1.ux.action.start('Checking for docker...');
42
- await docker.ping();
43
- core_1.ux.action.stop();
69
+ try {
70
+ await docker.ping();
71
+ core_1.ux.action.stop();
72
+ }
73
+ catch (error) {
74
+ core_1.ux.action.stop();
75
+ // docker.ping() already handles error display, but we should still throw
76
+ throw error;
77
+ }
44
78
  const dockerFileDir = `${directory}/Dockerfile`;
45
79
  if ((0, node_fs_1.existsSync)(dockerFileDir)) {
46
- await node_fs_1.promises.rm(dockerFileDir);
80
+ try {
81
+ await node_fs_1.promises.rm(dockerFileDir);
82
+ }
83
+ catch (error) {
84
+ const errorMessage = error instanceof Error ? error.message : String(error);
85
+ core_1.ux.warn(`Could not remove existing Dockerfile: ${errorMessage}`);
86
+ // Continue anyway, as this is not critical
87
+ }
47
88
  }
48
89
  const connector = new connector_1.BuildConnector();
49
- const result = await connector.build({ directory, template, compileOverride, runnerOverride, runtimeOverride, nocache, platform, squash, registry });
90
+ let result;
91
+ try {
92
+ result = await connector.build({ directory, template, compileOverride, runnerOverride, runtimeOverride, nocache, platform, squash, registry });
93
+ }
94
+ catch (error) {
95
+ const errorMessage = error instanceof Error ? error.message : String(error);
96
+ const errorStack = error instanceof Error ? error.stack : undefined;
97
+ core_1.ux.error('Failed to build connector image.', { exit: false });
98
+ if (errorMessage) {
99
+ core_1.ux.log('');
100
+ core_1.ux.log('Error details:');
101
+ core_1.ux.log(` ${errorMessage}`);
102
+ }
103
+ if (errorStack && core_1.ux.config.outputLevel === 'debug') {
104
+ core_1.ux.log('');
105
+ core_1.ux.log('Stack trace:');
106
+ core_1.ux.log(errorStack);
107
+ }
108
+ core_1.ux.log('');
109
+ core_1.ux.log('Troubleshooting steps:');
110
+ core_1.ux.log(' 1. Verify the connector directory structure is correct');
111
+ core_1.ux.log(' 2. Check that all required manifest files exist (connector.yaml, actions, assets)');
112
+ core_1.ux.log(' 3. Verify Docker has enough resources (memory, disk space)');
113
+ core_1.ux.log(' 4. Check Docker build logs: docker build --no-cache <image>');
114
+ core_1.ux.log(' 5. Ensure the template specified is valid');
115
+ throw error;
116
+ }
50
117
  if (save) {
51
118
  const { registry } = flags;
52
- await sign_1.Sign.run([
53
- '--directory',
54
- directory,
55
- '--image',
56
- result.imageTag,
57
- '--key-name',
58
- keyName || '',
59
- '--signing-password',
60
- signingPassword,
61
- '-o',
62
- output || directory,
63
- '--save',
64
- '--registry',
65
- registry,
66
- ]);
119
+ try {
120
+ const outputPath = output ? (0, node_path_1.resolve)(output) : directory;
121
+ // Log that we're starting the signing process
122
+ core_1.ux.log('');
123
+ core_1.ux.log(`Starting signing process for image: ${result.imageTag}`);
124
+ core_1.ux.log(`Using key: ${keyName || 'not specified'}`);
125
+ core_1.ux.log(`Registry: ${registry}`);
126
+ core_1.ux.log(`Output directory: ${outputPath}`);
127
+ await sign_1.Sign.run([
128
+ '--directory',
129
+ directory,
130
+ '--image',
131
+ result.imageTag,
132
+ '--key-name',
133
+ keyName || '',
134
+ '--signing-password',
135
+ signingPassword || '',
136
+ '-o',
137
+ outputPath,
138
+ '--save',
139
+ '--registry',
140
+ registry,
141
+ ]);
142
+ core_1.ux.log('');
143
+ core_1.ux.log('Signing and saving completed successfully.');
144
+ }
145
+ catch (error) {
146
+ const errorMessage = error instanceof Error ? error.message : String(error);
147
+ const errorStack = error instanceof Error ? error.stack : undefined;
148
+ core_1.ux.log('');
149
+ core_1.ux.error('Failed to sign and save connector image.', { exit: false });
150
+ if (errorMessage) {
151
+ core_1.ux.log('');
152
+ core_1.ux.log('Error details:');
153
+ core_1.ux.log(` ${errorMessage}`);
154
+ }
155
+ if (errorStack) {
156
+ core_1.ux.log('');
157
+ core_1.ux.log('Stack trace:');
158
+ core_1.ux.log(errorStack);
159
+ }
160
+ core_1.ux.log('');
161
+ core_1.ux.log('Troubleshooting steps:');
162
+ core_1.ux.log(' 1. Verify the signing key exists and is accessible');
163
+ core_1.ux.log(' 2. Check that the signing password is correct');
164
+ core_1.ux.log(' 3. Verify Docker registry access: docker push <registry>/<image>');
165
+ core_1.ux.log(' 4. Check Docker daemon logs for registry connection issues');
166
+ core_1.ux.log(' 5. Ensure you have write permissions to the output directory');
167
+ core_1.ux.log(' 6. Try running the sign command separately: tsdk connector sign --image <image> --key-name <key> --save');
168
+ throw error;
169
+ }
170
+ }
171
+ else {
172
+ core_1.ux.log('');
173
+ core_1.ux.log('Build completed successfully. Use --save flag to sign and save the image.');
67
174
  }
68
175
  }
69
176
  async buildKeyQuestion(keyName) {
70
- const storagePath = (0, node_path_1.join)(this.config.configDir, 'keys');
71
- await (0, fs_extra_1.ensureDir)(storagePath);
72
- const directories = await (0, promises_1.readdir)(storagePath, { withFileTypes: true });
73
- const allKeys = directories
74
- .filter(x => x.isDirectory() && (0, node_fs_1.readdirSync)((0, node_path_1.join)(storagePath, x.name)).some(y => y.endsWith('.key')))
75
- .map(x => x.name)
76
- .sort((a, b) => a < b ? -1 : 1);
77
- inquirer_1.default.registerPrompt('autocomplete', inquirer_autocomplete_prompt_1.default);
78
- return ({
79
- type: 'autocomplete',
80
- name: 'keyName',
81
- message: 'Choose a key',
82
- source: (_, input) => allKeys.filter(r => !input || r.includes(input)).map(r => r),
83
- when: () => (!keyName || keyName.length === 0),
84
- });
177
+ try {
178
+ const storagePath = (0, node_path_1.join)(this.config.configDir, 'keys');
179
+ await (0, fs_extra_1.ensureDir)(storagePath);
180
+ const directories = await (0, promises_1.readdir)(storagePath, { withFileTypes: true });
181
+ const allKeys = directories
182
+ .filter(x => x.isDirectory() && (0, node_fs_1.readdirSync)((0, node_path_1.join)(storagePath, x.name)).some(y => y.endsWith('.key')))
183
+ .map(x => x.name)
184
+ .sort((a, b) => a < b ? -1 : 1);
185
+ inquirer_1.default.registerPrompt('autocomplete', inquirer_autocomplete_prompt_1.default);
186
+ return ({
187
+ type: 'autocomplete',
188
+ name: 'keyName',
189
+ message: 'Choose a key',
190
+ source: (_, input) => allKeys.filter(r => !input || r.includes(input)).map(r => r),
191
+ when: () => (!keyName || keyName.length === 0),
192
+ });
193
+ }
194
+ catch (error) {
195
+ const errorMessage = error instanceof Error ? error.message : String(error);
196
+ core_1.ux.error('Failed to load signing keys.', { exit: false });
197
+ if (errorMessage) {
198
+ core_1.ux.log('');
199
+ core_1.ux.log('Error details:');
200
+ core_1.ux.log(` ${errorMessage}`);
201
+ }
202
+ core_1.ux.log('');
203
+ core_1.ux.log('Troubleshooting steps:');
204
+ core_1.ux.log(' 1. Verify keys directory is accessible');
205
+ core_1.ux.log(' 2. Generate a key if none exist: tsdk turbine connector keys generate');
206
+ core_1.ux.log(' 3. Provide --key-name flag to skip key selection');
207
+ throw error;
208
+ }
85
209
  }
86
210
  }
87
211
  exports.Build = Build;
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/connector/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/connector/build.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const node_fs_1 = require("node:fs");
8
8
  const cosign_1 = require("@swimlane/cosign");
9
9
  const docker_1 = require("@sw-tsdk/docker");
10
10
  const docker_reference_1 = require("@swimlane/docker-reference");
11
+ const fs_extra_1 = require("fs-extra");
11
12
  // noinspection JSUnusedGlobalSymbols
12
13
  class Sign extends core_2.Base {
13
14
  async run() {
@@ -19,23 +20,118 @@ class Sign extends core_2.Base {
19
20
  try {
20
21
  await node_fs_1.promises.access(privateKeyPath);
21
22
  }
22
- catch {
23
- this.error(`Could not find key ${privateKeyPath}`);
23
+ catch (error) {
24
+ const errorMessage = error instanceof Error ? error.message : String(error);
25
+ core_1.ux.error(`Could not find key: ${privateKeyPath}`, { exit: false });
26
+ core_1.ux.log('');
27
+ core_1.ux.log('Error details:');
28
+ core_1.ux.log(` ${errorMessage}`);
29
+ core_1.ux.log('');
30
+ core_1.ux.log('Please verify:');
31
+ core_1.ux.log(` 1. The key name is correct: ${keyName}`);
32
+ core_1.ux.log(` 2. The key file exists at: ${privateKeyPath}`);
33
+ core_1.ux.log(' 3. You have proper permissions to access the key file');
34
+ core_1.ux.log(' 4. The key was generated using: tsdk turbine connector keys generate');
35
+ // Throw error instead of calling this.error() to allow proper error handling
36
+ throw new Error(`Key file access failed: ${errorMessage}`);
24
37
  }
25
38
  const docker = new docker_1.Docker();
26
- const taggedImage = await docker.pushImage({
27
- imageReference: imageName,
28
- domain: registry,
29
- });
39
+ let taggedImage;
40
+ try {
41
+ core_1.ux.action.start('Pushing image to registry...');
42
+ taggedImage = await docker.pushImage({
43
+ imageReference: imageName,
44
+ domain: registry,
45
+ });
46
+ core_1.ux.action.stop();
47
+ }
48
+ catch (error) {
49
+ core_1.ux.action.stop();
50
+ const errorMessage = error instanceof Error ? error.message : String(error);
51
+ const errorStack = error instanceof Error ? error.stack : undefined;
52
+ core_1.ux.error(`Failed to push image to registry: ${registry}`, { exit: false });
53
+ if (errorMessage) {
54
+ core_1.ux.log('');
55
+ core_1.ux.log('Error details:');
56
+ core_1.ux.log(` ${errorMessage}`);
57
+ }
58
+ if (errorStack && core_1.ux.config.outputLevel === 'debug') {
59
+ core_1.ux.log('');
60
+ core_1.ux.log('Stack trace:');
61
+ core_1.ux.log(errorStack);
62
+ }
63
+ core_1.ux.log('');
64
+ core_1.ux.log('Troubleshooting steps:');
65
+ core_1.ux.log(` 1. Verify registry is accessible: docker push ${registry}/${imageName}`);
66
+ core_1.ux.log(' 2. Check registry authentication credentials');
67
+ core_1.ux.log(' 3. Verify network connectivity to the registry');
68
+ core_1.ux.log(' 4. Check Docker daemon logs for connection issues');
69
+ throw error;
70
+ }
30
71
  core_1.ux.action.start('Signing Image...');
31
- await (0, cosign_1.signImage)(signingPassword, privateKeyPath, taggedImage, !skipUpload);
32
- core_1.ux.action.stop();
72
+ try {
73
+ await (0, cosign_1.signImage)(signingPassword, privateKeyPath, taggedImage, !skipUpload);
74
+ core_1.ux.action.stop();
75
+ }
76
+ catch (error) {
77
+ core_1.ux.action.stop();
78
+ const errorMessage = error instanceof Error ? error.message : String(error);
79
+ const errorStack = error instanceof Error ? error.stack : undefined;
80
+ core_1.ux.error('Failed to sign image.', { exit: false });
81
+ if (errorMessage) {
82
+ core_1.ux.log('');
83
+ core_1.ux.log('Error details:');
84
+ core_1.ux.log(` ${errorMessage}`);
85
+ }
86
+ if (errorStack && core_1.ux.config.outputLevel === 'debug') {
87
+ core_1.ux.log('');
88
+ core_1.ux.log('Stack trace:');
89
+ core_1.ux.log(errorStack);
90
+ }
91
+ core_1.ux.log('');
92
+ core_1.ux.log('Troubleshooting steps:');
93
+ core_1.ux.log(` 1. Verify the signing key exists: ${privateKeyPath}`);
94
+ core_1.ux.log(' 2. Check that the signing password is correct');
95
+ core_1.ux.log(' 3. Verify the key file is readable and not corrupted');
96
+ core_1.ux.log(' 4. Ensure cosign is properly installed and accessible');
97
+ throw error;
98
+ }
33
99
  if (save) {
34
100
  core_1.ux.action.start('Saving Image...');
35
- const { repository, tag } = (0, docker_reference_1.parseQualifiedName)(taggedImage);
36
- const fileName = (0, node_path_1.join)(output || directory, `${(repository ?? '').replace('/', '-')}-${tag}.tar.gz`);
37
- await (0, cosign_1.save)(taggedImage, (0, node_fs_1.createWriteStream)(fileName));
38
- core_1.ux.action.stop();
101
+ try {
102
+ const { repository, tag } = (0, docker_reference_1.parseQualifiedName)(taggedImage);
103
+ const outputDir = output ? (0, node_path_1.resolve)(output) : (0, node_path_1.resolve)(directory);
104
+ const fileName = (0, node_path_1.join)(outputDir, `${(repository ?? '').replace('/', '-')}-${tag}.tar.gz`);
105
+ // Ensure output directory exists
106
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(fileName));
107
+ await (0, cosign_1.save)(taggedImage, (0, node_fs_1.createWriteStream)(fileName));
108
+ core_1.ux.action.stop();
109
+ core_1.ux.log('');
110
+ core_1.ux.log(`Image saved successfully to: ${fileName}`);
111
+ }
112
+ catch (error) {
113
+ core_1.ux.action.stop();
114
+ const errorMessage = error instanceof Error ? error.message : String(error);
115
+ const errorStack = error instanceof Error ? error.stack : undefined;
116
+ core_1.ux.error('Failed to save image.', { exit: false });
117
+ if (errorMessage) {
118
+ core_1.ux.log('');
119
+ core_1.ux.log('Error details:');
120
+ core_1.ux.log(` ${errorMessage}`);
121
+ }
122
+ if (errorStack && core_1.ux.config.outputLevel === 'debug') {
123
+ core_1.ux.log('');
124
+ core_1.ux.log('Stack trace:');
125
+ core_1.ux.log(errorStack);
126
+ }
127
+ core_1.ux.log('');
128
+ core_1.ux.log('Troubleshooting steps:');
129
+ core_1.ux.log(` 1. Verify write permissions to output directory: ${output || directory}`);
130
+ core_1.ux.log(' 2. Check available disk space');
131
+ core_1.ux.log(' 3. Ensure the image exists locally: docker images');
132
+ core_1.ux.log(' 4. Try saving to a different location with --output flag');
133
+ throw error;
134
+ }
39
135
  }
40
136
  }
41
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/commands/connector/sign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/commands/connector/sign.ts"],"names":[],"mappings":"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"}