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,101 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import parseJson from '../utils/parseJson.js';
|
|
5
|
+
import hashContent from '../utils/hashContent.js';
|
|
6
|
+
import { currentIntegrationKey } from '../utils/fetchLocal.js';
|
|
7
|
+
import { ELEMENT_FOLDERS, elementKeyFromFileName, } from '../utils/elementFiles.js';
|
|
8
|
+
import { readGreatFile, writeGreatFile, getElementRecord, setElementRecord, } from '../utils/greatFile.js';
|
|
9
|
+
const hasMetaProps = (data) => '__id' in data || '__key' in data || '__timestamp' in data;
|
|
10
|
+
function migrateIntegrationFile(great, log, fsImpl) {
|
|
11
|
+
const filePath = 'integration.json';
|
|
12
|
+
if (!fsImpl.existsSync(filePath)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const data = parseJson(fsImpl.readFileSync(filePath, 'utf8'));
|
|
16
|
+
const { __id, __key, __timestamp, account, key, ...rest } = data;
|
|
17
|
+
if (typeof __id === 'string') {
|
|
18
|
+
great.id = __id;
|
|
19
|
+
}
|
|
20
|
+
if (typeof __timestamp === 'string') {
|
|
21
|
+
great.timestamp = __timestamp;
|
|
22
|
+
}
|
|
23
|
+
const folderKey = currentIntegrationKey();
|
|
24
|
+
const storedKey = typeof __key === 'string' ? __key : key;
|
|
25
|
+
if (typeof storedKey === 'string' && storedKey && storedKey !== folderKey) {
|
|
26
|
+
log(chalk.yellow(`Note: stored key "${storedKey}" differs from folder name "${folderKey}", which is now the key. Rename the folder to "${storedKey}" to keep it.`));
|
|
27
|
+
}
|
|
28
|
+
if (account && typeof account === 'object') {
|
|
29
|
+
const { __id: accId, __key: accKey } = account;
|
|
30
|
+
const id = typeof accId === 'string' ? accId : great.account?.id;
|
|
31
|
+
const accountKey = typeof accKey === 'string' ? accKey : great.account?.key;
|
|
32
|
+
if (id || accountKey) {
|
|
33
|
+
great.account = {
|
|
34
|
+
...(id ? { id } : {}),
|
|
35
|
+
...(accountKey ? { key: accountKey } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
fsImpl.writeFileSync(filePath, JSON.stringify(rest, undefined, 2));
|
|
40
|
+
return hasMetaProps(data) || !!account || key !== undefined;
|
|
41
|
+
}
|
|
42
|
+
function migrateElementFiles(great, fsImpl) {
|
|
43
|
+
let count = 0;
|
|
44
|
+
for (const folder of ELEMENT_FOLDERS) {
|
|
45
|
+
if (!fsImpl.existsSync(folder)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
for (const file of fsImpl.readdirSync(folder)) {
|
|
49
|
+
const fileName = String(file);
|
|
50
|
+
const key = elementKeyFromFileName(fileName);
|
|
51
|
+
if (!key) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const filePath = path.join(folder, fileName);
|
|
55
|
+
const data = parseJson(fsImpl.readFileSync(filePath, 'utf8'));
|
|
56
|
+
if (!hasMetaProps(data)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const { __id, __key, __timestamp, ...content } = data;
|
|
60
|
+
fsImpl.writeFileSync(filePath, JSON.stringify(content, undefined, 2));
|
|
61
|
+
const existing = getElementRecord(great, folder, key);
|
|
62
|
+
setElementRecord(great, folder, key, {
|
|
63
|
+
...(typeof __id === 'string'
|
|
64
|
+
? { id: __id }
|
|
65
|
+
: existing?.id
|
|
66
|
+
? { id: existing.id }
|
|
67
|
+
: {}),
|
|
68
|
+
...(typeof __timestamp === 'string'
|
|
69
|
+
? { timestamp: __timestamp }
|
|
70
|
+
: existing?.timestamp
|
|
71
|
+
? { timestamp: existing.timestamp }
|
|
72
|
+
: {}),
|
|
73
|
+
hash: hashContent(content),
|
|
74
|
+
});
|
|
75
|
+
count++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return count;
|
|
79
|
+
}
|
|
80
|
+
export const action = (log, fsImpl = fs) => async function migrate() {
|
|
81
|
+
if (!fsImpl.existsSync('integration.json')) {
|
|
82
|
+
log(chalk.red('No integration.json found in this directory'));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const great = readGreatFile(undefined, fsImpl);
|
|
86
|
+
const integrationMigrated = migrateIntegrationFile(great, log, fsImpl);
|
|
87
|
+
const elementCount = migrateElementFiles(great, fsImpl);
|
|
88
|
+
writeGreatFile(great, undefined, fsImpl);
|
|
89
|
+
if (integrationMigrated || elementCount > 0) {
|
|
90
|
+
log(chalk.green('✓ Migrated to .great.json'));
|
|
91
|
+
log(` Elements migrated: ${elementCount}`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
log(chalk.green('Already migrated — nothing to do'));
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
export default (program) => program
|
|
98
|
+
.command('migrate')
|
|
99
|
+
.description('Migrate sync bookkeeping from inline __id/__key/__timestamp props to .great.json')
|
|
100
|
+
.action(action(console.log));
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAS,MAAM,uBAAuB,CAAA;AAC7C,OAAO,WAAW,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAU9B,MAAM,YAAY,GAAG,CAAC,IAA6B,EAAW,EAAE,CAC9D,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,CAAA;AAE5D,SAAS,sBAAsB,CAC7B,KAAgB,EAChB,GAA8B,EAC9B,MAAiB;IAEjB,MAAM,QAAQ,GAAG,kBAAkB,CAAA;IACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAA;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAEhE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,KAAK,CAAC,EAAE,GAAG,IAAI,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAA;IAC/B,CAAC;IAGD,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAA;IACzC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;IACzD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1E,GAAG,CACD,KAAK,CAAC,MAAM,CACV,qBAAqB,SAAS,+BAA+B,SAAS,kDAAkD,SAAS,eAAe,CACjJ,CACF,CAAA;IACH,CAAC;IAGD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAkC,CAAA;QACzE,MAAM,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAA;QAC3E,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG;gBACd,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAClE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,KAAK,SAAS,CAAA;AAC7D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgB,EAAE,MAAiB;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,SAAQ;QACV,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7B,MAAM,GAAG,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,SAAQ;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAA;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAQ;YACV,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAA;YACrD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAErE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YACrD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ;oBAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;oBACd,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACZ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;wBACrB,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,OAAO,WAAW,KAAK,QAAQ;oBACjC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;oBAC5B,CAAC,CAAC,QAAQ,EAAE,SAAS;wBACnB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;wBACnC,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;aAC3B,CAAC,CAAA;YACF,KAAK,EAAE,CAAA;QACT,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAA8B,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,CACpE,KAAK,UAAU,OAAO;IACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IACtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAEvD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAExC,IAAI,mBAAmB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAC7C,GAAG,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC,CAAA;AAEH,eAAe,CAAC,OAAgB,EAAE,EAAE,CAClC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CACV,kFAAkF,CACnF;KACA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA"}
|
package/dist/pull/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
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
|
-
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>) => (
|
|
6
|
+
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>) => (options?: {
|
|
7
|
+
force?: boolean;
|
|
8
|
+
}) => Promise<void>;
|
|
7
9
|
declare const _default: (program: Command, apiToken?: string) => Command;
|
|
8
10
|
export default _default;
|
package/dist/pull/index.js
CHANGED
|
@@ -1,62 +1,43 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import saveIntegration from '../utils/saveIntegration.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
name
|
|
14
|
-
description
|
|
15
|
-
status
|
|
16
|
-
account {
|
|
17
|
-
id
|
|
18
|
-
key
|
|
19
|
-
name
|
|
20
|
-
}
|
|
21
|
-
latest {
|
|
22
|
-
timestamp
|
|
23
|
-
elements {
|
|
24
|
-
id
|
|
25
|
-
key
|
|
26
|
-
name
|
|
27
|
-
__typename
|
|
28
|
-
content {
|
|
29
|
-
timestamp
|
|
30
|
-
data
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
3
|
+
import { fetchIntegrationId } from '../utils/fetchLocal.js';
|
|
4
|
+
import { getClient } from '../utils/graphqlClient.js';
|
|
5
|
+
import { fetchIntegrationDefinition } from '../utils/fetchIntegrationDefinition.js';
|
|
6
|
+
import { readGreatFile } from '../utils/greatFile.js';
|
|
7
|
+
import detectPullConflicts from '../utils/detectPullConflicts.js';
|
|
8
|
+
function reportConflicts(conflicts, log) {
|
|
9
|
+
log(chalk.red.bold('!! Conflicts detected!\n'));
|
|
10
|
+
for (const conflict of conflicts) {
|
|
11
|
+
log(`${chalk.bold(conflict.filePath)}`);
|
|
12
|
+
log(` ${conflict.reason}`);
|
|
34
13
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export const action = (log, apiToken, client, fsImpl, config) => async function pullIntegration() {
|
|
38
|
-
const id =
|
|
14
|
+
log(`\nCommit or revert your local changes, or run ${chalk.bold('great pull --force')} to overwrite them.`);
|
|
15
|
+
}
|
|
16
|
+
export const action = (log, apiToken, client, fsImpl, config) => async function pullIntegration(options = {}) {
|
|
17
|
+
const id = fetchIntegrationId(fsImpl);
|
|
39
18
|
if (!id) {
|
|
40
19
|
log(chalk.red('No local integration project found'));
|
|
41
20
|
log(`Run ${chalk.bold('great clone <integration-id>')} to clone an integration to a new folder`);
|
|
42
21
|
return;
|
|
43
22
|
}
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
if (result.error) {
|
|
48
|
-
handleGraphQLError(result.error, log);
|
|
23
|
+
const graphqlClient = getClient(apiToken, client, config);
|
|
24
|
+
const integration = await fetchIntegrationDefinition(graphqlClient, id, log);
|
|
25
|
+
if (!integration) {
|
|
49
26
|
return;
|
|
50
27
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
28
|
+
if (!options.force) {
|
|
29
|
+
const priorGreat = readGreatFile(undefined, fsImpl);
|
|
30
|
+
const conflicts = detectPullConflicts(integration.latest, priorGreat, undefined, fsImpl);
|
|
31
|
+
if (conflicts.length > 0) {
|
|
32
|
+
reportConflicts(conflicts, log);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
55
35
|
}
|
|
56
36
|
saveIntegration(integration, integration.latest, undefined, fsImpl);
|
|
57
37
|
};
|
|
58
38
|
export default (program, apiToken) => program
|
|
59
39
|
.command('pull')
|
|
60
40
|
.description('pull remote changes to the current integration folder')
|
|
41
|
+
.option('-f, --force', 'overwrite local changes without conflict check')
|
|
61
42
|
.action(action(console.log, apiToken));
|
|
62
43
|
//# sourceMappingURL=index.js.map
|
package/dist/pull/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pull/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pull/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAA6B,MAAM,2BAA2B,CAAA;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,mBAAmB,MAAM,iCAAiC,CAAA;AAKjE,SAAS,eAAe,CACtB,SAAyB,EACzB,GAA8B;IAE9B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAA;IAE/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACvC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,GAAG,CACD,iDAAiD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CACvG,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,GAA8B,EAC9B,QAAiB,EACjB,MAA6B,EAC7B,MAAkB,EAClB,MAA2B,EAC3B,EAAE,CACF,KAAK,UAAU,eAAe,CAAC,UAA+B,EAAE;IAE9D,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAA;QACpD,GAAG,CACD,OAAO,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,0CAA0C,CAC5F,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IAID,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,mBAAmB,CACnC,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,SAAS,EACT,MAAM,CACP,CAAA;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;IACH,CAAC;IAED,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC,CAAA;AAEH,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,CACrD,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
package/dist/push/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 { promptForValueSetting } from '../utils/promptForValue.js';
|
|
6
6
|
import type { Command } from 'commander';
|
|
7
7
|
export declare const action: (log: (message: string) => void, apiToken?: string, client?: GraphQLRequestClient, fsImpl?: typeof fs, config?: Conf<ConfigSchema>, promptForValueSettingFn?: typeof promptForValueSetting) => (options?: {
|