@lightdash/cli 0.2644.0 → 0.2645.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -24,6 +24,7 @@ export type Config = {
24
24
  };
25
25
  export declare const getConfig: () => Promise<Config>;
26
26
  export declare const setProject: (projectUuid: string, projectName: string) => Promise<void>;
27
+ export declare const unsetProject: () => Promise<void>;
27
28
  export declare const setPreviewProject: (projectUuid: string, name: string) => Promise<void>;
28
29
  export declare const unsetPreviewProject: () => Promise<void>;
29
30
  export declare const setDefaultUser: (userUuid: string, organizationUuid: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG;IACjB,IAAI,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE;QACN,qCAAqC,CAAC,EAAE,OAAO,CAAC;KACnD,CAAC;CACL,CAAC;AAgCF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,MAAM,CAmBhD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,aAAa,MAAM,EAAE,aAAa,MAAM,kBAUxE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,aAAa,MAAM,EAAE,MAAM,MAAM,kBAUxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,qBAU/B,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,UAAU,MAAM,EAChB,kBAAkB,MAAM,kBAW3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,CAAC,SAAS,CAAC,kBAM1D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,QAAQ,MAAM,CAAC,SAAS,CAAC,kBAMxD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG;IACjB,IAAI,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE;QACN,qCAAqC,CAAC,EAAE,OAAO,CAAC;KACnD,CAAC;CACL,CAAC;AAgCF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,MAAM,CAmBhD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,aAAa,MAAM,EAAE,aAAa,MAAM,kBAUxE,CAAC;AAEF,eAAO,MAAM,YAAY,qBAUxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,aAAa,MAAM,EAAE,MAAM,MAAM,kBAUxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,qBAU/B,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,UAAU,MAAM,EAChB,kBAAkB,MAAM,kBAW3B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,CAAC,SAAS,CAAC,kBAM1D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,QAAQ,MAAM,CAAC,SAAS,CAAC,kBAMxD,CAAC"}
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setAnswer = exports.setContext = exports.setDefaultUser = exports.unsetPreviewProject = exports.setPreviewProject = exports.setProject = exports.getConfig = exports.configFilePath = void 0;
3
+ exports.setAnswer = exports.setContext = exports.setDefaultUser = exports.unsetPreviewProject = exports.setPreviewProject = exports.unsetProject = exports.setProject = exports.getConfig = exports.configFilePath = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs_1 = require("fs");
6
6
  const yaml = tslib_1.__importStar(require("js-yaml"));
@@ -68,6 +68,18 @@ const setProject = async (projectUuid, projectName) => {
68
68
  });
69
69
  };
70
70
  exports.setProject = setProject;
