great 1.1.0 → 1.2.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 +137 -43
- package/dist/accounts/create.d.ts +1 -1
- package/dist/accounts/create.js +2 -4
- package/dist/accounts/create.js.map +1 -1
- package/dist/accounts/index.d.ts +1 -1
- package/dist/accounts/index.js +2 -4
- package/dist/accounts/index.js.map +1 -1
- package/dist/clone/index.d.ts +4 -2
- package/dist/clone/index.js +19 -43
- package/dist/clone/index.js.map +1 -1
- package/dist/config/index.js +4 -30
- package/dist/config/index.js.map +1 -1
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.js +54 -14
- package/dist/deploy/index.js.map +1 -1
- package/dist/env/index.d.ts +12 -0
- package/dist/env/index.js +131 -0
- package/dist/env/index.js.map +1 -0
- package/dist/explode/transform.d.ts +1 -1
- package/dist/explode/transform.js +3 -1
- package/dist/explode/transform.js.map +1 -1
- package/dist/generated/operations.d.ts +617 -0
- package/dist/generated/operations.js +2 -0
- package/dist/generated/operations.js.map +1 -0
- package/dist/generated/schema.d.ts +965 -0
- package/dist/generated/{graphql.js → schema.js} +13 -1
- package/dist/generated/schema.js.map +1 -0
- package/dist/implode/index.js +22 -43
- package/dist/implode/index.js.map +1 -1
- package/dist/implode/transform.d.ts +3 -5
- package/dist/implode/transform.js +10 -10
- package/dist/implode/transform.js.map +1 -1
- package/dist/{integrations/describe.d.ts → import/index.d.ts} +4 -1
- package/dist/import/index.js +43 -0
- package/dist/import/index.js.map +1 -0
- package/dist/include/index.d.ts +10 -0
- package/dist/include/index.js +41 -0
- package/dist/include/index.js.map +1 -0
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/init/index.js +8 -16
- package/dist/init/index.js.map +1 -1
- package/dist/integrations/create.d.ts +1 -1
- package/dist/integrations/create.js +2 -4
- package/dist/integrations/create.js.map +1 -1
- package/dist/integrations/list.d.ts +1 -1
- package/dist/integrations/list.js +2 -4
- package/dist/integrations/list.js.map +1 -1
- package/dist/migrate/index.d.ts +5 -0
- package/dist/migrate/index.js +101 -0
- package/dist/migrate/index.js.map +1 -0
- package/dist/pull/index.d.ts +4 -2
- package/dist/pull/index.js +25 -44
- package/dist/pull/index.js.map +1 -1
- package/dist/push/index.d.ts +1 -1
- package/dist/push/index.js +333 -96
- package/dist/push/index.js.map +1 -1
- package/dist/rename/index.d.ts +8 -0
- package/dist/rename/index.js +109 -0
- package/dist/rename/index.js.map +1 -0
- package/dist/repl/dispatch.d.ts +8 -2
- package/dist/repl/dispatch.js +43 -29
- package/dist/repl/dispatch.js.map +1 -1
- package/dist/repl/dispatchAndLoad.d.ts +7 -0
- package/dist/repl/dispatchAndLoad.js +35 -0
- package/dist/repl/dispatchAndLoad.js.map +1 -0
- package/dist/repl/help.js +8 -1
- package/dist/repl/help.js.map +1 -1
- package/dist/repl/index.d.ts +1 -1
- package/dist/repl/index.js +29 -9
- package/dist/repl/index.js.map +1 -1
- package/dist/repl/load.d.ts +8 -0
- package/dist/repl/load.js +53 -0
- package/dist/repl/load.js.map +1 -0
- package/dist/run/index.d.ts +4 -5
- package/dist/run/index.js +4 -6
- package/dist/run/index.js.map +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +5 -7
- package/dist/status/index.js.map +1 -1
- package/dist/utils/config.d.ts +9 -2
- package/dist/utils/config.js +39 -6
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/createIntegrationFromFile.d.ts +2 -0
- package/dist/utils/createIntegrationFromFile.js +14 -33
- package/dist/utils/createIntegrationFromFile.js.map +1 -1
- package/dist/utils/detectPullConflicts.d.ts +8 -0
- package/dist/utils/detectPullConflicts.js +65 -0
- package/dist/utils/detectPullConflicts.js.map +1 -0
- package/dist/utils/dispatch.d.ts +1 -1
- package/dist/utils/dispatch.js +3 -2
- package/dist/utils/dispatch.js.map +1 -1
- package/dist/utils/elementFiles.d.ts +13 -0
- package/dist/utils/elementFiles.js +76 -0
- package/dist/utils/elementFiles.js.map +1 -0
- package/dist/utils/fetchIntegrationDefinition.d.ts +8 -0
- package/dist/utils/fetchIntegrationDefinition.js +58 -0
- package/dist/utils/fetchIntegrationDefinition.js.map +1 -0
- package/dist/utils/fetchLocal.d.ts +3 -1
- package/dist/utils/fetchLocal.js +11 -9
- package/dist/utils/fetchLocal.js.map +1 -1
- package/dist/utils/fetchSession.d.ts +1 -1
- package/dist/utils/fetchSession.js +2 -1
- package/dist/utils/fetchSession.js.map +1 -1
- package/dist/utils/graphqlClient.d.ts +3 -0
- package/dist/utils/graphqlClient.js +3 -0
- package/dist/utils/graphqlClient.js.map +1 -1
- package/dist/utils/graphqlError.d.ts +1 -0
- package/dist/utils/graphqlError.js +13 -1
- package/dist/utils/graphqlError.js.map +1 -1
- package/dist/utils/greatFile.d.ts +40 -0
- package/dist/utils/greatFile.js +66 -0
- package/dist/utils/greatFile.js.map +1 -0
- package/dist/utils/hashContent.js +1 -1
- package/dist/utils/hashContent.js.map +1 -1
- package/dist/utils/integrationType.d.ts +3 -0
- package/dist/utils/integrationType.js +15 -0
- package/dist/utils/integrationType.js.map +1 -0
- package/dist/utils/resolveAccount.d.ts +3 -2
- package/dist/utils/resolveAccount.js +11 -1
- package/dist/utils/resolveAccount.js.map +1 -1
- package/dist/utils/resolveElement.d.ts +1 -1
- package/dist/utils/resolveElementInclude.d.ts +3 -0
- package/dist/utils/resolveElementInclude.js +28 -0
- package/dist/utils/resolveElementInclude.js.map +1 -0
- package/dist/utils/resolveIntegration.d.ts +4 -2
- package/dist/utils/resolveIntegration.js +7 -3
- package/dist/utils/resolveIntegration.js.map +1 -1
- package/dist/utils/resolveTemplateImport.d.ts +3 -0
- package/dist/utils/resolveTemplateImport.js +31 -0
- package/dist/utils/resolveTemplateImport.js.map +1 -0
- package/dist/utils/response.d.ts +3 -0
- package/dist/utils/response.js +24 -0
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/saveIntegration.d.ts +8 -4
- package/dist/utils/saveIntegration.js +76 -34
- package/dist/utils/saveIntegration.js.map +1 -1
- package/dist/utils/token.js +1 -1
- package/dist/utils/token.js.map +1 -1
- package/dist/utils/url.d.ts +1 -0
- package/dist/utils/url.js +10 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/writeShadowElement.d.ts +26 -0
- package/dist/utils/writeShadowElement.js +119 -0
- package/dist/utils/writeShadowElement.js.map +1 -0
- package/dist/{value → values}/get.d.ts +1 -1
- package/dist/{value → values}/get.js +7 -8
- package/dist/values/get.js.map +1 -0
- package/dist/{value → values}/index.js +13 -1
- package/dist/values/index.js.map +1 -0
- package/dist/{value → values}/list.js +10 -9
- package/dist/values/list.js.map +1 -0
- package/dist/{value → values}/set.d.ts +1 -1
- package/dist/{value → values}/set.js +9 -9
- package/dist/values/set.js.map +1 -0
- package/dist/values/unset.d.ts +8 -0
- package/dist/values/unset.js +61 -0
- package/dist/values/unset.js.map +1 -0
- package/dist/whoami/fetchSession.d.ts +3 -3
- package/dist/whoami/fetchSession.js +2 -4
- package/dist/whoami/fetchSession.js.map +1 -1
- package/dist/whoami/index.d.ts +1 -1
- package/package.json +14 -14
- package/dist/create/account.d.ts +0 -2
- package/dist/create/account.js +0 -40
- package/dist/create/account.js.map +0 -1
- package/dist/create/integration.d.ts +0 -4
- package/dist/create/integration.js +0 -73
- package/dist/create/integration.js.map +0 -1
- package/dist/create/utils.d.ts +0 -4
- package/dist/create/utils.js +0 -8
- package/dist/create/utils.js.map +0 -1
- package/dist/generated/graphql.d.ts +0 -1867
- package/dist/generated/graphql.js.map +0 -1
- package/dist/integrations/describe.js +0 -51
- package/dist/integrations/describe.js.map +0 -1
- package/dist/projects/describe.d.ts +0 -5
- package/dist/projects/describe.js +0 -51
- package/dist/projects/describe.js.map +0 -1
- package/dist/projects/index.d.ts +0 -5
- package/dist/projects/index.js +0 -83
- package/dist/projects/index.js.map +0 -1
- package/dist/repl/fetchUserAndIntegration.d.ts +0 -10
- package/dist/repl/fetchUserAndIntegration.js +0 -73
- package/dist/repl/fetchUserAndIntegration.js.map +0 -1
- package/dist/utils/apiUrl.d.ts +0 -1
- package/dist/utils/apiUrl.js +0 -7
- package/dist/utils/apiUrl.js.map +0 -1
- package/dist/utils/callApi.d.ts +0 -5
- package/dist/utils/callApi.js +0 -17
- package/dist/utils/callApi.js.map +0 -1
- package/dist/utils/fetchAccount.d.ts +0 -10
- package/dist/utils/fetchAccount.js +0 -60
- package/dist/utils/fetchAccount.js.map +0 -1
- package/dist/utils/fetchLocalProject.d.ts +0 -1
- package/dist/utils/fetchLocalProject.js +0 -12
- package/dist/utils/fetchLocalProject.js.map +0 -1
- package/dist/utils/fetchUserAndIntegration.d.ts +0 -9
- package/dist/utils/fetchUserAndIntegration.js +0 -48
- package/dist/utils/fetchUserAndIntegration.js.map +0 -1
- package/dist/utils/graphqlRequestClient.d.ts +0 -10
- package/dist/utils/graphqlRequestClient.js +0 -20
- package/dist/utils/graphqlRequestClient.js.map +0 -1
- package/dist/utils/saveProject.d.ts +0 -8
- package/dist/utils/saveProject.js +0 -93
- package/dist/utils/saveProject.js.map +0 -1
- package/dist/utils/session.d.ts +0 -9
- package/dist/utils/session.js +0 -17
- package/dist/utils/session.js.map +0 -1
- package/dist/value/get.js.map +0 -1
- package/dist/value/index.js.map +0 -1
- package/dist/value/list.js.map +0 -1
- package/dist/value/set.js.map +0 -1
- /package/dist/{value → values}/index.d.ts +0 -0
- /package/dist/{value → values}/list.d.ts +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { createSpinner } from 'nanospinner';
|
|
3
|
+
import { fetchResponse } from '../utils/response.js';
|
|
4
|
+
function isResponseRef(value) {
|
|
5
|
+
return (typeof value === 'object' &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
typeof value.id === 'string');
|
|
8
|
+
}
|
|
9
|
+
export function loadedMessage(itemCount) {
|
|
10
|
+
const noun = `data item${itemCount === 1 ? '' : 's'}`;
|
|
11
|
+
return `Loaded ${itemCount} ${noun} into ${chalk.bold('$')}.`;
|
|
12
|
+
}
|
|
13
|
+
export function createLoadInner(apiToken, client, context) {
|
|
14
|
+
return async (responseId) => {
|
|
15
|
+
const fullResponse = await fetchResponse(responseId, apiToken, client, undefined);
|
|
16
|
+
if (context) {
|
|
17
|
+
context.$ = fullResponse.data;
|
|
18
|
+
}
|
|
19
|
+
return { itemCount: fullResponse.itemCount ?? 0 };
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createLoad(log, apiToken, client, context, createSpinnerFn = createSpinner) {
|
|
23
|
+
const inner = createLoadInner(apiToken, client, context);
|
|
24
|
+
return async () => {
|
|
25
|
+
if (!context) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const response = context.$$;
|
|
29
|
+
if (!isResponseRef(response)) {
|
|
30
|
+
log(chalk.yellow('No dispatched action to load from.'));
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
if (!response.itemCount || response.itemCount <= 0) {
|
|
34
|
+
log(chalk.yellow('No data to load.'));
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (context.$ !== undefined) {
|
|
38
|
+
log(chalk.green('Already loaded.'));
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const spinner = createSpinnerFn().start();
|
|
42
|
+
try {
|
|
43
|
+
const result = await inner(response.id);
|
|
44
|
+
spinner.success(loadedMessage(result.itemCount));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
48
|
+
spinner.error(`Could not load data: ${errorMessage}`);
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/repl/load.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKpD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAkB,CAAC,EAAE,KAAK,QAAQ,CAC3C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,IAAI,GAAG,YAAY,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrD,OAAO,UAAU,SAAS,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAiB,EACjB,MAA6B,EAC7B,OAAiC;IAEjC,OAAO,KAAK,EAAE,UAAkB,EAAkC,EAAE;QAClE,MAAM,YAAY,GAAG,MAAM,aAAa,CACtC,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,CACV,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAA;QAC/B,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,CAAC,EAAE,CAAA;IACnD,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAAW,EACX,QAAiB,EACjB,MAA6B,EAC7B,OAAiC,EACjC,kBAAiC,aAAa;IAE9C,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,OAAO,KAAK,IAAsB,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAA;QAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAA;YACvD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACrC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;YACnC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC,KAAK,EAAE,CAAA;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACvC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxD,OAAO,CAAC,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC"}
|
package/dist/run/index.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import fs from 'node:fs';
|
|
|
2
2
|
import { type Spinner } from 'nanospinner';
|
|
3
3
|
import Conf from 'conf';
|
|
4
4
|
import { type GraphQLRequestClient } from '../utils/graphqlClient.js';
|
|
5
|
-
import {
|
|
5
|
+
import type { ConfigSchema } from '../utils/config.js';
|
|
6
6
|
import type { Command } from 'commander';
|
|
7
|
-
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>, selectFn?: <Value>(config: {
|
|
7
|
+
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>, selectFn?: <const Value>(config: {
|
|
8
8
|
message: string;
|
|
9
9
|
choices: readonly (import("@inquirer/prompts").Separator | Value | {
|
|
10
10
|
value: Value;
|
|
@@ -17,7 +17,7 @@ export declare const action: (log: (message: string) => void, apiToken?: string,
|
|
|
17
17
|
pageSize?: number | undefined;
|
|
18
18
|
loop?: boolean | undefined;
|
|
19
19
|
default?: NoInfer<Value> | undefined;
|
|
20
|
-
theme?: import("@inquirer/type
|
|
20
|
+
theme?: import("@inquirer/type").PartialDeep<import("@inquirer/core").Theme<{
|
|
21
21
|
icon: {
|
|
22
22
|
cursor: string;
|
|
23
23
|
};
|
|
@@ -30,9 +30,8 @@ export declare const action: (log: (message: string) => void, apiToken?: string,
|
|
|
30
30
|
disabledError: string;
|
|
31
31
|
};
|
|
32
32
|
indexMode: "hidden" | "number";
|
|
33
|
-
keybindings: ReadonlyArray<import("@inquirer/core/dist/index.js").Keybinding>;
|
|
34
33
|
}>> | undefined;
|
|
35
|
-
}, context?: import("@inquirer/type
|
|
34
|
+
}, context?: import("@inquirer/type").Context) => Promise<Value>, createSpinnerFn?: () => Spinner) => (integrationIdOrKey?: string, options?: {
|
|
36
35
|
account?: string;
|
|
37
36
|
}) => Promise<void>;
|
|
38
37
|
declare const _default: (program: Command, apiToken?: string) => Command;
|
package/dist/run/index.js
CHANGED
|
@@ -3,12 +3,11 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { createSpinner } from 'nanospinner';
|
|
4
4
|
import { select } from '@inquirer/prompts';
|
|
5
5
|
import { gql } from 'graphql-tag';
|
|
6
|
-
import { fetchIntegrationFromFile } from '../utils/fetchLocal.js';
|
|
6
|
+
import { fetchIntegrationFromFile, fetchIntegrationId, } from '../utils/fetchLocal.js';
|
|
7
7
|
import { resolveIntegration } from '../utils/resolveIntegration.js';
|
|
8
|
-
import {
|
|
8
|
+
import { getClient } from '../utils/graphqlClient.js';
|
|
9
9
|
import { handleGraphQLError } from '../utils/graphqlError.js';
|
|
10
10
|
import { resolveAccountId } from '../utils/resolveAccount.js';
|
|
11
|
-
import { getApiBaseUrl } from '../utils/config.js';
|
|
12
11
|
import { dispatchAction } from '../utils/dispatch.js';
|
|
13
12
|
const IntegrationElementsQueryDocument = gql `
|
|
14
13
|
query IntegrationElements($id: ID!) {
|
|
@@ -41,14 +40,13 @@ export const action = (log, apiToken, client, fsImpl = fs, config, selectFn = se
|
|
|
41
40
|
log(`You are not in an integration folder. Provide an integration id as an argument or see ${chalk.bold('great run --help')}.`);
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
|
-
identifier =
|
|
43
|
+
identifier = fetchIntegrationId(fsImpl);
|
|
45
44
|
if (!identifier) {
|
|
46
45
|
log(chalk.red(`Integration has not been pushed yet. Run ${chalk.bold('great push')} first.`));
|
|
47
46
|
return;
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
|
-
const
|
|
51
|
-
const graphqlClient = client ?? createGraphQLClient(apiToken, apiBaseUrl);
|
|
49
|
+
const graphqlClient = getClient(apiToken, client, config);
|
|
52
50
|
const { accountId, error: accountError } = await resolveAccountId(options ?? {}, apiToken ?? '', graphqlClient, config);
|
|
53
51
|
if (accountError) {
|
|
54
52
|
handleGraphQLError(accountError, log);
|
package/dist/run/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"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"}
|
package/dist/status/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import Conf from 'conf';
|
|
3
3
|
import { type GraphQLRequestClient } from '../utils/graphqlClient.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { ConfigSchema } from '../utils/config.js';
|
|
5
5
|
import type { Command } from 'commander';
|
|
6
6
|
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>) => (integrationIdOrKey?: string, options?: {
|
|
7
7
|
account?: string;
|
package/dist/status/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { sentenceCase } from 'change-case';
|
|
4
|
-
import { fetchIntegrationFromFile } from '../utils/fetchLocal.js';
|
|
4
|
+
import { fetchIntegrationFromFile, fetchIntegrationId, currentIntegrationKey, } from '../utils/fetchLocal.js';
|
|
5
5
|
import { resolveIntegration } from '../utils/resolveIntegration.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getClient } from '../utils/graphqlClient.js';
|
|
7
7
|
import { handleGraphQLError } from '../utils/graphqlError.js';
|
|
8
8
|
import { resolveAccountId } from '../utils/resolveAccount.js';
|
|
9
|
-
import { getApiBaseUrl } from '../utils/config.js';
|
|
10
9
|
import { gql } from 'graphql-tag';
|
|
11
10
|
const IntegrationStatusQueryDocument = gql `
|
|
12
11
|
query IntegrationStatus($id: ID!) {
|
|
@@ -85,17 +84,16 @@ export const action = (log, apiToken, client, fsImpl = fs, config) => async func
|
|
|
85
84
|
log(`You are not in an integration folder. Provide an integration id as an argument or see ${chalk.bold('great status --help')}.`);
|
|
86
85
|
return;
|
|
87
86
|
}
|
|
88
|
-
identifier =
|
|
87
|
+
identifier = fetchIntegrationId(fsImpl);
|
|
89
88
|
if (!identifier) {
|
|
90
89
|
displayStatus({
|
|
91
90
|
name: localIntegration.name,
|
|
92
|
-
key:
|
|
91
|
+
key: currentIntegrationKey(),
|
|
93
92
|
}, undefined, 'local', log);
|
|
94
93
|
return;
|
|
95
94
|
}
|
|
96
95
|
}
|
|
97
|
-
const
|
|
98
|
-
const graphqlClient = client ?? createGraphQLClient(apiToken, apiBaseUrl);
|
|
96
|
+
const graphqlClient = getClient(apiToken, client, config);
|
|
99
97
|
const { accountId, error } = await resolveAccountId(options ?? {}, apiToken ?? '', graphqlClient, config);
|
|
100
98
|
if (error) {
|
|
101
99
|
handleGraphQLError(error, log);
|
package/dist/status/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/status/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/status/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAajC,MAAM,8BAA8B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;CAczC,CAAA;AAED,KAAK,UAAU,2BAA2B,CACxC,UAAkB,EAClB,SAA6B,EAC7B,QAA4B,EAC5B,MAAwC,EACxC,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,UAAU,EACV,SAAS,EACT,QAAQ,EACR,MAAM,CACP,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAEjB,kBAAkB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAA;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,EAAE;QACxB,eAAe,EAAE,MAAM,CAAC,IAAI;KAC7B,CAAA;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,aAAmC,EACnC,aAAqB,EACrB,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CACxC,8BAA8B,EAC9B,EAAE,EAAE,EAAE,aAAa,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,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,CAAA;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,aAAa,CACpB,WAA4B,EAC5B,OAAuC,EACvC,MAAc,EACd,GAA8B;IAG9B,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAA;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAA;IACtD,GAAG,CACD,gBAAgB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACvF,CAAA;IAGD,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;QACpB,GAAG,CAAC,gBAAgB,WAAW,CAAC,GAAG,EAAE,CAAC,CAAA;IACxC,CAAC;IAGD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,CACD,gBAAgB,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAChF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,gBAAgB,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAGD,MAAM,WAAW,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC7E,GAAG,CAAC,gBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAG9C,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,GAAG,CACD,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,4CAA4C,CAC5E,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAA8B,EAC9B,QAAiB,EACjB,MAA6B,EAC7B,MAAM,GAAG,EAAE,EACX,MAA2B,EAC3B,EAAE,CACF,KAAK,UAAU,MAAM,CACnB,kBAA2B,EAC3B,OAA8B;IAG9B,IAAI,UAAU,GAAG,kBAAkB,CAAA;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,GAAG,CACD,yFAAyF,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC9H,CAAA;YACD,OAAM;QACR,CAAC;QAED,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;YAEhB,aAAa,CACX;gBACE,IAAI,EAAE,gBAAgB,CAAC,IAA0B;gBACjD,GAAG,EAAE,qBAAqB,EAAE;aAC7B,EACD,SAAS,EACT,OAAO,EACP,GAAG,CACJ,CAAA;YACD,OAAM;QACR,CAAC;IACH,CAAC;IAGD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAGzD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,gBAAgB,CACjD,OAAO,IAAI,EAAE,EACb,QAAQ,IAAI,EAAE,EACd,aAAa,EACb,MAAM,CACP,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;IAGD,MAAM,WAAW,GAAG,MAAM,2BAA2B,CACnD,UAAU,EACV,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,CACJ,CAAA;IACD,IAAI,CAAC,WAAW;QAAE,OAAM;IAGxB,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAC7C,aAAa,EACb,WAAW,CAAC,aAAa,EACzB,GAAG,CACJ,CAAA;IACD,IAAI,CAAC,UAAU;QAAE,OAAM;IAGvB,aAAa,CACX;QACE,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,IAAI,EAAE,WAAW,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI;QACpD,GAAG,EAAE,UAAU,CAAC,GAAG;KACpB,EACD,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,MAAM,EACjB,GAAG,CACJ,CAAA;AACH,CAAC,CAAA;AAEH,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,CACrD,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yBAAyB,CAAC;KACtC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAClD,MAAM,CACL,oBAAoB,EACpB,8DAA8D,CAC/D;KACA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import Conf from 'conf';
|
|
2
|
+
export interface NamedEnvironment {
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
appUrl: string;
|
|
5
|
+
}
|
|
2
6
|
export interface ConfigSchema {
|
|
3
7
|
token?: string;
|
|
4
8
|
expiresAt?: number;
|
|
5
|
-
apiUrl?: string;
|
|
6
|
-
appUrl?: string;
|
|
7
9
|
account?: string;
|
|
10
|
+
environments?: Record<string, NamedEnvironment>;
|
|
11
|
+
currentEnv?: string;
|
|
8
12
|
}
|
|
9
13
|
export declare function getConfig(): Conf<ConfigSchema>;
|
|
10
14
|
export declare function getConfigValue<K extends keyof ConfigSchema>(key: K, config?: Conf<ConfigSchema>): ConfigSchema[K] | undefined;
|
|
11
15
|
export declare function setConfigValue<K extends keyof ConfigSchema>(key: K, value: ConfigSchema[K], config?: Conf<ConfigSchema>): void;
|
|
12
16
|
export declare function deleteConfigValue<K extends keyof ConfigSchema>(key: K, config?: Conf<ConfigSchema>): void;
|
|
17
|
+
export declare function getEnvironments(config?: Conf<ConfigSchema>): Record<string, NamedEnvironment>;
|
|
18
|
+
export declare function getCurrentEnvName(config?: Conf<ConfigSchema>): string;
|
|
19
|
+
export declare function isProd(config?: Conf<ConfigSchema>): boolean;
|
|
13
20
|
export declare function getApiBaseUrl(config?: Conf<ConfigSchema>): string;
|
|
14
21
|
export declare function getAppBaseUrl(config?: Conf<ConfigSchema>): string;
|
|
15
22
|
export declare function getAllConfig(config?: Conf<ConfigSchema>): ConfigSchema;
|
package/dist/utils/config.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
1
2
|
import Conf from 'conf';
|
|
3
|
+
const DEFAULT_API_URL = 'https://api.integreat.io';
|
|
4
|
+
const DEFAULT_APP_URL = 'https://app.integreat.io';
|
|
2
5
|
let configInstance;
|
|
3
6
|
export function getConfig() {
|
|
4
7
|
if (!configInstance) {
|
|
@@ -20,22 +23,52 @@ export function deleteConfigValue(key, config) {
|
|
|
20
23
|
const conf = config ?? getConfig();
|
|
21
24
|
conf.delete(key);
|
|
22
25
|
}
|
|
26
|
+
export function getEnvironments(config) {
|
|
27
|
+
return getConfigValue('environments', config) ?? {};
|
|
28
|
+
}
|
|
29
|
+
export function getCurrentEnvName(config) {
|
|
30
|
+
const current = getConfigValue('currentEnv', config);
|
|
31
|
+
if (!current)
|
|
32
|
+
return 'prod';
|
|
33
|
+
const envs = getEnvironments(config);
|
|
34
|
+
return Object.prototype.hasOwnProperty.call(envs, current) ? current : 'prod';
|
|
35
|
+
}
|
|
36
|
+
export function isProd(config) {
|
|
37
|
+
return getCurrentEnvName(config) === 'prod';
|
|
38
|
+
}
|
|
39
|
+
function getCurrentEnvironment(config) {
|
|
40
|
+
const current = getConfigValue('currentEnv', config);
|
|
41
|
+
if (!current)
|
|
42
|
+
return undefined;
|
|
43
|
+
const envs = getEnvironments(config);
|
|
44
|
+
return envs[current];
|
|
45
|
+
}
|
|
46
|
+
const warnedConfigs = new WeakSet();
|
|
47
|
+
function warnNonProdOnce(config) {
|
|
48
|
+
if (isProd(config))
|
|
49
|
+
return;
|
|
50
|
+
const conf = config ?? getConfig();
|
|
51
|
+
if (warnedConfigs.has(conf))
|
|
52
|
+
return;
|
|
53
|
+
warnedConfigs.add(conf);
|
|
54
|
+
console.log(chalk.yellow(`⚠ Running against non-prod environment: ${getCurrentEnvName(config)}`));
|
|
55
|
+
}
|
|
23
56
|
export function getApiBaseUrl(config) {
|
|
24
|
-
|
|
25
|
-
return (
|
|
57
|
+
warnNonProdOnce(config);
|
|
58
|
+
return getCurrentEnvironment(config)?.apiUrl ?? DEFAULT_API_URL;
|
|
26
59
|
}
|
|
27
60
|
export function getAppBaseUrl(config) {
|
|
28
|
-
|
|
29
|
-
return (
|
|
61
|
+
warnNonProdOnce(config);
|
|
62
|
+
return getCurrentEnvironment(config)?.appUrl ?? DEFAULT_APP_URL;
|
|
30
63
|
}
|
|
31
64
|
export function getAllConfig(config) {
|
|
32
65
|
const conf = config ?? getConfig();
|
|
33
66
|
return {
|
|
34
67
|
token: conf.get('token'),
|
|
35
68
|
expiresAt: conf.get('expiresAt'),
|
|
36
|
-
apiUrl: conf.get('apiUrl'),
|
|
37
|
-
appUrl: conf.get('appUrl'),
|
|
38
69
|
account: conf.get('account'),
|
|
70
|
+
environments: conf.get('environments'),
|
|
71
|
+
currentEnv: conf.get('currentEnv'),
|
|
39
72
|
};
|
|
40
73
|
}
|
|
41
74
|
//# sourceMappingURL=config.js.map
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import fs from 'node:fs';
|
|
|
2
2
|
import Conf from 'conf';
|
|
3
3
|
import type { GraphQLRequestClient } from './graphqlClient.js';
|
|
4
4
|
import type { ConfigSchema } from './config.js';
|
|
5
|
+
import type { IntegrationType } from '../generated/schema.js';
|
|
5
6
|
export interface CreateIntegrationResult {
|
|
6
7
|
success: boolean;
|
|
7
8
|
error?: Error | string;
|
|
@@ -10,6 +11,7 @@ export interface CreateIntegrationResult {
|
|
|
10
11
|
key: string;
|
|
11
12
|
name: string;
|
|
12
13
|
status: string;
|
|
14
|
+
type: IntegrationType;
|
|
13
15
|
account: {
|
|
14
16
|
id: string;
|
|
15
17
|
key: string;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
+
import { currentIntegrationKey } from './fetchLocal.js';
|
|
2
3
|
import { sentenceCase } from 'change-case';
|
|
3
4
|
import { gql } from 'graphql-tag';
|
|
5
|
+
import resolveIntegrationType from './integrationType.js';
|
|
6
|
+
import { getGraphQLErrorMessage } from './graphqlError.js';
|
|
4
7
|
import { resolveAccountId } from './resolveAccount.js';
|
|
5
8
|
const CreateIntegrationMutationDocument = gql `
|
|
6
9
|
mutation CreateIntegrationFromFile(
|
|
@@ -8,12 +11,14 @@ const CreateIntegrationMutationDocument = gql `
|
|
|
8
11
|
$name: String!
|
|
9
12
|
$key: ID
|
|
10
13
|
$description: String
|
|
14
|
+
$type: IntegrationType
|
|
11
15
|
) {
|
|
12
16
|
createIntegration(
|
|
13
17
|
accountId: $accountId
|
|
14
18
|
name: $name
|
|
15
19
|
key: $key
|
|
16
20
|
description: $description
|
|
21
|
+
type: $type
|
|
17
22
|
) {
|
|
18
23
|
id
|
|
19
24
|
key
|
|
@@ -21,6 +26,7 @@ const CreateIntegrationMutationDocument = gql `
|
|
|
21
26
|
createdAt
|
|
22
27
|
description
|
|
23
28
|
status
|
|
29
|
+
type
|
|
24
30
|
account {
|
|
25
31
|
id
|
|
26
32
|
key
|
|
@@ -41,41 +47,14 @@ export default async function createIntegrationFromFile(graphqlClient, apiToken,
|
|
|
41
47
|
error: `Failed to read integration.json: ${error instanceof Error ? error.message : String(error)}`,
|
|
42
48
|
};
|
|
43
49
|
}
|
|
44
|
-
const key =
|
|
45
|
-
if (typeof key !== 'string' || !key) {
|
|
46
|
-
return {
|
|
47
|
-
success: false,
|
|
48
|
-
error: 'integration.json must have a "__key" field',
|
|
49
|
-
};
|
|
50
|
-
}
|
|
50
|
+
const key = currentIntegrationKey();
|
|
51
51
|
const name = (typeof integrationData.name === 'string' && integrationData.name) ||
|
|
52
52
|
sentenceCase(key);
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
integrationData.account !== null) {
|
|
57
|
-
const fileAccountId = integrationData.account.__id;
|
|
58
|
-
if (typeof fileAccountId === 'string' && fileAccountId) {
|
|
59
|
-
const accountResult = await resolveAccountId({ account: fileAccountId }, apiToken, graphqlClient, config);
|
|
60
|
-
if (accountResult.error) {
|
|
61
|
-
if (accountResult.error instanceof Error) {
|
|
62
|
-
return { success: false, error: accountResult.error };
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
success: false,
|
|
66
|
-
error: `Account in integration.json not found: ${accountResult.error}`,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
accountId = accountResult.accountId;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (!accountId) {
|
|
73
|
-
const accountResult = await resolveAccountId(options, apiToken, graphqlClient, config);
|
|
74
|
-
if (accountResult.error) {
|
|
75
|
-
return { success: false, error: accountResult.error };
|
|
76
|
-
}
|
|
77
|
-
accountId = accountResult.accountId;
|
|
53
|
+
const accountResult = await resolveAccountId(options, apiToken, graphqlClient, config);
|
|
54
|
+
if (accountResult.error) {
|
|
55
|
+
return { success: false, error: accountResult.error };
|
|
78
56
|
}
|
|
57
|
+
const accountId = accountResult.accountId;
|
|
79
58
|
if (!accountId) {
|
|
80
59
|
return {
|
|
81
60
|
success: false,
|
|
@@ -87,11 +66,12 @@ export default async function createIntegrationFromFile(graphqlClient, apiToken,
|
|
|
87
66
|
name,
|
|
88
67
|
key,
|
|
89
68
|
description: integrationData.description,
|
|
69
|
+
type: resolveIntegrationType(integrationData.type),
|
|
90
70
|
});
|
|
91
71
|
if (result.error) {
|
|
92
72
|
return {
|
|
93
73
|
success: false,
|
|
94
|
-
error: `Failed to create integration: ${result.error
|
|
74
|
+
error: `Failed to create integration: ${getGraphQLErrorMessage(result.error)}`,
|
|
95
75
|
};
|
|
96
76
|
}
|
|
97
77
|
const integration = result.data?.createIntegration;
|
|
@@ -108,6 +88,7 @@ export default async function createIntegrationFromFile(graphqlClient, apiToken,
|
|
|
108
88
|
key: integration.key,
|
|
109
89
|
name: integration.name,
|
|
110
90
|
status: integration.status,
|
|
91
|
+
type: integration.type,
|
|
111
92
|
account: {
|
|
112
93
|
id: integration.account.id,
|
|
113
94
|
key: integration.account.key,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createIntegrationFromFile.js","sourceRoot":"","sources":["../../src/utils/createIntegrationFromFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"createIntegrationFromFile.js","sourceRoot":"","sources":["../../src/utils/createIntegrationFromFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import type { GreatFile } from './greatFile.js';
|
|
3
|
+
import type { IntegrationDefinitions } from './saveIntegration.js';
|
|
4
|
+
export interface PullConflict {
|
|
5
|
+
filePath: string;
|
|
6
|
+
reason: string;
|
|
7
|
+
}
|
|
8
|
+
export default function detectPullConflicts(definitions: IntegrationDefinitions, priorGreat: GreatFile, root: string | undefined, fsImpl?: typeof fs): PullConflict[];
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import hashContent from './hashContent.js';
|
|
3
|
+
import { getElementRecord, sameProvenance } from './greatFile.js';
|
|
4
|
+
import { typeToFolder } from './saveIntegration.js';
|
|
5
|
+
import { readElementFolder } from './elementFiles.js';
|
|
6
|
+
import { SHADOW_MARKER } from './writeShadowElement.js';
|
|
7
|
+
function readLocalFiles(root, fsImpl) {
|
|
8
|
+
const localFiles = new Map();
|
|
9
|
+
for (const folder of new Set(Object.values(typeToFolder))) {
|
|
10
|
+
for (const { key, filePath, data } of readElementFolder(folder, root, fsImpl)) {
|
|
11
|
+
localFiles.set(`${folder}/${key}`, { filePath, data });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return localFiles;
|
|
15
|
+
}
|
|
16
|
+
const stripShadowMarker = ({ [SHADOW_MARKER]: _shadow, ...data }) => data;
|
|
17
|
+
function conflictReason(element, localData, baseHash) {
|
|
18
|
+
const localHash = hashContent(stripShadowMarker(localData));
|
|
19
|
+
const remoteHash = hashContent({ ...element.content?.data });
|
|
20
|
+
if (remoteHash === localHash) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
if (baseHash == null) {
|
|
24
|
+
return 'Local file would be overwritten by a new remote element';
|
|
25
|
+
}
|
|
26
|
+
if (localHash === baseHash) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return remoteHash === baseHash
|
|
30
|
+
? 'Local changes would be overwritten'
|
|
31
|
+
: 'Content changed both locally and remotely';
|
|
32
|
+
}
|
|
33
|
+
function shadowPinConflict(element, record) {
|
|
34
|
+
const pinChanged = (record.source?.timestamp ?? null) !==
|
|
35
|
+
(element.content?.sourceTimestamp ?? null);
|
|
36
|
+
const provenanceChanged = !sameProvenance(record.provenance, element.content?.provenance);
|
|
37
|
+
if (!pinChanged && !provenanceChanged) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return record.timestamp === element.content?.createdAt
|
|
41
|
+
? 'Local shadow re-pin would be overwritten'
|
|
42
|
+
: undefined;
|
|
43
|
+
}
|
|
44
|
+
export default function detectPullConflicts(definitions, priorGreat, root, fsImpl = fs) {
|
|
45
|
+
const localFiles = readLocalFiles(root, fsImpl);
|
|
46
|
+
const conflicts = [];
|
|
47
|
+
for (const element of definitions.elements) {
|
|
48
|
+
const folder = typeToFolder[element.__typename];
|
|
49
|
+
if (!folder) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const local = localFiles.get(`${folder}/${element.key}`);
|
|
53
|
+
if (!local) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const record = getElementRecord(priorGreat, folder, element.key);
|
|
57
|
+
const reason = conflictReason(element, local.data, record?.hash) ??
|
|
58
|
+
(record?.source ? shadowPinConflict(element, record) : undefined);
|
|
59
|
+
if (reason) {
|
|
60
|
+
conflicts.push({ filePath: local.filePath, reason });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return conflicts;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=detectPullConflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectPullConflicts.js","sourceRoot":"","sources":["../../src/utils/detectPullConflicts.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAcvD,SAAS,cAAc,CACrB,IAAwB,EACxB,MAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,GAAG,EAGvB,CAAA;IAEH,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,iBAAiB,CACrD,MAAM,EACN,IAAI,EACJ,MAAM,CACP,EAAE,CAAC;YACF,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAKD,MAAM,iBAAiB,GAAG,CAAC,EACzB,CAAC,aAAa,CAAC,EAAE,OAAO,EACxB,GAAG,IAAI,EACiB,EAA2B,EAAE,CAAC,IAAI,CAAA;AAK5D,SAAS,cAAc,CACrB,OAAgB,EAChB,SAAkC,EAClC,QAA4B;IAE5B,MAAM,SAAS,GAAG,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAG5D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IAID,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,yDAAyD,CAAA;IAClE,CAAC;IAKD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,UAAU,KAAK,QAAQ;QAC5B,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,2CAA2C,CAAA;AACjD,CAAC;AAUD,SAAS,iBAAiB,CACxB,OAAgB,EAChB,MAA0B;IAE1B,MAAM,UAAU,GACd,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC;QAClC,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,CAAA;IAC5C,MAAM,iBAAiB,GAAG,CAAC,cAAc,CACvC,MAAM,CAAC,UAAU,EACjB,OAAO,CAAC,OAAO,EAAE,UAAU,CAC5B,CAAA;IACD,IAAI,CAAC,UAAU,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,EAAE,SAAS;QACpD,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,WAAmC,EACnC,UAAqB,EACrB,IAAwB,EACxB,MAAM,GAAG,EAAE;IAEX,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAmB,EAAE,CAAA;IAEpC,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAQ;QACV,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,SAAQ;QACV,CAAC;QAKD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAChE,MAAM,MAAM,GACV,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;YACjD,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACnE,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/dist/utils/dispatch.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type GraphQLRequestClient } from './graphqlClient.js';
|
|
2
|
-
import type { Response } from '../generated/
|
|
2
|
+
import type { Response } from '../generated/schema.js';
|
|
3
3
|
export declare function dispatchAction(integrationId: string, type: string, payload: unknown, apiToken?: string, client?: GraphQLRequestClient, baseUrl?: string, waitForResponse?: boolean): Promise<Response>;
|
package/dist/utils/dispatch.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { gql } from 'graphql-tag';
|
|
2
2
|
import { createGraphQLClient, } from './graphqlClient.js';
|
|
3
|
+
import { getGraphQLErrorMessage } from './graphqlError.js';
|
|
3
4
|
const DispatchMutationDocument = gql `
|
|
4
5
|
mutation Dispatch(
|
|
5
6
|
$integrationId: ID!
|
|
@@ -15,9 +16,9 @@ const DispatchMutationDocument = gql `
|
|
|
15
16
|
) {
|
|
16
17
|
id
|
|
17
18
|
status
|
|
18
|
-
data
|
|
19
19
|
error
|
|
20
20
|
warning
|
|
21
|
+
itemCount
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
`;
|
|
@@ -30,7 +31,7 @@ export async function dispatchAction(integrationId, type, payload, apiToken, cli
|
|
|
30
31
|
waitForResponse,
|
|
31
32
|
});
|
|
32
33
|
if (result.error) {
|
|
33
|
-
throw new Error(result.error
|
|
34
|
+
throw new Error(getGraphQLErrorMessage(result.error));
|
|
34
35
|
}
|
|
35
36
|
return result.data?.dispatch ?? { id: 'error', status: 'error' };
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/utils/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/utils/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAI1D,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,IAAY,EACZ,OAAgB,EAChB,QAAiB,EACjB,MAA6B,EAC7B,OAAgB,EAChB,eAAe,GAAG,IAAI;IAEtB,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CACxC,wBAAwB,EACxB;QACE,aAAa;QACb,IAAI;QACJ,OAAO;QACP,eAAe;KAChB,CACF,CAAA;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { ElementType } from '../generated/schema.js';
|
|
3
|
+
export declare const elementTypeToFolder: Record<ElementType, string | undefined>;
|
|
4
|
+
export declare const folderToElementType: Record<string, ElementType>;
|
|
5
|
+
export declare const ELEMENT_FOLDERS: readonly string[];
|
|
6
|
+
export declare const JSON_EXTENSIONS: readonly [".jsonc", ".json"];
|
|
7
|
+
export declare function elementKeyFromFileName(fileName: string): string | undefined;
|
|
8
|
+
export interface ReadElementFile {
|
|
9
|
+
key: string;
|
|
10
|
+
filePath: string;
|
|
11
|
+
data: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export declare function readElementFolder(folder: string, root: string | undefined, fsImpl: typeof fs): ReadElementFile[];
|