hereya-cli 0.89.0 → 0.90.1

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 (51) hide show
  1. package/README.md +65 -65
  2. package/dist/backend/cloud/cloud-backend/apps-deploy.d.ts +69 -0
  3. package/dist/backend/cloud/cloud-backend/apps-deploy.js +94 -0
  4. package/dist/backend/cloud/cloud-backend/apps-versions.d.ts +69 -0
  5. package/dist/backend/cloud/cloud-backend/apps-versions.js +113 -0
  6. package/dist/backend/cloud/cloud-backend/executor-jobs.d.ts +75 -0
  7. package/dist/backend/cloud/cloud-backend/executor-jobs.js +110 -0
  8. package/dist/backend/cloud/cloud-backend/misc.d.ts +5 -0
  9. package/dist/backend/cloud/cloud-backend/misc.js +78 -0
  10. package/dist/backend/cloud/cloud-backend/packages-publish.d.ts +3 -0
  11. package/dist/backend/cloud/cloud-backend/packages-publish.js +99 -0
  12. package/dist/backend/cloud/cloud-backend/packages-registry.d.ts +6 -0
  13. package/dist/backend/cloud/cloud-backend/packages-registry.js +146 -0
  14. package/dist/backend/cloud/cloud-backend/packages-workspace.d.ts +4 -0
  15. package/dist/backend/cloud/cloud-backend/packages-workspace.js +50 -0
  16. package/dist/backend/cloud/cloud-backend/projects.d.ts +7 -0
  17. package/dist/backend/cloud/cloud-backend/projects.js +122 -0
  18. package/dist/backend/cloud/cloud-backend/state.d.ts +6 -0
  19. package/dist/backend/cloud/cloud-backend/state.js +86 -0
  20. package/dist/backend/cloud/cloud-backend/utils.d.ts +55 -0
  21. package/dist/backend/cloud/cloud-backend/utils.js +56 -0
  22. package/dist/backend/cloud/cloud-backend/workspace-env.d.ts +5 -0
  23. package/dist/backend/cloud/cloud-backend/workspace-env.js +63 -0
  24. package/dist/backend/cloud/cloud-backend/workspaces.d.ts +7 -0
  25. package/dist/backend/cloud/cloud-backend/workspaces.js +124 -0
  26. package/dist/backend/cloud/cloud-backend.d.ts +56 -126
  27. package/dist/backend/cloud/cloud-backend.js +95 -1089
  28. package/dist/backend/cloud/cloud-backend.test.setup.d.ts +13 -0
  29. package/dist/backend/cloud/cloud-backend.test.setup.js +14 -0
  30. package/dist/backend/local.setup.d.ts +10 -0
  31. package/dist/backend/local.setup.js +20 -0
  32. package/dist/commands/executor/start/index.d.ts +1 -11
  33. package/dist/commands/executor/start/index.js +13 -498
  34. package/dist/commands/import-repo/index.js +2 -2
  35. package/dist/lib/env/test.setup.d.ts +7 -0
  36. package/dist/lib/env/test.setup.js +18 -0
  37. package/dist/lib/executor-start/auth.d.ts +2 -0
  38. package/dist/lib/executor-start/auth.js +21 -0
  39. package/dist/lib/executor-start/execute-app-job.d.ts +13 -0
  40. package/dist/lib/executor-start/execute-app-job.js +146 -0
  41. package/dist/lib/executor-start/execute-deploy-job.d.ts +14 -0
  42. package/dist/lib/executor-start/execute-deploy-job.js +64 -0
  43. package/dist/lib/executor-start/execute-init-job.d.ts +14 -0
  44. package/dist/lib/executor-start/execute-init-job.js +135 -0
  45. package/dist/lib/executor-start/format.d.ts +13 -0
  46. package/dist/lib/executor-start/format.js +22 -0
  47. package/dist/lib/executor-start/job-dispatch.d.ts +15 -0
  48. package/dist/lib/executor-start/job-dispatch.js +89 -0
  49. package/dist/lib/package/index.d.ts +4 -4
  50. package/oclif.manifest.json +52 -52
  51. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ import { convertWorkspace, safeResponseJson } from './utils.js';
