@salesforce/plugin-data 3.0.23 → 3.1.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 +119 -20
- package/lib/api/data/tree/exportApi.js.map +1 -1
- package/lib/api/data/tree/functions.js +12 -0
- package/lib/api/data/tree/functions.js.map +1 -0
- package/lib/api/data/tree/importApi.js.map +1 -1
- package/lib/api/data/tree/importCommon.js +46 -0
- package/lib/api/data/tree/importCommon.js.map +1 -0
- package/lib/api/data/tree/importFiles.js +55 -0
- package/lib/api/data/tree/importFiles.js.map +1 -0
- package/lib/api/data/tree/importPlan.js +164 -0
- package/lib/api/data/tree/importPlan.js.map +1 -0
- package/lib/api/data/tree/importTypes.js +2 -0
- package/lib/api/data/tree/importTypes.js.map +1 -0
- package/lib/bulkDataRequestCache.js +26 -15
- package/lib/bulkDataRequestCache.js.map +1 -1
- package/lib/bulkUtils.js +1 -2
- package/lib/bulkUtils.js.map +1 -1
- package/lib/commands/data/export/beta/tree.js +55 -0
- package/lib/commands/data/export/beta/tree.js.map +1 -0
- package/lib/commands/data/export/tree.js +1 -0
- package/lib/commands/data/export/tree.js.map +1 -1
- package/lib/commands/data/import/beta/tree.js +52 -0
- package/lib/commands/data/import/beta/tree.js.map +1 -0
- package/lib/commands/data/import/tree.js +4 -0
- package/lib/commands/data/import/tree.js.map +1 -1
- package/lib/dataSoqlQueryTypes.js +7 -0
- package/lib/dataSoqlQueryTypes.js.map +1 -1
- package/lib/export.js +249 -0
- package/lib/export.js.map +1 -0
- package/lib/flags.js +7 -0
- package/lib/flags.js.map +1 -1
- package/lib/reporters.js +0 -35
- package/lib/reporters.js.map +1 -1
- package/messages/importApi.md +32 -0
- package/messages/tree.export.md +5 -1
- package/messages/tree.import.beta.md +43 -0
- package/messages/tree.import.md +8 -0
- package/oclif.lock +295 -287
- package/oclif.manifest.json +420 -155
- package/package.json +6 -6
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { EOL } from 'node:os';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
12
|
+
import { isString } from '@salesforce/ts-types';
|
|
13
|
+
import { Logger, SchemaValidator, SfError, Messages } from '@salesforce/core';
|
|
14
|
+
import { getResultsIfNoError, parseDataFileContents, sendSObjectTreeRequest, treeSaveErrorHandler, } from './importCommon.js';
|
|
15
|
+
import { isUnresolvedRef } from './functions.js';
|
|
16
|
+
import { hasUnresolvedRefs } from './functions.js';
|
|
17
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
18
|
+
const messages = Messages.loadMessages('@salesforce/plugin-data', 'importApi');
|
|
19
|
+
const TREE_API_LIMIT = 200;
|
|
20
|
+
const refRegex = (object) => new RegExp(`^@${object}Ref\\d+$`);
|
|
21
|
+
export const importFromPlan = async (conn, planFilePath) => {
|
|
22
|
+
const resolvedPlanPath = path.resolve(process.cwd(), planFilePath);
|
|
23
|
+
const logger = Logger.childFromRoot('data:import:tree:importFromPlan');
|
|
24
|
+
const planContents = await Promise.all((await validatePlanContents(logger)(resolvedPlanPath, (await JSON.parse(fs.readFileSync(resolvedPlanPath, 'utf8')))))
|
|
25
|
+
// there *shouldn't* be multiple files for the same sobject in a plan, but the legacy code allows that
|
|
26
|
+
.flatMap((dpp) => dpp.files.map((f) => ({ ...dpp, filePath: path.resolve(path.dirname(resolvedPlanPath), f) })))
|
|
27
|
+
.map(async (i) => ({
|
|
28
|
+
...i,
|
|
29
|
+
records: parseDataFileContents(i.filePath)(await fs.promises.readFile(i.filePath, 'utf-8')),
|
|
30
|
+
})));
|
|
31
|
+
// using recursion to sequentially send the requests so we get refs back from each round
|
|
32
|
+
const { results } = await getResults(conn)(logger)({ results: [], fingerprints: new Set() })(planContents);
|
|
33
|
+
return results;
|
|
34
|
+
};
|
|
35
|
+
/** recursively splits files (for size or unresolved refs) and makes API calls, storing results for subsequent calls */
|
|
36
|
+
const getResults = (conn) => (logger) => (resultsSoFar) => async (planParts) => {
|
|
37
|
+
const newResultWithFingerPrints = addFingerprint(resultsSoFar)(planParts);
|
|
38
|
+
const [head, ...tail] = planParts;
|
|
39
|
+
if (!head.records.length) {
|
|
40
|
+
return tail.length ? getResults(conn)(logger)(newResultWithFingerPrints)(tail) : resultsSoFar;
|
|
41
|
+
}
|
|
42
|
+
const partWithRefsReplaced = { ...head, records: replaceRefs(resultsSoFar.results)(head.records) };
|
|
43
|
+
const { ready, notReady } = replaceRefsInTheSameFile(partWithRefsReplaced);
|
|
44
|
+
if (notReady) {
|
|
45
|
+
logger.debug(`Not all refs are resolved yet. Splitting ${partWithRefsReplaced.filePath} into two`);
|
|
46
|
+
// Do the ones with all refs resolved to ID, then the rest, then the other files. Essentially, we split the file into 2 parts and start over
|
|
47
|
+
return getResults(conn)(logger)(newResultWithFingerPrints)([ready, notReady, ...tail]);
|
|
48
|
+
}
|
|
49
|
+
// We could have refs to records in a file we haven't loaded yet.
|
|
50
|
+
const { resolved, unresolved } = filterUnresolved(partWithRefsReplaced.records);
|
|
51
|
+
if (unresolved.length) {
|
|
52
|
+
logger.debug(`Not all refs are resolved yet. Splitting ${partWithRefsReplaced.filePath} into two with the unresolved refs last`);
|
|
53
|
+
return getResults(conn)(logger)(newResultWithFingerPrints)([
|
|
54
|
+
{ ...head, records: resolved },
|
|
55
|
+
...tail,
|
|
56
|
+
{ ...head, records: unresolved, filePath: `${head.filePath}` },
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
if (partWithRefsReplaced.records.length > TREE_API_LIMIT) {
|
|
60
|
+
logger.debug(`There are more than ${TREE_API_LIMIT} records in ${partWithRefsReplaced.filePath}. Will split into multiple requests.`);
|
|
61
|
+
return getResults(conn)(logger)(newResultWithFingerPrints)([...fileSplitter(partWithRefsReplaced), ...tail]);
|
|
62
|
+
}
|
|
63
|
+
logger.debug(`Sending ${partWithRefsReplaced.filePath} (${partWithRefsReplaced.records.length} records for ${partWithRefsReplaced.sobject}) to the API`);
|
|
64
|
+
try {
|
|
65
|
+
const contents = JSON.stringify({ records: partWithRefsReplaced.records });
|
|
66
|
+
const newResults = getResultsIfNoError(partWithRefsReplaced.filePath)(await sendSObjectTreeRequest(conn)(partWithRefsReplaced.sobject)(contents));
|
|
67
|
+
const output = {
|
|
68
|
+
...newResultWithFingerPrints,
|
|
69
|
+
results: [
|
|
70
|
+
...newResultWithFingerPrints.results,
|
|
71
|
+
...newResults.map((r) => ({ refId: r.referenceId, type: partWithRefsReplaced.sobject, id: r.id })),
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
return tail.length ? await getResults(conn)(logger)(output)(tail) : output;
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
return treeSaveErrorHandler(e);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
/** if the file has more than TREE_API_LIMIT records, split it into multiple files */
|
|
81
|
+
export const fileSplitter = (planPart) => {
|
|
82
|
+
const head = planPart.records.slice(0, TREE_API_LIMIT);
|
|
83
|
+
const tail = planPart.records.slice(TREE_API_LIMIT);
|
|
84
|
+
return tail.length ? [{ ...planPart, records: head }, ...fileSplitter({ ...planPart, records: tail })] : [planPart];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* it's possible that a file has records that refer to each other (ex: account/parentId). So they're not in refs yet.
|
|
88
|
+
* so we'll parse the JSON and split the records into 2 sets: those with refs and those without, if necessary
|
|
89
|
+
*/
|
|
90
|
+
export const replaceRefsInTheSameFile = (planPart) => {
|
|
91
|
+
const unresolvedRefRegex = refRegex(planPart.sobject);
|
|
92
|
+
const refRecords = planPart.records.filter((r) => Object.values(r).some(matchesRefFilter(unresolvedRefRegex)));
|
|
93
|
+
return refRecords.length
|
|
94
|
+
? {
|
|
95
|
+
ready: {
|
|
96
|
+
...planPart,
|
|
97
|
+
// have no refs, so they can go in immediately
|
|
98
|
+
records: planPart.records.filter((r) => !Object.values(r).some(matchesRefFilter(unresolvedRefRegex))),
|
|
99
|
+
},
|
|
100
|
+
notReady: { ...planPart, records: refRecords },
|
|
101
|
+
}
|
|
102
|
+
: { ready: planPart };
|
|
103
|
+
};
|
|
104
|
+
/** recursively replace the `@ref` with the id, using the accumulated results objects */
|
|
105
|
+
export const replaceRefs = (results) => (records) => {
|
|
106
|
+
if (results.length === 0)
|
|
107
|
+
return records;
|
|
108
|
+
const [head, ...tail] = results;
|
|
109
|
+
const updatedRecords = records.map(replaceRefWithId(head));
|
|
110
|
+
return tail.length ? replaceRefs(tail)(updatedRecords) : updatedRecords;
|
|
111
|
+
};
|
|
112
|
+
/** replace 1 record with 1 ref for all of its fields */
|
|
113
|
+
const replaceRefWithId = (ref) => (record) => Object.fromEntries(Object.entries(record).map(([k, v]) => [k, v === `@${ref.refId}` ? ref.id : v]));
|
|
114
|
+
export const validatePlanContents = (logger) => async (planPath, planContents) => {
|
|
115
|
+
const childLogger = logger.child('validatePlanContents');
|
|
116
|
+
const planSchema = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..', '..', 'schema', 'dataImportPlanSchema.json');
|
|
117
|
+
const val = new SchemaValidator(childLogger, planSchema);
|
|
118
|
+
try {
|
|
119
|
+
await val.validate(planContents);
|
|
120
|
+
const output = planContents;
|
|
121
|
+
if (hasRefs(output)) {
|
|
122
|
+
childLogger.warn("The plan contains the 'saveRefs' and/or 'resolveRefs' properties. These properties will be ignored and can be removed.");
|
|
123
|
+
}
|
|
124
|
+
if (!hasOnlySimpleFiles(output)) {
|
|
125
|
+
throw messages.createError('error.NonStringFiles');
|
|
126
|
+
}
|
|
127
|
+
return planContents;
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
if (err instanceof Error && err.name === 'ValidationSchemaFieldError') {
|
|
131
|
+
throw messages.createError('error.InvalidDataImport', [planPath, err.message]);
|
|
132
|
+
}
|
|
133
|
+
else if (err instanceof Error) {
|
|
134
|
+
throw SfError.wrap(err);
|
|
135
|
+
}
|
|
136
|
+
throw err;
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const matchesRefFilter = (unresolvedRefRegex) => (v) => typeof v === 'string' && unresolvedRefRegex.test(v);
|
|
140
|
+
const hasOnlySimpleFiles = (planParts) => planParts.every((p) => p.files.every((f) => typeof f === 'string'));
|
|
141
|
+
const hasRefs = (planParts) => planParts.some((p) => p.saveRefs !== undefined || p.resolveRefs !== undefined);
|
|
142
|
+
// TODO: change this implementation to use Object.groupBy when it's on all supported node versions
|
|
143
|
+
const filterUnresolved = (records) => ({
|
|
144
|
+
resolved: records.filter((r) => !hasUnresolvedRefs([r])),
|
|
145
|
+
unresolved: records.filter((r) => hasUnresolvedRefs([r])),
|
|
146
|
+
});
|
|
147
|
+
/** given the 2 parameters that can change, break the recursion if asked to do an operation that's already been done */
|
|
148
|
+
const addFingerprint = (resultsSoFar) => (planParts) => {
|
|
149
|
+
const fingerprint = hashObject({ resultsSoFar, planParts });
|
|
150
|
+
if (resultsSoFar.fingerprints.has(fingerprint)) {
|
|
151
|
+
const unresolved = planParts[0].records.map(Object.values).flat().filter(isString).filter(isUnresolvedRef);
|
|
152
|
+
const e = messages.createError('error.UnresolvableRefs', [
|
|
153
|
+
planParts[0].filePath,
|
|
154
|
+
unresolved.map((s) => `- ${s}`).join(EOL),
|
|
155
|
+
]);
|
|
156
|
+
e.setData(resultsSoFar.results);
|
|
157
|
+
throw e;
|
|
158
|
+
}
|
|
159
|
+
return { ...resultsSoFar, fingerprints: resultsSoFar.fingerprints.add(fingerprint) };
|
|
160
|
+
};
|
|
161
|
+
const hashObject = (obj) => createHash('sha256')
|
|
162
|
+
.update(Buffer.from(JSON.stringify(obj)))
|
|
163
|
+
.digest('hex');
|
|
164
|
+
//# sourceMappingURL=importPlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importPlan.js","sourceRoot":"","sources":["../../../../src/api/data/tree/importPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importTypes.js","sourceRoot":"","sources":["../../../../src/api/data/tree/importTypes.ts"],"names":[],"mappings":""}
|
|
@@ -40,33 +40,44 @@ export class BulkDataRequestCache extends TTLConfig {
|
|
|
40
40
|
if (!useMostRecent && !bulkJobId) {
|
|
41
41
|
throw messages.createError('bulkRequestIdRequiredWhenNotUsingMostRecent');
|
|
42
42
|
}
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
pollingOptions: { pollTimeout: 0, pollInterval: 0 },
|
|
48
|
-
},
|
|
43
|
+
const resumeOptionsOptions = {
|
|
44
|
+
operation: 'query',
|
|
45
|
+
query: '',
|
|
46
|
+
pollingOptions: { pollTimeout: 0, pollInterval: 0 },
|
|
49
47
|
};
|
|
50
48
|
if (useMostRecent) {
|
|
51
49
|
const key = this.getLatestKey();
|
|
52
50
|
if (key) {
|
|
51
|
+
// key definitely exists because it came from the cache
|
|
53
52
|
const entry = this.get(key);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
return {
|
|
54
|
+
jobInfo: { id: entry.jobId },
|
|
55
|
+
options: {
|
|
56
|
+
...resumeOptionsOptions,
|
|
57
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
|
|
58
|
+
},
|
|
59
|
+
};
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
if (bulkJobId) {
|
|
60
63
|
const entry = this.get(bulkJobId);
|
|
61
64
|
if (entry) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
return {
|
|
66
|
+
jobInfo: { id: entry.jobId },
|
|
67
|
+
options: {
|
|
68
|
+
...resumeOptionsOptions,
|
|
69
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(apiVersion),
|
|
70
|
+
},
|
|
71
|
+
};
|
|
65
72
|
}
|
|
66
73
|
else if (org) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
return {
|
|
75
|
+
jobInfo: { id: bulkJobId },
|
|
76
|
+
options: {
|
|
77
|
+
...resumeOptionsOptions,
|
|
78
|
+
connection: org.getConnection(apiVersion),
|
|
79
|
+
},
|
|
80
|
+
};
|
|
70
81
|
}
|
|
71
82
|
else {
|
|
72
83
|
throw messages.createError('cannotCreateResumeOptionsWithoutAnOrg');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
|
package/lib/bulkUtils.js
CHANGED
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
import { Messages } from '@salesforce/core';
|
|
8
8
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
9
9
|
const messages = Messages.loadMessages('@salesforce/plugin-data', 'messages');
|
|
10
|
-
|
|
10
|
+
const POLL_FREQUENCY_MS = 5000;
|
|
11
11
|
export const isBulkV2RequestDone = (jobInfo) => ['Aborted', 'Failed', 'JobComplete'].includes(jobInfo.state);
|
|
12
|
-
export const didBulkV2RequestJobFail = (jobInfo) => ['Aborted', 'Failed'].includes(jobInfo.state);
|
|
13
12
|
export const transformResults = (results) => ({
|
|
14
13
|
successfulResults: results.successfulResults.map((record) => record),
|
|
15
14
|
failedResults: results.failedResults.map((record) => record),
|
package/lib/bulkUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkUtils.js","sourceRoot":"","sources":["../src/bulkUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"bulkUtils.js","sourceRoot":"","sources":["../src/bulkUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAc,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAE9E,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAkB,EAAW,EAAE,CACjE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAmC,EAAiB,EAAE,CAAC,CAAC;IACvF,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAA0C,CAAC;IACxG,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAA0C,CAAC;IAChG,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAA0C,CAAC;CAC3G,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,UAAsB,EAAiB,EAAE;IACtG,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,GAAyC,EAAE,IAAY,EAAiB,EAAE;IAC5G,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,aAAa,GAAG,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import { Messages } from '@salesforce/core';
|
|
8
|
+
import { SfCommand, Flags, Ux } from '@salesforce/sf-plugins-core';
|
|
9
|
+
import { orgFlags, prefixValidation } from '../../../../flags.js';
|
|
10
|
+
import { runExport } from '../../../../export.js';
|
|
11
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
12
|
+
const messages = Messages.loadMessages('@salesforce/plugin-data', 'tree.export');
|
|
13
|
+
export default class Export extends SfCommand {
|
|
14
|
+
static summary = messages.getMessage('summary');
|
|
15
|
+
static description = messages.getMessage('description');
|
|
16
|
+
static examples = messages.getMessages('examples');
|
|
17
|
+
// TODO: when you remove the beta state, put the force: aliases back in
|
|
18
|
+
static state = 'beta';
|
|
19
|
+
static flags = {
|
|
20
|
+
...orgFlags,
|
|
21
|
+
query: Flags.string({
|
|
22
|
+
char: 'q',
|
|
23
|
+
summary: messages.getMessage('flags.query.summary'),
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
plan: Flags.boolean({
|
|
27
|
+
char: 'p',
|
|
28
|
+
summary: messages.getMessage('flags.plan.summary'),
|
|
29
|
+
}),
|
|
30
|
+
prefix: Flags.string({
|
|
31
|
+
char: 'x',
|
|
32
|
+
summary: messages.getMessage('flags.prefix.summary'),
|
|
33
|
+
parse: prefixValidation,
|
|
34
|
+
}),
|
|
35
|
+
'output-dir': Flags.directory({
|
|
36
|
+
char: 'd',
|
|
37
|
+
summary: messages.getMessage('flags.output-dir.summary'),
|
|
38
|
+
aliases: ['outputdir'],
|
|
39
|
+
deprecateAliases: true,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
async run() {
|
|
43
|
+
const { flags } = await this.parse(Export);
|
|
44
|
+
const exportConfig = {
|
|
45
|
+
outputDir: flags['output-dir'],
|
|
46
|
+
plan: flags.plan,
|
|
47
|
+
prefix: flags.prefix,
|
|
48
|
+
query: flags.query,
|
|
49
|
+
conn: flags['target-org'].getConnection(flags['api-version']),
|
|
50
|
+
ux: new Ux({ jsonEnabled: this.jsonEnabled() }),
|
|
51
|
+
};
|
|
52
|
+
return runExport(exportConfig);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../../src/commands/data/export/beta/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAgB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGhE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAmD;IAC9E,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnE,uEAAuE;IAChE,MAAM,CAAU,KAAK,GAAG,MAAM,CAAC;IAE/B,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,QAAQ;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;SACnD,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACpD,KAAK,EAAE,gBAAgB;SACxB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;YAC5B,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;YACxD,OAAO,EAAE,CAAC,WAAW,CAAC;YACtB,gBAAgB,EAAE,IAAI;SACvB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAiB;YACjC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7D,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;SAChD,CAAC;QACF,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC"}
|
|
@@ -39,6 +39,7 @@ export default class Export extends SfCommand {
|
|
|
39
39
|
}),
|
|
40
40
|
};
|
|
41
41
|
async run() {
|
|
42
|
+
this.info('Try the the new "sf data export beta tree" command. It support SOQL queries with up to 5 levels of objects!');
|
|
42
43
|
const { flags } = await this.parse(Export);
|
|
43
44
|
const ux = new Ux({ jsonEnabled: this.jsonEnabled() });
|
|
44
45
|
const exportApi = new ExportApi(flags['target-org'], ux);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/export/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/export/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,MAAM,qCAAqC,CAAC;AAG9E,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAmD;IAC9E,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAU,OAAO,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACrD,MAAM,CAAU,gBAAgB,GAAG,IAAI,CAAC;IAExC,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,QAAQ;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;SACnD,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;SACrD,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;YAC5B,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;YACxD,OAAO,EAAE,CAAC,WAAW,CAAC;YACtB,gBAAgB,EAAE,IAAI;SACvB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,IAAI,CACP,8GAA8G,CAC/G,CAAC;QAEF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,YAAY,GAAiB;YACjC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QACF,OAAO,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import { Messages } from '@salesforce/core';
|
|
8
|
+
import { SfCommand, Flags, arrayWithDeprecation } from '@salesforce/sf-plugins-core';
|
|
9
|
+
import { importFromPlan } from '../../../../api/data/tree/importPlan.js';
|
|
10
|
+
import { importFromFiles } from '../../../../api/data/tree/importFiles.js';
|
|
11
|
+
import { orgFlags } from '../../../../flags.js';
|
|
12
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
13
|
+
const messages = Messages.loadMessages('@salesforce/plugin-data', 'tree.import.beta');
|
|
14
|
+
/**
|
|
15
|
+
* Command that provides data import capability via the SObject Tree Save API.
|
|
16
|
+
*/
|
|
17
|
+
export default class Import extends SfCommand {
|
|
18
|
+
static summary = messages.getMessage('summary');
|
|
19
|
+
static description = messages.getMessage('description');
|
|
20
|
+
static examples = messages.getMessages('examples');
|
|
21
|
+
// TODO: when you remove the beta state, put the force: aliases back in
|
|
22
|
+
static state = 'beta';
|
|
23
|
+
static flags = {
|
|
24
|
+
...orgFlags,
|
|
25
|
+
files: arrayWithDeprecation({
|
|
26
|
+
char: 'f',
|
|
27
|
+
summary: messages.getMessage('flags.files.summary'),
|
|
28
|
+
exactlyOne: ['files', 'plan'],
|
|
29
|
+
aliases: ['sobjecttreefiles'],
|
|
30
|
+
deprecateAliases: true,
|
|
31
|
+
}),
|
|
32
|
+
plan: Flags.file({
|
|
33
|
+
char: 'p',
|
|
34
|
+
summary: messages.getMessage('flags.plan.summary'),
|
|
35
|
+
exactlyOne: ['files', 'plan'],
|
|
36
|
+
exists: true,
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
async run() {
|
|
40
|
+
const { flags } = await this.parse(Import);
|
|
41
|
+
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
42
|
+
const results = flags.plan ? await importFromPlan(conn, flags.plan) : await importFromFiles(conn, flags.files);
|
|
43
|
+
this.styledHeader('Import Results');
|
|
44
|
+
this.table(results, {
|
|
45
|
+
refId: { header: 'Reference ID' },
|
|
46
|
+
type: { header: 'Type' },
|
|
47
|
+
id: { header: 'ID' },
|
|
48
|
+
});
|
|
49
|
+
return results;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../../src/commands/data/import/beta/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAyB;IACpD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAEnE,uEAAuE;IAChE,MAAM,CAAU,KAAK,GAAG,MAAM,CAAC;IAE/B,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,QAAQ;QACX,KAAK,EAAE,oBAAoB,CAAC;YAC1B,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC;YAC7B,gBAAgB,EAAE,IAAI;SACvB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC7B,MAAM,EAAE,IAAI;SACb,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/G,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;YACjC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YACxB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC"}
|
|
@@ -40,12 +40,15 @@ export default class Import extends SfCommand {
|
|
|
40
40
|
hidden: true,
|
|
41
41
|
aliases: ['contenttype'],
|
|
42
42
|
deprecateAliases: true,
|
|
43
|
+
deprecated: { message: messages.getMessage('flags.content-type.deprecation') },
|
|
43
44
|
}),
|
|
44
45
|
// displays the schema for a data import plan
|
|
45
46
|
'config-help': Flags.boolean({
|
|
46
47
|
summary: messages.getMessage('flags.config-help.summary'),
|
|
47
48
|
aliases: ['confighelp'],
|
|
48
49
|
deprecateAliases: true,
|
|
50
|
+
hidden: true,
|
|
51
|
+
deprecated: { message: messages.getMessage('flags.config-help.deprecation') },
|
|
49
52
|
}),
|
|
50
53
|
};
|
|
51
54
|
async run() {
|
|
@@ -73,6 +76,7 @@ export default class Import extends SfCommand {
|
|
|
73
76
|
type: { header: 'Type' },
|
|
74
77
|
id: { header: 'ID' },
|
|
75
78
|
});
|
|
79
|
+
this.info('Be sure to check out the new "sf data import beta tree". It handles more records and objects with lookups to the same object (ex: parent account)');
|
|
76
80
|
return processedResult;
|
|
77
81
|
}
|
|
78
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/import/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/import/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@ export var FieldType;
|
|
|
10
10
|
FieldType[FieldType["subqueryField"] = 1] = "subqueryField";
|
|
11
11
|
FieldType[FieldType["functionField"] = 2] = "functionField";
|
|
12
12
|
})(FieldType || (FieldType = {}));
|
|
13
|
+
/** element: a field value from the sobject. Empty arrays return true */
|
|
13
14
|
export const hasNestedRecords = (element) => Array.isArray(element?.records);
|
|
15
|
+
/** element: a field value from the sobject. Empty arrays return false */
|
|
16
|
+
export const hasNonEmptyNestedRecords = (element) => hasNestedRecords(element) && element.records.length > 0;
|
|
17
|
+
/** convenience method for filtering Object.entries array */
|
|
18
|
+
export const hasNestedRecordsFilter = (entry) => typeof entry[0] === 'string' && hasNonEmptyNestedRecords(entry[1]);
|
|
14
19
|
export const isAttributesElement = (element) => !!element.referenceId && !!element.type;
|
|
20
|
+
/** convenience method for filtering Object.entries array */
|
|
21
|
+
export const isAttributesEntry = (entry) => entry[0] === 'attributes' && isAttributesElement(entry[1]);
|
|
15
22
|
//# sourceMappingURL=dataSoqlQueryTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSoqlQueryTypes.js","sourceRoot":"","sources":["../src/dataSoqlQueryTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,2CAAK,CAAA;IACL,2DAAa,CAAA;IACb,2DAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;
|
|
1
|
+
{"version":3,"file":"dataSoqlQueryTypes.js","sourceRoot":"","sources":["../src/dataSoqlQueryTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,2CAAK,CAAA;IACL,2DAAa,CAAA;IACb,2DAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAkDD,yEAAyE;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,OAAgB,EAAoC,EAAE,CACxF,KAAK,CAAC,OAAO,CAAE,OAAiC,EAAE,OAAO,CAAC,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAI,OAAgB,EAAoC,EAAE,CAChG,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAI,KAAwB,EAA4C,EAAE,CAC9G,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAA6C,EAAE,CACjG,CAAC,CAAE,OAA0C,CAAC,WAAW,IAAI,CAAC,CAAE,OAA0C,CAAC,IAAI,CAAC;AAElH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAA2D,EAAE,CACrH,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|