@seamapi/cli 0.7.0 → 0.8.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.
Files changed (44) hide show
  1. package/bin/cli.js +1 -1
  2. package/bin/cli.js.map +1 -1
  3. package/lib/config/config-store.d.ts +23 -0
  4. package/lib/config/config-store.js +113 -0
  5. package/lib/config/config-store.js.map +1 -0
  6. package/lib/config/index.d.ts +1 -0
  7. package/lib/config/index.js +2 -0
  8. package/lib/config/index.js.map +1 -0
  9. package/lib/config/migrate.d.ts +2 -0
  10. package/lib/config/migrate.js +21 -0
  11. package/lib/config/migrate.js.map +1 -0
  12. package/lib/get-current-workspace-id.js +1 -1
  13. package/lib/get-current-workspace-id.js.map +1 -1
  14. package/lib/get-seam.js +1 -1
  15. package/lib/get-seam.js.map +1 -1
  16. package/lib/get-server.js +1 -1
  17. package/lib/get-server.js.map +1 -1
  18. package/lib/interact-for-login.js +1 -1
  19. package/lib/interact-for-login.js.map +1 -1
  20. package/lib/interact-for-server-selection.js +1 -1
  21. package/lib/interact-for-server-selection.js.map +1 -1
  22. package/lib/interact-for-use-remote-api-defs.js +1 -1
  23. package/lib/interact-for-use-remote-api-defs.js.map +1 -1
  24. package/lib/interact-for-workspace-id.js +1 -1
  25. package/lib/interact-for-workspace-id.js.map +1 -1
  26. package/lib/version.d.ts +1 -1
  27. package/lib/version.js +1 -1
  28. package/package.json +2 -1
  29. package/src/bin/cli.ts +1 -1
  30. package/src/lib/config/config-store.ts +158 -0
  31. package/src/lib/config/index.ts +1 -0
  32. package/src/lib/config/migrate.ts +39 -0
  33. package/src/lib/get-current-workspace-id.ts +1 -1
  34. package/src/lib/get-seam.ts +1 -1
  35. package/src/lib/get-server.ts +1 -1
  36. package/src/lib/interact-for-login.ts +1 -1
  37. package/src/lib/interact-for-server-selection.ts +1 -1
  38. package/src/lib/interact-for-use-remote-api-defs.ts +1 -1
  39. package/src/lib/interact-for-workspace-id.ts +1 -1
  40. package/src/lib/version.ts +1 -1
  41. package/lib/get-config-store.d.ts +0 -2
  42. package/lib/get-config-store.js +0 -5
  43. package/lib/get-config-store.js.map +0 -1
  44. package/src/lib/get-config-store.ts +0 -5
package/bin/cli.js CHANGED
@@ -5,8 +5,8 @@ import chalk from 'chalk';
5
5
  import commandLineUsage from 'command-line-usage';
6
6
  import parseArgs, {} from 'minimist';
7
7
  import prompts from 'prompts';
8
+ import { getConfigStore } from '../lib/config/index.js';
8
9
  import { getApiBlueprint } from '../lib/get-api-blueprint.js';
9
- import { getConfigStore } from '../lib/get-config-store.js';
10
10
  import { getServer } from '../lib/get-server.js';
11
11
  import { interactForActionAttemptPoll } from '../lib/interact-for-action-attempt-poll.js';
12
12
  import { interactForCommandParams } from '../lib/interact-for-command-params.js';