71
+ const unsetProject = async () => {
72
+ const config = await getRawConfig();
73
+ await setConfig({
74
+ ...config,
75
+ context: {
76
+ ...(config.context || {}),
77
+ project: undefined,
78
+ projectName: undefined,
79
+ },
80
+ });
81
+ };
82
+ exports.unsetProject = unsetProject;
71
83
  const setPreviewProject = async (projectUuid, name) => {
72
84
  const config = await getRawConfig();
73
85
  await setConfig({
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/handlers/download.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAmQF,KAAK,mBAAmB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAkDjE,eAAO,MAAM,eAAe,GACxB,KAAK,MAAM,EAAE,EACb,MAAM,mBAAmB,EACzB,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,cAAa,OAAe,EAC5B,SAAQ,OAAe,KACxB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2G5B,CAAC;AAEF,eAAO,MAAM,eAAe,GACxB,SAAS,sBAAsB,KAChC,OAAO,CAAC,IAAI,CAuKd,CAAC;AA4ZF,eAAO,MAAM,aAAa,GACtB,SAAS,sBAAsB,KAChC,OAAO,CAAC,IAAI,CA+Id,CAAC"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/handlers/download.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAmQF,KAAK,mBAAmB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAkDjE,eAAO,MAAM,eAAe,GACxB,KAAK,MAAM,EAAE,EACb,MAAM,mBAAmB,EACzB,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,cAAa,OAAe,EAC5B,SAAQ,OAAe,KACxB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2G5B,CAAC;AAEF,eAAO,MAAM,eAAe,GACxB,SAAS,sBAAsB,KAChC,OAAO,CAAC,IAAI,CA0Kd,CAAC;AA4ZF,eAAO,MAAM,aAAa,GACtB,SAAS,sBAAsB,KAChC,OAAO,CAAC,IAAI,CAkJd,CAAC"}
@@ -278,7 +278,12 @@ const downloadHandler = async (options) => {
278
278
  }
279
279
  const projectSelection = await (0, selectProject_1.selectProject)(config, options.project);
280
280
  if (!projectSelection) {
281
- throw new Error('No project selected. Run lightdash config set-project');
281
+ throw new common_1.LightdashError({
282
+ message: 'No project selected. Run lightdash config set-project',
283
+ name: 'Not Found',
284
+ statusCode: 404,
285
+ data: {},
286
+ });
282
287
  }
283
288
  const projectId = projectSelection.projectUuid;
284
289
  // Log current project info
@@ -612,7 +617,12 @@ const uploadHandler = async (options) => {
612
617
  }
613
618
  const projectSelection = await (0, selectProject_1.selectProject)(config, options.project);
614
619
  if (!projectSelection) {
615
- throw new Error('No project selected. Run lightdash config set-project');
620
+ throw new common_1.LightdashError({
621
+ message: 'No project selected. Run lightdash config set-project',
622
+ name: 'Not Found',
623
+ statusCode: 404,
624
+ data: {},
625
+ });
616
626
  }
617
627
  const projectId = projectSelection.projectUuid;
618
628
  // Log current project info
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/handlers/login.ts"],"names":[],"mappings":"AAkBA,KAAK,YAAY,GAAG;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AA4JF,eAAO,MAAM,KAAK,GACd,UAAU,MAAM,GAAG,SAAS,EAC5B,SAAS,YAAY,kBAmJxB,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/handlers/login.ts"],"names":[],"mappings":"AAkBA,KAAK,YAAY,GAAG;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AA4JF,eAAO,MAAM,KAAK,GACd,UAAU,MAAM,GAAG,SAAS,EAC5B,SAAS,YAAY,kBA2JxB,CAAC"}
@@ -221,11 +221,14 @@ const login = async (urlInput, options) => {
221
221
  await (0, setProject_1.setFirstProject)();
222
222
  }
223
223
  else {
224
- const project = await (0, setProject_1.setProjectCommand)();
225
- if (project === undefined) {
224
+ const result = await (0, setProject_1.setProjectCommand)();
225
+ if (result === 'empty') {
226
226
  console.error('Now you can add your first project to lightdash by doing: ');
227
227
  console.error(`\n ${styles.bold(`⚡️ lightdash deploy --create`)}\n`);
228
228
  }
229
+ else if (result === 'skipped') {
230
+ console.error(`\n No project selected — use ${styles.bold('lightdash config set-project')} or ${styles.bold('--project <uuid>')} when running commands.\n`);
231
+ }
229
232
  }
230
233
  }
231
234
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"renameHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/renameHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,UAAU,EAEb,MAAM,mBAAmB,CAAC;AAkB3B,KAAK,oBAAoB,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACrB,CAAC;AAsCF,eAAO,MAAM,aAAa,GAAU,SAAS,oBAAoB,kBAgMhE,CAAC"}
1
+ {"version":3,"file":"renameHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/renameHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,UAAU,EAEb,MAAM,mBAAmB,CAAC;AAkB3B,KAAK,oBAAoB,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACrB,CAAC;AAsCF,eAAO,MAAM,aAAa,GAAU,SAAS,oBAAoB,kBAmMhE,CAAC"}
@@ -48,7 +48,12 @@ const renameHandler = async (options) => {
48
48
  config.context.previewProject ||
49
49
  config.context.project;
50
50
  if (!projectUuid) {
51
- throw new Error('No project selected. Run lightdash config set-project');
51
+ throw new common_1.LightdashError({
52
+ message: 'No project selected. Run lightdash config set-project',
53
+ name: 'Not Found',
54
+ statusCode: 404,
55
+ data: {},
56
+ });
52
57
  }
53
58
  // Log current project info
54
59
  if (options.project) {
@@ -3,8 +3,12 @@ type SetProjectOptions = {
3
3
  name: string;
4
4
  uuid: string;
5
5
  };
6
- export declare const setProjectCommand: (name?: string, uuid?: string) => Promise<void>;
6
+ export declare const setProjectCommand: (name?: string, uuid?: string) => Promise<"selected" | "skipped" | "empty">;
7
7
  export declare const setFirstProject: () => Promise<void>;
8
8
  export declare const setProjectHandler: (options: SetProjectOptions) => Promise<void>;
9
+ export declare const unsetProjectCommand: () => Promise<void>;
10
+ export declare const unsetProjectHandler: (options: {
11
+ verbose: boolean;
12
+ }) => Promise<void>;
9
13
  export {};
10
14
  //# sourceMappingURL=setProject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setProject.d.ts","sourceRoot":"","sources":["../../src/handlers/setProject.ts"],"names":[],"mappings":"AAQA,KAAK,iBAAiB,GAAG;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,OAAO,MAAM,EAAE,OAAO,MAAM,kBAuDnE,CAAC;AAEF,eAAO,MAAM,eAAe,qBAmB3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,SAAS,iBAAiB,kBAmBjE,CAAC"}
1
+ {"version":3,"file":"setProject.d.ts","sourceRoot":"","sources":["../../src/handlers/setProject.ts"],"names":[],"mappings":"AAQA,KAAK,iBAAiB,GAAG;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC1B,OAAO,MAAM,EACb,OAAO,MAAM,KACd,OAAO,CAAC,UAAU,GAAG,SAAS,GAAG,OAAO,CAmE1C,CAAC;AAEF,eAAO,MAAM,eAAe,qBAmB3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,SAAS,iBAAiB,kBAsBjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,qBAG/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,kBAmBtE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setProjectHandler = exports.setFirstProject = exports.setProjectCommand = void 0;
3
+ exports.unsetProjectHandler = exports.unsetProjectCommand = exports.setProjectHandler = exports.setFirstProject = exports.setProjectCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
6
6
  const url_1 = require("url");
@@ -16,7 +16,7 @@ const setProjectCommand = async (name, uuid) => {
16
16
  });
17
17
  globalState_1.default.debug(`> Set project returned response: ${JSON.stringify(projects)}`);
18
18
  if (projects.length === 0)
19
- return;
19
+ return 'empty';
20
20
  let selectedProject;
21
21
  // --uuid or --name options
22
22
  if (uuid !== undefined || name !== undefined) {
@@ -27,16 +27,27 @@ const setProjectCommand = async (name, uuid) => {
27
27
  [selectedProject] = projects;
28
28
  }
29
29
  else {
30
+ const SKIP_VALUE = '__skip__';
30
31
  const answers = await inquirer_1.default.prompt([
31
32
  {
32
33
  type: 'list',
33
34
  name: 'project',
34
- choices: projects.map((project) => ({
35
- name: project.name,
36
- value: project.projectUuid,
37
- })),
35
+ choices: [
36
+ {
37
+ name: "Don't select a project",
38
+ value: SKIP_VALUE,
39
+ },
40
+ ...projects.map((project) => ({
41
+ name: project.name,
42
+ value: project.projectUuid,
43
+ })),
44
+ ],
38
45
  },
39
46
  ]);
47
+ if (answers.project === SKIP_VALUE) {
48
+ await (0, config_1.unsetProject)();
49
+ return 'skipped';
50
+ }
40
51
  selectedProject = projects.find((project) => project.projectUuid === answers.project);
41
52
  }
42
53
  if (selectedProject !== undefined) {
@@ -45,10 +56,9 @@ const setProjectCommand = async (name, uuid) => {
45
56
  const projectUrl = config.context?.serverUrl &&
46
57
  new url_1.URL(`/projects/${selectedProject.projectUuid}/home`, config.context.serverUrl);
47
58
  console.error(`\n ✅️ Connected to Lightdash project: ${projectUrl || ''}\n`);
59
+ return 'selected';
48
60
  }
49
- else {
50
- throw new Error(`Project not found.`);
51
- }
61
+ throw new Error(`Project not found.`);
52
62
  };
53
63
  exports.setProjectCommand = setProjectCommand;
54
64
  const setFirstProject = async () => {
@@ -70,7 +80,10 @@ const setProjectHandler = async (options) => {
70
80
  let success = true;
71
81
  globalState_1.default.setVerbose(options.verbose);
72
82
  try {
73
- await (0, exports.setProjectCommand)(options.name, options.uuid);
83
+ const result = await (0, exports.setProjectCommand)(options.name, options.uuid);
84
+ if (result === 'skipped') {
85
+ console.error(`\n Project unset.\n`);
86
+ }
74
87
  }
75
88
  catch (e) {
76
89
  success = false;
@@ -88,3 +101,31 @@ const setProjectHandler = async (options) => {
88
101
  }
89
102
  };
90
103
  exports.setProjectHandler = setProjectHandler;
104
+ const unsetProjectCommand = async () => {
105
+ await (0, config_1.unsetProject)();
106
+ console.error(`\n Project unset.\n`);
107
+ };
108
+ exports.unsetProjectCommand = unsetProjectCommand;
109
+ const unsetProjectHandler = async (options) => {
110
+ const startTime = Date.now();
111
+ let success = true;
112
+ globalState_1.default.setVerbose(options.verbose);
113
+ try {
114
+ await (0, exports.unsetProjectCommand)();
115
+ }
116
+ catch (e) {
117
+ success = false;
118
+ throw e;
119
+ }
120
+ finally {
121
+ await analytics_1.LightdashAnalytics.track({
122
+ event: 'command.executed',
123
+ properties: {
124
+ command: 'unset-project',
125
+ durationMs: Date.now() - startTime,
126
+ success,
127
+ },
128
+ });
129
+ }
130
+ };
131
+ exports.unsetProjectHandler = unsetProjectHandler;
package/dist/index.js CHANGED
@@ -111,7 +111,9 @@ ${styles.bold('Examples:')}
111
111
  ${styles.title('⚡')}️lightdash ${styles.bold('login')} http://localhost:3000 --email demo@lightdash.com ${styles.secondary('-- Local dev only: prompts for password securely')}
112
112
  `)
113
113
  .option('--token <token>', 'Login with an API access token', undefined)
114
- .option('--project <project uuid>', 'Select a project by UUID after login', parseProjectArgument, undefined)
114
+ .addOption(new commander_1.Option('--project <project uuid>', 'Select a project by UUID after login')
115
+ .argParser(parseProjectArgument)
116
+ .conflicts('skipProjectSelection'))
115
117
  .option('--email <email>', 'Login with email and password', undefined)
116
118
  .option('--oauth-port <port>', 'Port for the local OAuth callback server (default: random available port)', (value) => {
117
119
  const port = parseInt(value, 10);
@@ -143,6 +145,11 @@ configProgram
143
145
  .description('Show the currently selected project')
144
146
  .option('--verbose', undefined, false)
145
147
  .action(getProject_1.getProjectHandler);
148
+ configProgram
149
+ .command('unset-project')
150
+ .description('Clear the currently selected project')
151
+ .option('--verbose', undefined, false)
152
+ .action(setProject_1.unsetProjectHandler);
146
153
  const dbtProgram = commander_1.program.command('dbt').description('Runs dbt commands');
147
154
  dbtProgram
148
155
  .command('run')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightdash/cli",
3
- "version": "0.2644.0",
3
+ "version": "0.2645.0",
4
4
  "description": "Lightdash CLI tool",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -40,8 +40,8 @@
40
40
  "unique-names-generator": "^4.7.1",
41
41
  "uuid": "^11.0.3",
42
42
  "yaml": "^2.7.0",
43
- "@lightdash/warehouses": "0.2644.0",
44
- "@lightdash/common": "0.2644.0"
43
+ "@lightdash/common": "0.2645.0",
44
+ "@lightdash/warehouses": "0.2645.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/inquirer": "^8.2.1",