2
+ export async function createWorkspace(config, input) {
3
+ const formData = new FormData();
4
+ formData.append('name', input.name);
5
+ if (input.mirrorOf) {
6
+ formData.append('mirrorOf', input.mirrorOf);
7
+ }
8
+ if (input.profile) {
9
+ formData.append('profile', input.profile);
10
+ }
11
+ if (input.isDeploy !== undefined) {
12
+ formData.append('isDeploy', String(input.isDeploy));
13
+ }
14
+ const response = await fetch(`${config.url}/api/workspaces`, {
15
+ body: formData,
16
+ headers: {
17
+ 'Authorization': `Bearer ${config.accessToken}`,
18
+ },
19
+ method: 'POST',
20
+ });
21
+ if (!response.ok) {
22
+ return {
23
+ reason: JSON.stringify(await safeResponseJson(response)),
24
+ success: false,
25
+ };
26
+ }
27
+ const result = await response.json();
28
+ return {
29
+ isNew: true,
30
+ success: true,
31
+ workspace: convertWorkspace(result.workspace),
32
+ };
33
+ }
34
+ export async function deleteWorkspace(config, input) {
35
+ const response = await fetch(`${config.url}/api/workspaces/${encodeURIComponent(input.name)}`, {
36
+ headers: {
37
+ 'Authorization': `Bearer ${config.accessToken}`,
38
+ },
39
+ method: 'DELETE',
40
+ });
41
+ if (!response.ok) {
42
+ return {
43
+ reason: JSON.stringify(await safeResponseJson(response)),
44
+ success: false,
45
+ };
46
+ }
47
+ return {
48
+ success: true,
49
+ };
50
+ }
51
+ export async function getWorkspace(config, name) {
52
+ const response = await fetch(`${config.url}/api/workspaces/${encodeURIComponent(name)}`, {
53
+ headers: {
54
+ 'Authorization': `Bearer ${config.accessToken}`,
55
+ },
56
+ method: 'GET',
57
+ });
58
+ if (response.status === 404) {
59
+ return {
60
+ found: false,
61
+ };
62
+ }
63
+ if (!response.ok) {
64
+ const error = await safeResponseJson(response);
65
+ return {
66
+ error: JSON.stringify(error),
67
+ found: true,
68
+ hasError: true,
69
+ };
70
+ }
71
+ const result = await response.json();
72
+ return {
73
+ found: true,
74
+ hasError: false,
75
+ workspace: convertWorkspace(result.workspace),
76
+ };
77
+ }
78
+ export async function listWorkspaces(config, input) {
79
+ const url = new URL(`${config.url}/api/workspaces`);
80
+ if (input?.org) {
81
+ url.searchParams.set('org', input.org);
82
+ }
83
+ const response = await fetch(url.toString(), {
84
+ headers: {
85
+ 'Authorization': `Bearer ${config.accessToken}`,
86
+ },
87
+ method: 'GET',
88
+ });
89
+ if (!response.ok) {
90
+ throw new Error(JSON.stringify(await safeResponseJson(response)));
91
+ }
92
+ const result = await response.json();
93
+ return result.workspaces.map((workspace) => workspace.name);
94
+ }
95
+ export async function updateWorkspace(config, input) {
96
+ const formData = new FormData();
97
+ if (input.profile !== undefined) {
98
+ formData.append('profile', input.profile === null ? '' : input.profile);
99
+ }
100
+ if (input.hasExecutor !== undefined) {
101
+ formData.append('hasExecutor', input.hasExecutor === null ? '' : String(input.hasExecutor));
102
+ }
103
+ if (input.isDeploy !== undefined) {
104
+ formData.append('isDeploy', input.isDeploy === null ? '' : String(input.isDeploy));
105
+ }
106
+ const response = await fetch(`${config.url}/api/workspaces/${encodeURIComponent(input.name)}`, {
107
+ body: formData,
108
+ headers: {
109
+ 'Authorization': `Bearer ${config.accessToken}`,
110
+ },
111
+ method: 'PATCH',
112
+ });
113
+ if (!response.ok) {
114
+ return {
115
+ reason: JSON.stringify(await safeResponseJson(response)),
116
+ success: false,
117
+ };
118
+ }
119
+ const result = await response.json();
120
+ return {
121
+ success: true,
122
+ workspace: convertWorkspace(result.workspace),
123
+ };
124
+ }
@@ -1,88 +1,35 @@
1
1
  import { Config } from '../../lib/config/common.js';