package/bin/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/bin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import Configstore from 'configstore';
2
+ export declare const getConfigStore: () => SeamConfigStore;
3
+ export declare const mergeConfig: (baseConfig: Record<string, unknown>, overrideConfig: Record<string, unknown>) => Record<string, unknown>;
4
+ export declare const splitConfig: (config: Record<string, unknown>) => {
5
+ settings: Record<string, unknown>;
6
+ state: Record<string, unknown>;
7
+ };
8
+ declare class SeamConfigStore {
9
+ private readonly settingsStore;
10
+ private readonly stateStore;
11
+ readonly path: string;
12
+ constructor(settingsStore: Configstore, stateStore: Configstore);
13
+ get all(): Record<string, unknown>;
14
+ set all(value: Record<string, unknown>);
15
+ get size(): number;
16
+ get(key: string): unknown;
17
+ set(key: string | Record<string, unknown>, value?: unknown): void;
18
+ has(key: string): boolean;
19
+ delete(key: string): void;
20
+ clear(): void;
21
+ private getStore;
22
+ }
23
+ export {};
@@ -0,0 +1,113 @@
1
+ import { join } from 'node:path';
2
+ import Configstore from 'configstore';
3
+ import envPaths from 'env-paths';
4
+ import { migrateConfigStore } from './migrate.js';
5
+ const configFileName = 'cli.json';
6
+ const legacyConfigStoreId = 'seam-cli';
7
+ const currentWorkspaceIdKey = 'current_workspace_id';
8
+ const patKey = 'pat';
9
+ const paths = envPaths('seam', { suffix: '' });
10
+ export const getConfigStore = () => {
11
+ const settingsStore = new Configstore(legacyConfigStoreId, undefined, {
12
+ configPath: getConfigPath(),
13
+ });
14
+ const stateStore = new Configstore(legacyConfigStoreId, undefined, {
15
+ configPath: getStateConfigPath(),
16
+ });
17
+ migrateConfigStore(settingsStore, stateStore, new Configstore(legacyConfigStoreId));
18
+ return new SeamConfigStore(settingsStore, stateStore);
19
+ };
20
+ export const mergeConfig = (baseConfig, overrideConfig) => {
21
+ const mergedConfig = { ...baseConfig };
22
+ for (const [key, value] of Object.entries(overrideConfig)) {
23
+ const baseValue = mergedConfig[key];
24
+ mergedConfig[key] =
25
+ isRecord(baseValue) && isRecord(value)
26
+ ? mergeConfig(baseValue, value)
27
+ : value;
28
+ }
29
+ return mergedConfig;
30
+ };
31
+ export const splitConfig = (config) => {
32
+ const settings = {};
33
+ const state = {};
34
+ for (const [key, value] of Object.entries(config)) {
35
+ if (isStateKey(key)) {
36
+ state[key] = value;
37
+ continue;
38
+ }
39
+ if (isRecord(value)) {
40
+ const splitValue = splitConfig(value);
41
+ if (Object.keys(splitValue.settings).length > 0) {
42
+ settings[key] = splitValue.settings;
43
+ }
44
+ if (Object.keys(splitValue.state).length > 0) {
45
+ state[key] = splitValue.state;
46
+ }
47
+ continue;
48
+ }
49
+ settings[key] = value;
50
+ }
51
+ return { settings, state };
52
+ };
53
+ class SeamConfigStore {
54
+ settingsStore;
55
+ stateStore;
56
+ path;
57
+ constructor(settingsStore, stateStore) {
58
+ this.settingsStore = settingsStore;
59
+ this.stateStore = stateStore;
60
+ this.path = settingsStore.path;
61
+ }
62
+ get all() {
63
+ return mergeConfig(this.settingsStore.all, this.stateStore.all);
64
+ }
65
+ set all(value) {
66
+ const { settings, state } = splitConfig(value);
67
+ this.settingsStore.all = settings;
68
+ this.stateStore.all = state;
69
+ }
70
+ get size() {
71
+ return Object.keys(this.all).length;
72
+ }
73
+ get(key) {
74
+ return this.getStore(key).get(key);
75
+ }
76
+ set(key, value) {
77
+ if (isRecord(key)) {
78
+ for (const [configKey, configValue] of Object.entries(key)) {
79
+ this.set(configKey, configValue);
80
+ }
81
+ return;
82
+ }
83
+ this.getStore(key).set(key, value);
84
+ }
85
+ has(key) {
86
+ return this.getStore(key).has(key);
87
+ }
88
+ delete(key) {
89
+ this.getStore(key).delete(key);
90
+ }
91
+ clear() {
92
+ this.settingsStore.clear();
93
+ this.stateStore.clear();
94
+ }
95
+ getStore(key) {
96
+ return isStateKey(key) ? this.stateStore : this.settingsStore;
97
+ }
98
+ }
99
+ const getConfigPath = () => {
100
+ return join(paths.config, configFileName);
101
+ };
102
+ const getStateConfigPath = () => {
103
+ return join(paths.log, configFileName);
104
+ };
105
+ const isStateKey = (key) => {
106
+ return (key === currentWorkspaceIdKey ||
107
+ key === patKey ||
108
+ key.endsWith(`.${patKey}`));
109
+ };
110
+ const isRecord = (value) => {
111
+ return value != null && typeof value === 'object' && !Array.isArray(value);
112
+ };
113
+ //# sourceMappingURL=config-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/lib/config/config-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { getConfigStore } from './config-store.js';
@@ -0,0 +1,2 @@
1
+ export { getConfigStore } from './config-store.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type Configstore from 'configstore';
2
+ export declare const migrateConfigStore: (settingsStore: Configstore, stateStore: Configstore, legacyStore: Configstore) => void;
@@ -0,0 +1,21 @@
1
+ import { existsSync, rmSync } from 'node:fs';
2
+ import { mergeConfig, splitConfig } from './config-store.js';
3
+ export const migrateConfigStore = (settingsStore, stateStore, legacyStore) => {
4
+ if (!existsSync(legacyStore.path))
5
+ return;
6
+ migrateLegacyConfig(settingsStore, stateStore, legacyStore.all);
7
+ rmSync(legacyStore.path, { force: true });
8
+ };
9
+ const migrateLegacyConfig = (settingsStore, stateStore, legacyConfig) => {
10
+ if (Object.keys(legacyConfig).length === 0)
11
+ return;
12
+ const { settings, state } = splitConfig(legacyConfig);
13
+ writeIfChanged(settingsStore, mergeConfig(settings, settingsStore.all));
14
+ writeIfChanged(stateStore, mergeConfig(state, stateStore.all));
15
+ };
16
+ const writeIfChanged = (store, nextConfig) => {
17
+ if (JSON.stringify(store.all) !== JSON.stringify(nextConfig)) {
18
+ store.all = nextConfig;
19
+ }
20
+ };
21
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/lib/config/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,aAA0B,EAC1B,UAAuB,EACvB,WAAwB,EAClB,EAAE;IACR,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAM;IAEzC,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IAE/D,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAC1B,aAA0B,EAC1B,UAAuB,EACvB,YAAqC,EAC/B,EAAE;IACR,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAElD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAErD,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IACvE,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,KAAkB,EAClB,UAAmC,EAC7B,EAAE;IACR,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,GAAG,GAAG,UAAU,CAAA;IACxB,CAAC;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { getConfigStore } from './get-config-store.js';
1
+ import { getConfigStore } from './config/index.js';
2
2
  import { interactForWorkspaceId } from './interact-for-workspace-id.js';
