great 1.3.0 → 1.4.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 (55) hide show
  1. package/README.md +32 -16
  2. package/dist/generated/operations.d.ts +23 -1
  3. package/dist/generated/schema.d.ts +16 -0
  4. package/dist/generated/schema.js.map +1 -1
  5. package/dist/import/index.d.ts +3 -1
  6. package/dist/import/index.js +27 -6
  7. package/dist/import/index.js.map +1 -1
  8. package/dist/include/index.d.ts +3 -1
  9. package/dist/include/index.js +129 -11
  10. package/dist/include/index.js.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/integrations/index.js +5 -0
  14. package/dist/integrations/index.js.map +1 -1
  15. package/dist/integrations/list.d.ts +2 -0
  16. package/dist/integrations/list.js +30 -16
  17. package/dist/integrations/list.js.map +1 -1
  18. package/dist/push/index.js +37 -14
  19. package/dist/push/index.js.map +1 -1
  20. package/dist/remove/index.d.ts +5 -0
  21. package/dist/remove/index.js +71 -0
  22. package/dist/remove/index.js.map +1 -0
  23. package/dist/rename/index.js +4 -3
  24. package/dist/rename/index.js.map +1 -1
  25. package/dist/run/index.d.ts +1 -1
  26. package/dist/utils/elementFiles.d.ts +8 -0
  27. package/dist/utils/elementFiles.js +33 -0
  28. package/dist/utils/elementFiles.js.map +1 -1
  29. package/dist/utils/graphqlError.js +16 -2
  30. package/dist/utils/graphqlError.js.map +1 -1
  31. package/dist/utils/mergeEndpointLists.d.ts +7 -0
  32. package/dist/utils/mergeEndpointLists.js +32 -0
  33. package/dist/utils/mergeEndpointLists.js.map +1 -0
  34. package/dist/utils/promptForEndpoints.d.ts +5 -0
  35. package/dist/utils/promptForEndpoints.js +37 -0
  36. package/dist/utils/promptForEndpoints.js.map +1 -0
  37. package/dist/utils/promptForReplaceLocal.d.ts +5 -0
  38. package/dist/utils/promptForReplaceLocal.js +18 -0
  39. package/dist/utils/promptForReplaceLocal.js.map +1 -0
  40. package/dist/utils/promptForValue.d.ts +1 -0
  41. package/dist/utils/promptForValue.js +5 -3
  42. package/dist/utils/promptForValue.js.map +1 -1
  43. package/dist/utils/resolveElementIncludes.d.ts +6 -0
  44. package/dist/utils/resolveElementIncludes.js +113 -0
  45. package/dist/utils/resolveElementIncludes.js.map +1 -0
  46. package/dist/utils/serviceFile.d.ts +3 -0
  47. package/dist/utils/serviceFile.js +7 -1
  48. package/dist/utils/serviceFile.js.map +1 -1
  49. package/dist/utils/writeShadowElement.d.ts +10 -7
  50. package/dist/utils/writeShadowElement.js +89 -50
  51. package/dist/utils/writeShadowElement.js.map +1 -1
  52. package/package.json +7 -7
  53. package/dist/utils/resolveElementInclude.d.ts +0 -3
  54. package/dist/utils/resolveElementInclude.js +0 -27
  55. package/dist/utils/resolveElementInclude.js.map +0 -1
@@ -17,8 +17,16 @@ export declare const isVirtualFolder: (folder: string) => boolean;
17
17
  export declare const fileFolder: (folder: string) => string;
18
18
  export declare const JSON_EXTENSIONS: readonly [".jsonc", ".json"];
19
19
  export declare function elementKeyFromFileName(fileName: string): string | undefined;
20
+ export interface ElementTarget {
21
+ folder: string;
22
+ key: string;
23
+ }
24
+ export declare function parseElementTarget(target: string): ElementTarget | undefined;
20
25
  export declare function findElementFile(root: string | undefined, folder: string, key: string, fsImpl: GreatFs): string | undefined;
26
+ export declare function hasElementFile(root: string | undefined, folder: string, key: string, fsImpl: GreatFs): boolean;
21
27
  export declare const elementFilePath: (root: string | undefined, folder: string, key: string, fsImpl: GreatFs) => string;