2
- import { IParameterSpec } from '../../lib/package/index.js';
3
- import { AddPackageToWorkspaceInput, AddPackageToWorkspaceOutput, Backend, CreateWorkspaceInput, CreateWorkspaceOutput, DeleteStateInput, DeleteStateOutput, DeleteWorkspaceInput, DeleteWorkspaceOutput, ExportBackendOutput, GetPackageOutput, GetProjectMetadataInput, GetProjectMetadataOutput, GetProvisioningIdInput, GetProvisioningIdOutput, GetStateInput, GetStateOutput, GetWorkspaceEnvInput, GetWorkspaceEnvOutput, GetWorkspaceOutput, ImportBackendInput, ImportBackendOutput, ImportProjectInput, ImportProjectOutput, InitProjectInput, InitProjectOutput, ListPackageVersionsOutput, ListProjectsOutput, ListWorkspacesInput, PublishPackageInput, PublishPackageOutput, RemovePackageFromWorkspaceInput, RemovePackageFromWorkspaceOutput, SaveProjectMetadataInput, SaveProjectMetadataOutput, SearchPackagesInput, SearchPackagesOutput, SetEnvVarInput, SetEnvVarOutput, UnsetEnvVarInput, UnsetEnvVarOutput, UpdateWorkspaceInput, UpdateWorkspaceOutput } from '../common.js';
2
+ import { Backend } from '../common.js';
3
+ import * as appsDeploy from './cloud-backend/apps-deploy.js';
4
+ import * as appsVersions from './cloud-backend/apps-versions.js';
5
+ import * as executorJobs from './cloud-backend/executor-jobs.js';
6
+ import * as misc from './cloud-backend/misc.js';
7
+ import * as packagesPublish from './cloud-backend/packages-publish.js';
8
+ import * as packagesRegistry from './cloud-backend/packages-registry.js';
9
+ import * as packagesWorkspace from './cloud-backend/packages-workspace.js';
10
+ import * as projects from './cloud-backend/projects.js';
11
+ import * as state from './cloud-backend/state.js';
12
+ import * as workspaceEnv from './cloud-backend/workspace-env.js';
13
+ import * as workspaces from './cloud-backend/workspaces.js';
4
14
  interface CloudBackendConfig {
5
15
  accessToken: string;
6
16
  clientId: string;
7
17
  refreshToken: string;
8
18
  url: string;
9
19
  }
