@uipath/packager-tool-apiworkflow 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/api-workflow-tool-factory.d.ts +8 -0
- package/dist/api-workflows-tool.d.ts +34 -0
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/locales/en.d.ts +29 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +540 -0
- package/package.json +58 -0
- package/src/api-workflow-tool-factory.ts +23 -0
- package/src/api-workflows-tool.ts +321 -0
- package/src/i18n/index.ts +45 -0
- package/src/i18n/locales/de.json +23 -0
- package/src/i18n/locales/en.ts +34 -0
- package/src/i18n/locales/es-MX.json +23 -0
- package/src/i18n/locales/es.json +23 -0
- package/src/i18n/locales/fr.json +23 -0
- package/src/i18n/locales/ja.json +23 -0
- package/src/i18n/locales/ko.json +23 -0
- package/src/i18n/locales/pt-BR.json +23 -0
- package/src/i18n/locales/pt.json +23 -0
- package/src/i18n/locales/ro.json +23 -0
- package/src/i18n/locales/ru.json +23 -0
- package/src/i18n/locales/tr.json +23 -0
- package/src/i18n/locales/zh-CN.json +23 -0
- package/src/i18n/locales/zh-TW.json +23 -0
- package/src/i18n/locales/zu.json +23 -0
- package/src/index.ts +14 -0
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @uipath/tool-apiworkflow
|
|
2
|
+
|
|
3
|
+
A reference implementation of a **Project Tool** for the UiPath Solution Packager, designed for handling **API Workflow** projects.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This package demonstrates how to build a fully functional packaging tool using `@uipath/solutionpackager-tool-core`. It implements the lifecycle method for building and packing API projects.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **Reference Implementation**: strict adherence to `@uipath/solutionpackager-tool-core` contracts.
|
|
12
|
+
- **Build Operations**:
|
|
13
|
+
- Validates project structure
|
|
14
|
+
- Copies project files to a clean output directory
|
|
15
|
+
- Generates `operating.json` configuration
|
|
16
|
+
- Generates `package-descriptor.json`
|
|
17
|
+
- **Pack Operations**:
|
|
18
|
+
- Creates `.nupkg` packages (Nuget)
|
|
19
|
+
- Handles versioning and metadata
|
|
20
|
+
|
|
21
|
+
## Project Structure
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
src/
|
|
25
|
+
├── api-workflows-tool.ts # Main tool logic implementation
|
|
26
|
+
├── api-workflow-tool-factory.ts # Factory for creating tool instances
|
|
27
|
+
└── index.ts # Export entry point
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
This tool is designed to be loaded dynamically by `solutionpackager`.
|
|
33
|
+
|
|
34
|
+
### Development
|
|
35
|
+
|
|
36
|
+
**Install dependencies:**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Build:**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run build
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Run Tests:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm test
|
|
52
|
+
npm run test:browser
|
|
53
|
+
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type IFileSystem, type IProjectToolFactory, type IToolLogger, type ProjectTool, type ProjectType } from "@uipath/solutionpackager-tool-core";
|
|
2
|
+
/**
|
|
3
|
+
* Factory for creating API Workflow project tools
|
|
4
|
+
*/
|
|
5
|
+
export declare class ApiWorkflowToolFactory implements IProjectToolFactory {
|
|
6
|
+
readonly supportedTypes: readonly ProjectType[];
|
|
7
|
+
createAsync(logger: IToolLogger, fileSystem: IFileSystem): Promise<ProjectTool>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { IProjectBuildOptions, IProjectPackOptions, IProjectRestoreOptions, IProjectValidateOptions } from "@uipath/solutionpackager-tool-core";
|
|
2
|
+
import { type IFileSystem, type IToolLogger, ProjectTool, ToolResult } from "@uipath/solutionpackager-tool-core";
|
|
3
|
+
/**
|
|
4
|
+
* API Workflow project tool implementation
|
|
5
|
+
*/
|
|
6
|
+
export declare class ApiWorkflowsTool extends ProjectTool {
|
|
7
|
+
private readonly _temporaryStorage;
|
|
8
|
+
constructor(fileSystem: IFileSystem, logger: IToolLogger);
|
|
9
|
+
restoreAsync(_options: IProjectRestoreOptions, _cancellationToken?: AbortSignal): Promise<ToolResult>;
|
|
10
|
+
validateAsync(_options: IProjectValidateOptions, _cancellationToken?: AbortSignal): Promise<ToolResult>;
|
|
11
|
+
buildAsync(options: IProjectBuildOptions, _cancellationToken?: AbortSignal): Promise<ToolResult>;
|
|
12
|
+
packAsync(options: IProjectPackOptions, cancellationToken?: AbortSignal): Promise<ToolResult>;
|
|
13
|
+
dispose(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Copy all files from source path to destination path
|
|
16
|
+
*/
|
|
17
|
+
private copyFiles;
|
|
18
|
+
/**
|
|
19
|
+
* Create operate.json file if it doesn't already exist
|
|
20
|
+
*/
|
|
21
|
+
private createOperateFile;
|
|
22
|
+
/**
|
|
23
|
+
* Create the operate.json file with project configuration
|
|
24
|
+
*/
|
|
25
|
+
private createOperateJsonFile;
|
|
26
|
+
/**
|
|
27
|
+
* Create package-descriptor.json file
|
|
28
|
+
*/
|
|
29
|
+
private createPackageDescriptor;
|
|
30
|
+
/**
|
|
31
|
+
* Add file to package descriptor if it exists
|
|
32
|
+
*/
|
|
33
|
+
private addFileIfExists;
|
|
34
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English translations for tool-apiworkflow package.
|
|
3
|
+
* These translations are registered alongside core translations via I18nManager.
|
|
4
|
+
*/
|
|
5
|
+
export declare const en: {
|
|
6
|
+
readonly toolApiworkflow: {
|
|
7
|
+
readonly info: {
|
|
8
|
+
readonly restoreNotRequired: "Restore operation is not required for API projects";
|
|
9
|
+
readonly validateNotRequired: "Validate operation is not required for API projects";
|
|
10
|
+
readonly disposing: "Disposing API Workflows Tool";
|
|
11
|
+
};
|
|
12
|
+
readonly progress: {
|
|
13
|
+
readonly copyingFiles: "Copying files...";
|
|
14
|
+
readonly creatingOperateFile: "Creating operate.json file...";
|
|
15
|
+
readonly creatingPackageDescriptor: "Creating package-descriptor.json file...";
|
|
16
|
+
readonly creatingNugetPackage: "Creating NuGet package...";
|
|
17
|
+
readonly packageCreatedSuccessfully: "Package created successfully";
|
|
18
|
+
};
|
|
19
|
+
readonly success: {
|
|
20
|
+
readonly done: "done";
|
|
21
|
+
};
|
|
22
|
+
readonly errors: {
|
|
23
|
+
readonly buildFailed: "An error occurred while building API project files";
|
|
24
|
+
readonly packFailed: "An error occurred while packing API project";
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/** @public */
|
|
29
|
+
export type TranslationKeys = typeof en;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./i18n/index.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
// src/i18n/index.ts
|
|
2
|
+
import { I18nManager } from "@uipath/solutionpackager-tool-core";
|
|
3
|
+
// src/i18n/locales/de.json
|
|
4
|
+
var de_default = {
|
|
5
|
+
toolApiworkflow: {
|
|
6
|
+
info: {
|
|
7
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
8
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
9
|
+
disposing: "Disposing API Workflows Tool"
|
|
10
|
+
},
|
|
11
|
+
progress: {
|
|
12
|
+
copyingFiles: "Copying files...",
|
|
13
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
14
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
15
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
16
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
17
|
+
},
|
|
18
|
+
success: {
|
|
19
|
+
done: "done"
|
|
20
|
+
},
|
|
21
|
+
errors: {
|
|
22
|
+
buildFailed: "An error occurred while building API project files",
|
|
23
|
+
packFailed: "An error occurred while packing API project"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// src/i18n/locales/en.ts
|
|
29
|
+
var en = {
|
|
30
|
+
toolApiworkflow: {
|
|
31
|
+
info: {
|
|
32
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
33
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
34
|
+
disposing: "Disposing API Workflows Tool"
|
|
35
|
+
},
|
|
36
|
+
progress: {
|
|
37
|
+
copyingFiles: "Copying files...",
|
|
38
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
39
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
40
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
41
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
42
|
+
},
|
|
43
|
+
success: {
|
|
44
|
+
done: "done"
|
|
45
|
+
},
|
|
46
|
+
errors: {
|
|
47
|
+
buildFailed: "An error occurred while building API project files",
|
|
48
|
+
packFailed: "An error occurred while packing API project"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
// src/i18n/locales/es.json
|
|
53
|
+
var es_default = {
|
|
54
|
+
toolApiworkflow: {
|
|
55
|
+
info: {
|
|
56
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
57
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
58
|
+
disposing: "Disposing API Workflows Tool"
|
|
59
|
+
},
|
|
60
|
+
progress: {
|
|
61
|
+
copyingFiles: "Copying files...",
|
|
62
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
63
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
64
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
65
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
66
|
+
},
|
|
67
|
+
success: {
|
|
68
|
+
done: "done"
|
|
69
|
+
},
|
|
70
|
+
errors: {
|
|
71
|
+
buildFailed: "An error occurred while building API project files",
|
|
72
|
+
packFailed: "An error occurred while packing API project"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
// src/i18n/locales/es-MX.json
|
|
77
|
+
var es_MX_default = {
|
|
78
|
+
toolApiworkflow: {
|
|
79
|
+
info: {
|
|
80
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
81
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
82
|
+
disposing: "Disposing API Workflows Tool"
|
|
83
|
+
},
|
|
84
|
+
progress: {
|
|
85
|
+
copyingFiles: "Copying files...",
|
|
86
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
87
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
88
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
89
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
90
|
+
},
|
|
91
|
+
success: {
|
|
92
|
+
done: "done"
|
|
93
|
+
},
|
|
94
|
+
errors: {
|
|
95
|
+
buildFailed: "An error occurred while building API project files",
|
|
96
|
+
packFailed: "An error occurred while packing API project"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
// src/i18n/locales/fr.json
|
|
101
|
+
var fr_default = {
|
|
102
|
+
toolApiworkflow: {
|
|
103
|
+
info: {
|
|
104
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
105
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
106
|
+
disposing: "Disposing API Workflows Tool"
|
|
107
|
+
},
|
|
108
|
+
progress: {
|
|
109
|
+
copyingFiles: "Copying files...",
|
|
110
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
111
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
112
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
113
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
114
|
+
},
|
|
115
|
+
success: {
|
|
116
|
+
done: "done"
|
|
117
|
+
},
|
|
118
|
+
errors: {
|
|
119
|
+
buildFailed: "An error occurred while building API project files",
|
|
120
|
+
packFailed: "An error occurred while packing API project"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
// src/i18n/locales/ja.json
|
|
125
|
+
var ja_default = {
|
|
126
|
+
toolApiworkflow: {
|
|
127
|
+
info: {
|
|
128
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
129
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
130
|
+
disposing: "Disposing API Workflows Tool"
|
|
131
|
+
},
|
|
132
|
+
progress: {
|
|
133
|
+
copyingFiles: "Copying files...",
|
|
134
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
135
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
136
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
137
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
138
|
+
},
|
|
139
|
+
success: {
|
|
140
|
+
done: "done"
|
|
141
|
+
},
|
|
142
|
+
errors: {
|
|
143
|
+
buildFailed: "An error occurred while building API project files",
|
|
144
|
+
packFailed: "An error occurred while packing API project"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
// src/i18n/locales/ko.json
|
|
149
|
+
var ko_default = {
|
|
150
|
+
toolApiworkflow: {
|
|
151
|
+
info: {
|
|
152
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
153
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
154
|
+
disposing: "Disposing API Workflows Tool"
|
|
155
|
+
},
|
|
156
|
+
progress: {
|
|
157
|
+
copyingFiles: "Copying files...",
|
|
158
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
159
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
160
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
161
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
162
|
+
},
|
|
163
|
+
success: {
|
|
164
|
+
done: "done"
|
|
165
|
+
},
|
|
166
|
+
errors: {
|
|
167
|
+
buildFailed: "An error occurred while building API project files",
|
|
168
|
+
packFailed: "An error occurred while packing API project"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
// src/i18n/locales/pt.json
|
|
173
|
+
var pt_default = {
|
|
174
|
+
toolApiworkflow: {
|
|
175
|
+
info: {
|
|
176
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
177
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
178
|
+
disposing: "Disposing API Workflows Tool"
|
|
179
|
+
},
|
|
180
|
+
progress: {
|
|
181
|
+
copyingFiles: "Copying files...",
|
|
182
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
183
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
184
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
185
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
186
|
+
},
|
|
187
|
+
success: {
|
|
188
|
+
done: "done"
|
|
189
|
+
},
|
|
190
|
+
errors: {
|
|
191
|
+
buildFailed: "An error occurred while building API project files",
|
|
192
|
+
packFailed: "An error occurred while packing API project"
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
// src/i18n/locales/pt-BR.json
|
|
197
|
+
var pt_BR_default = {
|
|
198
|
+
toolApiworkflow: {
|
|
199
|
+
info: {
|
|
200
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
201
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
202
|
+
disposing: "Disposing API Workflows Tool"
|
|
203
|
+
},
|
|
204
|
+
progress: {
|
|
205
|
+
copyingFiles: "Copying files...",
|
|
206
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
207
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
208
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
209
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
210
|
+
},
|
|
211
|
+
success: {
|
|
212
|
+
done: "done"
|
|
213
|
+
},
|
|
214
|
+
errors: {
|
|
215
|
+
buildFailed: "An error occurred while building API project files",
|
|
216
|
+
packFailed: "An error occurred while packing API project"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
// src/i18n/locales/ro.json
|
|
221
|
+
var ro_default = {
|
|
222
|
+
toolApiworkflow: {
|
|
223
|
+
info: {
|
|
224
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
225
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
226
|
+
disposing: "Disposing API Workflows Tool"
|
|
227
|
+
},
|
|
228
|
+
progress: {
|
|
229
|
+
copyingFiles: "Copying files...",
|
|
230
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
231
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
232
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
233
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
234
|
+
},
|
|
235
|
+
success: {
|
|
236
|
+
done: "done"
|
|
237
|
+
},
|
|
238
|
+
errors: {
|
|
239
|
+
buildFailed: "An error occurred while building API project files",
|
|
240
|
+
packFailed: "An error occurred while packing API project"
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
// src/i18n/locales/ru.json
|
|
245
|
+
var ru_default = {
|
|
246
|
+
toolApiworkflow: {
|
|
247
|
+
info: {
|
|
248
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
249
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
250
|
+
disposing: "Disposing API Workflows Tool"
|
|
251
|
+
},
|
|
252
|
+
progress: {
|
|
253
|
+
copyingFiles: "Copying files...",
|
|
254
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
255
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
256
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
257
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
258
|
+
},
|
|
259
|
+
success: {
|
|
260
|
+
done: "done"
|
|
261
|
+
},
|
|
262
|
+
errors: {
|
|
263
|
+
buildFailed: "An error occurred while building API project files",
|
|
264
|
+
packFailed: "An error occurred while packing API project"
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
// src/i18n/locales/tr.json
|
|
269
|
+
var tr_default = {
|
|
270
|
+
toolApiworkflow: {
|
|
271
|
+
info: {
|
|
272
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
273
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
274
|
+
disposing: "Disposing API Workflows Tool"
|
|
275
|
+
},
|
|
276
|
+
progress: {
|
|
277
|
+
copyingFiles: "Copying files...",
|
|
278
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
279
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
280
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
281
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
282
|
+
},
|
|
283
|
+
success: {
|
|
284
|
+
done: "done"
|
|
285
|
+
},
|
|
286
|
+
errors: {
|
|
287
|
+
buildFailed: "An error occurred while building API project files",
|
|
288
|
+
packFailed: "An error occurred while packing API project"
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
// src/i18n/locales/zh-CN.json
|
|
293
|
+
var zh_CN_default = {
|
|
294
|
+
toolApiworkflow: {
|
|
295
|
+
info: {
|
|
296
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
297
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
298
|
+
disposing: "Disposing API Workflows Tool"
|
|
299
|
+
},
|
|
300
|
+
progress: {
|
|
301
|
+
copyingFiles: "Copying files...",
|
|
302
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
303
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
304
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
305
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
306
|
+
},
|
|
307
|
+
success: {
|
|
308
|
+
done: "done"
|
|
309
|
+
},
|
|
310
|
+
errors: {
|
|
311
|
+
buildFailed: "An error occurred while building API project files",
|
|
312
|
+
packFailed: "An error occurred while packing API project"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
// src/i18n/locales/zh-TW.json
|
|
317
|
+
var zh_TW_default = {
|
|
318
|
+
toolApiworkflow: {
|
|
319
|
+
info: {
|
|
320
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
321
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
322
|
+
disposing: "Disposing API Workflows Tool"
|
|
323
|
+
},
|
|
324
|
+
progress: {
|
|
325
|
+
copyingFiles: "Copying files...",
|
|
326
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
327
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
328
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
329
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
330
|
+
},
|
|
331
|
+
success: {
|
|
332
|
+
done: "done"
|
|
333
|
+
},
|
|
334
|
+
errors: {
|
|
335
|
+
buildFailed: "An error occurred while building API project files",
|
|
336
|
+
packFailed: "An error occurred while packing API project"
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
// src/i18n/locales/zu.json
|
|
341
|
+
var zu_default = {
|
|
342
|
+
toolApiworkflow: {
|
|
343
|
+
info: {
|
|
344
|
+
restoreNotRequired: "Restore operation is not required for API projects",
|
|
345
|
+
validateNotRequired: "Validate operation is not required for API projects",
|
|
346
|
+
disposing: "Disposing API Workflows Tool"
|
|
347
|
+
},
|
|
348
|
+
progress: {
|
|
349
|
+
copyingFiles: "Copying files...",
|
|
350
|
+
creatingOperateFile: "Creating operate.json file...",
|
|
351
|
+
creatingPackageDescriptor: "Creating package-descriptor.json file...",
|
|
352
|
+
creatingNugetPackage: "Creating NuGet package...",
|
|
353
|
+
packageCreatedSuccessfully: "Package created successfully"
|
|
354
|
+
},
|
|
355
|
+
success: {
|
|
356
|
+
done: "done"
|
|
357
|
+
},
|
|
358
|
+
errors: {
|
|
359
|
+
buildFailed: "An error occurred while building API project files",
|
|
360
|
+
packFailed: "An error occurred while packing API project"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
// src/i18n/index.ts
|
|
366
|
+
I18nManager.registerTranslations("en", en);
|
|
367
|
+
I18nManager.registerTranslations("de", de_default);
|
|
368
|
+
I18nManager.registerTranslations("es", es_default);
|
|
369
|
+
I18nManager.registerTranslations("es-MX", es_MX_default);
|
|
370
|
+
I18nManager.registerTranslations("fr", fr_default);
|
|
371
|
+
I18nManager.registerTranslations("ja", ja_default);
|
|
372
|
+
I18nManager.registerTranslations("ko", ko_default);
|
|
373
|
+
I18nManager.registerTranslations("pt", pt_default);
|
|
374
|
+
I18nManager.registerTranslations("pt-BR", pt_BR_default);
|
|
375
|
+
I18nManager.registerTranslations("ro", ro_default);
|
|
376
|
+
I18nManager.registerTranslations("ru", ru_default);
|
|
377
|
+
I18nManager.registerTranslations("tr", tr_default);
|
|
378
|
+
I18nManager.registerTranslations("zh-CN", zh_CN_default);
|
|
379
|
+
I18nManager.registerTranslations("zh-TW", zh_TW_default);
|
|
380
|
+
I18nManager.registerTranslations("zu", zu_default);
|
|
381
|
+
|
|
382
|
+
// src/index.ts
|
|
383
|
+
import { toolsFactoryRepository } from "@uipath/solutionpackager-tool-core";
|
|
384
|
+
|
|
385
|
+
// src/api-workflow-tool-factory.ts
|
|
386
|
+
import {
|
|
387
|
+
ProjectTypes as ProjectTypes2
|
|
388
|
+
} from "@uipath/solutionpackager-tool-core";
|
|
389
|
+
|
|
390
|
+
// src/api-workflows-tool.ts
|
|
391
|
+
import {
|
|
392
|
+
NugetConstants,
|
|
393
|
+
NugetPackager,
|
|
394
|
+
Path,
|
|
395
|
+
ProjectTool,
|
|
396
|
+
ProjectTypes,
|
|
397
|
+
TemporaryStorageService,
|
|
398
|
+
ToolErrorCodes,
|
|
399
|
+
ToolResult,
|
|
400
|
+
translate
|
|
401
|
+
} from "@uipath/solutionpackager-tool-core";
|
|
402
|
+
|
|
403
|
+
class ApiWorkflowsTool extends ProjectTool {
|
|
404
|
+
_temporaryStorage;
|
|
405
|
+
constructor(fileSystem, logger) {
|
|
406
|
+
super(fileSystem, logger);
|
|
407
|
+
this._temporaryStorage = new TemporaryStorageService(fileSystem);
|
|
408
|
+
}
|
|
409
|
+
async restoreAsync(_options, _cancellationToken) {
|
|
410
|
+
this.logger.info(translate.t("toolApiworkflow.info.restoreNotRequired"));
|
|
411
|
+
return ToolResult.success();
|
|
412
|
+
}
|
|
413
|
+
async validateAsync(_options, _cancellationToken) {
|
|
414
|
+
this.logger.info(translate.t("toolApiworkflow.info.validateNotRequired"));
|
|
415
|
+
return ToolResult.success();
|
|
416
|
+
}
|
|
417
|
+
async buildAsync(options, _cancellationToken) {
|
|
418
|
+
const tempFolder = await this._temporaryStorage.getTempFolderPath();
|
|
419
|
+
const localBuildFolder = Path.join(tempFolder, NugetConstants.OutputFolderName);
|
|
420
|
+
const contentFolder = Path.join(localBuildFolder, NugetConstants.ContentFolderName);
|
|
421
|
+
try {
|
|
422
|
+
this.logger.progress(translate.t("toolApiworkflow.progress.copyingFiles"));
|
|
423
|
+
await this.copyFiles(options.projectPath, contentFolder);
|
|
424
|
+
this.logger.progress(translate.t("toolApiworkflow.progress.creatingOperateFile"));
|
|
425
|
+
await this.createOperateFile(options, contentFolder);
|
|
426
|
+
this.logger.progress(translate.t("toolApiworkflow.progress.creatingPackageDescriptor"));
|
|
427
|
+
await this.createPackageDescriptor(localBuildFolder);
|
|
428
|
+
return new ToolResult(ToolErrorCodes.Success, translate.t("toolApiworkflow.success.done"), [localBuildFolder]);
|
|
429
|
+
} catch (error) {
|
|
430
|
+
const errorMessage = error instanceof Error ? error.toString() : String(error);
|
|
431
|
+
this.logger.error(errorMessage);
|
|
432
|
+
return ToolResult.error(ToolErrorCodes.InternalError, translate.t("toolApiworkflow.errors.buildFailed"));
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
async packAsync(options, cancellationToken) {
|
|
436
|
+
const buildResult = await this.buildAsync(options, cancellationToken);
|
|
437
|
+
if (!buildResult.isSuccess) {
|
|
438
|
+
return buildResult;
|
|
439
|
+
}
|
|
440
|
+
const localBuildFolder = buildResult.packages[0];
|
|
441
|
+
try {
|
|
442
|
+
this.logger.progress(translate.t("toolApiworkflow.progress.creatingNugetPackage"));
|
|
443
|
+
const nupkgFileName = `${options.package.id}.${options.package.version}.nupkg`;
|
|
444
|
+
const nupkgPath = Path.join(options.outputPath, nupkgFileName);
|
|
445
|
+
const packager = new NugetPackager(this.fileSystem);
|
|
446
|
+
const result = await packager.packAsync(localBuildFolder, options.package, nupkgPath);
|
|
447
|
+
this.logger.progress(translate.t("toolApiworkflow.progress.packageCreatedSuccessfully"));
|
|
448
|
+
return new ToolResult(ToolErrorCodes.Success, translate.t("toolApiworkflow.success.done"), [result.outputPath]);
|
|
449
|
+
} catch (error) {
|
|
450
|
+
const errorMessage = error instanceof Error ? error.toString() : String(error);
|
|
451
|
+
this.logger.error(errorMessage);
|
|
452
|
+
return ToolResult.error(ToolErrorCodes.InternalError, translate.t("toolApiworkflow.errors.packFailed"));
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
async dispose() {
|
|
456
|
+
this.logger.info(translate.t("toolApiworkflow.info.disposing"));
|
|
457
|
+
try {
|
|
458
|
+
await this._temporaryStorage.cleanup();
|
|
459
|
+
} catch {}
|
|
460
|
+
}
|
|
461
|
+
async copyFiles(sourcePath, destinationPath) {
|
|
462
|
+
await this.fileSystem.mkdir(destinationPath);
|
|
463
|
+
const files = await this.fileSystem.readdir(sourcePath);
|
|
464
|
+
for (const file of files) {
|
|
465
|
+
const sourceFile = Path.join(sourcePath, file);
|
|
466
|
+
const destinationFile = Path.join(destinationPath, file);
|
|
467
|
+
const stat = await this.fileSystem.stat(sourceFile);
|
|
468
|
+
if (stat?.isFile()) {
|
|
469
|
+
const content = await this.fileSystem.readFile(sourceFile);
|
|
470
|
+
if (content) {
|
|
471
|
+
await this.fileSystem.writeFile(destinationFile, content);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
async createOperateFile(options, contentFolder) {
|
|
477
|
+
const operateJsonFilePath = Path.join(contentFolder, NugetConstants.OperateFileName);
|
|
478
|
+
const exists = await this.fileSystem.exists(operateJsonFilePath);
|
|
479
|
+
if (!exists) {
|
|
480
|
+
await this.createOperateJsonFile(contentFolder, options.projectStorageId ?? "", operateJsonFilePath);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
async createOperateJsonFile(projectPath, projectId, filePath) {
|
|
484
|
+
const entryPointsFilePath = Path.join(projectPath, NugetConstants.EntryPointsFileName);
|
|
485
|
+
let mainPath = "";
|
|
486
|
+
const entryPointsExists = await this.fileSystem.exists(entryPointsFilePath);
|
|
487
|
+
if (entryPointsExists) {
|
|
488
|
+
const entryPointsContent = await this.fileSystem.readFile(entryPointsFilePath);
|
|
489
|
+
if (entryPointsContent) {
|
|
490
|
+
try {
|
|
491
|
+
const entryPointsText = new TextDecoder().decode(entryPointsContent);
|
|
492
|
+
const entryPoints = JSON.parse(entryPointsText);
|
|
493
|
+
mainPath = entryPoints.entryPoints?.[0]?.filePath ?? "";
|
|
494
|
+
} catch {}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
const operateFileModel = {
|
|
498
|
+
$schema: "https://cloud.uipath.com/draft/2024-12/operate",
|
|
499
|
+
contentType: ProjectTypes.Api,
|
|
500
|
+
projectId,
|
|
501
|
+
main: mainPath,
|
|
502
|
+
targetFramework: "Portable",
|
|
503
|
+
runtimeOptions: {
|
|
504
|
+
isAttended: false,
|
|
505
|
+
requiresUserInteraction: false
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
const operateJsonString = JSON.stringify(operateFileModel, null, 2);
|
|
509
|
+
await this.fileSystem.writeFile(filePath, operateJsonString);
|
|
510
|
+
}
|
|
511
|
+
async createPackageDescriptor(localBuildFolder) {
|
|
512
|
+
const packageDescriptor = {
|
|
513
|
+
files: {}
|
|
514
|
+
};
|
|
515
|
+
this.addFileIfExists(packageDescriptor, localBuildFolder, NugetConstants.OperateFileName, NugetConstants.OperateFileName);
|
|
516
|
+
this.addFileIfExists(packageDescriptor, localBuildFolder, NugetConstants.EntryPointsFileName, NugetConstants.EntryPointsFileName);
|
|
517
|
+
this.addFileIfExists(packageDescriptor, localBuildFolder, NugetConstants.BindingsFileId, NugetConstants.BindingsV2FileName);
|
|
518
|
+
const packageDescriptorPath = Path.join(localBuildFolder, NugetConstants.ContentFolderName, NugetConstants.PackageDescriptorFileName);
|
|
519
|
+
const packageDescriptorJson = JSON.stringify({
|
|
520
|
+
$schema: "https://cloud.uipath.com/draft/2024-12/package-descriptor",
|
|
521
|
+
...packageDescriptor
|
|
522
|
+
}, null, 2);
|
|
523
|
+
await this.fileSystem.writeFile(packageDescriptorPath, packageDescriptorJson);
|
|
524
|
+
}
|
|
525
|
+
addFileIfExists(packageDescriptor, _rootFolder, key, fileName) {
|
|
526
|
+
const relativePath = Path.join(NugetConstants.ContentFolderName, fileName);
|
|
527
|
+
packageDescriptor.files[key] = relativePath;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
// src/api-workflow-tool-factory.ts
|
|
532
|
+
class ApiWorkflowToolFactory {
|
|
533
|
+
supportedTypes = [ProjectTypes2.Api];
|
|
534
|
+
async createAsync(logger, fileSystem) {
|
|
535
|
+
return new ApiWorkflowsTool(fileSystem, logger);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
// src/index.ts
|
|
540
|
+
toolsFactoryRepository.registerProjectToolFactory(new ApiWorkflowToolFactory);
|