mcdev 4.1.8 → 4.1.10
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/.github/ISSUE_TEMPLATE/bug.yml +2 -0
- package/README.md +25 -14
- package/boilerplate/gitignore-template +5 -5
- package/docs/dist/documentation.md +13 -0
- package/lib/Retriever.js +46 -4
- package/lib/metadataTypes/MetadataType.js +11 -3
- package/lib/metadataTypes/definitions/Asset.definition.js +27 -4
- package/lib/util/init.git.js +1 -1
- package/lib/util/init.js +1 -1
- package/package.json +1 -1
- package/test/mockRoot/.mcdevrc.json +1 -1
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ Accenture Salesforce Marketing Cloud DevTools (mcdev) is a rapid deployment/roll
|
|
|
51
51
|
- [6.2.8. createDeltaPkg](#628-createdeltapkg)
|
|
52
52
|
- [7. Advanced Configuration](#7-advanced-configuration)
|
|
53
53
|
- [7.1. Config Options](#71-config-options)
|
|
54
|
-
- [7.2. Metadata
|
|
54
|
+
- [7.2. Metadata-specific settings & options](#72-metadata-specific-settings--options)
|
|
55
55
|
- [7.2.1. Retention Policy fields in Data Extensions](#721-retention-policy-fields-in-data-extensions)
|
|
56
56
|
- [7.2.2. Adding/Updating Fields on existing Data Extensions](#722-addingupdating-fields-on-existing-data-extensions)
|
|
57
57
|
- [7.2.3. Renaming fields of a Data Extensions](#723-renaming-fields-of-a-data-extensions)
|
|
@@ -123,7 +123,7 @@ If you experience issues installing Accenture SFMC DevTools, please check out th
|
|
|
123
123
|
1. Install Accenture SFMC DevTools by running `npm install -g mcdev` (prefix with `sudo` on MacOS)
|
|
124
124
|
- If you get an error, please see the below troubleshooting section.
|
|
125
125
|
|
|
126
|
-
When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.
|
|
126
|
+
When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.10`).
|
|
127
127
|
|
|
128
128
|
> **_Side note for proud nerds_:**
|
|
129
129
|
>
|
|
@@ -203,7 +203,7 @@ Click on `Install All` to quickly get things ready or review the recommendations
|
|
|
203
203
|
|
|
204
204
|

|
|
205
205
|
|
|
206
|
-
The "Workspace Recommendations" were defined by Accenture SFMC DevTools. Clicking on the little cloud icon will install all at once. The "Other Recommendations" are auto-generated by VS Code and are not controlled by Accenture SFMC DevTools. You _may_ look through those as well, but they might also be completely irrelevant
|
|
206
|
+
The "Workspace Recommendations" were defined by Accenture SFMC DevTools. Clicking on the little cloud icon will install all at once. The "Other Recommendations" are auto-generated by VS Code and are not controlled by Accenture SFMC DevTools. You _may_ look through those as well, but they might also be completely irrelevant to you.
|
|
207
207
|
|
|
208
208
|
**Node modules:**
|
|
209
209
|
|
|
@@ -277,10 +277,10 @@ _Note: Regardless of which tag or branch you install_
|
|
|
277
277
|
**Install specific version (using a version tag on npm):**
|
|
278
278
|
|
|
279
279
|
```bash
|
|
280
|
-
npm install -g mcdev@4.1.
|
|
280
|
+
npm install -g mcdev@4.1.10
|
|
281
281
|
```
|
|
282
282
|
|
|
283
|
-
**Warning**: When you used the above method to install Accenture SFMC DevTools for a specific version or tag, trying to [update Accenture SFMC DevTools](#updating-mcdev) might not download the most recently published official version but instead stay on the version or branch you previously selected (in the above examples: develop, 4.1.
|
|
283
|
+
**Warning**: When you used the above method to install Accenture SFMC DevTools for a specific version or tag, trying to [update Accenture SFMC DevTools](#updating-mcdev) might not download the most recently published official version but instead stay on the version or branch you previously selected (in the above examples: develop, 4.1.10)!
|
|
284
284
|
|
|
285
285
|
> **Note**: The version is currently _not_ updated on the developer branch until a new release is published. Hence, you will not see a change if you run `mcdev --version`.
|
|
286
286
|
|
|
@@ -288,7 +288,7 @@ npm install -g mcdev@4.1.8
|
|
|
288
288
|
|
|
289
289
|
<a id="markdown-using-custom-clis" name="using-custom-clis"></a>
|
|
290
290
|
|
|
291
|
-
Some users of Accenture SFMC DevTools prefer to use git bash or other CLIs instead of the operating system's default. Please note that some of the functionality of Accenture SFMC DevTools but also
|
|
291
|
+
Some users of Accenture SFMC DevTools prefer to use git bash or other CLIs instead of the operating system's default. Please note that some of the functionality of Accenture SFMC DevTools but also other tools like the Node package manager (npm) do not necessarily function properly in these.
|
|
292
292
|
|
|
293
293
|
If you encounter problems, we strongly recommend first trying it in the default CLI.
|
|
294
294
|
|
|
@@ -476,9 +476,20 @@ Example URL: `https://mcg123abcysykllg-0321cbs8bbt64.auth.marketingcloudapis.com
|
|
|
476
476
|
> You can run this command without the interactive wizard asking questions using the `--skipInteraction` (or short`--yes`/`--y`) flag. In this case, you need to provide a few values in the command:
|
|
477
477
|
>
|
|
478
478
|
> ```bash
|
|
479
|
-
> mcdev init --y.credentialName "yourCustomCredentialName" --y.client_id "yourClientIdHere" --y.client_secret "yourClientSecretHere" --y.auth_url "https://yourTenantSubdomainHere.auth.marketingcloudapis.com/" --y.gitRemoteUrl "https://my.git.server.com/myrepo.git" --y.account_id 00000000 --y.
|
|
479
|
+
> mcdev init --y.credentialName "yourCustomCredentialName" --y.client_id "yourClientIdHere" --y.client_secret "yourClientSecretHere" --y.auth_url "https://yourTenantSubdomainHere.auth.marketingcloudapis.com/" --y.gitRemoteUrl "https://my.git.server.com/myrepo.git" --y.account_id 00000000 --y.downloadBUs "true" --y.gitPush "true"
|
|
480
480
|
> ```
|
|
481
481
|
|
|
482
|
+
| CLI Argument | Description |
|
|
483
|
+
| -------------------- | ---------------------------------------- |
|
|
484
|
+
| `--y.credentialName` | Credential name of your Business Unit |
|
|
485
|
+
| `--y.client_id` | Salesforce Marketing Cloud client ID |
|
|
486
|
+
| `--y.client_secret` | Salesforce Marketing Cloud client secret |
|
|
487
|
+
| `--y.auth_url` | Marketing cloud auth url |
|
|
488
|
+
| `--y.gitRemoteUrl` | URL of your git remote repo |
|
|
489
|
+
| `--y.account_id` | MID of the parent BU |
|
|
490
|
+
| `--y.downloadBUs` | Download all the BUs: `true` or `false` |
|
|
491
|
+
| `--y.gitPush` | Do the first git push: `true` or `false` |
|
|
492
|
+
|
|
482
493
|
#### 6.1.2. upgrade
|
|
483
494
|
|
|
484
495
|
<a id="markdown-upgrade" name="upgrade"></a>
|
|
@@ -859,7 +870,7 @@ _Alias:_ `mcdev bd`
|
|
|
859
870
|
The `buildDefinition` command allows to prepare the deployments to one or multiple targets based on templates and [Market Configuration](#market-configuration).
|
|
860
871
|
After you have created your templates via `retrieveAsTemplate` (or manually) in your `template/dataExtension/` folder run this command to create the final deployable files in your respective `retrieve/<business unit>/` folder.
|
|
861
872
|
|
|
862
|
-
This allows you to double-check if you
|
|
873
|
+
This allows you to double-check if you changed something by comparing the before and after using your favorite Git client. You then have to manually copy the files you want to deploy into the respective `deploy/` folder.
|
|
863
874
|
|
|
864
875
|
> **Note**: Before using this command, you need to configure your markets first! Check out our guide on [Market Configuration](#market-configuration) to understand how to use templating and prepare your market config.
|
|
865
876
|
|
|
@@ -1119,7 +1130,7 @@ The central config in `.mcdevrc.json` holds multiple adjustable settings:
|
|
|
1119
1130
|
| metaDataTypes.documentOnRetrieve | ['role','dataExtension'] | automatically executes `document` for selected types |
|
|
1120
1131
|
| metaDataTypes.retrieve | _changes with each release_ | check [Metadata Type Support](#metadata-type-support) for current list |
|
|
1121
1132
|
|
|
1122
|
-
### 7.2. Metadata
|
|
1133
|
+
### 7.2. Metadata-specific settings & options
|
|
1123
1134
|
|
|
1124
1135
|
<a id="markdown-metadata-specific-settings" name="metadata-specific-settings"></a>
|
|
1125
1136
|
|
|
@@ -1130,7 +1141,7 @@ The way the retention policy is saved is a bit misleading and hence we wanted to
|
|
|
1130
1141
|
| Field | Description | Values |
|
|
1131
1142
|
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------ |
|
|
1132
1143
|
| **DataRetentionPeriod** | this field should print the value of the unit of measure but it unfortunately is off by one (e.g. showing "weeks" instead of "months"). Also, it seems to have no impact on what's stored.<br> We therefore excluded it from retrieve/deploy | - |
|
|
1133
|
-
| **DataRetentionPeriodUnitOfMeasure** | represents drop
|
|
1144
|
+
| **DataRetentionPeriodUnitOfMeasure** | represents drop-down for "period after" selection | 6: years<br>5: months<br>4: weeks<br>2: days |
|
|
1134
1145
|
| **DataRetentionPeriodLength** | represents number field for "period after" selection | min: 1<br>max: 999 |
|
|
1135
1146
|
| **RowBasedRetention** | only true if "delete individual records" is selected, otherwise false | true / false |
|
|
1136
1147
|
| **ResetRetentionPeriodOnImport** | true if "Reset period on import" is checked. | This option is always false if "delete individual records" is selected | true / false |
|
|
@@ -1158,7 +1169,7 @@ There are a few rules to keep in mind when playing with Data Extensions fields:
|
|
|
1158
1169
|
|
|
1159
1170
|
#### 7.2.3. Renaming fields of a Data Extensions
|
|
1160
1171
|
|
|
1161
|
-
With a small addition to the Data Extension's JSON it is possible to rename fields via MC DevTools. Imagine the following Data Extension:
|
|
1172
|
+
With a small addition to the Data Extension's JSON, it is possible to rename fields via MC DevTools. Imagine the following Data Extension:
|
|
1162
1173
|
|
|
1163
1174
|
```json
|
|
1164
1175
|
{
|
|
@@ -1273,7 +1284,7 @@ Here is a simple example with one DEV BU, 1 QA BU and 2 PROD BUs:
|
|
|
1273
1284
|
}
|
|
1274
1285
|
```
|
|
1275
1286
|
|
|
1276
|
-
Way more complex example with dedicated "Parent" BUs per environment (DEV, QA, PROD) and multiple country-specific BUs for QA and
|
|
1287
|
+
Way more complex example with dedicated "Parent" BUs per environment (DEV, QA, PROD) and multiple country-specific BUs for QA and PROD:
|
|
1277
1288
|
|
|
1278
1289
|
```json
|
|
1279
1290
|
// example market config in your .mcdevrc.json
|
|
@@ -1494,7 +1505,7 @@ Assuming you cloned Accenture SFMC DevTools into `C:\repos\sfmc-devtools\` (or `
|
|
|
1494
1505
|
|
|
1495
1506
|
This should tell npm to create a symlink to your cloned local directory, allowing you to see updates you make in your mcdev repo instantly.
|
|
1496
1507
|
|
|
1497
|
-
To test your new **global** developer setup, run `mcdev --version` in CLI which should return the current version (e.g. `4.1.
|
|
1508
|
+
To test your new **global** developer setup, run `mcdev --version` in CLI which should return the current version (e.g. `4.1.10`). Then, go into your mcdev repo and update the version with the suffix `-dev`, e.g. to `4.1.10-dev` and then run `mcdev --version` again to verify that your change propagates instantly.
|
|
1498
1509
|
|
|
1499
1510
|
> **Not recommended:** Alternatively, you can install it locally only by opening a terminal in your project directory and executing `npm install --save-dev "C:\repos\sfmc-devtools"`
|
|
1500
1511
|
> To run the local version you need to prepend "npx" before your commands, e.g. `npx mcdev --version`
|
|
@@ -1532,7 +1543,7 @@ The following explains how you _could_ install it locally for certain edge cases
|
|
|
1532
1543
|
4. Afterwards, install Accenture SFMC DevTools by running `npm install --save-dev mcdev`
|
|
1533
1544
|
- If you get an error, please see the below troubleshooting section.
|
|
1534
1545
|
|
|
1535
|
-
When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.
|
|
1546
|
+
When completed run `mcdev --version` and it will show you which version you installed (e.g. `4.1.10`).
|
|
1536
1547
|
|
|
1537
1548
|
### 9.3. NPM Scripts
|
|
1538
1549
|
|
|
@@ -4440,6 +4440,7 @@ Retrieves metadata from a business unit and saves it to the local filesystem.
|
|
|
4440
4440
|
* [Retriever](#Retriever)
|
|
4441
4441
|
* [new Retriever(properties, buObject)](#new_Retriever_new)
|
|
4442
4442
|
* [.retrieve(metadataTypes, [namesOrKeys], [templateVariables], [changelogOnly])](#Retriever+retrieve) ⇒ <code>Promise.<TYPE.MultiMetadataTypeList></code>
|
|
4443
|
+
* [._getTypeDependencies(metadataTypes)](#Retriever+_getTypeDependencies) ⇒ <code>Array.<TYPE.SupportedMetadataTypes></code>
|
|
4443
4444
|
|
|
4444
4445
|
<a name="new_Retriever_new"></a>
|
|
4445
4446
|
|
|
@@ -4467,6 +4468,18 @@ Retrieve metadata of specified types into local file system and Retriever.metada
|
|
|
4467
4468
|
| [templateVariables] | <code>TYPE.TemplateMap</code> | Object of values which can be replaced (in case of templating) |
|
|
4468
4469
|
| [changelogOnly] | <code>boolean</code> | skip saving, only create json in memory |
|
|
4469
4470
|
|
|
4471
|
+
<a name="Retriever+_getTypeDependencies"></a>
|
|
4472
|
+
|
|
4473
|
+
### retriever.\_getTypeDependencies(metadataTypes) ⇒ <code>Array.<TYPE.SupportedMetadataTypes></code>
|
|
4474
|
+
helper for [retrieve](retrieve) to get all dependencies of the given types
|
|
4475
|
+
|
|
4476
|
+
**Kind**: instance method of [<code>Retriever</code>](#Retriever)
|
|
4477
|
+
**Returns**: <code>Array.<TYPE.SupportedMetadataTypes></code> - unique list dependent metadata types
|
|
4478
|
+
|
|
4479
|
+
| Param | Type | Description |
|
|
4480
|
+
| --- | --- | --- |
|
|
4481
|
+
| metadataTypes | <code>Array.<TYPE.SupportedMetadataTypes></code> | list of metadata types to retrieve; can include subtypes! |
|
|
4482
|
+
|
|
4470
4483
|
<a name="Util"></a>
|
|
4471
4484
|
|
|
4472
4485
|
## Util
|
package/lib/Retriever.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const TYPE = require('../types/mcdev.d');
|
|
4
4
|
const MetadataTypeInfo = require('./MetadataTypeInfo');
|
|
5
|
+
const MetadataDefinitions = require('./MetadataTypeDefinitions');
|
|
5
6
|
const Util = require('./util/util');
|
|
6
7
|
const File = require('./util/file');
|
|
7
8
|
const cache = require('./util/cache');
|
|
@@ -63,6 +64,9 @@ class Retriever {
|
|
|
63
64
|
reset: '\x1B[0m',
|
|
64
65
|
dim: '\x1B[2m',
|
|
65
66
|
};
|
|
67
|
+
// ensure we know which real dependencies we have to ensure we cache those completely
|
|
68
|
+
const dependencies = this._getTypeDependencies(metadataTypes);
|
|
69
|
+
|
|
66
70
|
for (const metadataType of Util.getMetadataHierachy(metadataTypes)) {
|
|
67
71
|
const [type, subType] = metadataType.split('-');
|
|
68
72
|
// if types were added by getMetadataHierachy() for caching, make sure the key-list is set to [null] for them which will retrieve all
|
|
@@ -94,6 +98,18 @@ class Retriever {
|
|
|
94
98
|
)
|
|
95
99
|
);
|
|
96
100
|
} else {
|
|
101
|
+
let cacheResult = null;
|
|
102
|
+
if (
|
|
103
|
+
Object.keys(typeKeyMap[metadataType])[0] !== null &&
|
|
104
|
+
(dependencies.includes(type) || dependencies.includes(metadataType))
|
|
105
|
+
) {
|
|
106
|
+
// if we have a key-list and the type is a dependency, we need to cache the whole type
|
|
107
|
+
Util.logger.info(`Caching dependent Metadata: ${metadataType}`);
|
|
108
|
+
cacheResult = await MetadataTypeInfo[type].retrieveForCache(
|
|
109
|
+
this.buObject,
|
|
110
|
+
subType
|
|
111
|
+
);
|
|
112
|
+
}
|
|
97
113
|
Util.logger.info(
|
|
98
114
|
`Retrieving: ${metadataType}` +
|
|
99
115
|
(typeKeyMap[metadataType][0] !== null
|
|
@@ -115,6 +131,10 @@ class Retriever {
|
|
|
115
131
|
)
|
|
116
132
|
)
|
|
117
133
|
));
|
|
134
|
+
if (Array.isArray(result) && cacheResult !== null) {
|
|
135
|
+
// if we have a key-list and the type is a dependency, we need to cache the whole type
|
|
136
|
+
result = [cacheResult, ...result];
|
|
137
|
+
}
|
|
118
138
|
if (changelogOnly) {
|
|
119
139
|
// add folder to changelog
|
|
120
140
|
for (const key of Object.keys(result.metadata)) {
|
|
@@ -124,10 +144,11 @@ class Retriever {
|
|
|
124
144
|
}
|
|
125
145
|
if (result) {
|
|
126
146
|
if (Array.isArray(result)) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
147
|
+
for (const result_i of result) {
|
|
148
|
+
if (result_i?.metadata && Object.keys(result_i.metadata).length) {
|
|
149
|
+
cache.mergeMetadata(type, result_i.metadata);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
131
152
|
if (metadataTypes.includes(type) || metadataTypes.includes(metadataType)) {
|
|
132
153
|
retrieveChangelog[type] = result
|
|
133
154
|
.filter((el) => !!el)
|
|
@@ -148,6 +169,27 @@ class Retriever {
|
|
|
148
169
|
}
|
|
149
170
|
return retrieveChangelog;
|
|
150
171
|
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* helper for {@link retrieve} to get all dependencies of the given types
|
|
175
|
+
*
|
|
176
|
+
* @param {TYPE.SupportedMetadataTypes[]} metadataTypes list of metadata types to retrieve; can include subtypes!
|
|
177
|
+
* @returns {TYPE.SupportedMetadataTypes[]} unique list dependent metadata types
|
|
178
|
+
*/
|
|
179
|
+
_getTypeDependencies(metadataTypes) {
|
|
180
|
+
let dependencies = [];
|
|
181
|
+
for (const metadataType of metadataTypes) {
|
|
182
|
+
const type = metadataType.split('-')[0];
|
|
183
|
+
// if they have dependencies then add a dependency pair for each type
|
|
184
|
+
if (MetadataDefinitions[type].dependencies.length > 0) {
|
|
185
|
+
dependencies.push(
|
|
186
|
+
...MetadataDefinitions[type].dependencies.map((dep) => dep.split('-')[0])
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
dependencies = [...new Set(dependencies)];
|
|
191
|
+
return dependencies;
|
|
192
|
+
}
|
|
151
193
|
}
|
|
152
194
|
|
|
153
195
|
module.exports = Retriever;
|
|
@@ -770,6 +770,11 @@ class MetadataType {
|
|
|
770
770
|
}
|
|
771
771
|
|
|
772
772
|
if (retrieveDir) {
|
|
773
|
+
// defined colors for optionally printing the keys we filtered by
|
|
774
|
+
const color = {
|
|
775
|
+
reset: '\x1B[0m',
|
|
776
|
+
dim: '\x1B[2m',
|
|
777
|
+
};
|
|
773
778
|
const savedMetadata = await this.saveResults(
|
|
774
779
|
results,
|
|
775
780
|
retrieveDir,
|
|
@@ -779,7 +784,10 @@ class MetadataType {
|
|
|
779
784
|
Util.logger.info(
|
|
780
785
|
`Downloaded: ${overrideType || this.definition.type} (${
|
|
781
786
|
Object.keys(savedMetadata).length
|
|
782
|
-
})`
|
|
787
|
+
})` +
|
|
788
|
+
(singleRetrieve !== null
|
|
789
|
+
? ` ${color.dim}(Key: ${singleRetrieve})${color.reset}`
|
|
790
|
+
: '')
|
|
783
791
|
);
|
|
784
792
|
}
|
|
785
793
|
|
|
@@ -800,7 +808,6 @@ class MetadataType {
|
|
|
800
808
|
const bodyIteratorField = this.definition.bodyIteratorField;
|
|
801
809
|
const keyField = this.definition.keyField;
|
|
802
810
|
const metadataStructure = {};
|
|
803
|
-
|
|
804
811
|
if (body !== null) {
|
|
805
812
|
if (Array.isArray(body)) {
|
|
806
813
|
// in some cases data is just an array
|
|
@@ -816,7 +823,6 @@ class MetadataType {
|
|
|
816
823
|
} else if (singleRetrieve) {
|
|
817
824
|
// some types will return a single item intead of an array if the key is supported by their api
|
|
818
825
|
metadataStructure[singleRetrieve] = body;
|
|
819
|
-
|
|
820
826
|
return metadataStructure;
|
|
821
827
|
}
|
|
822
828
|
if (
|
|
@@ -827,6 +833,8 @@ class MetadataType {
|
|
|
827
833
|
const single = {};
|
|
828
834
|
single[singleRetrieve] = metadataStructure[singleRetrieve];
|
|
829
835
|
return single;
|
|
836
|
+
} else if (singleRetrieve) {
|
|
837
|
+
return {};
|
|
830
838
|
}
|
|
831
839
|
}
|
|
832
840
|
return metadataStructure;
|
|
@@ -460,7 +460,7 @@ module.exports = {
|
|
|
460
460
|
],
|
|
461
461
|
binarySubtypes: ['archive', 'audio', 'document', 'image', 'rawimage', 'video'],
|
|
462
462
|
extendedSubTypes: {
|
|
463
|
-
asset: ['webpage', 'webtemplate', 'jsonmessage', 'icemailformblock'],
|
|
463
|
+
asset: ['webpage', 'webtemplate', 'jsonmessage', 'icemailformblock', 'asset'],
|
|
464
464
|
image: [
|
|
465
465
|
'ai',
|
|
466
466
|
'psd',
|
|
@@ -486,6 +486,7 @@ module.exports = {
|
|
|
486
486
|
'pbm',
|
|
487
487
|
'ppm',
|
|
488
488
|
'svg',
|
|
489
|
+
'image',
|
|
489
490
|
],
|
|
490
491
|
rawimage: [
|
|
491
492
|
'3fr',
|
|
@@ -523,6 +524,7 @@ module.exports = {
|
|
|
523
524
|
'sr2',
|
|
524
525
|
'srw',
|
|
525
526
|
'x3f',
|
|
527
|
+
'rawimage',
|
|
526
528
|
],
|
|
527
529
|
video: [
|
|
528
530
|
'3gp',
|
|
@@ -551,6 +553,7 @@ module.exports = {
|
|
|
551
553
|
'wmv',
|
|
552
554
|
'rm',
|
|
553
555
|
'ogv',
|
|
556
|
+
'video',
|
|
554
557
|
],
|
|
555
558
|
document: [
|
|
556
559
|
'indd',
|
|
@@ -596,6 +599,7 @@ module.exports = {
|
|
|
596
599
|
'key',
|
|
597
600
|
'keynote',
|
|
598
601
|
'pez',
|
|
602
|
+
'document',
|
|
599
603
|
],
|
|
600
604
|
audio: [
|
|
601
605
|
'aac',
|
|
@@ -613,6 +617,7 @@ module.exports = {
|
|
|
613
617
|
'ra',
|
|
614
618
|
'vox',
|
|
615
619
|
'voc',
|
|
620
|
+
'audio',
|
|
616
621
|
],
|
|
617
622
|
archive: [
|
|
618
623
|
'7z',
|
|
@@ -630,6 +635,7 @@ module.exports = {
|
|
|
630
635
|
'tar',
|
|
631
636
|
'zip',
|
|
632
637
|
'gpg',
|
|
638
|
+
'archive',
|
|
633
639
|
],
|
|
634
640
|
code: [
|
|
635
641
|
'htm',
|
|
@@ -651,8 +657,9 @@ module.exports = {
|
|
|
651
657
|
'as',
|
|
652
658
|
'fla',
|
|
653
659
|
'eml',
|
|
660
|
+
'code',
|
|
654
661
|
],
|
|
655
|
-
textfile: ['text', 'txt'],
|
|
662
|
+
textfile: ['text', 'txt', 'textfile'],
|
|
656
663
|
block: [
|
|
657
664
|
'freeformblock',
|
|
658
665
|
'textblock',
|
|
@@ -667,9 +674,10 @@ module.exports = {
|
|
|
667
674
|
'socialfollowblock',
|
|
668
675
|
'buttonblock',
|
|
669
676
|
'layoutblock',
|
|
677
|
+
'block',
|
|
670
678
|
],
|
|
671
|
-
|
|
672
|
-
|
|
679
|
+
template: ['defaulttemplate', 'template'],
|
|
680
|
+
message: ['templatebasedemail', 'htmlemail', 'textonlyemail', 'message'],
|
|
673
681
|
other: [
|
|
674
682
|
'smartcaptureblock',
|
|
675
683
|
'smartcaptureformfieldblock',
|
|
@@ -688,6 +696,21 @@ module.exports = {
|
|
|
688
696
|
],
|
|
689
697
|
},
|
|
690
698
|
typeMapping: {
|
|
699
|
+
asset: 1,
|
|
700
|
+
file: 2, // not inherited on Asset Types
|
|
701
|
+
block: 3,
|
|
702
|
+
template: 4,
|
|
703
|
+
message: 5,
|
|
704
|
+
custom: 6, // not inherited on Asset Types
|
|
705
|
+
default: 7, // not inherited on Asset Types
|
|
706
|
+
image: 8,
|
|
707
|
+
rawimage: 9,
|
|
708
|
+
video: 10,
|
|
709
|
+
document: 11,
|
|
710
|
+
audio: 12,
|
|
711
|
+
archive: 13,
|
|
712
|
+
code: 14,
|
|
713
|
+
textfile: 15,
|
|
691
714
|
ai: 16,
|
|
692
715
|
psd: 17,
|
|
693
716
|
pdd: 18,
|
package/lib/util/init.git.js
CHANGED
|
@@ -110,7 +110,7 @@ const Init = {
|
|
|
110
110
|
},
|
|
111
111
|
]);
|
|
112
112
|
}
|
|
113
|
-
if (skipInteraction.gitPush === '
|
|
113
|
+
if (skipInteraction.gitPush === 'true' || responses?.gitPush) {
|
|
114
114
|
Util.execSync('git', ['push', '-u', 'origin', 'master']);
|
|
115
115
|
}
|
|
116
116
|
} else if (remoteBranchesExist === true) {
|
package/lib/util/init.js
CHANGED
|
@@ -202,7 +202,7 @@ const Init = {
|
|
|
202
202
|
},
|
|
203
203
|
]);
|
|
204
204
|
}
|
|
205
|
-
if (skipInteraction.
|
|
205
|
+
if (skipInteraction.downloadBUs === 'true' || responses?.initialRetrieveAll) {
|
|
206
206
|
Util.execSync('mcdev', ['retrieve', bu]);
|
|
207
207
|
|
|
208
208
|
if (gitStatus === 'init') {
|
package/package.json
CHANGED