10
- export interface AppSummary {
11
- description?: null | string;
12
- name: string;
13
- visibility?: string;
14
- }
15
- export interface AppVersionSummary {
16
- commit?: string;
17
- parameters?: Record<string, IParameterSpec>;
18
- publishedAt?: string;
19
- repository?: string;
20
- sha256?: string;
21
- version: string;
22
- }
23
- export interface AppDeploymentSummary {
24
- appName?: string;
25
- env?: Record<string, string>;
26
- lastJobId?: null | string;
27
- parameters?: Record<string, unknown>;
28
- state?: unknown;
29
- status: string;
30
- version?: string;
31
- workspace: string;
32
- }
33
- export type DeployAppInput = {
34
- name: string;
35
- parameters?: Record<string, string>;
36
- version?: string;
37
- workspace: string;
38
- };
39
- export type DestroyAppInput = {
40
- name: string;
41
- parameters?: Record<string, string>;
42
- workspace: string;
43
- };
44
- export type GetAppDeploymentInput = {
45
- name: string;
46
- workspace: string;
47
- };
48
- export type PublishAppVersionInput = {
49
- commit: string;
50
- description?: string;
51
- hereyaYaml: string;
52
- name: string;
53
- parameters?: Record<string, IParameterSpec>;
54
- repository: string;
55
- sha256: string;
56
- version: string;
57
- visibility?: 'private' | 'public';
58
- };
59
- export type PublishAppVersionOutput = {
60
- app: {
61
- id?: string;
62
- name: string;
63
- version: string;
64
- };
65
- success: true;
66
- } | {
67
- reason: string;
68
- success: false;
69
- };
70
- export type UpdateAppDeploymentInput = {
71
- env?: Record<string, string>;
72
- lastJobId?: string;
73
- name: string;
74
- state?: unknown;
75
- status: string;
76
- workspace: string;
77
- };
20
+ export type { AppDeploymentSummary, DeployAppInput, DestroyAppInput, GetAppDeploymentInput, UpdateAppDeploymentInput, } from './cloud-backend/apps-deploy.js';
21
+ export type { AppSummary, AppVersionSummary, PublishAppVersionInput, PublishAppVersionOutput, } from './cloud-backend/apps-versions.js';
22
+ type SubmitJobInput = Parameters<typeof executorJobs.submitExecutorJob>[1];
23
+ type UpdateJobInput = Parameters<typeof executorJobs.updateExecutorJob>[1];
24
+ type GetJobStatusInput = Parameters<typeof executorJobs.getExecutorJobStatus>[1];
78
25
  export declare class CloudBackend implements Backend {
79
26
  private readonly config;
80
27
  constructor(config: CloudBackendConfig);
81
- addPackageToWorkspace(input: AddPackageToWorkspaceInput): Promise<AddPackageToWorkspaceOutput>;
82
- createWorkspace(input: CreateWorkspaceInput): Promise<CreateWorkspaceOutput>;
83
- deleteState(input: DeleteStateInput): Promise<DeleteStateOutput>;
84
- deleteWorkspace(input: DeleteWorkspaceInput): Promise<DeleteWorkspaceOutput>;
85
- deployApp(input: DeployAppInput): Promise<{
28
+ addPackageToWorkspace(input: Parameters<typeof packagesWorkspace.addPackageToWorkspace>[1]): Promise<import("../common.js").AddPackageToWorkspaceOutput>;
29
+ createWorkspace(input: Parameters<typeof workspaces.createWorkspace>[1]): Promise<import("../common.js").CreateWorkspaceOutput>;
30
+ deleteState(input: Parameters<typeof state.deleteState>[1]): Promise<import("../common.js").DeleteStateOutput>;
31
+ deleteWorkspace(input: Parameters<typeof workspaces.deleteWorkspace>[1]): Promise<import("../common.js").DeleteWorkspaceOutput>;
32
+ deployApp(input: appsDeploy.DeployAppInput): Promise<{
86
33
  deploymentId: string;
87
34
  jobId: string;
88
35
  success: true;
@@ -90,14 +37,14 @@ export declare class CloudBackend implements Backend {
90
37
  reason: string;
91
38
  success: false;
92
39
  }>;
93
- destroyApp(input: DestroyAppInput): Promise<{
40
+ destroyApp(input: appsDeploy.DestroyAppInput): Promise<{
94
41
  jobId: string;
95
42
  success: true;
96
43
  } | {
97
44
  reason: string;
98
45
  success: false;
99
46
  }>;
100
- exportBackend(): Promise<ExportBackendOutput>;
47
+ exportBackend(): Promise<import("../common.js").ExportBackendOutput>;
101
48
  generateExecutorToken(input: {
102
49
  workspace: string;
103
50
  }): Promise<{
@@ -109,14 +56,14 @@ export declare class CloudBackend implements Backend {
109
56
  success: false;
110
57
  }>;
111
58
  getApp(name: string): Promise<{
112
- app: AppSummary;
59
+ app: appsVersions.AppSummary;
113
60
  success: true;
114
61
  } | {
115
62
  reason: string;
116
63
  success: false;
117
64
  }>;
118
- getAppDeployment(input: GetAppDeploymentInput): Promise<{
119
- deployment: AppDeploymentSummary;
65
+ getAppDeployment(input: appsDeploy.GetAppDeploymentInput): Promise<{
66
+ deployment: appsDeploy.AppDeploymentSummary;
120
67
  success: true;
121
68
  } | {
122
69
  reason: string;
@@ -126,18 +73,13 @@ export declare class CloudBackend implements Backend {
126
73
  name: string;
127
74
  version?: string;
128
75
  }): Promise<{
129
- appVersion: AppVersionSummary;
76
+ appVersion: appsVersions.AppVersionSummary;
130
77
  success: true;
131
78
  } | {
132
79
  reason: string;
133
80
  success: false;
134
81
  }>;
135
- getExecutorJobStatus(input: {
136
- jobId: string;
137
- lastStatus?: string;
138
- poll?: boolean;
139
- workspace: string;
140
- }): Promise<{
82
+ getExecutorJobStatus(input: GetJobStatusInput): Promise<{
141
83
  job: {
142
84
  id: string;
143
85
  logs: string;
@@ -150,25 +92,25 @@ export declare class CloudBackend implements Backend {
150
92
  reason: string;
151
93
  success: false;
152
94
  }>;
153
- getPackageByVersion(name: string, version: string): Promise<GetPackageOutput>;
154
- getPackageLatest(name: string): Promise<GetPackageOutput>;
155
- getProjectMetadata(input: GetProjectMetadataInput): Promise<GetProjectMetadataOutput>;
156
- getProvisioningId(input: GetProvisioningIdInput): Promise<GetProvisioningIdOutput>;
157
- getState(input: GetStateInput): Promise<GetStateOutput>;
158
- getWorkspace(name: string): Promise<GetWorkspaceOutput>;
159
- getWorkspaceEnv(input: GetWorkspaceEnvInput): Promise<GetWorkspaceEnvOutput>;
160
- importBackend(input: ImportBackendInput): Promise<ImportBackendOutput>;
161
- importProject(input: ImportProjectInput): Promise<ImportProjectOutput>;
162
- init(input: InitProjectInput): Promise<InitProjectOutput>;
95
+ getPackageByVersion(name: string, version: string): Promise<import("../common.js").GetPackageOutput>;
96
+ getPackageLatest(name: string): Promise<import("../common.js").GetPackageOutput>;
97
+ getProjectMetadata(input: Parameters<typeof projects.getProjectMetadata>[1]): Promise<import("../common.js").GetProjectMetadataOutput>;
98
+ getProvisioningId(input: Parameters<typeof misc.getProvisioningId>[1]): Promise<import("../common.js").GetProvisioningIdOutput>;
99
+ getState(input: Parameters<typeof state.getState>[1]): Promise<import("../common.js").GetStateOutput>;
100
+ getWorkspace(name: string): Promise<import("../common.js").GetWorkspaceOutput>;
101
+ getWorkspaceEnv(input: Parameters<typeof workspaceEnv.getWorkspaceEnv>[1]): Promise<import("../common.js").GetWorkspaceEnvOutput>;
102
+ importBackend(input: Parameters<typeof misc.importBackend>[1]): Promise<import("../common.js").ImportBackendOutput>;
103
+ importProject(input: Parameters<typeof projects.importProject>[1]): Promise<import("../common.js").ImportProjectOutput>;
104
+ init(input: Parameters<typeof projects.init>[1]): Promise<import("../common.js").InitProjectOutput>;
163
105
  listAppDeployments(name: string): Promise<{
164
- deployments: AppDeploymentSummary[];
106
+ deployments: appsDeploy.AppDeploymentSummary[];
165
107
  success: true;
166
108
  } | {
167
109
  reason: string;
168
110
  success: false;
169
111
  }>;
170
112
  listApps(): Promise<{
171
- apps: AppSummary[];
113
+ apps: appsVersions.AppSummary[];
172
114
  success: true;
173
115
  } | {
174
116
  reason: string;
@@ -179,11 +121,11 @@ export declare class CloudBackend implements Backend {
179
121
  success: false;
180
122
  } | {
181
123
  success: true;
182
- versions: AppVersionSummary[];
124
+ versions: appsVersions.AppVersionSummary[];
183
125
  }>;
184
- listPackageVersions(name: string): Promise<ListPackageVersionsOutput>;
185
- listProjects(): Promise<ListProjectsOutput>;
186
- listWorkspaces(input?: ListWorkspacesInput): Promise<string[]>;
126
+ listPackageVersions(name: string): Promise<import("../common.js").ListPackageVersionsOutput>;
127
+ listProjects(): Promise<import("../common.js").ListProjectsOutput>;
128
+ listWorkspaces(input?: Parameters<typeof workspaces.listWorkspaces>[1]): Promise<string[]>;
187
129
  pollExecutorJobs(input: {
188
130
  executorId?: string;
189
131
  workspace: string;
@@ -199,9 +141,9 @@ export declare class CloudBackend implements Backend {
199
141
  success: false;
200
142
  unauthorized?: true;
201
143
  }>;
202
- publishAppVersion(input: PublishAppVersionInput): Promise<PublishAppVersionOutput>;
203
- publishPackage(input: PublishPackageInput): Promise<PublishPackageOutput>;
204
- removePackageFromWorkspace(input: RemovePackageFromWorkspaceInput): Promise<RemovePackageFromWorkspaceOutput>;
144
+ publishAppVersion(input: appsVersions.PublishAppVersionInput): Promise<appsVersions.PublishAppVersionOutput>;
145
+ publishPackage(input: Parameters<typeof packagesPublish.publishPackage>[1]): Promise<import("../common.js").PublishPackageOutput>;
146
+ removePackageFromWorkspace(input: Parameters<typeof packagesWorkspace.removePackageFromWorkspace>[1]): Promise<import("../common.js").AddPackageToWorkspaceOutput>;
205
147
  revokeExecutorToken(input: {
206
148
  workspace: string;
207
149
  }): Promise<{
@@ -210,42 +152,30 @@ export declare class CloudBackend implements Backend {
210
152
  } | {
211
153
  success: true;
212
154
  }>;
213
- saveProjectMetadata(input: SaveProjectMetadataInput): Promise<SaveProjectMetadataOutput>;
155
+ saveProjectMetadata(input: Parameters<typeof projects.saveProjectMetadata>[1]): Promise<import("../common.js").SaveProjectMetadataOutput>;
214
156
  saveState(config: Config, workspace?: string): Promise<void>;
215
- searchPackages(input: SearchPackagesInput): Promise<SearchPackagesOutput>;
216
- setEnvVar(input: SetEnvVarInput): Promise<SetEnvVarOutput>;
217
- submitExecutorJob(input: {
218
- payload: object;
219
- type: 'app-deploy' | 'app-destroy' | 'deploy' | 'destroy' | 'provision' | 'resolve-env' | 'undeploy';
220
- workspace: string;
221
- }): Promise<{
157
+ searchPackages(input: Parameters<typeof packagesRegistry.searchPackages>[1]): Promise<import("../common.js").SearchPackagesOutput>;
158
+ setEnvVar(input: Parameters<typeof workspaceEnv.setEnvVar>[1]): Promise<import("../common.js").SetEnvVarOutput>;
159
+ submitExecutorJob(input: SubmitJobInput): Promise<{
222
160
  jobId: string;
223
161
  success: true;
224
162
  } | {
225
163
  reason: string;
226
164
  success: false;
227
165
  }>;
228
- unsetEnvVar(input: UnsetEnvVarInput): Promise<UnsetEnvVarOutput>;
229
- updateAppDeployment(input: UpdateAppDeploymentInput): Promise<{
166
+ unsetEnvVar(input: Parameters<typeof workspaceEnv.unsetEnvVar>[1]): Promise<import("../common.js").SetEnvVarOutput>;
167
+ updateAppDeployment(input: appsDeploy.UpdateAppDeploymentInput): Promise<{
230
168
  reason: string;
231
169
  success: false;
232
170
  } | {
233
171
  success: true;
234
172
  }>;
235
- updateExecutorJob(input: {
236
- jobId: string;
237
- logs?: string;
238
- result?: object;
239
- status?: 'completed' | 'failed';
240
- }): Promise<{
173
+ updateExecutorJob(input: UpdateJobInput): Promise<{
241
174
  reason: string;
242
175
  success: false;
243
176
  unauthorized?: true;
244
177
  } | {
245
178
  success: true;
246
179
  }>;
247
- updateWorkspace(input: UpdateWorkspaceInput): Promise<UpdateWorkspaceOutput>;
248
- private convertWorkspace;
249
- private safeResponseJson;
180
+ updateWorkspace(input: Parameters<typeof workspaces.updateWorkspace>[1]): Promise<import("../common.js").UpdateWorkspaceOutput>;
250
181
  }
251
- export {};