28
+ export declare const readEndpointListKeys: (root: string | undefined, key: string, fsImpl: GreatFs) => string[];
22
29
  export declare function readElementFolder(folder: string, root: string | undefined, fsImpl: GreatFs): ReadElementFile[];
23
30
  export declare function readWorkspaceElements(root: string | undefined, fsImpl: GreatFs): LocalElementFile[];
24
31
  export declare function writeElementFile(root: string | undefined, folder: string, key: string, data: Record<string, unknown>, great: GreatFile, fsImpl?: GreatFs, knownPath?: string): string;
32
+ export declare function removeElementFile(root: string | undefined, folder: string, key: string, great: GreatFile, fsImpl?: GreatFs): void;
@@ -52,6 +52,10 @@ export function elementKeyFromFileName(fileName) {
52
52
  const ext = JSON_EXTENSIONS.find((e) => fileName.endsWith(e));
53
53
  return ext ? fileName.slice(0, -ext.length) : undefined;
54
54
  }
55
+ export function parseElementTarget(target) {
56
+ const [folder, key, ...extra] = target.split('/');
57
+ return folder && key && extra.length === 0 ? { folder, key } : undefined;
58
+ }
55
59
  const folderPath = (root, folder) => root ? path.join(root, folder) : folder;
56
60
  export function findElementFile(root, folder, key, fsImpl) {
57
61
  for (const ext of JSON_EXTENSIONS) {
@@ -62,8 +66,20 @@ export function findElementFile(root, folder, key, fsImpl) {
62
66
  }
63
67
  return undefined;
64
68
  }
69
+ export function hasElementFile(root, folder, key, fsImpl) {
70
+ const filePath = findElementFile(root, folder, key, fsImpl);
71
+ if (!filePath) {
72
+ return false;
73
+ }
74
+ if (isServiceFileFolder(folder)) {
75
+ const parts = readServiceFileParts(filePath, fsImpl);
76
+ return Boolean(folder === SERVICES_FOLDER ? parts.service : parts.list);
77
+ }
78
+ return true;
79
+ }
65
80
  export const elementFilePath = (root, folder, key, fsImpl) => findElementFile(root, folder, key, fsImpl) ??
66
81
  path.join(folderPath(root, fileFolder(folder)), `${key}.json`);
82
+ export const readEndpointListKeys = (root, key, fsImpl) => readServiceFileParts(elementFilePath(root, ENDPOINT_LISTS_FOLDER, key, fsImpl), fsImpl).list?.endpoints ?? [];
67
83
  export function readElementFolder(folder, root, fsImpl) {
68
84
  const dirPath = folderPath(root, folder);
69
85
  if (!fsImpl.existsSync(dirPath)) {
@@ -179,4 +195,21 @@ export function writeElementFile(root, folder, key, data, great, fsImpl = fs, kn
179
195
  fsImpl.writeFileSync(filePath, JSON.stringify(content, undefined, 2));
180
196
  return filePath;
181
197
  }
198
+ export function removeElementFile(root, folder, key, great, fsImpl = fs) {
199
+ const filePath = findElementFile(root, folder, key, fsImpl);
200
+ if (!filePath) {
201
+ return;
202
+ }
203
+ const service = folder === ENDPOINT_LISTS_FOLDER
204
+ ? readServiceFileParts(filePath, fsImpl).service
205
+ : undefined;
206
+ if (service) {
207
+ const marker = shadowMarkerFor(isShadowRecord(great, SERVICES_FOLDER, key), false);
208
+ const content = mergeServiceFile({ service }, marker);
209
+ fsImpl.writeFileSync(filePath, JSON.stringify(content, undefined, 2));
210
+ }
211
+ else {
212
+ fsImpl.unlinkSync(filePath);
213
+ }
214
+ }
182
215
  //# sourceMappingURL=elementFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"elementFiles.js","sourceRoot":"","sources":["../../src/utils/elementFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementFiles.js","sourceRoot":"","sources":["../../src/utils/elementFiles.ts"],"names":[],"mappings":"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"}
@@ -6,16 +6,30 @@ export function isNotFoundError(error) {
6
6
  }
7
7
  return error?.message?.includes('NOT_FOUND');
8
8
  }
9
+ const UNAVAILABLE_STATUSES = [502, 503, 504];
10
+ function isHttpErrorStatus(status) {
11
+ return typeof status === 'number' && (status < 200 || status >= 300);
12
+ }
13
+ function getHttpErrorMessage(status) {
14
+ if (UNAVAILABLE_STATUSES.includes(status)) {
15
+ return `The API is not responding correctly (HTTP ${status}). It may be temporarily unavailable – please try again in a moment.`;
16
+ }
17
+ return `The API returned an unexpected response (HTTP ${status}).`;
18
+ }
9
19
  export function getGraphQLErrorMessage(error) {
10
20
  if (typeof error === 'string')
11
21
  return error;
12
- const errors = error.response?.errors;
13
- const messages = errors
22
+ const response = error.response;
23
+ const messages = response?.errors
14
24
  ?.map((err) => err.message)
15
25
  .filter((message) => Boolean(message));
16
26
  if (messages?.length) {
17
27
  return messages.join('\n');
18
28
  }
29
+ const status = response?.status;
30
+ if (isHttpErrorStatus(status)) {
31
+ return getHttpErrorMessage(status);
32
+ }
19
33
  return error.message;
20
34
  }
21
35
  export function handleGraphQLError(error, log) {
@@ -1 +1 @@
1
- {"version":3,"file":"graphqlError.js","sourceRoot":"","sources":["../../src/utils/graphqlError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,MAAM,UAAU,eAAe,CAAC,KAAY;IAE1C,MAAM,iBAAiB,GAAG,KAAkC,CAAA;IAE5D,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACvC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,WAAW,CAC9C,CAAA;IACH,CAAC;IAGD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC;AAUD,MAAM,UAAU,sBAAsB,CAAC,KAAqB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,MAAM,MAAM,GAAI,KAAmC,CAAC,QAAQ,EAAE,MAAM,CAAA;IACpE,MAAM,QAAQ,GAAG,MAAM;QACrB,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;SAC1B,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAA;AACtB,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAChC,KAAiC,EACjC,GAA8B;IAE9B,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAClC,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QAClE,OAAM;IACR,CAAC;IAGD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"graphqlError.js","sourceRoot":"","sources":["../../src/utils/graphqlError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAgBzB,MAAM,UAAU,eAAe,CAAC,KAAY;IAE1C,MAAM,iBAAiB,GAAG,KAAkC,CAAA;IAE5D,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACvC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,WAAW,CAC9C,CAAA;IACH,CAAC;IAGD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC;AAID,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAE5C,SAAS,iBAAiB,CAAC,MAAe;IACxC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO,6CAA6C,MAAM,sEAAsE,CAAA;IAClI,CAAC;IACD,OAAO,iDAAiD,MAAM,IAAI,CAAA;AACpE,CAAC;AAYD,MAAM,UAAU,sBAAsB,CAAC,KAAqB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,MAAM,QAAQ,GAAI,KAAmC,CAAC,QAAQ,CAAA;IAC9D,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM;QAC/B,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;SAC1B,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAA;IAC/B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAA;AACtB,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAChC,KAAiC,EACjC,GAA8B;IAE9B,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAClC,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;QAClE,OAAM;IACR,CAAC;IAGD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;AACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface EndpointListMerge {
2
+ merged: string[];
3
+ }
4
+ export interface EndpointListConflict {
5
+ conflict: [string, string];
6
+ }
7
+ export default function mergeEndpointLists(a: string[], b: string[]): EndpointListMerge | EndpointListConflict;
@@ -0,0 +1,32 @@
1
+ const dedupe = (keys) => [...new Set(keys)];
2
+ function drainTo(keys, anchor) {
3
+ const taken = [];
4
+ for (let next = keys.next(); !next.done; next = keys.next()) {
5
+ if (next.value === anchor) {
6
+ break;
7
+ }
8
+ taken.push(next.value);
9
+ }
10
+ return taken;
11
+ }
12
+ export default function mergeEndpointLists(a, b) {
13
+ const aList = dedupe(a);
14
+ const bList = dedupe(b);
15
+ const aSet = new Set(aList);
16
+ const bSet = new Set(bList);
17
+ const aRest = aList.values();
18
+ const bRest = bList.values();
19
+ const merged = [];
20
+ for (const anchor of aList.filter((key) => bSet.has(key))) {
21
+ const fromA = drainTo(aRest, anchor);
22
+ const fromB = drainTo(bRest, anchor);
23
+ const misplaced = fromB.find((key) => aSet.has(key));
24
+ if (misplaced) {
25
+ return { conflict: [anchor, misplaced] };
26
+ }
27
+ merged.push(...fromA, ...fromB, anchor);
28
+ }
29
+ merged.push(...aRest, ...bRest);
30
+ return { merged };
31
+ }
32
+ //# sourceMappingURL=mergeEndpointLists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeEndpointLists.js","sourceRoot":"","sources":["../../src/utils/mergeEndpointLists.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAMrD,SAAS,OAAO,CAAC,IAAsB,EAAE,MAAc;IACrD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAK;QACP,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAcD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,CAAW,EACX,CAAW;IAEX,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;IAE5B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAA;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAA;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface EndpointChoice {
2
+ key: string;
3
+ name: string;
4
+ }
5
+ export default function promptForEndpoints(serviceKey: string, endpoints: readonly EndpointChoice[], log: (message: string) => void, hasShadowList?: boolean): Promise<string[]>;
@@ -0,0 +1,37 @@
1
+ import { checkbox, confirm } from '@inquirer/prompts';
2
+ import chalk from 'chalk';
3
+ async function selectEndpoints(endpoints) {
4
+ return checkbox({
5
+ message: 'Endpoints to include',
6
+ choices: endpoints.map(({ key, name }) => ({
7
+ name: `${name} (${key})`,
8
+ value: key,
9
+ checked: true,
10
+ })),
11
+ });
12
+ }
13
+ async function confirmLocalList(log, hasShadowList) {
14
+ const replaces = hasShadowList
15
+ ? ' It replaces the shadow endpoint list you have now.'
16
+ : '';
17
+ log(chalk.yellow(`Leaving out endpoints means you make your own, local endpoint list, and won't follow changes to it.${replaces}`));
18
+ return confirm({
19
+ message: 'Make the endpoint list a local element with only the selected endpoints?',
20
+ default: false,
21
+ });
22
+ }
23
+ export default async function promptForEndpoints(serviceKey, endpoints, log, hasShadowList = false) {
24
+ log(`Service ${serviceKey} has an endpoint list with ${endpoints.length} endpoint(s). Select the ones to include with it.`);
25
+ try {
26
+ let selected;
27
+ do {
28
+ selected = await selectEndpoints(endpoints);
29
+ } while (selected.length < endpoints.length &&
30
+ !(await confirmLocalList(log, hasShadowList)));
31
+ return selected;
32
+ }
33
+ catch {
34
+ throw new Error('User cancelled');
35
+ }
36
+ }
37
+ //# sourceMappingURL=promptForEndpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptForEndpoints.js","sourceRoot":"","sources":["../../src/utils/promptForEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,KAAK,UAAU,eAAe,CAC5B,SAAoC;IAEpC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,GAAG,IAAI,KAAK,GAAG,GAAG;YACxB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;KACJ,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAA8B,EAC9B,aAAsB;IAEtB,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,qDAAqD;QACvD,CAAC,CAAC,EAAE,CAAA;IACN,GAAG,CACD,KAAK,CAAC,MAAM,CACV,sGAAsG,QAAQ,EAAE,CACjH,CACF,CAAA;IACD,OAAO,OAAO,CAAC;QACb,OAAO,EACL,0EAA0E;QAC5E,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;AACJ,CAAC;AAQD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,UAAkB,EAClB,SAAoC,EACpC,GAA8B,EAC9B,aAAa,GAAG,KAAK;IAErB,GAAG,CACD,WAAW,UAAU,8BAA8B,SAAS,CAAC,MAAM,mDAAmD,CACvH,CAAA;IACD,IAAI,CAAC;QACH,IAAI,QAAkB,CAAA;QACtB,GAAG,CAAC;YACF,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC,QACC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YAClC,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,EAC9C;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ElementTarget } from './elementFiles.js';
2
+ export interface ReplacedElement extends ElementTarget {
3
+ droppedKeys?: string[];
4
+ }
5
+ export default function promptForReplaceLocal(replaced: readonly ReplacedElement[], log: (message: string) => void): Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import chalk from 'chalk';
3
+ const describeReplaced = ({ folder, key, droppedKeys }) => droppedKeys
4
+ ? ` ${folder}/${key} (leaves out ${droppedKeys.join(', ')})`
5
+ : ` ${folder}/${key}`;
6
+ export default async function promptForReplaceLocal(replaced, log) {
7
+ log(chalk.yellow('These local elements will be replaced, and any changes to them that have not been pushed will be lost:'));
8
+ for (const element of replaced) {
9
+ log(describeReplaced(element));
10
+ }
11
+ try {
12
+ return await confirm({ message: 'Replace them?', default: false });
13
+ }
14
+ catch {
15
+ throw new Error('User cancelled');
16
+ }
17
+ }
18
+ //# sourceMappingURL=promptForReplaceLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptForReplaceLocal.js","sourceRoot":"","sources":["../../src/utils/promptForReplaceLocal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAmB,EAAE,EAAE,CACzE,WAAW;IACT,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,gBAAgB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IAC7D,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,EAAE,CAAA;AAK1B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB,CACjD,QAAoC,EACpC,GAA8B;IAE9B,GAAG,CACD,KAAK,CAAC,MAAM,CACV,wGAAwG,CACzG,CACF,CAAA;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
@@ -5,5 +5,6 @@ interface LocalElement {
5
5
  data: Record<string, unknown>;
6
6
  remoteId?: string;
7
7
  }
8
+ export declare const findElementsToSet: (elements: LocalElement[]) => LocalElement[];
8
9
  export declare function promptForValueSetting(elements: LocalElement[], log: (message: string) => void): Promise<boolean>;
9
10
  export {};
@@ -1,12 +1,14 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import chalk from 'chalk';
3
+ export const findElementsToSet = (elements) => elements.filter((element) => element.folder === 'values' &&
4
+ (element.data.value !== undefined || element.data.ref !== undefined));
3
5
  export async function promptForValueSetting(elements, log) {
4
- const valueElementsWithValue = elements.filter((element) => element.folder === 'values' && element.data.value !== undefined);
5
- if (valueElementsWithValue.length === 0) {
6
+ const elementsToSet = findElementsToSet(elements);
7
+ if (elementsToSet.length === 0) {
6
8
  return false;
7
9
  }
8
10
  log(chalk.white('The following value elements have values set:'));
9
- for (const element of valueElementsWithValue) {
11
+ for (const element of elementsToSet) {
10
12
  log(chalk.white(` - ${element.key}`));
11
13
  }
12
14
  log('');
@@ -1 +1 @@
1
- {"version":3,"file":"promptForValue.js","sourceRoot":"","sources":["../../src/utils/promptForValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAwB,EACxB,GAA8B;IAG9B,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAC5C,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAClE,CAAA;IAGD,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAA;IACjE,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAA;IAGP,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QAEP,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"promptForValue.js","sourceRoot":"","sources":["../../src/utils/promptForValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAwB,EAAkB,EAAE,CAC5E,QAAQ,CAAC,MAAM,CACb,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,MAAM,KAAK,QAAQ;IAC3B,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CACvE,CAAA;AAOH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAwB,EACxB,GAA8B;IAE9B,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAGjD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAA;IACjE,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,CAAA;IAGP,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QAEP,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { GraphQLRequestClient } from './graphqlClient.js';
2
+ import type { ResolveElementIncludeQuery } from '../generated/operations.js';
3
+ export type ResolvedInclude = ResolveElementIncludeQuery['resolveElementInclude'];
4
+ export default function resolveElementIncludes(graphqlClient: GraphQLRequestClient, elementId: string, sourceTimestamp: string | undefined, log: (message: string) => void): Promise<ResolvedInclude[] | undefined>;
5
+ export declare function endpointListKeys(list: ResolvedInclude): string[] | undefined;
6
+ export declare function resolveEndpointIncludes(graphqlClient: GraphQLRequestClient, list: ResolvedInclude, sourceTimestamp: string | undefined, log: (message: string) => void): Promise<ResolvedInclude[] | undefined>;
@@ -0,0 +1,113 @@
1
+ import { gql } from 'graphql-tag';
2
+ import chalk from 'chalk';
3
+ import { handleGraphQLError, isNotFoundError } from './graphqlError.js';
4
+ import { companionElementType, isEndpointKeys } from './serviceFile.js';
5
+ import { ElementType } from '../generated/schema.js';
6
+ const ResolveElementIncludeQueryDocument = gql `
7
+ query ResolveElementInclude($elementId: ID!, $sourceTimestamp: DateTime) {
8
+ resolveElementInclude(
9
+ elementId: $elementId
10
+ sourceTimestamp: $sourceTimestamp
11
+ ) {
12
+ key
13
+ name
14
+ description
15
+ type
16
+ integration {
17
+ id
18
+ }
19
+ content {
20
+ sourceId
21
+ sourceTimestamp
22
+ provenance
23
+ data
24
+ }
25
+ }
26
+ }
27
+ `;
28
+ const ElementIdByKeyQueryDocument = gql `
29
+ query ElementIdByKey($integrationId: ID!, $key: ID!, $type: ElementType!) {
30
+ elementByKey(integrationId: $integrationId, key: $key, type: $type) {
31
+ id
32
+ }
33
+ }
34
+ `;
35
+ async function resolveOne(graphqlClient, elementId, sourceTimestamp, log) {
36
+ const result = await graphqlClient.request(ResolveElementIncludeQueryDocument, { elementId, sourceTimestamp });
37
+ if (result.error) {
38
+ handleGraphQLError(result.error, log);
39
+ return undefined;
40
+ }
41
+ return result.data?.resolveElementInclude;
42
+ }
43
+ async function findElementId(graphqlClient, integrationId, key, type, log) {
44
+ const result = await graphqlClient.request(ElementIdByKeyQueryDocument, { integrationId, key, type });
45
+ if (result.error) {
46
+ if (isNotFoundError(result.error)) {
47
+ return { status: 'none' };
48
+ }
49
+ handleGraphQLError(result.error, log);
50
+ return { status: 'error' };
51
+ }
52
+ const id = result.data?.elementByKey?.id;
53
+ return id ? { status: 'found', id } : { status: 'none' };
54
+ }
55
+ async function findCompanionId(graphqlClient, resolved, log) {
56
+ const type = companionElementType(resolved.type);
57
+ if (!type || !resolved.integration) {
58
+ return { status: 'none' };
59
+ }
60
+ return findElementId(graphqlClient, resolved.integration.id, resolved.key, type, log);
61
+ }
62
+ export default async function resolveElementIncludes(graphqlClient, elementId, sourceTimestamp, log) {
63
+ const resolved = await resolveOne(graphqlClient, elementId, sourceTimestamp, log);
64
+ if (!resolved) {
65
+ return undefined;
66
+ }
67
+ const lookup = await findCompanionId(graphqlClient, resolved, log);
68
+ if (lookup.status === 'error') {
69
+ return undefined;
70
+ }
71
+ if (lookup.status === 'none') {
72
+ return [resolved];
73
+ }
74
+ const companion = await resolveOne(graphqlClient, lookup.id, sourceTimestamp, log);
75
+ if (!companion) {
76
+ return undefined;
77
+ }
78
+ return companion.content?.sourceId ? [resolved, companion] : [resolved];
79
+ }
80
+ export function endpointListKeys(list) {
81
+ const endpoints = list.content?.data?.endpoints;
82
+ return isEndpointKeys(endpoints) ? endpoints : undefined;
83
+ }
84
+ async function resolveEndpoint(graphqlClient, integrationId, key, sourceTimestamp, log) {
85
+ const lookup = await findElementId(graphqlClient, integrationId, key, ElementType.Endpoint, log);
86
+ if (lookup.status === 'none') {
87
+ log(chalk.yellow(`Endpoint ${key} was not found in the source integration`));
88
+ return 'none';
89
+ }
90
+ if (lookup.status === 'error') {
91
+ return 'error';
92
+ }
93
+ const resolved = await resolveOne(graphqlClient, lookup.id, sourceTimestamp, log);
94
+ return resolved ?? 'error';
95
+ }
96
+ export async function resolveEndpointIncludes(graphqlClient, list, sourceTimestamp, log) {
97
+ const keys = endpointListKeys(list) ?? [];
98
+ if (!list.integration || keys.length === 0) {
99
+ return [];
100
+ }
101
+ const endpoints = [];
102
+ for (const key of keys) {
103
+ const resolved = await resolveEndpoint(graphqlClient, list.integration.id, key, sourceTimestamp, log);
104
+ if (resolved === 'error') {
105
+ return undefined;
106
+ }
107
+ else if (resolved !== 'none') {
108
+ endpoints.push(resolved);
109
+ }
110
+ }
111
+ return endpoints;
112
+ }
113
+ //# sourceMappingURL=resolveElementIncludes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveElementIncludes.js","sourceRoot":"","sources":["../../src/utils/resolveElementIncludes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAOpD,MAAM,kCAAkC,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqB7C,CAAA;AAED,MAAM,2BAA2B,GAAG,GAAG,CAAA;;;;;;CAMtC,CAAA;AAUD,KAAK,UAAU,UAAU,CACvB,aAAmC,EACnC,SAAiB,EACjB,eAAmC,EACnC,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CACxC,kCAAkC,EAClC,EAAE,SAAS,EAAE,eAAe,EAAE,CAC/B,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,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAA;AAC3C,CAAC;AAKD,KAAK,UAAU,aAAa,CAC1B,aAAmC,EACnC,aAAqB,EACrB,GAAW,EACX,IAAiB,EACjB,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CACxC,2BAA2B,EAC3B,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAC7B,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;QAC3B,CAAC;QACD,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAA;IACxC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC1D,CAAC;AAMD,KAAK,UAAU,eAAe,CAC5B,aAAmC,EACnC,QAAyB,EACzB,GAA8B;IAE9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAC3B,CAAC;IACD,OAAO,aAAa,CAClB,aAAa,EACb,QAAQ,CAAC,WAAW,CAAC,EAAE,EACvB,QAAQ,CAAC,GAAG,EACZ,IAAI,EACJ,GAAG,CACJ,CAAA;AACH,CAAC;AAUD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,sBAAsB,CAClD,aAAmC,EACnC,SAAiB,EACjB,eAAmC,EACnC,GAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,aAAa,EACb,SAAS,EACT,eAAe,EACf,GAAG,CACJ,CAAA;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,UAAU,CAChC,aAAa,EACb,MAAM,CAAC,EAAE,EACT,eAAe,EACf,GAAG,CACJ,CAAA;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AACzE,CAAC;AAID,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAA;IAC/C,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC;AAKD,KAAK,UAAU,eAAe,CAC5B,aAAmC,EACnC,aAAqB,EACrB,GAAW,EACX,eAAmC,EACnC,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,aAAa,EACb,aAAa,EACb,GAAG,EACH,WAAW,CAAC,QAAQ,EACpB,GAAG,CACJ,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,0CAA0C,CAAC,CAAC,CAAA;QAC5E,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,aAAa,EACb,MAAM,CAAC,EAAE,EACT,eAAe,EACf,GAAG,CACJ,CAAA;IACD,OAAO,QAAQ,IAAI,OAAO,CAAA;AAC5B,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAmC,EACnC,IAAqB,EACrB,eAAmC,EACnC,GAA8B;IAE9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACzC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,aAAa,EACb,IAAI,CAAC,WAAW,CAAC,EAAE,EACnB,GAAG,EACH,eAAe,EACf,GAAG,CACJ,CAAA;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ElementType } from '../generated/schema.js';
1
2
  import type { ShadowMarker } from './shadowMarker.js';
2
3
  import type { GreatFile } from './greatFile.js';
3
4
  import type { GreatFs } from '../types.js';
@@ -14,6 +15,7 @@ export interface ServiceFileParts {
14
15
  }
15
16
  export declare const isServiceFileFolder: (folder: string) => boolean;
16
17
  export declare const serviceFileFolders: (folder: string) => string[];
18
+ export declare const companionElementType: (type: ElementType) => ElementType | undefined;
17
19
  export interface EndpointReferenceElement {
18
20
  folder: string;
19
21
  key: string;
@@ -28,4 +30,5 @@ export declare function mergeServiceFile(parts: {
28
30
  list?: EndpointListContent;
29
31
  }, marker?: ShadowMarker): Record<string, unknown>;
30
32
  export declare function readServiceFileParts(filePath: string, fsImpl: GreatFs): ServiceFileParts;
33
+ export declare const isEndpointKeys: (value: unknown) => value is string[];
31
34
  export declare function validateEndpointReferences(elements: readonly EndpointReferenceElement[], great: GreatFile): string[];
@@ -1,5 +1,6 @@
1
1
  import parseJson from './parseJson.js';
2
2
  import { SHADOW_MARKER } from './shadowMarker.js';
3
+ import { ElementType } from '../generated/schema.js';
3
4
  export const SERVICES_FOLDER = 'services';
4
5
  export const ENDPOINTS_FOLDER = 'endpoints';
5
6
  export const ENDPOINT_LISTS_FOLDER = 'endpointLists';
@@ -7,6 +8,11 @@ export const isServiceFileFolder = (folder) => folder === SERVICES_FOLDER || fol
7
8
  export const serviceFileFolders = (folder) => folder === SERVICES_FOLDER
8
9
  ? [ENDPOINT_LISTS_FOLDER, SERVICES_FOLDER]
9
10
  : [folder];
11
+ export const companionElementType = (type) => type === ElementType.Service
12
+ ? ElementType.EndpointList
13
+ : type === ElementType.EndpointList
14
+ ? ElementType.Service
15
+ : undefined;
10
16
  export function classifyEndpoints(endpoints) {
11
17
  if (!Array.isArray(endpoints)) {
12
18
  return 'none';
@@ -59,7 +65,7 @@ export function readServiceFileParts(filePath, fsImpl) {
59
65
  const data = parseJson(fsImpl.readFileSync(filePath, 'utf8'));
60
66
  return splitServiceFile(data, filePath);
61
67
  }
62
- const isEndpointKeys = (value) => classifyEndpoints(value) === 'keys';
68
+ export const isEndpointKeys = (value) => classifyEndpoints(value) === 'keys';
63
69
  const endpointFileKeys = (elements) => elements
64
70
  .filter((element) => element.folder === ENDPOINTS_FOLDER)
65
71
  .map((element) => element.key);
@@ -1 +1 @@
1
- {"version":3,"file":"serviceFile.js","sourceRoot":"","sources":["../../src/utils/serviceFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serviceFile.js","sourceRoot":"","sources":["../../src/utils/serviceFile.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,27 @@
1
+ import type { ElementTarget } from './elementFiles.js';
1
2
  import type { GreatFile } from './greatFile.js';
2
- import type { ResolveElementIncludeQuery } from '../generated/operations.js';
3
+ import type { ResolveTemplateImportQuery } from '../generated/operations.js';
3
4
  import type { GreatFs } from '../types.js';
4
- export type ResolvedShadow = ResolveElementIncludeQuery['resolveElementInclude'];
5
+ export type ResolvedShadow = ResolveTemplateImportQuery['resolveTemplateImport']['elements'][number];
5
6
  export interface ShadowConflict {
6
7
  key: string;
7
8
  folder: string;
8
9
  reason: string;
9
10
  }
10
11
  export interface WriteShadowsResult {
11
- written: {
12
- folder: string;
13
- key: string;
14
- }[];
12
+ written: ElementTarget[];
13
+ merged: ElementTarget[];
15
14
  skipped: ResolvedShadow[];
16
15
  conflicts: ShadowConflict[];
17
16
  }
17
+ export type ShadowMode = 'include' | 'import';
18
18
  interface WriteShadowsOptions {
19
+ mode: ShadowMode;
19
20
  root?: string;
20
21
  fsImpl?: GreatFs;
21
22
  }
22
- export declare function writeShadowElements(great: GreatFile, resolved: readonly ResolvedShadow[], options?: WriteShadowsOptions): WriteShadowsResult;
23
+ export declare function isLocalOccupant(great: GreatFile, folder: string, key: string, root: string | undefined, fsImpl: GreatFs): boolean;
24
+ export declare const findLocalOccupants: (great: GreatFile, elements: readonly ResolvedShadow[], root: string | undefined, fsImpl: GreatFs) => ElementTarget[];
25
+ export declare function writeShadowElements(great: GreatFile, resolved: readonly ResolvedShadow[], options: WriteShadowsOptions): WriteShadowsResult;
23
26
  export declare function logShadowConflicts(verb: string, conflicts: readonly ShadowConflict[], log: (message: string) => void): void;
24
27
  export {};