great 1.3.0 → 1.4.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 (69) hide show
  1. package/README.md +32 -16
  2. package/dist/explode/transform.js +3 -4
  3. package/dist/explode/transform.js.map +1 -1
  4. package/dist/explode/unescapeMongo.js +33 -0
  5. package/dist/explode/unescapeMongo.js.map +1 -1
  6. package/dist/generated/operations.d.ts +23 -1
  7. package/dist/generated/schema.d.ts +16 -0
  8. package/dist/generated/schema.js.map +1 -1
  9. package/dist/import/index.d.ts +3 -1
  10. package/dist/import/index.js +27 -6
  11. package/dist/import/index.js.map +1 -1
  12. package/dist/include/index.d.ts +3 -1
  13. package/dist/include/index.js +129 -11
  14. package/dist/include/index.js.map +1 -1
  15. package/dist/index.js +3 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/integrations/index.js +5 -0
  18. package/dist/integrations/index.js.map +1 -1
  19. package/dist/integrations/list.d.ts +2 -0
  20. package/dist/integrations/list.js +30 -16
  21. package/dist/integrations/list.js.map +1 -1
  22. package/dist/push/index.js +262 -42
  23. package/dist/push/index.js.map +1 -1
  24. package/dist/remove/index.d.ts +5 -0
  25. package/dist/remove/index.js +71 -0
  26. package/dist/remove/index.js.map +1 -0
  27. package/dist/rename/index.js +4 -3
  28. package/dist/rename/index.js.map +1 -1
  29. package/dist/run/index.d.ts +1 -1
  30. package/dist/utils/detectPullConflicts.js +13 -3
  31. package/dist/utils/detectPullConflicts.js.map +1 -1
  32. package/dist/utils/elementFiles.d.ts +8 -0
  33. package/dist/utils/elementFiles.js +33 -0
  34. package/dist/utils/elementFiles.js.map +1 -1
  35. package/dist/utils/graphqlError.js +16 -2
  36. package/dist/utils/graphqlError.js.map +1 -1
  37. package/dist/utils/hashContent.d.ts +1 -0
  38. package/dist/utils/hashContent.js +6 -3
  39. package/dist/utils/hashContent.js.map +1 -1
  40. package/dist/utils/integrationConfig.d.ts +13 -0
  41. package/dist/utils/integrationConfig.js +29 -0
  42. package/dist/utils/integrationConfig.js.map +1 -0
  43. package/dist/utils/mergeEndpointLists.d.ts +7 -0
  44. package/dist/utils/mergeEndpointLists.js +32 -0
  45. package/dist/utils/mergeEndpointLists.js.map +1 -0
  46. package/dist/utils/promptForEndpoints.d.ts +5 -0
  47. package/dist/utils/promptForEndpoints.js +37 -0
  48. package/dist/utils/promptForEndpoints.js.map +1 -0
  49. package/dist/utils/promptForReplaceLocal.d.ts +5 -0
  50. package/dist/utils/promptForReplaceLocal.js +18 -0
  51. package/dist/utils/promptForReplaceLocal.js.map +1 -0
  52. package/dist/utils/promptForValue.d.ts +2 -0
  53. package/dist/utils/promptForValue.js +6 -3
  54. package/dist/utils/promptForValue.js.map +1 -1
  55. package/dist/utils/resolveElementIncludes.d.ts +6 -0
  56. package/dist/utils/resolveElementIncludes.js +113 -0
  57. package/dist/utils/resolveElementIncludes.js.map +1 -0
  58. package/dist/utils/saveIntegration.js +7 -2
  59. package/dist/utils/saveIntegration.js.map +1 -1
  60. package/dist/utils/serviceFile.d.ts +3 -0
  61. package/dist/utils/serviceFile.js +7 -1
  62. package/dist/utils/serviceFile.js.map +1 -1
  63. package/dist/utils/writeShadowElement.d.ts +10 -7
  64. package/dist/utils/writeShadowElement.js +89 -50
  65. package/dist/utils/writeShadowElement.js.map +1 -1
  66. package/package.json +7 -7
  67. package/dist/utils/resolveElementInclude.d.ts +0 -3
  68. package/dist/utils/resolveElementInclude.js +0 -27
  69. package/dist/utils/resolveElementInclude.js.map +0 -1
@@ -1,10 +1,127 @@
1
+ import fs from 'node:fs';
1
2
  import chalk from 'chalk';
