great 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -7
- package/dist/generated/operations.d.ts +30 -21
- package/dist/generated/schema.d.ts +63 -7
- package/dist/generated/schema.js.map +1 -1
- package/dist/import/index.js +24 -17
- package/dist/import/index.js.map +1 -1
- package/dist/include/index.js +1 -4
- package/dist/include/index.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/init/index.d.ts +7 -2
- package/dist/init/index.js +41 -7
- package/dist/init/index.js.map +1 -1
- package/dist/integrations/create.d.ts +1 -0
- package/dist/integrations/create.js +11 -2
- package/dist/integrations/create.js.map +1 -1
- package/dist/push/index.js +7 -1
- package/dist/push/index.js.map +1 -1
- package/dist/utils/applyImports.d.ts +14 -0
- package/dist/utils/applyImports.js +147 -0
- package/dist/utils/applyImports.js.map +1 -0
- package/dist/utils/config.d.ts +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/createIntegrationFromFile.d.ts +1 -0
- package/dist/utils/createIntegrationFromFile.js +9 -1
- package/dist/utils/createIntegrationFromFile.js.map +1 -1
- package/dist/utils/graphqlError.d.ts +1 -0
- package/dist/utils/graphqlError.js +16 -1
- package/dist/utils/graphqlError.js.map +1 -1
- package/dist/utils/greatFile.d.ts +1 -0
- package/dist/utils/greatFile.js +8 -0
- package/dist/utils/greatFile.js.map +1 -1
- package/dist/utils/resolveAccount.d.ts +1 -0
- package/dist/utils/resolveAccount.js +1 -1
- package/dist/utils/resolveAccount.js.map +1 -1
- package/dist/utils/resolveImports.d.ts +9 -0
- package/dist/utils/resolveImports.js +67 -0
- package/dist/utils/resolveImports.js.map +1 -0
- package/dist/utils/resolveIntegration.js +3 -3
- package/dist/utils/resolveIntegration.js.map +1 -1
- package/dist/utils/valueTypes.d.ts +4 -0
- package/dist/utils/valueTypes.js +6 -0
- package/dist/utils/valueTypes.js.map +1 -1
- package/dist/utils/writeShadowElement.d.ts +5 -8
- package/dist/utils/writeShadowElement.js +25 -81
- package/dist/utils/writeShadowElement.js.map +1 -1
- package/dist/values/list.js +11 -8
- package/dist/values/list.js.map +1 -1
- package/dist/values/set.js +2 -3
- package/dist/values/set.js.map +1 -1
- package/dist/values/unset.js +3 -1
- package/dist/values/unset.js.map +1 -1
- package/package.json +9 -9
- package/dist/utils/mergeEndpointLists.d.ts +0 -7
- package/dist/utils/mergeEndpointLists.js +0 -32
- package/dist/utils/mergeEndpointLists.js.map +0 -1
- package/dist/utils/resolveTemplateImport.d.ts +0 -3
- package/dist/utils/resolveTemplateImport.js +0 -30
- package/dist/utils/resolveTemplateImport.js.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { gql } from 'graphql-tag';
|
|
3
|
+
import { handleGraphQLError } from './graphqlError.js';
|
|
4
|
+
import { folderToElementType, readWorkspaceElements } from './elementFiles.js';
|
|
5
|
+
import { getElementRecord } from './greatFile.js';
|
|
6
|
+
import { ENDPOINT_LISTS_FOLDER } from './serviceFile.js';
|
|
7
|
+
const ResolveImportsQueryDocument = gql `
|
|
8
|
+
query ResolveImports(
|
|
9
|
+
$imports: [ImportInput!]!
|
|
10
|
+
$elements: [TargetElementInput!]
|
|
11
|
+
) {
|
|
12
|
+
resolveImports(imports: $imports, elements: $elements) {
|
|
13
|
+
imports {
|
|
14
|
+
templateId
|
|
15
|
+
timestamp
|
|
16
|
+
}
|
|
17
|
+
conflicts {
|
|
18
|
+
type
|
|
19
|
+
key
|
|
20
|
+
reason
|
|
21
|
+
}
|
|
22
|
+
elements {
|
|
23
|
+
key
|
|
24
|
+
name
|
|
25
|
+
description
|
|
26
|
+
type
|
|
27
|
+
content {
|
|
28
|
+
sourceId
|
|
29
|
+
sourceTimestamp
|
|
30
|
+
provenance
|
|
31
|
+
data
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
function toTargetElement(great, element) {
|
|
38
|
+
const record = getElementRecord(great, element.folder, element.key);
|
|
39
|
+
const source = record?.source;
|
|
40
|
+
return {
|
|
41
|
+
type: folderToElementType[element.folder],
|
|
42
|
+
key: element.key,
|
|
43
|
+
...(source ? { sourceId: source.id } : {}),
|
|
44
|
+
...(source?.timestamp ? { sourceTimestamp: source.timestamp } : {}),
|
|
45
|
+
...(record?.provenance?.length ? { provenance: record.provenance } : {}),
|
|
46
|
+
...(element.folder === ENDPOINT_LISTS_FOLDER ? { data: element.data } : {}),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export const buildTargetElements = (great, root, fsImpl = fs) => readWorkspaceElements(root, fsImpl).map((element) => toTargetElement(great, element));
|
|
50
|
+
export const buildImportInputs = (great, templateId) => [
|
|
51
|
+
...(great.imports ?? [])
|
|
52
|
+
.filter((record) => record.templateId !== templateId)
|
|
53
|
+
.map((record) => ({
|
|
54
|
+
templateId: record.templateId,
|
|
55
|
+
timestamp: record.timestamp,
|
|
56
|
+
})),
|
|
57
|
+
{ templateId },
|
|
58
|
+
];
|
|
59
|
+
export default async function resolveImports(graphqlClient, imports, elements, log) {
|
|
60
|
+
const result = await graphqlClient.request(ResolveImportsQueryDocument, { imports, elements });
|
|
61
|
+
if (result.error) {
|
|
62
|
+
handleGraphQLError(result.error, log);
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return result.data?.resolveImports;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=resolveImports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveImports.js","sourceRoot":"","sources":["../../src/utils/resolveImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAQxD,MAAM,2BAA2B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BtC,CAAA;AAOD,SAAS,eAAe,CACtB,KAAgB,EAChB,OAAyB;IAEzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACH,CAAC;AAKD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAgB,EAChB,IAAwB,EACxB,SAAkB,EAAE,EACE,EAAE,CACxB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAChC,CAAA;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAgB,EAChB,UAAkB,EACH,EAAE,CAAC;IAClB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC;SACpD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACL,EAAE,UAAU,EAAE;CACf,CAAA;AAMD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,aAAmC,EACnC,OAAsB,EACtB,QAA8B,EAC9B,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CACxC,2BAA2B,EAC3B,EAAE,OAAO,EAAE,QAAQ,EAAE,CACtB,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,cAAc,CAAA;AACpC,CAAC"}
|
|
@@ -11,8 +11,8 @@ export const IntegrationQueryDocument = gql `
|
|
|
11
11
|
}
|
|
12
12
|
`;
|
|
13
13
|
export const IntegrationByKeyQueryDocument = gql `
|
|
14
|
-
query IntegrationByKey($
|
|
15
|
-
integrationByKey(
|
|
14
|
+
query IntegrationByKey($account: AccountSelector!, $key: ID!) {
|
|
15
|
+
integrationByKey(account: $account, key: $key) {
|
|
16
16
|
id
|
|
17
17
|
name
|
|
18
18
|
type
|
|
@@ -38,7 +38,7 @@ export async function resolveIntegration(identifier, accountId, apiToken, client
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
if (accountId) {
|
|
41
|
-
const keyResult = await graphqlClient.request(IntegrationByKeyQueryDocument, { accountId, key: identifier });
|
|
41
|
+
const keyResult = await graphqlClient.request(IntegrationByKeyQueryDocument, { account: { id: accountId }, key: identifier });
|
|
42
42
|
if (keyResult.error && !isNotFoundError(keyResult.error)) {
|
|
43
43
|
const errorMessage = getGraphQLErrorMessage(keyResult.error);
|
|
44
44
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveIntegration.js","sourceRoot":"","sources":["../../src/utils/resolveIntegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAO3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;CAQ1C,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAA;;;;;;;;CAQ/C,CAAA;AASD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,SAA6B,EAC7B,QAAiB,EACjB,MAA6B,EAC7B,OAAgB;IAEhB,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEtE,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAC1C,wBAAwB,EACxB,EAAE,EAAE,EAAE,UAAU,EAAE,CACnB,CAAA;QAGD,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC3D,OAAO;gBACL,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,YAAY;aACpB,CAAA;QACH,CAAC;QAGD,IAAI,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBACpC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;aACrC,CAAA;QACH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAC3C,6BAA6B,EAC7B,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"resolveIntegration.js","sourceRoot":"","sources":["../../src/utils/resolveIntegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAO3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;CAQ1C,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAA;;;;;;;;CAQ/C,CAAA;AASD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,SAA6B,EAC7B,QAAiB,EACjB,MAA6B,EAC7B,OAAgB;IAEhB,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEtE,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAC1C,wBAAwB,EACxB,EAAE,EAAE,EAAE,UAAU,EAAE,CACnB,CAAA;QAGD,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC3D,OAAO;gBACL,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,YAAY;aACpB,CAAA;QACH,CAAC;QAGD,IAAI,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;YAC/B,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBACpC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;aACrC,CAAA;QACH,CAAC;QAGD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAC3C,6BAA6B,EAC7B,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAChD,CAAA;YAGD,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,YAAY,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAC5D,OAAO;oBACL,EAAE,EAAE,EAAE;oBACN,KAAK,EAAE,YAAY;iBACpB,CAAA;YACH,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAA;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;oBACL,EAAE,EAAE,EAAE;oBACN,KAAK,EAAE,yBAAyB,UAAU,2BAA2B,SAAS,GAAG;iBAClF,CAAA;YACH,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAA;QACH,CAAC;QAGD,OAAO;YACL,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,yBAAyB,UAAU,cAAc;SACzD,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,OAAO;YACL,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,gCAAgC,YAAY,EAAE;SACtD,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const VALID_VALUE_TYPES: readonly ["string", "secret", "number", "boolean", "date"];
|
|
2
2
|
export type ValueElementType = (typeof VALID_VALUE_TYPES)[number];
|
|
3
3
|
export declare function isValidValueElementType(type: unknown): type is ValueElementType;
|
|
4
|
+
export declare const isValidIsDynamic: (value: unknown) => value is boolean | undefined;
|
|
5
|
+
export declare const isDynamicValue: (content: Record<string, unknown> | undefined) => boolean;
|
|
6
|
+
export declare const describeValueType: (content: Record<string, unknown> | undefined) => string;
|
|
7
|
+
export declare const describeValueEffect: (content: Record<string, unknown> | undefined) => string;
|
|
4
8
|
export declare function castValue(valueStr: string, type: ValueElementType): string | number | boolean;
|
package/dist/utils/valueTypes.js
CHANGED
|
@@ -10,6 +10,12 @@ export function isValidValueElementType(type) {
|
|
|
10
10
|
return (typeof type === 'string' &&
|
|
11
11
|
VALID_VALUE_TYPES.includes(type));
|
|
12
12
|
}
|
|
13
|
+
export const isValidIsDynamic = (value) => value === undefined || typeof value === 'boolean';
|
|
14
|
+
export const isDynamicValue = (content) => content?.isDynamic === true;
|
|
15
|
+
export const describeValueType = (content) => (typeof content?.type === 'string' ? content.type : 'unknown');
|
|
16
|
+
export const describeValueEffect = (content) => isDynamicValue(content)
|
|
17
|
+
? 'the integration reloads if it is running'
|
|
18
|
+
: 'takes effect on the next deploy';
|
|
13
19
|
export function castValue(valueStr, type) {
|
|
14
20
|
switch (type) {
|
|
15
21
|
case 'string':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueTypes.js","sourceRoot":"","sources":["../../src/utils/valueTypes.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAK9C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAA;AAOV,MAAM,UAAU,uBAAuB,CACrC,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,iBAAiB,CAAC,QAAQ,CAAC,IAAwB,CAAC,CACrD,CAAA;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"valueTypes.js","sourceRoot":"","sources":["../../src/utils/valueTypes.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAK9C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAA;AAOV,MAAM,UAAU,uBAAuB,CACrC,IAAa;IAEb,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,iBAAiB,CAAC,QAAQ,CAAC,IAAwB,CAAC,CACrD,CAAA;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAc,EACgB,EAAE,CAChC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,CAAA;AAOnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAA4C,EACnC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAA;AAKzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAA4C,EACpC,EAAE,CAAC,CAAC,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAM3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAA4C,EACpC,EAAE,CACV,cAAc,CAAC,OAAO,CAAC;IACrB,CAAC,CAAC,0CAA0C;IAC5C,CAAC,CAAC,iCAAiC,CAAA;AAKvC,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,IAAsB;IAEtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QAEjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,aAAa,CAAC,CAAA;YACxD,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;YACpC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAA;YAClD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAA;YACpD,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,qCAAqC,CAC9D,CAAA;QACH,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YAEZ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAA;YACH,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ElementTarget } from './elementFiles.js';
|
|
2
2
|
import type { GreatFile } from './greatFile.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ResolveImportsQuery } from '../generated/operations.js';
|
|
4
4
|
import type { GreatFs } from '../types.js';
|
|
5
|
-
export type ResolvedShadow =
|
|
5
|
+
export type ResolvedShadow = ResolveImportsQuery['resolveImports']['elements'][number];
|
|
6
6
|
export interface ShadowConflict {
|
|
7
7
|
key: string;
|
|
8
8
|
folder: string;
|
|
@@ -10,18 +10,15 @@ export interface ShadowConflict {
|
|
|
10
10
|
}
|
|
11
11
|
export interface WriteShadowsResult {
|
|
12
12
|
written: ElementTarget[];
|
|
13
|
-
merged: ElementTarget[];
|
|
14
13
|
skipped: ResolvedShadow[];
|
|
15
14
|
conflicts: ShadowConflict[];
|
|
16
15
|
}
|
|
17
|
-
export
|
|
18
|
-
interface WriteShadowsOptions {
|
|
19
|
-
mode: ShadowMode;
|
|
16
|
+
export interface WriteShadowsOptions {
|
|
20
17
|
root?: string;
|
|
21
18
|
fsImpl?: GreatFs;
|
|
22
19
|
}
|
|
23
20
|
export declare function isLocalOccupant(great: GreatFile, folder: string, key: string, root: string | undefined, fsImpl: GreatFs): boolean;
|
|
24
21
|
export declare const findLocalOccupants: (great: GreatFile, elements: readonly ResolvedShadow[], root: string | undefined, fsImpl: GreatFs) => ElementTarget[];
|
|
25
|
-
export declare function
|
|
22
|
+
export declare function writeShadowFile(great: GreatFile, resolved: ResolvedShadow, folder: string, provenance: readonly string[], root: string | undefined, fsImpl: GreatFs): void;
|
|
23
|
+
export declare function writeShadowElements(great: GreatFile, resolved: readonly ResolvedShadow[], options?: WriteShadowsOptions): WriteShadowsResult;
|
|
26
24
|
export declare function logShadowConflicts(verb: string, conflicts: readonly ShadowConflict[], log: (message: string) => void): void;
|
|
27
|
-
export {};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import { elementTypeToFolder, hasElementFile,
|
|
4
|
-
import { getElementRecord, setElementRecord,
|
|
3
|
+
import { elementTypeToFolder, hasElementFile, writeElementFile, } from './elementFiles.js';
|
|
4
|
+
import { getElementRecord, setElementRecord, setProvenance, } from './greatFile.js';
|
|
5
5
|
import hashContent from './hashContent.js';
|
|
6
|
-
import
|
|
7
|
-
import { ENDPOINT_LISTS_FOLDER, isEndpointKeys } from './serviceFile.js';
|
|
6
|
+
import { ENDPOINT_LISTS_FOLDER } from './serviceFile.js';
|
|
8
7
|
export function isLocalOccupant(great, folder, key, root, fsImpl) {
|
|
9
8
|
const record = getElementRecord(great, folder, key);
|
|
10
9
|
if (record?.source) {
|
|
@@ -18,46 +17,22 @@ export const findLocalOccupants = (great, elements, root, fsImpl) => elements.fl
|
|
|
18
17
|
? [{ folder, key: element.key }]
|
|
19
18
|
: [];
|
|
20
19
|
});
|
|
21
|
-
|
|
22
|
-
status: 'conflict',
|
|
23
|
-
conflict: { key: resolved.key, folder, reason },
|
|
24
|
-
});
|
|
25
|
-
const occupiedReason = (record) => record?.source
|
|
26
|
-
? `already a shadow of a different source (${record.source.id})`
|
|
27
|
-
: 'a local element already exists';
|
|
28
|
-
function classify(great, resolved, mode, root, fsImpl) {
|
|
20
|
+
function classify(resolved) {
|
|
29
21
|
const folder = elementTypeToFolder[resolved.type];
|
|
30
22
|
if (!folder) {
|
|
31
23
|
return { status: 'skip' };
|
|
32
24
|
}
|
|
33
25
|
if (!resolved.content?.sourceId) {
|
|
34
|
-
return conflictFor(resolved, folder, 'element has no versioned content to include');
|
|
35
|
-
}
|
|
36
|
-
const record = getElementRecord(great, folder, resolved.key);
|
|
37
|
-
const isOccupied = record?.source
|
|
38
|
-
? record.source.id !== resolved.content.sourceId
|
|
39
|
-
: isLocalOccupant(great, folder, resolved.key, root, fsImpl);
|
|
40
|
-
if (!isOccupied || mode === 'include') {
|
|
41
|
-
return { status: 'write', folder };
|
|
42
|
-
}
|
|
43
|
-
else if (folder === ENDPOINT_LISTS_FOLDER) {
|
|
44
|
-
return { status: 'mergeList', folder };
|
|
45
|
-
}
|
|
46
|
-
return conflictFor(resolved, folder, occupiedReason(record));
|
|
47
|
-
}
|
|
48
|
-
function planListMerge(resolved, root, fsImpl) {
|
|
49
|
-
const existing = readEndpointListKeys(root, resolved.key, fsImpl);
|
|
50
|
-
const incoming = resolved.content?.data?.endpoints;
|
|
51
|
-
const result = mergeEndpointLists(existing, isEndpointKeys(incoming) ? incoming : []);
|
|
52
|
-
if ('conflict' in result) {
|
|
53
|
-
const [first, second] = result.conflict;
|
|
54
26
|
return {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
27
|
+
status: 'conflict',
|
|
28
|
+
conflict: {
|
|
29
|
+
key: resolved.key,
|
|
30
|
+
folder,
|
|
31
|
+
reason: 'element has no versioned content to include',
|
|
32
|
+
},
|
|
58
33
|
};
|
|
59
34
|
}
|
|
60
|
-
return {
|
|
35
|
+
return { status: 'write', folder };
|
|
61
36
|
}
|
|
62
37
|
function buildShadowData(resolved, folder) {
|
|
63
38
|
if (folder === ENDPOINT_LISTS_FOLDER) {
|
|
@@ -71,8 +46,7 @@ function buildShadowData(resolved, folder) {
|
|
|
71
46
|
...resolved.content?.data,
|
|
72
47
|
};
|
|
73
48
|
}
|
|
74
|
-
function
|
|
75
|
-
const { root, fsImpl } = options;
|
|
49
|
+
export function writeShadowFile(great, resolved, folder, provenance, root, fsImpl) {
|
|
76
50
|
const record = getElementRecord(great, folder, resolved.key) ?? {};
|
|
77
51
|
const timestamp = resolved.content?.sourceTimestamp;
|
|
78
52
|
record.source = {
|
|
@@ -80,74 +54,44 @@ function writeOne(great, resolved, folder, options) {
|
|
|
80
54
|
...(timestamp ? { timestamp } : {}),
|
|
81
55
|
};
|
|
82
56
|
record.hash = hashContent({ ...resolved.content?.data });
|
|
83
|
-
|
|
57
|
+
setProvenance(record, provenance);
|
|
84
58
|
setElementRecord(great, folder, resolved.key, record);
|
|
85
59
|
writeElementFile(root, folder, resolved.key, buildShadowData(resolved, folder), great, fsImpl);
|
|
86
60
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
};
|
|
93
|
-
addProvenance(record, [
|
|
94
|
-
...(existing?.provenance ?? []),
|
|
95
|
-
...(resolved.content?.provenance ?? []),
|
|
96
|
-
]);
|
|
97
|
-
setElementRecord(great, ENDPOINT_LISTS_FOLDER, resolved.key, record);
|
|
98
|
-
writeElementFile(root, ENDPOINT_LISTS_FOLDER, resolved.key, { endpoints }, great, fsImpl);
|
|
99
|
-
}
|
|
100
|
-
function planWrites(great, resolved, mode, root, fsImpl) {
|
|
61
|
+
const includedProvenance = (great, resolved, folder) => [
|
|
62
|
+
...(getElementRecord(great, folder, resolved.key)?.provenance ?? []),
|
|
63
|
+
...(resolved.content?.provenance ?? []),
|
|
64
|
+
];
|
|
65
|
+
function planWrites(resolved) {
|
|
101
66
|
const toWrite = [];
|
|
102
|
-
const toMerge = [];
|
|
103
67
|
const skipped = [];
|
|
104
68
|
const conflicts = [];
|
|
105
69
|
for (const element of resolved) {
|
|
106
|
-
const classified = classify(
|
|
70
|
+
const classified = classify(element);
|
|
107
71
|
if (classified.status === 'skip') {
|
|
108
72
|
skipped.push(element);
|
|
109
73
|
}
|
|
110
74
|
else if (classified.status === 'conflict') {
|
|
111
75
|
conflicts.push(classified.conflict);
|
|
112
76
|
}
|
|
113
|
-
else if (classified.status === 'mergeList') {
|
|
114
|
-
const merge = planListMerge(element, root, fsImpl);
|
|
115
|
-
if ('reason' in merge) {
|
|
116
|
-
conflicts.push(merge);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
toMerge.push(merge);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
77
|
else {
|
|
123
78
|
toWrite.push({ resolved: element, folder: classified.folder });
|
|
124
79
|
}
|
|
125
80
|
}
|
|
126
|
-
return { toWrite,
|
|
81
|
+
return { toWrite, skipped, conflicts };
|
|
127
82
|
}
|
|
128
|
-
export function writeShadowElements(great, resolved, options) {
|
|
83
|
+
export function writeShadowElements(great, resolved, options = {}) {
|
|
129
84
|
const fsImpl = options.fsImpl ?? fs;
|
|
130
|
-
const { toWrite,
|
|
131
|
-
const result = {
|
|
132
|
-
written: [],
|
|
133
|
-
merged: [],
|
|
134
|
-
skipped,
|
|
135
|
-
conflicts,
|
|
136
|
-
};
|
|
85
|
+
const { toWrite, skipped, conflicts } = planWrites(resolved);
|
|
86
|
+
const result = { written: [], skipped, conflicts };
|
|
137
87
|
if (conflicts.length > 0) {
|
|
138
88
|
return result;
|
|
139
89
|
}
|
|
140
90
|
for (const { resolved: element, folder } of toWrite) {
|
|
141
|
-
|
|
91
|
+
const provenance = includedProvenance(great, element, folder);
|
|
92
|
+
writeShadowFile(great, element, folder, provenance, options.root, fsImpl);
|
|
142
93
|
result.written.push({ folder, key: element.key });
|
|
143
94
|
}
|
|
144
|
-
for (const merge of toMerge) {
|
|
145
|
-
writeMergedList(great, merge, options.root, fsImpl);
|
|
146
|
-
result.merged.push({
|
|
147
|
-
folder: ENDPOINT_LISTS_FOLDER,
|
|
148
|
-
key: merge.resolved.key,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
95
|
return result;
|
|
152
96
|
}
|
|
153
97
|
export function logShadowConflicts(verb, conflicts, log) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeShadowElement.js","sourceRoot":"","sources":["../../src/utils/writeShadowElement.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writeShadowElement.js","sourceRoot":"","sources":["../../src/utils/writeShadowElement.ts"],"names":[],"mappings":"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"}
|
package/dist/values/list.js
CHANGED
|
@@ -7,6 +7,7 @@ import { handleGraphQLError } from '../utils/graphqlError.js';
|
|
|
7
7
|
import { getApiBaseUrl } from '../utils/config.js';
|
|
8
8
|
import { resolveAccountId } from '../utils/resolveAccount.js';
|
|
9
9
|
import { resolveIntegration } from '../utils/resolveIntegration.js';
|
|
10
|
+
import { describeValueType, isDynamicValue } from '../utils/valueTypes.js';
|
|
10
11
|
import { fetchIntegrationId } from '../utils/fetchLocal.js';
|
|
11
12
|
const ValuesListQueryDocument = gql `
|
|
12
13
|
query ValuesList($id: ID!) {
|
|
@@ -32,12 +33,12 @@ const ValuesListQueryDocument = gql `
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
`;
|
|
36
|
+
const DYNAMIC_MARKER = '(dyn)';
|
|
37
|
+
const DYNAMIC_NOTE = 'Dyn: A dynamic value that is used in the integration right away, without needing a deploy.';
|
|
38
|
+
const isDynamic = (content) => isDynamicValue(content?.data ?? undefined);
|
|
35
39
|
function detectType(content) {
|
|
36
|
-
const type = content?.data
|
|
37
|
-
|
|
38
|
-
return 'unknown';
|
|
39
|
-
}
|
|
40
|
-
return type;
|
|
40
|
+
const type = describeValueType(content?.data ?? undefined);
|
|
41
|
+
return isDynamic(content) ? `${type} ${DYNAMIC_MARKER}` : type;
|
|
41
42
|
}
|
|
42
43
|
function formatValue(value, hasValue, content) {
|
|
43
44
|
if (content?.data?.type === 'secret')
|
|
@@ -85,9 +86,8 @@ export const listValuesAction = (log, apiToken, client, config, fsImpl = fs) =>
|
|
|
85
86
|
log(chalk.red('Integration has no latest version'));
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
.map((element) => ({
|
|
89
|
+
const valueElements = integration.latest.elements.filter((el) => el.__typename === 'Value');
|
|
90
|
+
const values = valueElements.map((element) => ({
|
|
91
91
|
key: element.key,
|
|
92
92
|
name: element.name,
|
|
93
93
|
value: formatValue(element.value, element.hasValue, element.content),
|
|
@@ -119,5 +119,8 @@ export const listValuesAction = (log, apiToken, client, config, fsImpl = fs) =>
|
|
|
119
119
|
const countText = `${count} ${count === 1 ? 'value' : 'values'}`;
|
|
120
120
|
const suffix = integration.name ? ` in ${integration.name}` : '';
|
|
121
121
|
log(chalk.white(`\n${countText}${suffix}`));
|
|
122
|
+
if (valueElements.some((element) => isDynamic(element.content))) {
|
|
123
|
+
log(chalk.grey(`\n${DYNAMIC_NOTE}`));
|
|
124
|
+
}
|
|
122
125
|
};
|
|
123
126
|
//# sourceMappingURL=list.js.map
|
package/dist/values/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/values/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAI3D,MAAM,uBAAuB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuBlC,CAAA;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/values/list.ts"],"names":[],"mappings":"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"}
|
package/dist/values/set.js
CHANGED
|
@@ -3,7 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { gql } from 'graphql-tag';
|
|
4
4
|
import { getClient } from '../utils/graphqlClient.js';
|
|
5
5
|
import { getGraphQLErrorMessage } from '../utils/graphqlError.js';
|
|
6
|
-
import { VALID_VALUE_TYPES, isValidValueElementType, castValue, } from '../utils/valueTypes.js';
|
|
6
|
+
import { VALID_VALUE_TYPES, isValidValueElementType, castValue, describeValueType, describeValueEffect, } from '../utils/valueTypes.js';
|
|
7
7
|
import { resolveAccountId } from '../utils/resolveAccount.js';
|
|
8
8
|
import { resolveElement } from '../utils/resolveElement.js';
|
|
9
9
|
import { fetchIntegrationId } from '../utils/fetchLocal.js';
|
|
@@ -97,7 +97,6 @@ export const setValueAction = (log, apiToken, client, config, fsImpl = fs) => as
|
|
|
97
97
|
log(chalk.red(result.error ?? 'Failed to set value'));
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
|
-
|
|
101
|
-
log(chalk.green(`✓ Value set for element "${resolvedElement.key}" (${valueType})`));
|
|
100
|
+
log(chalk.green(`✓ Value set for element "${resolvedElement.key}" (${describeValueType(content)}) — ${describeValueEffect(content)}`));
|
|
102
101
|
};
|
|
103
102
|
//# sourceMappingURL=set.js.map
|
package/dist/values/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/values/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/values/set.ts"],"names":[],"mappings":"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"}
|
package/dist/values/unset.js
CHANGED
|
@@ -3,6 +3,7 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { gql } from 'graphql-tag';
|
|
4
4
|
import { getClient } from '../utils/graphqlClient.js';
|
|
5
5
|
import { getGraphQLErrorMessage } from '../utils/graphqlError.js';
|
|
6
|
+
import { describeValueEffect } from '../utils/valueTypes.js';
|
|
6
7
|
import { resolveAccountId } from '../utils/resolveAccount.js';
|
|
7
8
|
import { resolveElement } from '../utils/resolveElement.js';
|
|
8
9
|
import { fetchIntegrationId } from '../utils/fetchLocal.js';
|
|
@@ -56,6 +57,7 @@ export const unsetValueAction = (log, apiToken, client, config, fsImpl = fs) =>
|
|
|
56
57
|
log(chalk.red('Failed to clear value'));
|
|
57
58
|
return;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
const content = resolvedElement.content?.data;
|
|
61
|
+
log(chalk.green(`✓ Value cleared for element "${resolvedElement.key}" — ${describeValueEffect(content)}`));
|
|
60
62
|
};
|
|
61
63
|
//# sourceMappingURL=unset.js.map
|
package/dist/values/unset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unset.js","sourceRoot":"","sources":["../../src/values/unset.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"unset.js","sourceRoot":"","sources":["../../src/values/unset.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "great",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "A CLI for Integreat",
|
|
5
5
|
"author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io>",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -39,29 +39,29 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/integreat-io/great#readme",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@inquirer/prompts": "^8.7.
|
|
42
|
+
"@inquirer/prompts": "^8.7.4",
|
|
43
43
|
"chalk": "^6.0.1",
|
|
44
44
|
"change-case": "^5.4.4",
|
|
45
45
|
"clipboardy": "^5.3.2",
|
|
46
46
|
"columnify": "^1.6.0",
|
|
47
47
|
"commander": "^15.0.0",
|
|
48
|
-
"conf": "^
|
|
48
|
+
"conf": "^16.0.0",
|
|
49
49
|
"graphql": "^16.14.2",
|
|
50
50
|
"graphql-request": "^7.4.0",
|
|
51
51
|
"graphql-tag": "^2.12.7",
|
|
52
|
-
"ky": "^2.
|
|
52
|
+
"ky": "^2.2.0",
|
|
53
53
|
"nanospinner": "^1.2.2",
|
|
54
54
|
"open": "^11.0.4",
|
|
55
55
|
"strip-json-comments": "^5.0.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@graphql-codegen/cli": "^7.4.
|
|
59
|
-
"@graphql-codegen/typescript": "^6.1.
|
|
60
|
-
"@graphql-codegen/typescript-operations": "^6.1.
|
|
58
|
+
"@graphql-codegen/cli": "^7.4.6",
|
|
59
|
+
"@graphql-codegen/typescript": "^6.1.2",
|
|
60
|
+
"@graphql-codegen/typescript-operations": "^6.1.10",
|
|
61
61
|
"@integreat/ts-dev-setup": "^10.0.0",
|
|
62
62
|
"@types/columnify": "^1.5.4",
|
|
63
|
-
"@types/node": "^26.6.
|
|
64
|
-
"@types/sinon": "^22.0.
|
|
63
|
+
"@types/node": "^26.6.5",
|
|
64
|
+
"@types/sinon": "^22.0.1",
|
|
65
65
|
"integreat": "^1.7.1",
|
|
66
66
|
"sinon": "^22.1.0",
|
|
67
67
|
"strip-ansi": "^7.2.0"
|
|
@@ -1,32 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { GraphQLRequestClient } from './graphqlClient.js';
|
|
2
|
-
import type { ResolveTemplateImportQuery } from '../generated/operations.js';
|
|
3
|
-
export declare function resolveTemplateImport(graphqlClient: GraphQLRequestClient, templateId: string, log: (message: string) => void): Promise<ResolveTemplateImportQuery['resolveTemplateImport'] | undefined>;
|