balena-cli 16.7.4 → 16.7.5

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/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## 16.7.5 - 2023-07-20
8
+
9
+ * Abstract the fleet/app/block create commands [Thodoris Greasidis]
10
+
7
11
  ## 16.7.4 - 2023-07-20
8
12
 
9
13
  * move: Include fleets of discontinued device types in the fleet selection [Thodoris Greasidis]
@@ -1,10 +1,6 @@
1
1
  import { flags } from '@oclif/command';
2
2
  import Command from '../../command';
3
- interface FlagsDef {
4
- organization?: string;
5
- type?: string;
6
- help: void;
7
- }
3
+ import { FlagsDef } from '../../utils/application-create';
8
4
  export default class AppCreateCmd extends Command {
9
5
  static description: string;
10
6
  static examples: string[];
@@ -17,6 +13,4 @@ export default class AppCreateCmd extends Command {
17
13
  static flags: flags.Input<FlagsDef>;
18
14
  static authenticated: boolean;
19
15
  run(): Promise<void>;
20
- getOrganization(): Promise<string>;
21
16
  }
22
- export {};
@@ -2,50 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const command_1 = require("@oclif/command");
4
4
  const command_2 = require("../../command");
5
- const errors_1 = require("../../errors");
6
5
  const cf = require("../../utils/common-flags");
7
6
  const lazy_1 = require("../../utils/lazy");
8
7
  class AppCreateCmd extends command_2.default {
9
8
  async run() {
10
- var _a;
11
9
  const { args: params, flags: options } = this.parse(AppCreateCmd);
12
- const deviceType = options.type ||
13
- (await (await Promise.resolve().then(() => require('../../utils/patterns'))).selectDeviceType());
14
- const organization = ((_a = options.organization) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || (await this.getOrganization());
15
- try {
16
- const application = await (0, lazy_1.getBalenaSdk)().models.application.create({
17
- name: params.name,
18
- deviceType,
19
- organization,
20
- applicationClass: 'app',
21
- });
22
- console.log(`App created: slug "${application.slug}", device type "${deviceType}"`);
23
- }
24
- catch (err) {
25
- if ((err.message || '').toLowerCase().includes('unique')) {
26
- throw new errors_1.ExpectedError(`Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`);
27
- }
28
- else if ((err.message || '').toLowerCase().includes('unauthorized')) {
29
- throw new errors_1.ExpectedError(`Error: You are not authorized to create apps in organization "${organization}".`);
30
- }
31
- throw err;
32
- }
33
- }
34
- async getOrganization() {
35
- const { getOwnOrganizations } = await Promise.resolve().then(() => require('../../utils/sdk'));
36
- const organizations = await getOwnOrganizations((0, lazy_1.getBalenaSdk)(), {
37
- $select: ['name', 'handle'],
38
- });
39
- if (organizations.length === 0) {
40
- throw new Error('This account is not a member of any organizations');
41
- }
42
- else if (organizations.length === 1) {
43
- return organizations[0].handle;
44
- }
45
- else {
46
- const { selectOrganization } = await Promise.resolve().then(() => require('../../utils/patterns'));
47
- return selectOrganization(organizations);
48
- }
10
+ await (await Promise.resolve().then(() => require('../../utils/application-create'))).applicationCreateBase('app', options, params);
49
11
  }
50
12
  }
51
13
  AppCreateCmd.description = (0, lazy_1.stripIndent) `
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/app/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/app/create.ts"],"names":[],"mappings":";;AAiBA,4CAAuC;AAEvC,2CAAoC;AACpC,+CAA+C;AAC/C,2CAA+C;AAG/C,MAAqB,YAAa,SAAQ,iBAAO;IAqDzC,KAAK,CAAC,GAAG;QACf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAClD,YAAY,CACZ,CAAC;QAEF,MAAM,CACL,2CAAa,gCAAgC,EAAC,CAC9C,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;;AA5Da,wBAAW,GAAG,IAAA,kBAAW,EAAA;;;;;;;;;;;;;;;;;;;EAmBtC,CAAC;AAEY,qBAAQ,GAAG;IACxB,2BAA2B;IAC3B,iDAAiD;IACjD,wDAAwD;CACxD,CAAC;AAEY,iBAAI,GAAG;IACpB;QACC,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,IAAI;KACd;CACD,CAAC;AAEY,kBAAK,GAAG,mBAAmB,CAAC;AAE5B,kBAAK,GAA0B;IAC5C,YAAY,EAAE,eAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,qDAAqD;KAClE,CAAC;IACF,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,WAAW,EACV,yEAAyE;KAC1E,CAAC;IACF,IAAI,EAAE,EAAE,CAAC,IAAI;CACb,CAAC;AAEY,0BAAa,GAAG,IAAI,CAAC;kBAnDf,YAAY"}
@@ -17,6 +17,5 @@ export default class BlockCreateCmd extends Command {
17
17
  static flags: flags.Input<FlagsDef>;
18
18
  static authenticated: boolean;
19
19
  run(): Promise<void>;
20
- getOrganization(): Promise<string>;
21
20
  }
22
21
  export {};
@@ -2,50 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const command_1 = require("@oclif/command");
4
4
  const command_2 = require("../../command");
5
- const errors_1 = require("../../errors");
6
5
  const cf = require("../../utils/common-flags");
7
6
  const lazy_1 = require("../../utils/lazy");
8
7
  class BlockCreateCmd extends command_2.default {
9
8
  async run() {
10
- var _a;
11
9
  const { args: params, flags: options } = this.parse(BlockCreateCmd);
12
- const deviceType = options.type ||
13
- (await (await Promise.resolve().then(() => require('../../utils/patterns'))).selectDeviceType());
14
- const organization = ((_a = options.organization) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || (await this.getOrganization());
15
- try {
16
- const application = await (0, lazy_1.getBalenaSdk)().models.application.create({
17
- name: params.name,
18
- deviceType,
19
- organization,
20
- applicationClass: 'block',
21
- });
22
- console.log(`Block created: slug "${application.slug}", device type "${deviceType}"`);
23
- }
24
- catch (err) {
25
- if ((err.message || '').toLowerCase().includes('unique')) {
26
- throw new errors_1.ExpectedError(`Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`);
27
- }
28
- else if ((err.message || '').toLowerCase().includes('unauthorized')) {
29
- throw new errors_1.ExpectedError(`Error: You are not authorized to create blocks in organization "${organization}".`);
30
- }
31
- throw err;
32
- }
33
- }
34
- async getOrganization() {
35
- const { getOwnOrganizations } = await Promise.resolve().then(() => require('../../utils/sdk'));
36
- const organizations = await getOwnOrganizations((0, lazy_1.getBalenaSdk)(), {
37
- $select: ['name', 'handle'],
38
- });
39
- if (organizations.length === 0) {
40
- throw new Error('This account is not a member of any organizations');
41
- }
42
- else if (organizations.length === 1) {
43
- return organizations[0].handle;
44
- }
45
- else {
46
- const { selectOrganization } = await Promise.resolve().then(() => require('../../utils/patterns'));
47
- return selectOrganization(organizations);
48
- }
10
+ await (await Promise.resolve().then(() => require('../../utils/application-create'))).applicationCreateBase('block', options, params);
49
11
  }
50
12
  }
51
13
  BlockCreateCmd.description = (0, lazy_1.stripIndent) `
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/block/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/block/create.ts"],"names":[],"mappings":";;AAiBA,4CAAuC;AAEvC,2CAAoC;AACpC,+CAA+C;AAC/C,2CAA+C;AAY/C,MAAqB,cAAe,SAAQ,iBAAO;IAqD3C,KAAK,CAAC,GAAG;QACf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAClD,cAAc,CACd,CAAC;QAEF,MAAM,CACL,2CAAa,gCAAgC,EAAC,CAC9C,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;;AA5Da,0BAAW,GAAG,IAAA,kBAAW,EAAA;;;;;;;;;;;;;;;;;;;EAmBtC,CAAC;AAEY,uBAAQ,GAAG;IACxB,+BAA+B;IAC/B,qDAAqD;IACrD,4DAA4D;CAC5D,CAAC;AAEY,mBAAI,GAAG;IACpB;QACC,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,IAAI;KACd;CACD,CAAC;AAEY,oBAAK,GAAG,qBAAqB,CAAC;AAE9B,oBAAK,GAA0B;IAC5C,YAAY,EAAE,eAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,uDAAuD;KACpE,CAAC;IACF,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,WAAW,EACV,2EAA2E;KAC5E,CAAC;IACF,IAAI,EAAE,EAAE,CAAC,IAAI;CACb,CAAC;AAEY,4BAAa,GAAG,IAAI,CAAC;kBAnDf,cAAc"}
@@ -1,10 +1,6 @@
1
1
  import { flags } from '@oclif/command';
2
2
  import Command from '../../command';
3
- interface FlagsDef {
4
- organization?: string;
5
- type?: string;
6
- help: void;
7
- }
3
+ import { FlagsDef } from '../../utils/application-create';
8
4
  export default class FleetCreateCmd extends Command {
9
5
  static description: string;
10
6
  static examples: string[];
@@ -17,6 +13,4 @@ export default class FleetCreateCmd extends Command {
17
13
  static flags: flags.Input<FlagsDef>;
18
14
  static authenticated: boolean;
19
15
  run(): Promise<void>;
20
- getOrganization(): Promise<string>;
21
16
  }
22
- export {};
@@ -2,49 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const command_1 = require("@oclif/command");
4
4
  const command_2 = require("../../command");
5
- const errors_1 = require("../../errors");
6
5
  const cf = require("../../utils/common-flags");
7
6
  const lazy_1 = require("../../utils/lazy");
8
7
  class FleetCreateCmd extends command_2.default {
9
8
  async run() {
10
- var _a;
11
9
  const { args: params, flags: options } = this.parse(FleetCreateCmd);
12
- const deviceType = options.type ||
13
- (await (await Promise.resolve().then(() => require('../../utils/patterns'))).selectDeviceType());
14
- const organization = ((_a = options.organization) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || (await this.getOrganization());
15
- try {
16
- const application = await (0, lazy_1.getBalenaSdk)().models.application.create({
17
- name: params.name,
18
- deviceType,
19
- organization,
20
- });
21
- console.log(`Fleet created: slug "${application.slug}", device type "${deviceType}"`);
22
- }
23
- catch (err) {
24
- if ((err.message || '').toLowerCase().includes('unique')) {
25
- throw new errors_1.ExpectedError(`Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`);
26
- }
27
- else if ((err.message || '').toLowerCase().includes('unauthorized')) {
28
- throw new errors_1.ExpectedError(`Error: You are not authorized to create fleets in organization "${organization}".`);
29
- }
30
- throw err;
31
- }
32
- }
33
- async getOrganization() {
34
- const { getOwnOrganizations } = await Promise.resolve().then(() => require('../../utils/sdk'));
35
- const organizations = await getOwnOrganizations((0, lazy_1.getBalenaSdk)(), {
36
- $select: ['name', 'handle'],
37
- });
38
- if (organizations.length === 0) {
39
- throw new Error('This account is not a member of any organizations');
40
- }
41
- else if (organizations.length === 1) {
42
- return organizations[0].handle;
43
- }
44
- else {
45
- const { selectOrganization } = await Promise.resolve().then(() => require('../../utils/patterns'));
46
- return selectOrganization(organizations);
47
- }
10
+ await (await Promise.resolve().then(() => require('../../utils/application-create'))).applicationCreateBase('fleet', options, params);
48
11
  }
49
12
  }
50
13
  FleetCreateCmd.description = (0, lazy_1.stripIndent) `
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/fleet/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../lib/commands/fleet/create.ts"],"names":[],"mappings":";;AAiBA,4CAAuC;AAEvC,2CAAoC;AACpC,+CAA+C;AAC/C,2CAA+C;AAG/C,MAAqB,cAAe,SAAQ,iBAAO;IAqD3C,KAAK,CAAC,GAAG;QACf,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAClD,cAAc,CACd,CAAC;QAEF,MAAM,CACL,2CAAa,gCAAgC,EAAC,CAC9C,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;;AA5Da,0BAAW,GAAG,IAAA,kBAAW,EAAA;;;;;;;;;;;;;;;;;;;EAmBtC,CAAC;AAEY,uBAAQ,GAAG;IACxB,+BAA+B;IAC/B,qDAAqD;IACrD,4DAA4D;CAC5D,CAAC;AAEY,mBAAI,GAAG;IACpB;QACC,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,IAAI;KACd;CACD,CAAC;AAEY,oBAAK,GAAG,qBAAqB,CAAC;AAE9B,oBAAK,GAA0B;IAC5C,YAAY,EAAE,eAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,uDAAuD;KACpE,CAAC;IACF,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG;QACT,WAAW,EACV,2EAA2E;KAC5E,CAAC;IACF,IAAI,EAAE,EAAE,CAAC,IAAI;CACb,CAAC;AAEY,4BAAa,GAAG,IAAI,CAAC;kBAnDf,cAAc"}
@@ -0,0 +1,9 @@
1
+ export interface FlagsDef {
2
+ organization?: string;
3
+ type?: string;
4
+ help: void;
5
+ }
6
+ export interface ArgsDef {
7
+ name: string;
8
+ }
9
+ export declare function applicationCreateBase(resource: 'fleet' | 'app' | 'block', options: FlagsDef, params: ArgsDef): Promise<void>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applicationCreateBase = void 0;
4
+ const errors_1 = require("../errors");
5
+ const lazy_1 = require("./lazy");
6
+ async function applicationCreateBase(resource, options, params) {
7
+ var _a;
8
+ const deviceType = options.type || (await (await Promise.resolve().then(() => require('./patterns'))).selectDeviceType());
9
+ const organization = ((_a = options.organization) === null || _a === void 0 ? void 0 : _a.toLowerCase()) ||
10
+ (await (await Promise.resolve().then(() => require('./patterns'))).getAndSelectOrganization());
11
+ try {
12
+ const application = await (0, lazy_1.getBalenaSdk)().models.application.create({
13
+ name: params.name,
14
+ deviceType,
15
+ organization,
16
+ });
17
+ const { capitalize } = await Promise.resolve().then(() => require('lodash'));
18
+ console.log(`${capitalize(resource)} created: slug "${application.slug}", device type "${deviceType}"`);
19
+ }
20
+ catch (err) {
21
+ if ((err.message || '').toLowerCase().includes('unique')) {
22
+ throw new errors_1.ExpectedError(`Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`);
23
+ }
24
+ else if ((err.message || '').toLowerCase().includes('unauthorized')) {
25
+ throw new errors_1.ExpectedError(`Error: You are not authorized to create ${resource}s in organization "${organization}".`);
26
+ }
27
+ throw err;
28
+ }
29
+ }
30
+ exports.applicationCreateBase = applicationCreateBase;
31
+ //# sourceMappingURL=application-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-create.js","sourceRoot":"","sources":["../../lib/utils/application-create.ts"],"names":[],"mappings":";;;AAAA,sCAA0C;AAC1C,iCAAsC;AAY/B,KAAK,UAAU,qBAAqB,CAC1C,QAAmC,EACnC,OAAiB,EACjB,MAAe;;IAGf,MAAM,UAAU,GACf,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,2CAAa,YAAY,EAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAGzE,MAAM,YAAY,GACjB,CAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW,EAAE;QACnC,CAAC,MAAM,CAAC,2CAAa,YAAY,EAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAGjE,IAAI;QACH,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU;YACV,YAAY;SACZ,CAAC,CAAC;QAGH,MAAM,EAAE,UAAU,EAAE,GAAG,2CAAa,QAAQ,EAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CACV,GAAG,UAAU,CAAC,QAAQ,CAAC,mBACtB,WAAW,CAAC,IACb,mBAAmB,UAAU,GAAG,CAChC,CAAC;KACF;IAAC,OAAO,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAEzD,MAAM,IAAI,sBAAa,CACtB,kDAAkD,MAAM,CAAC,IAAI,qCAAqC,YAAY,IAAI,CAClH,CAAC;SACF;aAAM,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAEtE,MAAM,IAAI,sBAAa,CACtB,2CAA2C,QAAQ,sBAAsB,YAAY,IAAI,CACzF,CAAC;SACF;QAED,MAAM,GAAG,CAAC;KACV;AACF,CAAC;AA5CD,sDA4CC"}
@@ -20,6 +20,7 @@ export declare function selectApplication(filter?: PineFilter<Application> | ((a
20
20
  };
21
21
  }>>;
22
22
  export declare function selectOrganization(organizations?: Array<Pick<Organization, 'handle' | 'name'>>): Promise<string>;
23
+ export declare function getAndSelectOrganization(): Promise<string>;
23
24
  export declare function awaitDeviceOsUpdate(uuid: string, targetOsVersion: string): Promise<string>;
24
25
  export declare function getOnlineTargetDeviceUuid(sdk: BalenaSDK, fleetOrDevice: string): Promise<string>;
25
26
  export declare function selectFromList<T>(message: string, choices: Array<T & {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectFromList = exports.getOnlineTargetDeviceUuid = exports.awaitDeviceOsUpdate = exports.selectOrganization = exports.selectApplication = exports.confirm = exports.selectDeviceType = exports.askLoginType = exports.checkLoggedIn = exports.authenticate = void 0;
3
+ exports.selectFromList = exports.getOnlineTargetDeviceUuid = exports.awaitDeviceOsUpdate = exports.getAndSelectOrganization = exports.selectOrganization = exports.selectApplication = exports.confirm = exports.selectDeviceType = exports.askLoginType = exports.checkLoggedIn = exports.authenticate = void 0;
4
4
  const errors_1 = require("../errors");
5
5
  const lazy_1 = require("./lazy");
6
6
  const validation = require("./validation");
@@ -161,6 +161,22 @@ async function selectOrganization(organizations) {
161
161
  });
162
162
  }
163
163
  exports.selectOrganization = selectOrganization;
164
+ async function getAndSelectOrganization() {
165
+ const { getOwnOrganizations } = await Promise.resolve().then(() => require('./sdk'));
166
+ const organizations = await getOwnOrganizations((0, lazy_1.getBalenaSdk)(), {
167
+ $select: ['name', 'handle'],
168
+ });
169
+ if (organizations.length === 0) {
170
+ throw new Error('This account is not a member of any organizations');
171
+ }
172
+ else if (organizations.length === 1) {
173
+ return organizations[0].handle;
174
+ }
175
+ else {
176
+ return selectOrganization(organizations);
177
+ }
178
+ }
179
+ exports.getAndSelectOrganization = getAndSelectOrganization;
164
180
  async function awaitDeviceOsUpdate(uuid, targetOsVersion) {
165
181
  const balena = (0, lazy_1.getBalenaSdk)();
166
182
  const deviceName = await balena.models.device.getName(uuid);
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../lib/utils/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../lib/utils/patterns.ts"],"names":[],"mappings":"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"}
@@ -18,19 +18,9 @@
18
18
  import { flags } from '@oclif/command';
19
19
 
20
20
  import Command from '../../command';
21
- import { ExpectedError } from '../../errors';
22
21
  import * as cf from '../../utils/common-flags';
23
- import { getBalenaSdk, stripIndent } from '../../utils/lazy';
24
-
25
- interface FlagsDef {
26
- organization?: string;
27
- type?: string; // application device type
28
- help: void;
29
- }
30
-
31
- interface ArgsDef {
32
- name: string;
33
- }
22
+ import { stripIndent } from '../../utils/lazy';
23
+ import { ArgsDef, FlagsDef } from '../../utils/application-create';
34
24
 
35
25
  export default class AppCreateCmd extends Command {
36
26
  public static description = stripIndent`
@@ -90,61 +80,8 @@ export default class AppCreateCmd extends Command {
90
80
  AppCreateCmd,
91
81
  );
92
82
 
93
- // Ascertain device type
94
- const deviceType =
95
- options.type ||
96
- (await (await import('../../utils/patterns')).selectDeviceType());
97
-
98
- // Ascertain organization
99
- const organization =
100
- options.organization?.toLowerCase() || (await this.getOrganization());
101
-
102
- // Create application
103
- try {
104
- const application = await getBalenaSdk().models.application.create({
105
- name: params.name,
106
- deviceType,
107
- organization,
108
- applicationClass: 'app',
109
- });
110
-
111
- // Output
112
- console.log(
113
- `App created: slug "${application.slug}", device type "${deviceType}"`,
114
- );
115
- } catch (err) {
116
- if ((err.message || '').toLowerCase().includes('unique')) {
117
- // BalenaRequestError: Request error: "organization" and "app_name" must be unique.
118
- throw new ExpectedError(
119
- `Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`,
120
- );
121
- } else if ((err.message || '').toLowerCase().includes('unauthorized')) {
122
- // BalenaRequestError: Request error: Unauthorized
123
- throw new ExpectedError(
124
- `Error: You are not authorized to create apps in organization "${organization}".`,
125
- );
126
- }
127
-
128
- throw err;
129
- }
130
- }
131
-
132
- async getOrganization() {
133
- const { getOwnOrganizations } = await import('../../utils/sdk');
134
- const organizations = await getOwnOrganizations(getBalenaSdk(), {
135
- $select: ['name', 'handle'],
136
- });
137
-
138
- if (organizations.length === 0) {
139
- // User is not a member of any organizations (should not happen).
140
- throw new Error('This account is not a member of any organizations');
141
- } else if (organizations.length === 1) {
142
- // User is a member of only one organization - use this.
143
- return organizations[0].handle;
144
- } else {
145
- // User is a member of multiple organizations -
146
- const { selectOrganization } = await import('../../utils/patterns');
147
- return selectOrganization(organizations);
148
- }
83
+ await (
84
+ await import('../../utils/application-create')
85
+ ).applicationCreateBase('app', options, params);
149
86
  }
150
87
  }
@@ -18,9 +18,8 @@
18
18
  import { flags } from '@oclif/command';
19
19
 
20
20
  import Command from '../../command';
21
- import { ExpectedError } from '../../errors';
22
21
  import * as cf from '../../utils/common-flags';
23
- import { getBalenaSdk, stripIndent } from '../../utils/lazy';
22
+ import { stripIndent } from '../../utils/lazy';
24
23
 
25
24
  interface FlagsDef {
26
25
  organization?: string;
@@ -90,61 +89,8 @@ export default class BlockCreateCmd extends Command {
90
89
  BlockCreateCmd,
91
90
  );
92
91
 
93
- // Ascertain device type
94
- const deviceType =
95
- options.type ||
96
- (await (await import('../../utils/patterns')).selectDeviceType());
97
-
98
- // Ascertain organization
99
- const organization =
100
- options.organization?.toLowerCase() || (await this.getOrganization());
101
-
102
- // Create application
103
- try {
104
- const application = await getBalenaSdk().models.application.create({
105
- name: params.name,
106
- deviceType,
107
- organization,
108
- applicationClass: 'block',
109
- });
110
-
111
- // Output
112
- console.log(
113
- `Block created: slug "${application.slug}", device type "${deviceType}"`,
114
- );
115
- } catch (err) {
116
- if ((err.message || '').toLowerCase().includes('unique')) {
117
- // BalenaRequestError: Request error: "organization" and "app_name" must be unique.
118
- throw new ExpectedError(
119
- `Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`,
120
- );
121
- } else if ((err.message || '').toLowerCase().includes('unauthorized')) {
122
- // BalenaRequestError: Request error: Unauthorized
123
- throw new ExpectedError(
124
- `Error: You are not authorized to create blocks in organization "${organization}".`,
125
- );
126
- }
127
-
128
- throw err;
129
- }
130
- }
131
-
132
- async getOrganization() {
133
- const { getOwnOrganizations } = await import('../../utils/sdk');
134
- const organizations = await getOwnOrganizations(getBalenaSdk(), {
135
- $select: ['name', 'handle'],
136
- });
137
-
138
- if (organizations.length === 0) {
139
- // User is not a member of any organizations (should not happen).
140
- throw new Error('This account is not a member of any organizations');
141
- } else if (organizations.length === 1) {
142
- // User is a member of only one organization - use this.
143
- return organizations[0].handle;
144
- } else {
145
- // User is a member of multiple organizations -
146
- const { selectOrganization } = await import('../../utils/patterns');
147
- return selectOrganization(organizations);
148
- }
92
+ await (
93
+ await import('../../utils/application-create')
94
+ ).applicationCreateBase('block', options, params);
149
95
  }
150
96
  }
@@ -18,19 +18,9 @@
18
18
  import { flags } from '@oclif/command';
19
19
 
20
20
  import Command from '../../command';
21
- import { ExpectedError } from '../../errors';
22
21
  import * as cf from '../../utils/common-flags';
23
- import { getBalenaSdk, stripIndent } from '../../utils/lazy';
24
-
25
- interface FlagsDef {
26
- organization?: string;
27
- type?: string; // application device type
28
- help: void;
29
- }
30
-
31
- interface ArgsDef {
32
- name: string;
33
- }
22
+ import { stripIndent } from '../../utils/lazy';
23
+ import { ArgsDef, FlagsDef } from '../../utils/application-create';
34
24
 
35
25
  export default class FleetCreateCmd extends Command {
36
26
  public static description = stripIndent`
@@ -90,60 +80,8 @@ export default class FleetCreateCmd extends Command {
90
80
  FleetCreateCmd,
91
81
  );
92
82
 
93
- // Ascertain device type
94
- const deviceType =
95
- options.type ||
96
- (await (await import('../../utils/patterns')).selectDeviceType());
97
-
98
- // Ascertain organization
99
- const organization =
100
- options.organization?.toLowerCase() || (await this.getOrganization());
101
-
102
- // Create application
103
- try {
104
- const application = await getBalenaSdk().models.application.create({
105
- name: params.name,
106
- deviceType,
107
- organization,
108
- });
109
-
110
- // Output
111
- console.log(
112
- `Fleet created: slug "${application.slug}", device type "${deviceType}"`,
113
- );
114
- } catch (err) {
115
- if ((err.message || '').toLowerCase().includes('unique')) {
116
- // BalenaRequestError: Request error: "organization" and "app_name" must be unique.
117
- throw new ExpectedError(
118
- `Error: An app or block or fleet with the name "${params.name}" already exists in organization "${organization}".`,
119
- );
120
- } else if ((err.message || '').toLowerCase().includes('unauthorized')) {
121
- // BalenaRequestError: Request error: Unauthorized
122
- throw new ExpectedError(
123
- `Error: You are not authorized to create fleets in organization "${organization}".`,
124
- );
125
- }
126
-
127
- throw err;
128
- }
129
- }
130
-
131
- async getOrganization() {
132
- const { getOwnOrganizations } = await import('../../utils/sdk');
133
- const organizations = await getOwnOrganizations(getBalenaSdk(), {
134
- $select: ['name', 'handle'],
135
- });
136
-
137
- if (organizations.length === 0) {
138
- // User is not a member of any organizations (should not happen).
139
- throw new Error('This account is not a member of any organizations');
140
- } else if (organizations.length === 1) {
141
- // User is a member of only one organization - use this.
142
- return organizations[0].handle;
143
- } else {
144
- // User is a member of multiple organizations -
145
- const { selectOrganization } = await import('../../utils/patterns');
146
- return selectOrganization(organizations);
147
- }
83
+ await (
84
+ await import('../../utils/application-create')
85
+ ).applicationCreateBase('fleet', options, params);
148
86
  }
149
87
  }