2
3
  import { getClient } from '../utils/graphqlClient.js';
3
4
  import { fetchIntegrationFromFile } from '../utils/fetchLocal.js';
4
- import { resolveElementInclude } from '../utils/resolveElementInclude.js';
5
- import { readGreatFile, writeGreatFile } from '../utils/greatFile.js';
6
- import { writeShadowElements, logShadowConflicts, } from '../utils/writeShadowElement.js';
7
- export const action = (log, apiToken, client, fsImpl, config) => async function includeElement(elementId, options) {
5
+ import resolveElementIncludes, { resolveEndpointIncludes, } from '../utils/resolveElementIncludes.js';
6
+ import { getElementRecord, readGreatFile, removeElementRecord, setElementRecord, writeGreatFile, } from '../utils/greatFile.js';
7
+ import { findLocalOccupants, isLocalOccupant, writeShadowElements, logShadowConflicts, } from '../utils/writeShadowElement.js';
8
+ import { readEndpointListKeys, writeElementFile, } from '../utils/elementFiles.js';
9
+ import { ENDPOINT_LISTS_FOLDER, isEndpointKeys } from '../utils/serviceFile.js';
10
+ import promptForEndpoints from '../utils/promptForEndpoints.js';
11
+ import promptForReplaceLocal from '../utils/promptForReplaceLocal.js';
12
+ import { ElementType } from '../generated/schema.js';
13
+ async function selectEndpointShadows(graphqlClient, resolved, great, sourceTimestamp, log, promptForEndpointsFn) {
14
+ const list = resolved.find((element) => element.type === ElementType.EndpointList);
15
+ if (!list) {
16
+ return { shadows: resolved };
17
+ }
18
+ const endpoints = await resolveEndpointIncludes(graphqlClient, list, sourceTimestamp, log);
19
+ if (!endpoints) {
20
+ return undefined;
21
+ }
22
+ else if (endpoints.length === 0) {
23
+ return { shadows: resolved };
24
+ }
25
+ const hasShadowList = Boolean(getElementRecord(great, ENDPOINT_LISTS_FOLDER, list.key)?.source);
26
+ let selected;
27
+ try {
28
+ selected = await promptForEndpointsFn(list.key, endpoints, log, hasShadowList);
29
+ }
30
+ catch {
31
+ log(chalk.yellow('\nInclude cancelled'));
32
+ return undefined;
33
+ }
34
+ if (selected.length === endpoints.length) {
35
+ return { shadows: [...resolved, ...endpoints] };
36
+ }
37
+ return {
38
+ shadows: [
39
+ ...resolved.filter((element) => element !== list),
40
+ ...endpoints.filter((endpoint) => selected.includes(endpoint.key)),
41
+ ],
42
+ localList: { key: list.key, endpoints: selected, total: endpoints.length },
43
+ };
44
+ }
45
+ function replacementListKeys(selection, key) {
46
+ if (selection.localList?.key === key) {
47
+ return selection.localList.endpoints;
48
+ }
49
+ const list = selection.shadows.find((element) => element.type === ElementType.EndpointList && element.key === key);
50
+ const endpoints = list?.content?.data?.endpoints;
51
+ return isEndpointKeys(endpoints) ? endpoints : [];
52
+ }
53
+ function withDroppedKeys(target, selection, fsImpl) {
54
+ if (target.folder !== ENDPOINT_LISTS_FOLDER) {
55
+ return target;
56
+ }
57
+ const kept = new Set(replacementListKeys(selection, target.key));
58
+ const droppedKeys = readEndpointListKeys(undefined, target.key, fsImpl).filter((key) => !kept.has(key));
59
+ return { ...target, droppedKeys };
60
+ }
61
+ function findReplacedLocals(great, selection, fsImpl) {
62
+ const { localList } = selection;
63
+ const listSlot = localList &&
64
+ isLocalOccupant(great, ENDPOINT_LISTS_FOLDER, localList.key, undefined, fsImpl)
65
+ ? [{ folder: ENDPOINT_LISTS_FOLDER, key: localList.key }]
66
+ : [];
67
+ return [
68
+ ...findLocalOccupants(great, selection.shadows, undefined, fsImpl),
69
+ ...listSlot,
70
+ ]
71
+ .map((target) => withDroppedKeys(target, selection, fsImpl))
72
+ .filter((element) => element.droppedKeys?.length !== 0);
73
+ }
74
+ async function confirmReplaceLocals(replaced, log, promptForReplaceLocalFn) {
75
+ if (replaced.length === 0) {
76
+ return true;
77
+ }
78
+ let confirmed = false;
79
+ try {
80
+ confirmed = await promptForReplaceLocalFn(replaced, log);
81
+ }
82
+ catch {
83
+ }
84
+ if (!confirmed) {
85
+ log(chalk.yellow('\nInclude cancelled'));
86
+ }
87
+ return confirmed;
88
+ }
89
+ function writeLocalEndpointList(great, localList, fsImpl) {
90
+ const existing = getElementRecord(great, ENDPOINT_LISTS_FOLDER, localList.key);
91
+ const record = {
92
+ ...(existing?.id ? { id: existing.id } : {}),
93
+ ...(existing?.timestamp ? { timestamp: existing.timestamp } : {}),
94
+ };
95
+ if (Object.keys(record).length > 0) {
96
+ setElementRecord(great, ENDPOINT_LISTS_FOLDER, localList.key, record);
97
+ }
98
+ else {
99
+ removeElementRecord(great, ENDPOINT_LISTS_FOLDER, localList.key);
100
+ }
101
+ writeElementFile(undefined, ENDPOINT_LISTS_FOLDER, localList.key, { endpoints: localList.endpoints }, great, fsImpl);
102
+ }
103
+ function writeSelection(great, selection, fsImpl, log) {
104
+ const result = writeShadowElements(great, selection.shadows, {
105
+ mode: 'include',
106
+ fsImpl,
107
+ });
108
+ if (result.conflicts.length > 0) {
109
+ logShadowConflicts('Include', result.conflicts, log);
110
+ return;
111
+ }
112
+ if (selection.localList) {
113
+ writeLocalEndpointList(great, selection.localList, fsImpl);
114
+ }
115
+ writeGreatFile(great, undefined, fsImpl);
116
+ for (const written of result.written) {
117
+ log(chalk.green(`Included ${written.folder}/${written.key} as a shadow element`));
118
+ }
119
+ if (selection.localList) {
120
+ const { key, endpoints, total } = selection.localList;
121
+ log(chalk.green(`Kept ${ENDPOINT_LISTS_FOLDER}/${key} as a local endpoint list with ${endpoints.length} of ${total} endpoints`));
122
+ }
123
+ }
124
+ export const action = (log, apiToken, client, fsImpl, config, promptForEndpointsFn = promptForEndpoints, promptForReplaceLocalFn = promptForReplaceLocal) => async function includeElement(elementId, options) {
8
125
  if (!elementId) {
9
126
  log(chalk.red('Element id is required'));
10
127
  log(`Usage: ${chalk.bold('great include <element-id>')}`);
@@ -16,19 +133,20 @@ export const action = (log, apiToken, client, fsImpl, config) => async function
16
133
  return;
17
134
  }
18
135
  const graphqlClient = getClient(apiToken, client, config);
19
- const resolved = await resolveElementInclude(graphqlClient, elementId, options?.pinnedAt, log);
136
+ const resolved = await resolveElementIncludes(graphqlClient, elementId, options?.pinnedAt, log);
20
137
  if (!resolved) {
21
138
  return;
22
139
  }
23
140
  const great = readGreatFile(undefined, fsImpl);
24
- const result = writeShadowElements(great, [resolved], { fsImpl });
25
- if (result.conflicts.length > 0) {
26
- logShadowConflicts('Include', result.conflicts, log);
141
+ const selection = await selectEndpointShadows(graphqlClient, resolved, great, options?.pinnedAt, log, promptForEndpointsFn);
142
+ if (!selection) {
27
143
  return;
28
144
  }
29
- writeGreatFile(great, undefined, fsImpl);
30
- const [written] = result.written;
31
- log(chalk.green(`Included ${written.folder}/${written.key} as a shadow element`));
145
+ const replaced = findReplacedLocals(great, selection, fsImpl ?? fs);
146
+ if (!(await confirmReplaceLocals(replaced, log, promptForReplaceLocalFn))) {
147
+ return;
148
+ }
149
+ writeSelection(great, selection, fsImpl, log);
32
150
  };
33
151
  export default (program, apiToken) => program
34
152
  .command('include <element>')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/include/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gCAAgC,CAAA;AAKvC,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAA8B,EAC9B,QAAiB,EACjB,MAA6B,EAC7B,MAAgB,EAChB,MAA2B,EAC3B,EAAE,CACF,KAAK,UAAU,cAAc,CAC3B,SAAiB,EACjB,OAA+B;IAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAA;QACxC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAA;QACzD,OAAM;IACR,CAAC;IAID,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAA;QACpD,GAAG,CACD,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CACzF,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,aAAa,EACb,SAAS,EACT,OAAO,EAAE,QAAQ,EACjB,GAAG,CACJ,CAAA;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAI9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAEjE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACpD,OAAM;IACR,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAExC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAA;IAChC,GAAG,CACD,KAAK,CAAC,KAAK,CACT,YAAY,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,sBAAsB,CAChE,CACF,CAAA;AACH,CAAC,CAAA;AAEH,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,CACrD,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CACL,6BAA6B,EAC7B,gEAAgE,CACjE;KACA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/include/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ import now from './now/index.js';
18
18
  import integrations from './integrations/index.js';
19
19
  import pull from './pull/index.js';
20
20
  import push from './push/index.js';
21
+ import remove from './remove/index.js';
21
22
  import rename from './rename/index.js';
22
23
  import repl from './repl/index.js';
23
24
  import run from './run/index.js';
@@ -26,7 +27,7 @@ import value from './values/index.js';
26
27
  import whoami from './whoami/index.js';
27
28
  import { getStoredToken } from './utils/token.js';
28
29
  const apiToken = getStoredToken();
29
- program.version('1.3.0', '-v, --version').description('Integreat CLI');
30
+ program.version('1.4.1', '-v, --version').description('Integreat CLI');
30
31
  program.enablePositionalOptions();
31
32
  accounts(program, apiToken);
32
33
  clone(program, apiToken);
@@ -46,6 +47,7 @@ now(program);
46
47
  integrations(program, apiToken);
47
48
  pull(program, apiToken);
48
49
  push(program, apiToken);
50
+ remove(program);
49
51
  rename(program, apiToken);
50
52
  repl(program, apiToken);
51
53
  run(program, apiToken);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,MAAM,kBAAkB,CAAA;AACpC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAChC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,KAAK,MAAM,kBAAkB,CAAA;AACpC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAChC,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAChC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,KAAK,MAAM,mBAAmB,CAAA;AACrC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;AAEjC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;AAOtE,OAAO,CAAC,uBAAuB,EAAE,CAAA;AAEjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC3B,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACxB,MAAM,CAAC,OAAO,CAAC,CAAA;AACf,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACzB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACzB,GAAG,CAAC,OAAO,CAAC,CAAA;AACZ,OAAO,CAAC,OAAO,CAAC,CAAA;AAChB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC1B,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACjC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC1B,IAAI,CAAC,OAAO,CAAC,CAAA;AACb,KAAK,CAAC,OAAO,CAAC,CAAA;AACd,MAAM,CAAC,OAAO,CAAC,CAAA;AACf,OAAO,CAAC,OAAO,CAAC,CAAA;AAChB,GAAG,CAAC,OAAO,CAAC,CAAA;AACZ,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC/B,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACvB,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACvB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACzB,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACvB,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACzB,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACxB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAEzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,22 @@
1
+ import { Option } from 'commander';
2
+ import { IntegrationType } from '../generated/schema.js';
1
3
  import listIntegrationsAction from './list.js';
2
4
  import createIntegrationAction from './create.js';
5
+ const typeOption = () => new Option('-t, --type <type>', 'only list integrations of this type').choices(Object.values(IntegrationType));
3
6
  export default (program, apiToken) => {
4
7
  const integrations = program
5
8
  .command('integrations')
6
9
  .description('commands for integrations, run `great integrations --help` to see options. `great integrations` is also a shortcut for `great integrations list`')
7
10
  .option('-a, --account <id>', 'account id or key (uses default from config if not provided)')
8
11
  .option('--all', 'list all integrations, ignoring default account')
12
+ .addOption(typeOption())
9
13
  .action(listIntegrationsAction(console.log, apiToken));
10
14
  integrations
11
15
  .command('list')
12
16
  .description('list all integrations you have access to')
13
17
  .option('-a, --account <id>', 'account id or key (uses default from config if not provided)')
14
18
  .option('--all', 'list all integrations, ignoring default account')
19
+ .addOption(typeOption())
15
20
  .action(listIntegrationsAction(console.log, apiToken));
16
21
  integrations
17
22
  .command('create <name>')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,WAAW,CAAA;AAC9C,OAAO,uBAAuB,MAAM,aAAa,CAAA;AAEjD,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE;IACrD,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,kJAAkJ,CACnJ;SACA,MAAM,CACL,oBAAoB,EACpB,8DAA8D,CAC/D;SACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;SAClE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExD,YAAY;SACT,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CACL,oBAAoB,EACpB,8DAA8D,CAC/D;SACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;SAClE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExD,YAAY;SACT,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CACL,oBAAoB,EACpB,6EAA6E,CAC9E;SACA,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEzD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,sBAAsB,MAAM,WAAW,CAAA;AAC9C,OAAO,uBAAuB,MAAM,aAAa,CAAA;AAGjD,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,IAAI,MAAM,CACR,mBAAmB,EACnB,qCAAqC,CACtC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;AAE3C,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE;IACrD,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,kJAAkJ,CACnJ;SACA,MAAM,CACL,oBAAoB,EACpB,8DAA8D,CAC/D;SACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;SAClE,SAAS,CAAC,UAAU,EAAE,CAAC;SACvB,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExD,YAAY;SACT,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CACL,oBAAoB,EACpB,8DAA8D,CAC/D;SACA,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;SAClE,SAAS,CAAC,UAAU,EAAE,CAAC;SACvB,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExD,YAAY;SACT,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CACL,oBAAoB,EACpB,6EAA6E,CAC9E;SACA,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEzD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import Conf from 'conf';
2
2
  import { type GraphQLRequestClient } from '../utils/graphqlClient.js';
3
+ import type { IntegrationType } from '../generated/schema.js';
3
4
  import type { ConfigSchema } from '../utils/config.js';
4
5
  export default function listIntegrations(log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, config?: Conf<ConfigSchema>): (options?: {
5
6
  account?: string;
6
7
  all?: boolean;
8
+ type?: IntegrationType;
7
9
  }) => Promise<void>;
@@ -5,59 +5,73 @@ import { handleGraphQLError } from '../utils/graphqlError.js';
5
5
  import { gql } from 'graphql-tag';
6
6
  import { resolveAccountId } from '../utils/resolveAccount.js';
7
7
  const IntegrationsQueryDocument = gql `
8
- query Integrations {
9
- integrations(orderBy: name, direction: asc) {
8
+ query Integrations($type: IntegrationType) {
9
+ integrations(orderBy: name, direction: asc, type: $type) {
10
10
  totalCount
11
11
  nodes {
12
12
  id
13
13
  name
14
14
  key
15
+ type
16
+ account {
17
+ key
18
+ }
15
19
  }
16
20
  }
17
21
  }
18
22
  `;
19
23
  const IntegrationsForAccountQueryDocument = gql `
20
- query IntegrationsForAccount($accountId: ID!) {
24
+ query IntegrationsForAccount($accountId: ID!, $type: IntegrationType) {
21
25
  account(id: $accountId) {
22
26
  name
23
- integrations {
27
+ key
28
+ integrations(type: $type) {
24
29
  totalCount
25
30
  nodes {
26
31
  id
27
32
  name
28
33
  key
34
+ type
29
35
  }
30
36
  }
31
37
  }
32
38
  }
33
39
  `;
34
- async function fetchAllIntegrations(client, log) {
35
- const result = await client.request(IntegrationsQueryDocument, {});
40
+ const typeVariables = (type) => (type ? { type } : {});
41
+ async function fetchAllIntegrations(client, log, type) {
42
+ const result = await client.request(IntegrationsQueryDocument, typeVariables(type));
36
43
  if (result.error) {
37
44
  handleGraphQLError(result.error, log);
38
45
  return undefined;
39
46
  }
40
47
  return {
41
- integrations: result.data?.integrations?.nodes ?? [],
48
+ integrations: (result.data?.integrations?.nodes ?? []).map(({ account, ...integration }) => ({
49
+ ...integration,
50
+ account: account.key,
51
+ })),
42
52
  count: result.data?.integrations?.totalCount ?? 0,
43
53
  };
44
54
  }
45
- async function fetchAccountIntegrations(client, accountId, log) {
46
- const result = await client.request(IntegrationsForAccountQueryDocument, { accountId });
55
+ async function fetchAccountIntegrations(client, accountId, log, type) {
56
+ const result = await client.request(IntegrationsForAccountQueryDocument, { accountId, ...typeVariables(type) });
47
57
  if (result.error) {
48
58
  handleGraphQLError(result.error, log);
49
59
  return undefined;
50
60
  }
61
+ const account = result.data?.account;
51
62
  return {
52
- integrations: result.data?.account?.integrations?.nodes ?? [],
53
- count: result.data?.account?.integrations?.totalCount ?? 0,
54
- accountName: result.data?.account?.name ?? undefined,
63
+ integrations: (account?.integrations.nodes ?? []).map((integration) => ({
64
+ ...integration,
65
+ account: account?.key ?? '',
66
+ })),
67
+ count: account?.integrations.totalCount ?? 0,
68
+ accountName: account?.name ?? undefined,
55
69
  };
56
70
  }
57
71
  function displayIntegrations({ integrations, count, accountName }, log) {
58
72
  if (integrations.length > 0) {
59
73
  log(columnify(integrations, {
60
- columns: ['name', 'key', 'id'],
74
+ columns: ['name', 'key', 'type', 'account', 'id'],
61
75
  columnSplitter: ' ',
62
76
  config: {
63
77
  name: {
@@ -81,7 +95,7 @@ export default function listIntegrations(log, apiToken, client, config) {
81
95
  const graphqlClient = getClient(apiToken, client, config);
82
96
  let result;
83
97
  if (options?.all) {
84
- result = await fetchAllIntegrations(graphqlClient, log);
98
+ result = await fetchAllIntegrations(graphqlClient, log, options.type);
85
99
  }
86
100
  else {
87
101
  const { accountId, error } = await resolveAccountId(options ?? {}, apiToken ?? '', graphqlClient, config);
@@ -90,8 +104,8 @@ export default function listIntegrations(log, apiToken, client, config) {
90
104
  return;
91
105
  }
92
106
  result = accountId
93
- ? await fetchAccountIntegrations(graphqlClient, accountId, log)
94
- : await fetchAllIntegrations(graphqlClient, log);
107
+ ? await fetchAccountIntegrations(graphqlClient, accountId, log, options?.type)
108
+ : await fetchAllIntegrations(graphqlClient, log, options?.type);
95
109
  }
96
110
  if (result) {
97
111
  displayIntegrations(result, log);
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/integrations/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/integrations/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAQ7D,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;CAepC,CAAA;AAED,MAAM,mCAAmC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;CAgB9C,CAAA;AAeD,MAAM,aAAa,GAAG,CAAC,IAAsB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAExE,KAAK,UAAU,oBAAoB,CACjC,MAA4B,EAC5B,GAA8B,EAC9B,IAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC,yBAAyB,EACzB,aAAa,CAAC,IAAI,CAAC,CACpB,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CACxD,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,WAAW;YACd,OAAO,EAAE,OAAO,CAAC,GAAG;SACrB,CAAC,CACH;QACD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,IAAI,CAAC;KAClD,CAAA;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,MAA4B,EAC5B,SAAiB,EACjB,GAA8B,EAC9B,IAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC,mCAAmC,EACnC,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CACtC,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAA;IACpC,OAAO;QACL,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtE,GAAG,WAAW;YACd,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,IAAI,CAAC;QAC5C,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS;KACxC,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAsB,EACxD,GAA8B;IAE9B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,GAAG,CACD,SAAS,CAAC,YAAY,EAAE;YACtB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;YACjD,cAAc,EAAE,KAAK;YACrB,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClD;gBACD,EAAE,EAAE;oBACF,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjD,gBAAgB,EAAE,CAAC,OAAe,EAAE,EAAE,CACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;iBACpC;aACF;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE;QAC5D,CAAC,CAAC,iBAAiB,CAAA;IACrB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,GAA8B,EAC9B,QAAiB,EACjB,MAA6B,EAC7B,MAA2B;IAE3B,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAItC;QACC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAEzD,IAAI,MAAM,CAAA;QACV,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YAEjB,MAAM,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACvE,CAAC;aAAM,CAAC;YAEN,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CACjD,OAAO,IAAI,EAAE,EACb,QAAQ,IAAI,EAAE,EACd,aAAa,EACb,MAAM,CACP,CAAA;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAC9B,OAAM;YACR,CAAC;YAED,MAAM,GAAG,SAAS;gBAChB,CAAC,CAAC,MAAM,wBAAwB,CAC5B,aAAa,EACb,SAAS,EACT,GAAG,EACH,OAAO,EAAE,IAAI,CACd;gBACH,CAAC,CAAC,MAAM,oBAAoB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACnE,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}