3
3
  export const getCurrentWorkspaceId = async () => {
4
4
  const configStore = getConfigStore();
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-workspace-id.js","sourceRoot":"","sources":["../src/lib/get-current-workspace-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAqB,EAAE;IAC/D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAClE,IAAI,OAAO,kBAAkB,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAA;IAErE,OAAO,MAAM,sBAAsB,EAAE,CAAA;AACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"get-current-workspace-id.js","sourceRoot":"","sources":["../src/lib/get-current-workspace-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAqB,EAAE;IAC/D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAClE,IAAI,OAAO,kBAAkB,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAA;IAErE,OAAO,MAAM,sBAAsB,EAAE,CAAA;AACvC,CAAC,CAAA"}
package/lib/get-seam.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { isConsoleSessionToken, isPersonalAccessToken, SeamHttp, SeamHttpWithoutWorkspace, } from '@seamapi/http/connect';
2
- import { getConfigStore } from './get-config-store.js';
2
+ import { getConfigStore } from './config/index.js';
3
3
  import { getServer } from './get-server.js';
4
4
  export const getSeam = async () => {
5
5
  const config = getConfigStore();
@@ -1 +1 @@
1
- {"version":3,"file":"get-seam.js","sourceRoot":"","sources":["../src/lib/get-seam.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE;IACnD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAW,CAAA;IAExD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAW,CAAA;IAEhE,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAA;IAEzC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAExC,EAAE;IACF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAW,CAAA;IACxD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAA;IAEzC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,wBAAwB,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"get-seam.js","sourceRoot":"","sources":["../src/lib/get-seam.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,IAAuB,EAAE;IACnD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAW,CAAA;IAExD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAW,CAAA;IAEhE,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAA;IAEzC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAExC,EAAE;IACF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAW,CAAA;IACxD,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAA;IAEzC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,wBAAwB,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC,CAAA"}
package/lib/get-server.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getConfigStore } from './get-config-store.js';
1
+ import { getConfigStore } from './config/index.js';
2
2
  export const getServer = () => {
3
3
  const config = getConfigStore();
4
4
  const server = config.get('server');
@@ -1 +1 @@
1
- {"version":3,"file":"get-server.js","sourceRoot":"","sources":["../src/lib/get-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEnC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAA;AAC5E,CAAC,CAAA"}
1
+ {"version":3,"file":"get-server.js","sourceRoot":"","sources":["../src/lib/get-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEnC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAA;AAC5E,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { isApiKey, isPersonalAccessToken } from '@seamapi/http/connect';
2
2
  import chalk from 'chalk';
3
3
  import prompts from 'prompts';
4
- import { getConfigStore } from './get-config-store.js';
4
+ import { getConfigStore } from './config/index.js';
5
5
  import { getServer } from './get-server.js';
6
6
  import { interactForWorkspaceId } from './interact-for-workspace-id.js';
7
7
  import { withLoading } from './util/with-loading.js';
@@ -1 +1 @@
1
- {"version":3,"file":"interact-for-login.js","sourceRoot":"","sources":["../src/lib/interact-for-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IAErC,IAAI,SAAS,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CACT,gIAAgI,SAAS,EAAE,iCAAiC,CAC7K,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,+KAA+K,CAChL,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,CACF,CAAA;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5B,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAA;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;AAC1D,CAAC,CAAA"}
1
+ {"version":3,"file":"interact-for-login.js","sourceRoot":"","sources":["../src/lib/interact-for-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IAErC,IAAI,SAAS,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CACT,gIAAgI,SAAS,EAAE,iCAAiC,CAC7K,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,+KAA+K,CAChL,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,CACF,CAAA;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5B,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAA;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;AAC1D,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import prompts from 'prompts';
3
- import { getConfigStore } from './get-config-store.js';
3
+ import { getConfigStore } from './config/index.js';
4
4
  import { getServer } from './get-server.js';
5
5
  export async function interactForServerSelection() {
6
6
  const servers = [
@@ -1 +1 @@
1
- {"version":3,"file":"interact-for-server-selection.js","sourceRoot":"","sources":["../src/lib/interact-for-server-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,OAAO,GAAG;QACd,uBAAuB;QACvB,6BAA6B;QAC7B,iCAAiC;KAClC,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QAC/B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrE;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;YAClC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EACL,sFAAsF;aACzF;SACF,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,WAAW,0BAA0B,CAAC,CAAA;QACtE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"interact-for-server-selection.js","sourceRoot":"","sources":["../src/lib/interact-for-server-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,OAAO,GAAG;QACd,uBAAuB;QACvB,6BAA6B;QAC7B,iCAAiC;KAClC,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QAC/B;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrE;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;YAClC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EACL,sFAAsF;aACzF;SACF,CAAC,CAAA;QAEF,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,WAAW,0BAA0B,CAAC,CAAA;QACtE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAA;AACxC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import prompts from 'prompts';
2
- import { getConfigStore } from './get-config-store.js';
2
+ import { getConfigStore } from './config/index.js';
3
3
  export async function interactForUseRemoteApiDefs() {
4
4
  const { use_remote_api_defs } = await prompts([
5
5
  {
@@ -1 +1 @@
1
- {"version":3,"file":"interact-for-use-remote-api-defs.js","sourceRoot":"","sources":["../src/lib/interact-for-use-remote-api-defs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,KAAK;iBACb;aACF;SACF;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,+BAA+B,mBAAmB,EAAE,CAAC,CAAA;AACnE,CAAC"}
1
+ {"version":3,"file":"interact-for-use-remote-api-defs.js","sourceRoot":"","sources":["../src/lib/interact-for-use-remote-api-defs.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,OAAO,CAAC;QAC5C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI;iBACZ;gBACD;oBACE,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,KAAK;iBACb;aACF;SACF;KACF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,+BAA+B,mBAAmB,EAAE,CAAC,CAAA;AACnE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { SeamHttpWithoutWorkspace } from '@seamapi/http/connect';
2
2
  import prompts from 'prompts';
3
- import { getConfigStore } from './get-config-store.js';
3
+ import { getConfigStore } from './config/index.js';
4
4
  import { getSeamMultiWorkspace } from './get-seam.js';
5
5
  import { getServer } from './get-server.js';
6
6
  import { withLoading } from './util/with-loading.js';
@@ -1 +1 @@
1
- {"version":3,"file":"interact-for-workspace-id.js","sourceRoot":"","sources":["../src/lib/interact-for-workspace-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,mBAA4B,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,mBAAmB;QAC9B,CAAC,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,EAAE;YACpE,QAAQ,EAAE,SAAS,EAAE;SACtB,CAAC;QACJ,CAAC,CAAC,MAAM,qBAAqB,EAAE,CAAA;IAEjC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CACvB,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;QACpC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,CAAC;YAC3C,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,KAAK,EAAE,SAAS,CAAC,YAAY;YAC7B,WAAW,EAAE,SAAS,CAAC,YAAY;SACpC,CAAC,CAAC;KACJ,CAAC,CAAA;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;QAC/C,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"interact-for-workspace-id.js","sourceRoot":"","sources":["../src/lib/interact-for-workspace-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,mBAA4B,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,mBAAmB;QAC9B,CAAC,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,EAAE;YACpE,QAAQ,EAAE,SAAS,EAAE;SACtB,CAAC;QACJ,CAAC,CAAC,MAAM,qBAAqB,EAAE,CAAA;IAEjC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CACvB,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;QACpC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,CAAC;YAC3C,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,KAAK,EAAE,SAAS,CAAC,YAAY;YAC7B,WAAW,EAAE,SAAS,CAAC,YAAY;SACpC,CAAC,CAAC;KACJ,CAAC,CAAA;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;QAC/C,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC,CAAA"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const seamapiCliVersion = "0.7.0";
1
+ declare const seamapiCliVersion = "0.8.0";
2
2
  export default seamapiCliVersion;
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
- const seamapiCliVersion = '0.7.0';
1
+ const seamapiCliVersion = '0.8.0';
2
2
  export default seamapiCliVersion;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/cli",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "A command line interface (CLI) for interacting with the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -95,6 +95,7 @@
95
95
  "chalk": "^6.0.0",
96
96
  "command-line-usage": "^7.0.4",
97
97
  "configstore": "^8.0.0",
98
+ "env-paths": "^4.0.0",
98
99
  "minimist": "^1.2.8",
99
100
  "nanospinner": "^1.2.2",
100
101
  "open": "^11.0.0",
package/src/bin/cli.ts CHANGED
@@ -7,8 +7,8 @@ import commandLineUsage from 'command-line-usage'
7
7
  import parseArgs, { type ParsedArgs } from 'minimist'
8
8
  import prompts from 'prompts'
9
9
 
10
+ import { getConfigStore } from 'lib/config/index.js'
10
11
  import { getApiBlueprint } from 'lib/get-api-blueprint.js'
11
- import { getConfigStore } from 'lib/get-config-store.js'
12
12
  import { getServer } from 'lib/get-server.js'
13
13
  import { interactForActionAttemptPoll } from 'lib/interact-for-action-attempt-poll.js'
14
14
  import { interactForCommandParams } from 'lib/interact-for-command-params.js'
@@ -0,0 +1,158 @@
1
+ import { join } from 'node:path'
2
+
3
+ import Configstore from 'configstore'
4
+ import envPaths from 'env-paths'
5
+
6
+ import { migrateConfigStore } from './migrate.js'
7
+
8
+ const configFileName = 'cli.json'
9
+ const legacyConfigStoreId = 'seam-cli'
10
+ const currentWorkspaceIdKey = 'current_workspace_id'
11
+ const patKey = 'pat'
12
+ const paths = envPaths('seam', { suffix: '' })
13
+
14
+ export const getConfigStore = () => {
15
+ const settingsStore = new Configstore(legacyConfigStoreId, undefined, {
16
+ configPath: getConfigPath(),
17
+ })
18
+ const stateStore = new Configstore(legacyConfigStoreId, undefined, {
19
+ configPath: getStateConfigPath(),
20
+ })
21
+
22
+ migrateConfigStore(
23
+ settingsStore,
24
+ stateStore,
25
+ new Configstore(legacyConfigStoreId),
26
+ )
27
+
28
+ return new SeamConfigStore(settingsStore, stateStore)
29
+ }
30
+
31
+ export const mergeConfig = (
32
+ baseConfig: Record<string, unknown>,
33
+ overrideConfig: Record<string, unknown>,
34
+ ): Record<string, unknown> => {
35
+ const mergedConfig = { ...baseConfig }
36
+
37
+ for (const [key, value] of Object.entries(overrideConfig)) {
38
+ const baseValue = mergedConfig[key]
39
+ mergedConfig[key] =
40
+ isRecord(baseValue) && isRecord(value)
41
+ ? mergeConfig(baseValue, value)
42
+ : value
43
+ }
44
+
45
+ return mergedConfig
46
+ }
47
+
48
+ export const splitConfig = (
49
+ config: Record<string, unknown>,
50
+ ): {
51
+ settings: Record<string, unknown>
52
+ state: Record<string, unknown>
53
+ } => {
54
+ const settings: Record<string, unknown> = {}
55
+ const state: Record<string, unknown> = {}
56
+
57
+ for (const [key, value] of Object.entries(config)) {
58
+ if (isStateKey(key)) {
59
+ state[key] = value
60
+ continue
61
+ }
62
+
63
+ if (isRecord(value)) {
64
+ const splitValue = splitConfig(value)
65
+ if (Object.keys(splitValue.settings).length > 0) {
66
+ settings[key] = splitValue.settings
67
+ }
68
+
69
+ if (Object.keys(splitValue.state).length > 0) {
70
+ state[key] = splitValue.state
71
+ }
72
+
73
+ continue
74
+ }
75
+
76
+ settings[key] = value
77
+ }
78
+
79
+ return { settings, state }
80
+ }
81
+
82
+ class SeamConfigStore {
83
+ readonly path: string
84
+
85
+ constructor(
86
+ private readonly settingsStore: Configstore,
87
+ private readonly stateStore: Configstore,
88
+ ) {
89
+ this.path = settingsStore.path
90
+ }
91
+
92
+ get all(): Record<string, unknown> {
93
+ return mergeConfig(this.settingsStore.all, this.stateStore.all)
94
+ }
95
+
96
+ set all(value: Record<string, unknown>) {
97
+ const { settings, state } = splitConfig(value)
98
+ this.settingsStore.all = settings
99
+ this.stateStore.all = state
100
+ }
101
+
102
+ get size(): number {
103
+ return Object.keys(this.all).length
104
+ }
105
+
106
+ get(key: string): unknown {
107
+ return this.getStore(key).get(key)
108
+ }
109
+
110
+ set(key: string | Record<string, unknown>, value?: unknown): void {
111
+ if (isRecord(key)) {
112
+ for (const [configKey, configValue] of Object.entries(key)) {
113
+ this.set(configKey, configValue)
114
+ }
115
+
116
+ return
117
+ }
118
+
119
+ this.getStore(key).set(key, value)
120
+ }
121
+
122
+ has(key: string): boolean {
123
+ return this.getStore(key).has(key)
124
+ }
125
+
126
+ delete(key: string): void {
127
+ this.getStore(key).delete(key)
128
+ }
129
+
130
+ clear(): void {
131
+ this.settingsStore.clear()
132
+ this.stateStore.clear()
133
+ }
134
+
135
+ private getStore(key: string): Configstore {
136
+ return isStateKey(key) ? this.stateStore : this.settingsStore
137
+ }
138
+ }
139
+
140
+ const getConfigPath = (): string => {
141
+ return join(paths.config, configFileName)
142
+ }
143
+
144
+ const getStateConfigPath = (): string => {
145
+ return join(paths.log, configFileName)
146
+ }
147
+
148
+ const isStateKey = (key: string): boolean => {
149
+ return (
150
+ key === currentWorkspaceIdKey ||
151
+ key === patKey ||
152
+ key.endsWith(`.${patKey}`)
153
+ )
154
+ }
155
+
156
+ const isRecord = (value: unknown): value is Record<string, unknown> => {
157
+ return value != null && typeof value === 'object' && !Array.isArray(value)
158
+ }
@@ -0,0 +1 @@
1
+ export { getConfigStore } from './config-store.js'
@@ -0,0 +1,39 @@
1
+ import { existsSync, rmSync } from 'node:fs'
2
+
3
+ import type Configstore from 'configstore'
4
+
5
+ import { mergeConfig, splitConfig } from './config-store.js'
6
+
7
+ export const migrateConfigStore = (
8
+ settingsStore: Configstore,
9
+ stateStore: Configstore,
10
+ legacyStore: Configstore,
11
+ ): void => {
12
+ if (!existsSync(legacyStore.path)) return
13
+
14
+ migrateLegacyConfig(settingsStore, stateStore, legacyStore.all)
15
+
16
+ rmSync(legacyStore.path, { force: true })
17
+ }
18
+
19
+ const migrateLegacyConfig = (
20
+ settingsStore: Configstore,
21
+ stateStore: Configstore,
22
+ legacyConfig: Record<string, unknown>,
23
+ ): void => {
24
+ if (Object.keys(legacyConfig).length === 0) return
25
+
26
+ const { settings, state } = splitConfig(legacyConfig)
27
+
28
+ writeIfChanged(settingsStore, mergeConfig(settings, settingsStore.all))
29
+ writeIfChanged(stateStore, mergeConfig(state, stateStore.all))
30
+ }
31
+
32
+ const writeIfChanged = (
33
+ store: Configstore,
34
+ nextConfig: Record<string, unknown>,
35
+ ): void => {
36
+ if (JSON.stringify(store.all) !== JSON.stringify(nextConfig)) {
37
+ store.all = nextConfig
38
+ }
39
+ }
@@ -1,4 +1,4 @@
1
- import { getConfigStore } from './get-config-store.js'
1
+ import { getConfigStore } from './config/index.js'
2
2
  import { interactForWorkspaceId } from './interact-for-workspace-id.js'
3
3
 
4
4
  export const getCurrentWorkspaceId = async (): Promise<string> => {
@@ -5,7 +5,7 @@ import {
5
5
  SeamHttpWithoutWorkspace,
6
6
  } from '@seamapi/http/connect'
7
7
 
8
- import { getConfigStore } from './get-config-store.js'
8
+ import { getConfigStore } from './config/index.js'
9
9
  import { getServer } from './get-server.js'
10
10
 
11
11
  export const getSeam = async (): Promise<SeamHttp> => {
@@ -1,4 +1,4 @@
1
- import { getConfigStore } from './get-config-store.js'
1
+ import { getConfigStore } from './config/index.js'
2
2
 
3
3
  export const getServer = (): string => {
4
4
  const config = getConfigStore()
@@ -2,7 +2,7 @@ import { isApiKey, isPersonalAccessToken } from '@seamapi/http/connect'
2
2
  import chalk from 'chalk'
3
3
  import prompts from 'prompts'
4
4
 
5
- import { getConfigStore } from './get-config-store.js'
5
+ import { getConfigStore } from './config/index.js'
6
6
  import { getServer } from './get-server.js'
7
7
  import { interactForWorkspaceId } from './interact-for-workspace-id.js'
8
8
  import { withLoading } from './util/with-loading.js'
@@ -2,7 +2,7 @@ import { randomBytes } from 'node:crypto'
2
2
 
3
3
  import prompts from 'prompts'
4
4
 
5
- import { getConfigStore } from './get-config-store.js'
5
+ import { getConfigStore } from './config/index.js'
6
6
  import { getServer } from './get-server.js'
7
7
 
8
8
  export async function interactForServerSelection() {
@@ -1,6 +1,6 @@
1
1
  import prompts from 'prompts'
2
2
 
3
- import { getConfigStore } from './get-config-store.js'
3
+ import { getConfigStore } from './config/index.js'
4
4
 
5
5
  export async function interactForUseRemoteApiDefs() {
6
6
  const { use_remote_api_defs } = await prompts([
@@ -1,7 +1,7 @@
1
1
  import { SeamHttpWithoutWorkspace } from '@seamapi/http/connect'
2
2
  import prompts from 'prompts'
3
3
 
4
- import { getConfigStore } from './get-config-store.js'
4
+ import { getConfigStore } from './config/index.js'
5
5
  import { getSeamMultiWorkspace } from './get-seam.js'
6
6
  import { getServer } from './get-server.js'
7
7
  import { withLoading } from './util/with-loading.js'
@@ -1,3 +1,3 @@
1
- const seamapiCliVersion = '0.7.0'
1
+ const seamapiCliVersion = '0.8.0'
2
2
 
3
3
  export default seamapiCliVersion
@@ -1,2 +0,0 @@
1
- import Configstore from 'configstore';
2
- export declare const getConfigStore: () => Configstore;
@@ -1,5 +0,0 @@
1
- import Configstore from 'configstore';
2
- export const getConfigStore = () => {
3
- return new Configstore('seam-cli', {});
4
- };
5
- //# sourceMappingURL=get-config-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-config-store.js","sourceRoot":"","sources":["../src/lib/get-config-store.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAA;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import Configstore from 'configstore'
2
-
3
- export const getConfigStore = () => {
4
- return new Configstore('seam-cli', {})
5
- }