mcdev 7.0.3 → 7.0.4
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 +1 -0
- package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +1 -0
- package/.github/workflows/code-test.yml +48 -0
- package/.husky/pre-commit +1 -1
- package/@types/lib/Builder.d.ts +13 -13
- package/@types/lib/Builder.d.ts.map +1 -1
- package/@types/lib/Deployer.d.ts +16 -16
- package/@types/lib/Deployer.d.ts.map +1 -1
- package/@types/lib/Retriever.d.ts +15 -15
- package/@types/lib/Retriever.d.ts.map +1 -1
- package/@types/lib/cli.d.ts +1 -1
- package/@types/lib/cli.d.ts.map +1 -1
- package/@types/lib/index.d.ts +34 -34
- package/@types/lib/index.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Asset.d.ts +18 -43
- package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeGroup.d.ts +3 -8
- package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
- package/@types/lib/metadataTypes/AttributeSet.d.ts +5 -21
- package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Automation.d.ts +36 -49
- package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Campaign.d.ts +11 -18
- package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ContentArea.d.ts +12 -31
- package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtension.d.ts +23 -31
- package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionField.d.ts +12 -18
- package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +11 -11
- package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtract.d.ts +12 -28
- package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DataExtractType.d.ts +10 -10
- package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts +10 -10
- package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Discovery.d.ts +10 -10
- package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Email.d.ts +13 -34
- package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
- package/@types/lib/metadataTypes/EmailSend.d.ts +10 -10
- package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Event.d.ts +19 -16
- package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
- package/@types/lib/metadataTypes/FileLocation.d.ts +10 -10
- package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
- package/@types/lib/metadataTypes/FileTransfer.d.ts +11 -18
- package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Filter.d.ts +10 -10
- package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Folder.d.ts +10 -10
- package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
- package/@types/lib/metadataTypes/ImportFile.d.ts +11 -15
- package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Journey.d.ts +13 -32
- package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
- package/@types/lib/metadataTypes/List.d.ts +12 -12
- package/@types/lib/metadataTypes/List.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MetadataType.d.ts +23 -23
- package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileCode.d.ts +11 -20
- package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileKeyword.d.ts +14 -14
- package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
- package/@types/lib/metadataTypes/MobileMessage.d.ts +14 -42
- package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Query.d.ts +12 -12
- package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Role.d.ts +11 -11
- package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Script.d.ts +15 -24
- package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SendClassification.d.ts +10 -10
- package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
- package/@types/lib/metadataTypes/SenderProfile.d.ts +11 -19
- package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts +12 -12
- package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts +11 -32
- package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalPush.d.ts +12 -21
- package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts +12 -18
- package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
- package/@types/lib/metadataTypes/TriggeredSend.d.ts +13 -18
- package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
- package/@types/lib/metadataTypes/User.d.ts +22 -40
- package/@types/lib/metadataTypes/User.d.ts.map +1 -1
- package/@types/lib/metadataTypes/Verification.d.ts +13 -13
- package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
- package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +7 -1
- package/@types/lib/util/auth.d.ts +19 -18
- package/@types/lib/util/auth.d.ts.map +1 -1
- package/@types/lib/util/businessUnit.d.ts +17 -17
- package/@types/lib/util/businessUnit.d.ts.map +1 -1
- package/@types/lib/util/cache.d.ts +24 -32
- package/@types/lib/util/cache.d.ts.map +1 -1
- package/@types/lib/util/cli.d.ts +27 -27
- package/@types/lib/util/cli.d.ts.map +1 -1
- package/@types/lib/util/config.d.ts +20 -20
- package/@types/lib/util/config.d.ts.map +1 -1
- package/@types/lib/util/devops.d.ts +21 -21
- package/@types/lib/util/devops.d.ts.map +1 -1
- package/@types/lib/util/file.d.ts +179 -18
- package/@types/lib/util/file.d.ts.map +1 -1
- package/@types/lib/util/init.config.d.ts +19 -19
- package/@types/lib/util/init.config.d.ts.map +1 -1
- package/@types/lib/util/init.d.ts +20 -20
- package/@types/lib/util/init.d.ts.map +1 -1
- package/@types/lib/util/init.git.d.ts +2 -2
- package/@types/lib/util/init.git.d.ts.map +1 -1
- package/@types/lib/util/init.npm.d.ts +2 -2
- package/@types/lib/util/init.npm.d.ts.map +1 -1
- package/@types/lib/util/replaceContentBlockReference.d.ts +28 -28
- package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
- package/@types/lib/util/util.d.ts +33 -37
- package/@types/lib/util/util.d.ts.map +1 -1
- package/@types/types/mcdev.d.d.ts +73 -52
- package/@types/types/mcdev.d.d.ts.map +1 -1
- package/eslint.config.js +0 -1
- package/lib/Deployer.js +1 -1
- package/lib/Retriever.js +4 -1
- package/lib/cli.js +209 -278
- package/lib/index.js +89 -43
- package/lib/metadataTypes/Asset.js +1 -0
- package/lib/metadataTypes/DataExtension.js +3 -3
- package/lib/metadataTypes/DataExtensionField.js +0 -1
- package/lib/metadataTypes/Event.js +199 -35
- package/lib/metadataTypes/Folder.js +1 -1
- package/lib/metadataTypes/Journey.js +10 -2
- package/lib/metadataTypes/MetadataType.js +3 -4
- package/lib/metadataTypes/Role.js +9 -7
- package/lib/metadataTypes/SenderProfile.js +1 -0
- package/lib/metadataTypes/TransactionalEmail.js +2 -2
- package/lib/metadataTypes/TriggeredSend.js +1 -0
- package/lib/metadataTypes/User.js +31 -27
- package/lib/metadataTypes/definitions/Event.definition.js +8 -8
- package/lib/util/auth.js +0 -1
- package/lib/util/cli.js +0 -1
- package/lib/util/devops.js +2 -3
- package/lib/util/file.js +7 -10
- package/lib/util/replaceContentBlockReference.js +3 -1
- package/package.json +11 -9
- package/test/general.test.js +20 -2
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/event/testExisting_event.event-meta.json +201 -0
- package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withExistingDE.event-meta.json +232 -0
- package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withSchema.event-meta.json +193 -0
- package/test/resources/9999999/dataExtension/retrieve-CustomerKey=testNew_event_withSchema-response.xml +50 -0
- package/test/resources/9999999/dataExtension/retrieve-createdViaEvent-response.xml +50 -0
- package/test/resources/9999999/dataExtension/retrieve-response.xml +48 -0
- package/test/resources/9999999/dataExtension/retrieve_event_withSchema-expected.json +219 -0
- package/test/resources/9999999/dataExtension/update-afterCreatedViaEvent-response.xml +55 -0
- package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_event_withSchema-response.xml +461 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKeyINtestExisting_dataExtension,testNew_dataExtension-response.xml +133 -0
- package/test/resources/9999999/dataExtensionField/retrieve-response.xml +870 -0
- package/test/resources/9999999/event/build-expected.json +228 -0
- package/test/resources/9999999/event/get-expected.json +235 -0
- package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +17 -0
- package/test/resources/9999999/event/post_withExistingDE-expected.json +21 -0
- package/test/resources/9999999/event/post_withSchema-callout-expected.json +196 -0
- package/test/resources/9999999/event/post_withSchema-expected.json +232 -0
- package/test/resources/9999999/event/put-callout-expected.json +202 -0
- package/test/resources/9999999/event/put-expected.json +233 -0
- package/test/resources/9999999/event/template-expected.json +228 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/get-response.json +252 -2
- package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/delete-response.txt +0 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/put-response.json +241 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/post_withExistingDE-response.json +26 -0
- package/test/resources/9999999/interaction/v1/eventDefinitions/post_withSchema-response.json +241 -0
- package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response.txt +1 -0
- package/test/type.asset.test.js +0 -3
- package/test/type.automation.test.js +1 -1
- package/test/type.dataExtension.test.js +4 -4
- package/test/type.event.test.js +287 -6
- package/test/type.journey.test.js +13 -0
- package/test/type.user.test.js +1 -1
- package/test/utils.js +18 -6
- package/tsconfig.json +6 -1
- package/{jsconfig.json → tsconfig.npmScripts.json} +1 -1
- package/tsconfig.precommit.json +26 -0
- package/types/mcdev.d.js +12 -13
package/test/utils.js
CHANGED
|
@@ -16,6 +16,17 @@ let apimock;
|
|
|
16
16
|
import { handleSOAPRequest, handleRESTRequest, soapUrl, restUrl } from './resourceFactory.js';
|
|
17
17
|
const authResources = File.readJsonSync(path.join(__dirname, './resources/auth.json'));
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* gets file from Retrieve folder
|
|
21
|
+
*
|
|
22
|
+
* @param {string} from source path (starting in bu folder)
|
|
23
|
+
* @param {string} to target path (starting in bu folder)
|
|
24
|
+
* @param {string} [mid] used when we need to test on ParentBU
|
|
25
|
+
* @returns {Promise.<{status:'ok'|'skipped'|'failed', statusMessage:string, file:string}>} -
|
|
26
|
+
*/
|
|
27
|
+
export async function copyFile(from, to, mid = '9999999') {
|
|
28
|
+
return File.copyFileSimple(`./test/resources/${mid}/${from}`, `./test/resources/${mid}/${to}`);
|
|
29
|
+
}
|
|
19
30
|
/**
|
|
20
31
|
* gets file from Retrieve folder
|
|
21
32
|
*
|
|
@@ -168,7 +179,6 @@ export function mockSetup(isDeploy) {
|
|
|
168
179
|
skipInteraction: undefined,
|
|
169
180
|
});
|
|
170
181
|
}
|
|
171
|
-
// @ts-expect-error somehow, MockAdapter does not expect type AxiosInstance
|
|
172
182
|
apimock = new MockAdapter(axiosInstance, { onNoMatch: 'throwException' });
|
|
173
183
|
// set access_token to mid to allow for autorouting of mock to correct resources
|
|
174
184
|
apimock.onPost(authResources.success.url).reply((config) => {
|
|
@@ -280,7 +290,7 @@ export function getRestCallout(method, url) {
|
|
|
280
290
|
* @param {string} [objectType] optionall filter requests by object
|
|
281
291
|
* @returns {object[]} json payload of the requests
|
|
282
292
|
*/
|
|
283
|
-
export function
|
|
293
|
+
export function getSoapCallouts(requestAction, objectType) {
|
|
284
294
|
const method = 'post';
|
|
285
295
|
const url = '/Service.asmx';
|
|
286
296
|
const subset = apimock.history[method];
|
|
@@ -290,10 +300,12 @@ export function getSoapCallout(requestAction, objectType) {
|
|
|
290
300
|
// find soap requestst of the correct request type
|
|
291
301
|
.filter((item) => item.headers.SOAPAction === requestAction)
|
|
292
302
|
// find soap requestst of the correct request type
|
|
293
|
-
.filter(
|
|
294
|
-
(
|
|
295
|
-
|
|
296
|
-
item.data.
|
|
303
|
+
.filter((item) =>
|
|
304
|
+
!objectType || item.data.includes('<ObjectType')
|
|
305
|
+
? item.data.split('<ObjectType>')[1].split('</ObjectType>')[0] === objectType
|
|
306
|
+
: item.data.includes('<Objects xsi:type="')
|
|
307
|
+
? item.data.split('<Objects xsi:type="')[1].split('">')[0] === objectType
|
|
308
|
+
: false
|
|
297
309
|
)
|
|
298
310
|
.map((item) => item.data);
|
|
299
311
|
return myCallout;
|
package/tsconfig.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
// Change this to match your project
|
|
3
|
-
"include": ["lib
|
|
3
|
+
"include": ["lib/**/*.js", "types/**/*.js", "test/**/*.js"],
|
|
4
4
|
"compilerOptions": {
|
|
5
|
+
"module": "nodenext",
|
|
6
|
+
"moduleResolution": "nodenext",
|
|
7
|
+
"checkJs": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"target": "es2022",
|
|
5
10
|
// Tells TypeScript to read JS files, as
|
|
6
11
|
// normally they are ignored as source files
|
|
7
12
|
"allowJs": true,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Change this to match your project
|
|
3
|
+
"include": ["lib/**/*.js"],
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"module": "nodenext",
|
|
6
|
+
"moduleResolution": "nodenext",
|
|
7
|
+
"target": "es2022",
|
|
8
|
+
"checkJs": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
// Tells TypeScript to read JS files, as
|
|
11
|
+
// normally they are ignored as source files
|
|
12
|
+
"allowJs": true,
|
|
13
|
+
// Generate d.ts files
|
|
14
|
+
"declaration": true,
|
|
15
|
+
// This compiler run should
|
|
16
|
+
// only output d.ts files
|
|
17
|
+
"emitDeclarationOnly": true,
|
|
18
|
+
// Types should go into this directory.
|
|
19
|
+
// Removing this would place the .d.ts files
|
|
20
|
+
// next to the .js files
|
|
21
|
+
"outDir": "@types",
|
|
22
|
+
// go to js file when using IDE functions like
|
|
23
|
+
// "Go to Definition" in VSCode
|
|
24
|
+
"declarationMap": true
|
|
25
|
+
}
|
|
26
|
+
}
|
package/types/mcdev.d.js
CHANGED
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
* @property {number} [Client.ID] EID e.g:7281698
|
|
157
157
|
* @property {number} [Client.ModifiedBy] AccountUserID of user who last modified this user
|
|
158
158
|
* @property {'User'|'Installed Package'} c__type -
|
|
159
|
-
* @property {boolean
|
|
159
|
+
* @property {boolean} [IsLocked] (API only)
|
|
160
160
|
* @property {boolean} [Unlock] used to unlock a user that has IsLocked === true
|
|
161
161
|
* @property {boolean} c__IsLocked_readOnly copy of IsLocked
|
|
162
162
|
* @property {string} c__TimeZoneName name of timezone
|
|
@@ -175,11 +175,17 @@
|
|
|
175
175
|
* @typedef {Object.<string, UserDocument>} UserDocumentMap key=customer key
|
|
176
176
|
*/
|
|
177
177
|
/**
|
|
178
|
-
* @typedef {
|
|
179
|
-
* @property {
|
|
180
|
-
* @property {
|
|
181
|
-
* @property {
|
|
182
|
-
* @property {
|
|
178
|
+
* @typedef {object} UserDocumentDocumentHelper
|
|
179
|
+
* @property {string} ActiveFlagDocs docs: user.ActiveFlag === true ? '✓' : '-'
|
|
180
|
+
* @property {string} IsAPIUserDocs docs: user.IsAPIUser === true ? '✓' : '-'
|
|
181
|
+
* @property {string} MustChangePasswordDocs docs: user.MustChangePassword === true ? '✓' : '-'
|
|
182
|
+
* @property {string} DefaultBusinessUnitDocs docs: default MID; BUName after we resolved it
|
|
183
|
+
* @property {string} RolesDocs docs: list of roles as concatenated string
|
|
184
|
+
* @property {string} AssociatedBusDocs docs: list of associated BUs as concatenated string
|
|
185
|
+
* @property {string | number} ModifiedBy docs: user name who last modified this user
|
|
186
|
+
* @property {string} TimeZoneName docs: name of timezone
|
|
187
|
+
* @property {string} IsLockedDocs docs: if the user cannot login
|
|
188
|
+
* @typedef {UserDocument & UserDocumentDocumentHelper} UserDocumentDocument
|
|
183
189
|
*/
|
|
184
190
|
/**
|
|
185
191
|
* @typedef {object} AccountUserConfiguration
|
|
@@ -326,16 +332,9 @@
|
|
|
326
332
|
* @typedef {import('simple-git').DiffResultTextFile & McdevDeltaPkgItem} DeltaPkgItem
|
|
327
333
|
*/
|
|
328
334
|
/**
|
|
329
|
-
* @typedef {import('sfmc-sdk/auth').default} SDKauth
|
|
330
|
-
* @typedef {import('sfmc-sdk/rest').default} SDKrest
|
|
331
|
-
* @typedef {import('sfmc-sdk/soap').default} SDKsoap
|
|
332
335
|
* @typedef {import('sfmc-sdk/util').RestError} RestError
|
|
333
336
|
* @typedef {import('sfmc-sdk/util').SOAPError} SOAPError
|
|
334
337
|
* @typedef {SOAPError & RestError} SDKError
|
|
335
|
-
* @typedef {object} SDK
|
|
336
|
-
* @property {SDKauth} auth SDKauth
|
|
337
|
-
* @property {SDKrest} rest SDKrest
|
|
338
|
-
* @property {SDKsoap} soap SDKsoap
|
|
339
338
|
*/
|
|
340
339
|
|
|
341
340
|
/**
|