From 467cda7da50c00263c933e95d843b44001a5b7e7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Mar 2026 22:03:50 +0000 Subject: [PATCH 01/38] Initial plan From 822394952f6c97e56f8ed5eab264133425d681bb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Mar 2026 22:29:34 +0000 Subject: [PATCH 02/38] #1937 fix shared DEs not resolved when retrieved together with query/attributeSet Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- @types/lib/Retriever.d.ts.map | 2 +- lib/Retriever.js | 3 +- .../automation/v1/queries/get-response.json | 17 +++++++ .../9999999/query/get_sharedDE-expected.json | 11 +++++ .../9999999/query/get_sharedDE-expected.sql | 7 +++ test/type.attributeSet.test.js | 41 ++++++++++++++++ test/type.query.test.js | 47 +++++++++++++++---- 7 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 test/resources/9999999/query/get_sharedDE-expected.json create mode 100644 test/resources/9999999/query/get_sharedDE-expected.sql diff --git a/@types/lib/Retriever.d.ts.map b/@types/lib/Retriever.d.ts.map index f176853fa..7da2a9f15 100644 --- a/@types/lib/Retriever.d.ts.map +++ b/@types/lib/Retriever.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Retriever.d.ts","sourceRoot":"","sources":["../../lib/Retriever.js"],"names":[],"mappings":";uBAUa,OAAO,qBAAqB,EAAE,QAAQ;0BACtC,OAAO,qBAAqB,EAAE,WAAW;8BACzC,OAAO,qBAAqB,EAAE,eAAe;sBAC7C,OAAO,qBAAqB,EAAE,OAAO;+BACrC,OAAO,qBAAqB,EAAE,gBAAgB;mCAC9C,OAAO,qBAAqB,EAAE,oBAAoB;kCAClD,OAAO,qBAAqB,EAAE,mBAAmB;8BACjD,OAAO,qBAAqB,EAAE,eAAe;iCAC7C,OAAO,qBAAqB,EAAE,kBAAkB;oCAChD,OAAO,qBAAqB,EAAE,qBAAqB;mCACnD,OAAO,qBAAqB,EAAE,oBAAoB;gCAClD,OAAO,qBAAqB,EAAE,iBAAiB;0BAC/C,OAAO,qBAAqB,EAAE,WAAW;2BACzC,OAAO,qBAAqB,EAAE,YAAY;AAdvD;;;;;;;;;;;;;;;GAeG;AAEH;;GAEG;AACH;IACI;;;;;OAKG;IACH,wBAHW,OAAO,YACP,QAAQ,EAYlB;IATG,iDAAwB;IACxB,kDAA4B;IAC5B,oBAAkD;IAClD,oBAAkD;IAClD,iBAIE;IAGN;;;;;;;;OAQG;IACH,wBANW,MAAM,EAAE,gBACR,MAAM,EAAE,GAAG,YAAY,sBACvB,WAAW,kBACX,OAAO,GACL,OAAO,CAAE,qBAAqB,CAAC,CAmK3C;IAED;;;;;OAKG;IACH,oCAHW,MAAM,EAAE,GACN,MAAM,EAAE,CAepB;CACJ"} \ No newline at end of file +{"version":3,"file":"Retriever.d.ts","sourceRoot":"","sources":["../../lib/Retriever.js"],"names":[],"mappings":";uBAUa,OAAO,qBAAqB,EAAE,QAAQ;0BACtC,OAAO,qBAAqB,EAAE,WAAW;8BACzC,OAAO,qBAAqB,EAAE,eAAe;sBAC7C,OAAO,qBAAqB,EAAE,OAAO;+BACrC,OAAO,qBAAqB,EAAE,gBAAgB;mCAC9C,OAAO,qBAAqB,EAAE,oBAAoB;kCAClD,OAAO,qBAAqB,EAAE,mBAAmB;8BACjD,OAAO,qBAAqB,EAAE,eAAe;iCAC7C,OAAO,qBAAqB,EAAE,kBAAkB;oCAChD,OAAO,qBAAqB,EAAE,qBAAqB;mCACnD,OAAO,qBAAqB,EAAE,oBAAoB;gCAClD,OAAO,qBAAqB,EAAE,iBAAiB;0BAC/C,OAAO,qBAAqB,EAAE,WAAW;2BACzC,OAAO,qBAAqB,EAAE,YAAY;AAdvD;;;;;;;;;;;;;;;GAeG;AAEH;;GAEG;AACH;IACI;;;;;OAKG;IACH,wBAHW,OAAO,YACP,QAAQ,EAYlB;IATG,iDAAwB;IACxB,kDAA4B;IAC5B,oBAAkD;IAClD,oBAAkD;IAClD,iBAIE;IAGN;;;;;;;;OAQG;IACH,wBANW,MAAM,EAAE,gBACR,MAAM,EAAE,GAAG,YAAY,sBACvB,WAAW,kBACX,OAAO,GACL,OAAO,CAAE,qBAAqB,CAAC,CAoK3C;IAED;;;;;OAKG;IACH,oCAHW,MAAM,EAAE,GACN,MAAM,EAAE,CAepB;CACJ"} \ No newline at end of file diff --git a/lib/Retriever.js b/lib/Retriever.js index 0cab0ec5c..26ec6b3bd 100644 --- a/lib/Retriever.js +++ b/lib/Retriever.js @@ -144,9 +144,10 @@ class Retriever { ) ) { // some types exist locally and shared from other BUs (parent and siblings). those need to be put into the cache or else we wont find them when looking for dependencies + // note: retrieveSharedForCache() returns a plain metadata map, not a {metadata: ...} wrapper const cacheSharedResult = await MetadataTypeInfo[type].retrieveSharedForCache(); - cache.mergeMetadata(type, cacheSharedResult.metadata); + cache.mergeMetadata(type, cacheSharedResult); } Util.logger.info( `Retrieving: ${type}` + diff --git a/test/resources/9999999/automation/v1/queries/get-response.json b/test/resources/9999999/automation/v1/queries/get-response.json index ddfab04e6..2cce1e65d 100644 --- a/test/resources/9999999/automation/v1/queries/get-response.json +++ b/test/resources/9999999/automation/v1/queries/get-response.json @@ -70,6 +70,23 @@ "targetUpdateTypeName": "Overwrite", "categoryId": 999, "isFrozen": false + }, + { + "queryDefinitionId": "shared-607c-4940-afef-437965094dat", + "name": "testExisting_query_SharedDE", + "key": "testExisting_query_SharedDE", + "description": "bla bla", + "queryText": "Select\n SubscriberKey as testField, Trim(last_name) AS name\nFrom\n testExisting_dataExtensionShared\nwhere\n country in ('test')\n", + "targetName": "testExisting_dataExtensionShared", + "targetKey": "testExisting_dataExtensionShared", + "targetId": "21711373-72c1-ec11-b83b-shared", + "targetDescription": "", + "createdDate": "2022-04-26T15:21:16.453", + "modifiedDate": "2022-04-26T16:02:44.01", + "targetUpdateTypeId": 0, + "targetUpdateTypeName": "Overwrite", + "categoryId": 999, + "isFrozen": false } ] } diff --git a/test/resources/9999999/query/get_sharedDE-expected.json b/test/resources/9999999/query/get_sharedDE-expected.json new file mode 100644 index 000000000..6e527bd01 --- /dev/null +++ b/test/resources/9999999/query/get_sharedDE-expected.json @@ -0,0 +1,11 @@ +{ + "name": "testExisting_query_SharedDE", + "key": "testExisting_query_SharedDE", + "description": "bla bla", + "r__dataExtension_key": "testExisting_dataExtensionShared", + "createdDate": "2022-04-26T15:21:16.453", + "modifiedDate": "2022-04-26T16:02:44.01", + "targetUpdateTypeName": "Overwrite", + "r__folder_Path": "Query", + "isFrozen": false +} diff --git a/test/resources/9999999/query/get_sharedDE-expected.sql b/test/resources/9999999/query/get_sharedDE-expected.sql new file mode 100644 index 000000000..c07708acb --- /dev/null +++ b/test/resources/9999999/query/get_sharedDE-expected.sql @@ -0,0 +1,7 @@ +SELECT + SubscriberKey AS testField, + TRIM(last_name) AS name +FROM + testExisting_dataExtensionShared +WHERE + country IN ('test') diff --git a/test/type.attributeSet.test.js b/test/type.attributeSet.test.js index 08c1302e8..dfccbb238 100644 --- a/test/type.attributeSet.test.js +++ b/test/type.attributeSet.test.js @@ -52,5 +52,46 @@ describe('type: attributeSet', () => { ); return; }); + + it('Should resolve shared dataExtensions in attributeSet when retrieved together with dataExtension', async () => { + // WHEN + // this test verifies the fix for: shared DEs not resolved if attributeSet+dataExtension is retrieved together + const retrieve = await handler.retrieve('testInstance/testBU', [ + 'dataExtension', + 'attributeSet', + ]); + + // THEN + assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error'); + assert.equal( + retrieve['testInstance/testBU'].attributeSet + ? Object.keys(retrieve['testInstance/testBU'].attributeSet).length + : 0, + 28, + 'only 28 attributeSets expected in retrieve response' + ); + // get results from cache + const result = cache.getCache(); + assert.equal( + result.attributeSet ? Object.keys(result.attributeSet).length : 0, + 28, + 'only 28 attributeSets expected in cache' + ); + + // verify that shared DE was resolved correctly in attributeSet (this is the key bug fix check) + assert.deepEqual( + await testUtils.getActualJson('testExisting_dataExtensionShared', 'attributeSet'), + await testUtils.getExpectedJson('9999999', 'attributeSet', 'retrieve'), + + 'returned metadata was not equal expected - shared DE should be resolved even when dataExtension is retrieved together with attributeSet' + ); + + assert.equal( + testUtils.getAPIHistoryLength(), + 9, + 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' + ); + return; + }); }); }); diff --git a/test/type.query.test.js b/test/type.query.test.js index 9848483aa..ab6715c45 100644 --- a/test/type.query.test.js +++ b/test/type.query.test.js @@ -27,8 +27,8 @@ describe('type: query', () => { const result = cache.getCache(); assert.equal( result.query ? Object.keys(result.query).length : 0, - 4, - 'only 4 queries expected' + 5, + 'only 5 queries expected' ); // normal test assert.deepEqual( @@ -54,6 +54,37 @@ describe('type: query', () => { return; }); + it('Should resolve shared dataExtensions in query when retrieved together with dataExtension', async () => { + // WHEN + // this test verifies the fix for: shared DEs not resolved if query+dataExtension is retrieved together + await handler.retrieve('testInstance/testBU', ['dataExtension', 'query']); + // THEN + assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error'); + // get results from cache + const result = cache.getCache(); + assert.equal( + result.query ? Object.keys(result.query).length : 0, + 5, + 'only 5 queries expected' + ); + // verify that shared DE was resolved correctly in query (this is the key bug fix check) + assert.deepEqual( + await testUtils.getActualJson('testExisting_query_SharedDE', 'query'), + await testUtils.getExpectedJson('9999999', 'query', 'get_sharedDE'), + 'returned metadata was not equal expected - shared DE should be resolved even when dataExtension is retrieved together with query' + ); + expect( + await testUtils.getActualFile('testExisting_query_SharedDE', 'query', 'sql') + ).to.equal(await testUtils.getExpectedFile('9999999', 'query', 'get_sharedDE', 'sql')); + + assert.equal( + testUtils.getAPIHistoryLength(), + 8, + 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' + ); + return; + }); + it('Should retrieve one specific query by key', async () => { // WHEN await handler.retrieve('testInstance/testBU', ['query'], ['testExisting_query']); @@ -92,8 +123,8 @@ describe('type: query', () => { const result = cache.getCache(); assert.equal( result.query ? Object.keys(result.query).length : 0, - 4, - '4 queries in cache expected' + 5, + '5 queries in cache expected' ); assert.deepEqual( await testUtils.getActualJson('testExisting_query', 'query'), @@ -123,8 +154,8 @@ describe('type: query', () => { const result = cache.getCache(); assert.equal( result.query ? Object.keys(result.query).length : 0, - 4, - '4 queries in cache expected' + 5, + '5 queries in cache expected' ); expect(await testUtils.getActualFile('testExisting_query', 'query', 'sql')).to.not @@ -165,8 +196,8 @@ describe('type: query', () => { const result = cache.getCache(); assert.equal( result.query ? Object.keys(result.query).length : 0, - 5, - '5 queries expected in cache' + 6, + '6 queries expected in cache' ); // confirm created item assert.deepEqual( From 1cda676b7350e88b156767323900ed52c4a4f6a3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 08:34:35 +0000 Subject: [PATCH 03/38] Initial plan From 353c837638c5f7c7105cd6365eb013e534e0ad31 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 09:20:22 +0000 Subject: [PATCH 04/38] #2544 fix shared DE field resolution in journey UPDATECONTACTDATA activity Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .../lib/metadataTypes/DataExtensionField.d.ts | 17 +++ .../metadataTypes/DataExtensionField.d.ts.map | 2 +- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/DataExtensionField.js | 68 +++++++++ lib/metadataTypes/Journey.js | 134 ++++++++++++++---- test/general.test.js | 22 +-- ...y_updatecontact_sharedDE.journey-meta.json | 108 ++++++++++++++ .../v1/interactions/get-response.json | 42 +++++- .../get-response.json | 8 +- .../get-response.json | 119 ++++++++++++++++ .../put-response.json | 110 ++++++++++++++ .../get-updatecontact-sharedDE-expected.json | 108 ++++++++++++++ .../put-updatecontact-sharedDE-expected.json | 108 ++++++++++++++ test/type.automation.test.js | 2 +- test/type.journey.test.js | 79 ++++++++++- 15 files changed, 873 insertions(+), 56 deletions(-) create mode 100644 test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_updatecontact_sharedDE.journey-meta.json create mode 100644 test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/get-response.json create mode 100644 test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/put-response.json create mode 100644 test/resources/9999999/journey/get-updatecontact-sharedDE-expected.json create mode 100644 test/resources/9999999/journey/put-updatecontact-sharedDE-expected.json diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts b/@types/lib/metadataTypes/DataExtensionField.d.ts index 56f41aad3..a66586ad7 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts @@ -58,6 +58,21 @@ declare class DataExtensionField extends MetadataType { * @returns {Promise.} Promise of items */ static retrieveFieldsForSingleDe(customerKey: string): Promise; + /** + * determines if a dataExtension is shared (from parent BU) by checking its folder's ContentType in the parent BU folder cache + * + * @param {string} customerKey external key of single DE + * @returns {boolean} true if the DE is shared (stored on parent BU) + */ + static isSharedDe(customerKey: string): boolean; + /** + * helps retrieving fields for a single shared DE from parent BU. + * Use when the DE is shared (stored on parent BU) and its fields are not in the current BU's cache. + * + * @param {string} customerKey external key of single DE + * @returns {Promise.} Promise of items + */ + static retrieveFieldsForSingleSharedDe(customerKey: string): Promise; /** * Retrieves all records for caching * @@ -110,6 +125,8 @@ declare class DataExtensionField extends MetadataType { static deleteByKeySOAP(customerKey: string, fieldId?: string): Promise; } declare namespace DataExtensionField { + let buObject: import("../../types/mcdev.d.js").BuObject; + let client: import("sfmc-sdk").default; let definition: { bodyIteratorField: string; dependencies: string[]; diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts.map b/@types/lib/metadataTypes/DataExtensionField.d.ts.map index 4f7cac940..5669ef526 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts.map +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBAQa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA3bwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CA8B5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA/fwB,mBAAmB"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index 74345e9c7..247302122 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAgBa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;2BAC5C,OAAO,wBAAwB,EAAE,YAAY;AAX1D;;;;;;;;;;;;GAYG;AAEH;;;;;;;GAOG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA0LxC;IA6JD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA4MtC;IAED;;;;;OAKG;IACH,6CAurBC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA8KtC;IAED;;;;;OAKG;IACH,0CAkUC;IA8MD;;;;OAIG;IACH,sCAFW,eAAe,iBA0CzB;IAED;;;;;;OAMG;IACH,uBAJW,MAAM,EAAE,kBACR,eAAe,GACb,OAAO,CAAE,MAAM,EAAE,CAAC,CAkT9B;IAED;;;;;;;OAOG;IACH,mCANW,MAAM,EAAE,wBACR,MAAM,oBACN,MAAM,kBACN,eAAe,GACb,OAAO,CAAE,IAAI,CAAC,CA+E1B;IAED;;;;;;;;;OASG;IACH,sCAPW,MAAM,OACN,MAAM,QACN,MAAM,WACN,OAAO,eAAe,EAAE,OAAO,UAC/B,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAiD5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAiCvD;IAED;;;;;OAKG;IACH,wBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAyJ9B;IAED;;;;;OAKG;IACH,qBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAmJ9B;IAyTD;;;;;;;OAOG;IACH,uBALW,MAAM,EAAE,MACR,OAAO,kBACP,eAAe,GACb,OAAO,CAAE,MAAM,EAAE,CAAC,CAgJ9B;IACD;;;;;;OAMG;IACH,yBAJW,MAAM,gBACN,kBAAkB,GAChB,OAAO,CAAE,OAAO,CAAC,CAqB7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAh2GwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index 54fddbf5b..391539451 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -4,6 +4,7 @@ import MetadataType from './MetadataType.js'; import { Util } from '../util/util.js'; import DataExtension from './DataExtension.js'; import { confirm } from '@inquirer/prompts'; +import auth from '../util/auth.js'; /** * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject @@ -75,6 +76,73 @@ class DataExtensionField extends MetadataType { }, {}); } + /** + * determines if a dataExtension is shared (from parent BU) by checking its folder's ContentType in the parent BU folder cache + * + * @param {string} customerKey external key of single DE + * @returns {boolean} true if the DE is shared (stored on parent BU) + */ + static isSharedDe(customerKey) { + if (this.buObject.eid === this.buObject.mid) { + // already on parent BU, no shared DEs possible + return false; + } + const categoryId = cache.getCache().dataExtension?.[customerKey]?.CategoryID; + if (!categoryId) { + return false; + } + try { + const contentType = cache.searchForField( + 'folder', + categoryId, + 'ID', + 'ContentType', + this.buObject.eid + ); + return MetadataTypeDefinitions.folder.folderTypesFromParent.includes(contentType); + } catch { + // folder not found in parent BU cache → local DE + return false; + } + } + + /** + * helps retrieving fields for a single shared DE from parent BU. + * Use when the DE is shared (stored on parent BU) and its fields are not in the current BU's cache. + * + * @param {string} customerKey external key of single DE + * @returns {Promise.} Promise of items + */ + static async retrieveFieldsForSingleSharedDe(customerKey) { + if (this.buObject.eid === this.buObject.mid) { + // already on parent BU, no shared retrieval needed + return {}; + } + const buObjectBak = this.buObject; + const clientBak = this.client; + /** @type {BuObject} */ + const buObjectParentBu = { + eid: this.properties.credentials[this.buObject.credential].eid, + mid: this.properties.credentials[this.buObject.credential].eid, + businessUnit: Util.parentBuName, + credential: this.buObject.credential, + }; + try { + this.buObject = buObjectParentBu; + this.client = auth.getSDK(buObjectParentBu); + } catch (ex) { + Util.logger.error(ex.message); + this.buObject = buObjectBak; + this.client = clientBak; + return {}; + } + const fields = await this.retrieveFieldsForSingleDe(customerKey); + // revert client to current default + this.buObject = buObjectBak; + this.client = clientBak; + return fields; + } + /** * Retrieves all records for caching * diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index fc5aad77a..b710baf20 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1288,30 +1288,68 @@ class Journey extends MetadataType { ); } // Don't replace the field Id with the name if DE CustomerKey was not found - try { - if (!cache.getCache().dataExtensionField) { - tempCachedFields = true; + if (contactField.r__dataExtension_key) { + try { DataExtensionField.buObject = this.buObject; DataExtensionField.client = this.client; DataExtensionField.properties = this.properties; - const fields = await DataExtensionField.retrieveFieldsForSingleDe( - contactField.r__dataExtension_key + let alreadyFetchedDe = false; + if (!cache.getCache().dataExtensionField) { + // no dataExtensionField cache yet: retrieve fields for this specific DE + tempCachedFields = true; + alreadyFetchedDe = true; + const fields = DataExtensionField.isSharedDe( + contactField.r__dataExtension_key + ) + ? await DataExtensionField.retrieveFieldsForSingleSharedDe( + contactField.r__dataExtension_key + ) + : await DataExtensionField.retrieveFieldsForSingleDe( + contactField.r__dataExtension_key + ); + cache.setMetadata('dataExtensionField', fields); + } + let fieldName; + try { + fieldName = cache.searchForField( + 'dataExtensionField', + contactField.field, + 'ObjectID', + 'Name' + ); + } catch { + // field not in existing cache - retrieve fields for this specific DE + if (!alreadyFetchedDe) { + const fields = DataExtensionField.isSharedDe( + contactField.r__dataExtension_key + ) + ? await DataExtensionField.retrieveFieldsForSingleSharedDe( + contactField.r__dataExtension_key + ) + : await DataExtensionField.retrieveFieldsForSingleDe( + contactField.r__dataExtension_key + ); + if (Object.keys(fields).length > 0) { + cache.mergeMetadata('dataExtensionField', fields); + } + } + // throws if still not found, handled by outer catch + fieldName = cache.searchForField( + 'dataExtensionField', + contactField.field, + 'ObjectID', + 'Name' + ); + } + contactField.r__dataExtensionField_name = fieldName; + delete contactField.field; + } catch (ex) { + Util.logger.warn( + ` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${ + metadata[this.definition.keyField] + }) activity-key=${activity.key}: ${ex.message}` ); - cache.setMetadata('dataExtensionField', fields); } - contactField.r__dataExtensionField_name = cache.searchForField( - 'dataExtensionField', - contactField.field, - 'ObjectID', - 'Name' - ); - delete contactField.field; - } catch (ex) { - Util.logger.warn( - ` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${ - metadata[this.definition.keyField] - }) activity-key=${activity.key}: ${ex.message}` - ); } } if (tempCachedFields) { @@ -1766,22 +1804,58 @@ class Journey extends MetadataType { ); } try { + DataExtensionField.buObject = this.buObject; + DataExtensionField.client = this.client; + DataExtensionField.properties = this.properties; + let alreadyFetchedDe = false; if (!cache.getCache().dataExtensionField) { + // no dataExtensionField cache yet: retrieve fields for this specific DE tempCachedFields = true; - DataExtensionField.buObject = this.buObject; - DataExtensionField.client = this.client; - DataExtensionField.properties = this.properties; - const fields = await DataExtensionField.retrieveFieldsForSingleDe( + alreadyFetchedDe = true; + const fields = DataExtensionField.isSharedDe( contactField.r__dataExtension_key - ); + ) + ? await DataExtensionField.retrieveFieldsForSingleSharedDe( + contactField.r__dataExtension_key + ) + : await DataExtensionField.retrieveFieldsForSingleDe( + contactField.r__dataExtension_key + ); cache.setMetadata('dataExtensionField', fields); } - contactField.field = cache.searchForField( - 'dataExtensionField', - `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, - 'CustomerKey', - 'ObjectID' - ); + let fieldObjectId; + try { + fieldObjectId = cache.searchForField( + 'dataExtensionField', + `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, + 'CustomerKey', + 'ObjectID' + ); + } catch { + // field not in existing cache - retrieve fields for this specific DE + if (!alreadyFetchedDe) { + const fields = DataExtensionField.isSharedDe( + contactField.r__dataExtension_key + ) + ? await DataExtensionField.retrieveFieldsForSingleSharedDe( + contactField.r__dataExtension_key + ) + : await DataExtensionField.retrieveFieldsForSingleDe( + contactField.r__dataExtension_key + ); + if (Object.keys(fields).length > 0) { + cache.mergeMetadata('dataExtensionField', fields); + } + } + // throws if still not found, handled by outer catch + fieldObjectId = cache.searchForField( + 'dataExtensionField', + `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, + 'CustomerKey', + 'ObjectID' + ); + } + contactField.field = fieldObjectId; delete contactField.r__dataExtensionField_name; delete contactField.r__dataExtension_key; } catch (ex) { diff --git a/test/general.test.js b/test/general.test.js index 946edab3c..3673e275e 100644 --- a/test/general.test.js +++ b/test/general.test.js @@ -60,7 +60,7 @@ describe('GENERAL', () => { ); assert.equal( testUtils.getAPIHistoryLength(), - 46, + 48, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -108,7 +108,7 @@ describe('GENERAL', () => { ); assert.equal( testUtils.getAPIHistoryLength(), - 46, + 48, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -157,7 +157,7 @@ describe('GENERAL', () => { assert.equal( testUtils.getAPIHistoryLength(), - 46, + 48, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -224,7 +224,7 @@ describe('GENERAL', () => { assert.equal( testUtils.getAPIHistoryLength(), - 82, + 84, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -284,7 +284,7 @@ describe('GENERAL', () => { assert.equal( testUtils.getAPIHistoryLength(), - 82, + 84, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -344,7 +344,7 @@ describe('GENERAL', () => { assert.equal( testUtils.getAPIHistoryLength(), - 82, + 84, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -985,7 +985,7 @@ describe('GENERAL', () => { // download first before we test buildTemplate await handler.retrieve('testInstance/testBU'); - const expectedApiCallsRetrieve = 109; + const expectedApiCallsRetrieve = 111; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, @@ -1227,7 +1227,7 @@ describe('GENERAL', () => { await testUtils.getActualDeployFile('testTemplated_query', 'query', 'sql') ).to.equal(await testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')); - const expectedApiCallsRetrieve = 113; + const expectedApiCallsRetrieve = 115; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, @@ -1601,7 +1601,7 @@ describe('GENERAL', () => { // download everything before we test buildTemplate await handler.retrieve('testInstance/testBU'); - const expectedApiCallsRetrieve = 109; + const expectedApiCallsRetrieve = 111; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, @@ -1812,7 +1812,7 @@ describe('GENERAL', () => { await testUtils.getActualDeployFile('testTemplated_query', 'query', 'sql') ).to.equal(await testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')); - const expectedApiCallsRetrieve = 113; + const expectedApiCallsRetrieve = 115; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, @@ -2003,7 +2003,7 @@ describe('GENERAL', () => { // download first before we test buildTemplate await handler.retrieve('testInstance/testBU'); - const expectedApiCallsRetrieve = 109; + const expectedApiCallsRetrieve = 111; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, diff --git a/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_updatecontact_sharedDE.journey-meta.json b/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_updatecontact_sharedDE.journey-meta.json new file mode 100644 index 000000000..69b70c96a --- /dev/null +++ b/test/mockRoot/deploy/testInstance/testBU/journey/testExisting_journey_updatecontact_sharedDE.journey-meta.json @@ -0,0 +1,108 @@ +{ + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "2024-05-04T05:54:48.027", + "modifiedDate": "2024-05-04T17:25:57.9", + "activities": [ + { + "key": "UPDATECONTACTDATAV2-1", + "name": "Update Contact - TEST", + "description": "", + "type": "UPDATECONTACTDATA", + "outcomes": [ + { + "key": "9f21d42b-4679-4561-911a-4bccf84672ba", + "arguments": {}, + "metaData": { + "invalid": false + } + } + ], + "arguments": { + "activityData": { + "updateContactFields": [ + { + "r__dataExtension_key": "testExisting_dataExtensionShared", + "r__dataExtensionField_name": "LastName", + "value": "TEST" + } + ] + } + }, + "configurationArguments": {}, + "metaData": { + "isConfigured": true + }, + "schema": { + "arguments": { + "activityData": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + }, + "contactKey": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + } + } + } + } + ], + "triggers": [ + { + "key": "TRIGGER", + "name": "TRIGGER", + "description": "", + "type": "EmailAudience", + "outcomes": [], + "arguments": {}, + "configurationArguments": {}, + "metaData": { + "r__event_key": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e", + "chainType": "None", + "configurationRequired": false, + "iconUrl": "/images/icon-data-extension.svg", + "title": "Data Extension", + "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json", + "sourceInteractionId": "00000000-0000-0000-0000-000000000000" + } + } + ], + "goals": [], + "exits": [], + "notifiers": [], + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "status": "Draft", + "scheduledStatus": "Draft", + "r__folder_Path": "my journeys" +} diff --git a/test/resources/9999999/interaction/v1/interactions/get-response.json b/test/resources/9999999/interaction/v1/interactions/get-response.json index 00f2e3228..721d50a36 100644 --- a/test/resources/9999999/interaction/v1/interactions/get-response.json +++ b/test/resources/9999999/interaction/v1/interactions/get-response.json @@ -1,5 +1,5 @@ { - "count": 3, + "count": 6, "page": 1, "pageSize": 500, "links": {}, @@ -206,6 +206,44 @@ "status": "Draft", "scheduledStatus": "Draft", "r__folder_Path": "my journeys" + }, + { + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "2024-05-04T05:54:48.027", + "modifiedDate": "2024-05-04T17:25:57.9", + "goals": [], + "exits": [], + "notifiers": [], + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "status": "Draft", + "scheduledStatus": "Draft", + "r__folder_Path": "my journeys" } ] -} \ No newline at end of file +} diff --git a/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact/get-response.json b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact/get-response.json index 863fea7f1..7796ba2b2 100644 --- a/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact/get-response.json +++ b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact/get-response.json @@ -27,9 +27,9 @@ "activityData": { "updateContactFields": [ { - "r__dataExtensionField_name": "LastName", - "value": "TEST", - "r__dataExtension_key": "testExisting_dataExtension" + "dataExtensionId": "21711373-72c1-ec11-b83b-48df37d1deb7", + "field": "bea0e308-5d45-4181-a673-da9972a7c674", + "value": "TEST" } ] } @@ -116,4 +116,4 @@ "status": "Draft", "definitionId": "0175b971-71a3-4d8e-98ac-48121f3fbf4f", "scheduledStatus": "Draft" -} \ No newline at end of file +} diff --git a/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/get-response.json b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/get-response.json new file mode 100644 index 000000000..c2e456d60 --- /dev/null +++ b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/get-response.json @@ -0,0 +1,119 @@ +{ + "id": "shared-journey-id-1234", + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "2024-05-04T05:54:48.027", + "modifiedDate": "2024-05-04T17:25:57.9", + "activities": [ + { + "key": "UPDATECONTACTDATAV2-1", + "name": "Update Contact - TEST", + "description": "", + "type": "UPDATECONTACTDATA", + "outcomes": [ + { + "key": "9f21d42b-4679-4561-911a-4bccf84672ba", + "arguments": {}, + "metaData": { + "invalid": false + } + } + ], + "arguments": { + "activityData": { + "updateContactFields": [ + { + "dataExtensionId": "21711373-72c1-ec11-b83b-shared", + "field": "shared-bea0e308-5d45-4181-a673-da9972a7c674", + "value": "TEST" + } + ] + } + }, + "configurationArguments": {}, + "metaData": { + "isConfigured": true + }, + "schema": { + "arguments": { + "activityData": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + }, + "contactKey": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + } + } + } + } + ], + "triggers": [ + { + "id": "92753481-1258-49bd-8a84-921ed63bcc2e", + "key": "TRIGGER", + "name": "TRIGGER", + "description": "", + "type": "EmailAudience", + "outcomes": [], + "arguments": {}, + "configurationArguments": {}, + "metaData": { + "eventDefinitionId": "649d512b-4d08-4eca-a14e-fc7b64b4ada8", + "eventDefinitionKey": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e", + "chainType": "None", + "configurationRequired": false, + "iconUrl": "/images/icon-data-extension.svg", + "title": "Data Extension", + "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json", + "sourceInteractionId": "00000000-0000-0000-0000-000000000000" + } + } + ], + "goals": [], + "exits": [], + "notifiers": [], + "stats": { + "currentPopulation": 0, + "cumulativePopulation": 0, + "metGoal": 0, + "metExitCriteria": 0, + "goalPerformance": 0 + }, + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "categoryId": 6298, + "status": "Draft", + "definitionId": "shared-journey-id-1234", + "scheduledStatus": "Draft" +} diff --git a/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/put-response.json b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/put-response.json new file mode 100644 index 000000000..64b9fc122 --- /dev/null +++ b/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_updatecontact_sharedDE/put-response.json @@ -0,0 +1,110 @@ +{ + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "0001-01-01T00:00:00", + "modifiedDate": "2024-05-04T17:25:57.9", + "activities": [ + { + "key": "UPDATECONTACTDATAV2-1", + "name": "Update Contact - TEST", + "description": "", + "type": "UPDATECONTACTDATA", + "outcomes": [ + { + "key": "9f21d42b-4679-4561-911a-4bccf84672ba", + "arguments": {}, + "metaData": { + "invalid": false + } + } + ], + "arguments": { + "activityData": { + "updateContactFields": [ + { + "field": "shared-bea0e308-5d45-4181-a673-da9972a7c674", + "value": "TEST", + "dataExtensionId": "21711373-72c1-ec11-b83b-shared" + } + ] + } + }, + "configurationArguments": {}, + "metaData": { + "isConfigured": true + }, + "schema": { + "arguments": { + "activityData": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + }, + "contactKey": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + } + } + } + } + ], + "triggers": [ + { + "key": "TRIGGER", + "name": "TRIGGER", + "description": "", + "type": "EmailAudience", + "outcomes": [], + "arguments": {}, + "configurationArguments": {}, + "metaData": { + "r__event_key": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e", + "chainType": "None", + "configurationRequired": false, + "iconUrl": "/images/icon-data-extension.svg", + "title": "Data Extension", + "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json", + "sourceInteractionId": "00000000-0000-0000-0000-000000000000" + } + } + ], + "goals": [], + "exits": [], + "notifiers": [], + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "status": "Draft", + "scheduledStatus": "Draft", + "r__folder_Path": "my journeys", + "id": "shared-journey-id-1234", + "definitionId": "shared-journey-id-1234" +} diff --git a/test/resources/9999999/journey/get-updatecontact-sharedDE-expected.json b/test/resources/9999999/journey/get-updatecontact-sharedDE-expected.json new file mode 100644 index 000000000..1177e0ec9 --- /dev/null +++ b/test/resources/9999999/journey/get-updatecontact-sharedDE-expected.json @@ -0,0 +1,108 @@ +{ + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "2024-05-04T05:54:48.027", + "modifiedDate": "2024-05-04T17:25:57.9", + "activities": [ + { + "key": "UPDATECONTACTDATAV2-1", + "name": "Update Contact - TEST", + "description": "", + "type": "UPDATECONTACTDATA", + "outcomes": [ + { + "key": "9f21d42b-4679-4561-911a-4bccf84672ba", + "arguments": {}, + "metaData": { + "invalid": false + } + } + ], + "arguments": { + "activityData": { + "updateContactFields": [ + { + "r__dataExtensionField_name": "LastName", + "value": "TEST", + "r__dataExtension_key": "testExisting_dataExtensionShared" + } + ] + } + }, + "configurationArguments": {}, + "metaData": { + "isConfigured": true + }, + "schema": { + "arguments": { + "activityData": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + }, + "contactKey": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + } + } + } + } + ], + "triggers": [ + { + "key": "TRIGGER", + "name": "TRIGGER", + "description": "", + "type": "EmailAudience", + "outcomes": [], + "arguments": {}, + "configurationArguments": {}, + "metaData": { + "r__event_key": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e", + "chainType": "None", + "configurationRequired": false, + "iconUrl": "/images/icon-data-extension.svg", + "title": "Data Extension", + "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json", + "sourceInteractionId": "00000000-0000-0000-0000-000000000000" + } + } + ], + "goals": [], + "exits": [], + "notifiers": [], + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "status": "Draft", + "scheduledStatus": "Draft", + "r__folder_Path": "my journeys" +} diff --git a/test/resources/9999999/journey/put-updatecontact-sharedDE-expected.json b/test/resources/9999999/journey/put-updatecontact-sharedDE-expected.json new file mode 100644 index 000000000..1177e0ec9 --- /dev/null +++ b/test/resources/9999999/journey/put-updatecontact-sharedDE-expected.json @@ -0,0 +1,108 @@ +{ + "key": "testExisting_journey_updatecontact_sharedDE", + "name": "testExisting_journey_updatecontact_sharedDE", + "lastPublishedDate": "0001-01-01T00:00:00", + "description": "", + "version": 1, + "workflowApiVersion": 1, + "createdDate": "2024-05-04T05:54:48.027", + "modifiedDate": "2024-05-04T17:25:57.9", + "activities": [ + { + "key": "UPDATECONTACTDATAV2-1", + "name": "Update Contact - TEST", + "description": "", + "type": "UPDATECONTACTDATA", + "outcomes": [ + { + "key": "9f21d42b-4679-4561-911a-4bccf84672ba", + "arguments": {}, + "metaData": { + "invalid": false + } + } + ], + "arguments": { + "activityData": { + "updateContactFields": [ + { + "r__dataExtensionField_name": "LastName", + "value": "TEST", + "r__dataExtension_key": "testExisting_dataExtensionShared" + } + ] + } + }, + "configurationArguments": {}, + "metaData": { + "isConfigured": true + }, + "schema": { + "arguments": { + "activityData": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + }, + "contactKey": { + "dataType": "Text", + "isNullable": false, + "direction": "In", + "readOnly": false, + "access": "Hidden" + } + } + } + } + ], + "triggers": [ + { + "key": "TRIGGER", + "name": "TRIGGER", + "description": "", + "type": "EmailAudience", + "outcomes": [], + "arguments": {}, + "configurationArguments": {}, + "metaData": { + "r__event_key": "DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e", + "chainType": "None", + "configurationRequired": false, + "iconUrl": "/images/icon-data-extension.svg", + "title": "Data Extension", + "entrySourceGroupConfigUrl": "jb:///data/entry/audience/entrysourcegroupconfig.json", + "sourceInteractionId": "00000000-0000-0000-0000-000000000000" + } + } + ], + "goals": [], + "exits": [], + "notifiers": [], + "entryMode": "NotSet", + "definitionType": "Multistep", + "channel": "", + "defaults": { + "email": [ + "{{Event.DEAudience-2e3c73b6-48cc-2ec0-5522-48636e1a236e.\"Email\"}}" + ], + "properties": { + "analyticsTracking": { + "enabled": true, + "analyticsType": "google", + "urlDomainsToTrack": [] + } + } + }, + "metaData": { + "dataSource": "ContactsModel", + "highThroughputSending": { + "email": false + } + }, + "executionMode": "Production", + "status": "Draft", + "scheduledStatus": "Draft", + "r__folder_Path": "my journeys" +} diff --git a/test/type.automation.test.js b/test/type.automation.test.js index d2205f81d..aa901e965 100644 --- a/test/type.automation.test.js +++ b/test/type.automation.test.js @@ -681,7 +681,7 @@ describe('type: automation', () => { await handler.retrieve('testInstance/testBU'); assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error'); - const expectedApiCallsRetrieve = 109; + const expectedApiCallsRetrieve = 111; assert.equal( testUtils.getAPIHistoryLength(), expectedApiCallsRetrieve, diff --git a/test/type.journey.test.js b/test/type.journey.test.js index 54ff45e0c..ee92c124e 100644 --- a/test/type.journey.test.js +++ b/test/type.journey.test.js @@ -26,7 +26,7 @@ describe('type: journey', () => { const result = cache.getCache(); assert.equal( result.journey ? Object.keys(result.journey).length : 0, - 5, + 6, 'unexpected number of journeys' ); assert.deepEqual( @@ -44,9 +44,17 @@ describe('type: journey', () => { await testUtils.getExpectedJson('9999999', 'journey', 'get-transactionalEmail'), 'returned JSON was not equal expected' ); + assert.deepEqual( + await testUtils.getActualJson( + 'testExisting_journey_updatecontact_sharedDE', + 'journey' + ), + await testUtils.getExpectedJson('9999999', 'journey', 'get-updatecontact-sharedDE'), + 'returned JSON was not equal expected' + ); assert.equal( testUtils.getAPIHistoryLength(), - 29, + 31, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -167,6 +175,39 @@ describe('type: journey', () => { return; }); + it('Should retrieve a journey containing an UPDATECONTACTDATA activity referencing a shared DE with key', async () => { + // WHEN + await handler.retrieve( + 'testInstance/testBU', + ['journey'], + ['testExisting_journey_updatecontact_sharedDE'] + ); + // THEN + assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error'); + // get results from cache + const result = cache.getCache(); + assert.equal( + result.journey ? Object.keys(result.journey).length : 0, + 1, + 'only 1 journeys expected' + ); + + assert.deepEqual( + await testUtils.getActualJson( + 'testExisting_journey_updatecontact_sharedDE', + 'journey' + ), + await testUtils.getExpectedJson('9999999', 'journey', 'get-updatecontact-sharedDE'), + 'returned JSON was not equal expected' + ); + assert.equal( + testUtils.getAPIHistoryLength(), + 20, + 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' + ); + return; + }); + it('Should retrieve a Transactional Email journey with key', async () => { // WHEN await handler.retrieve('testInstance/testBU', ['journey'], ['testExisting_temail']); @@ -504,6 +545,32 @@ describe('type: journey', () => { ); return; }); + + it('Should update a journey with UPDATECONTACT activity referencing a shared DE', async () => { + // WHEN + await handler.deploy( + 'testInstance/testBU', + ['journey'], + ['testExisting_journey_updatecontact_sharedDE'] + ); + // THEN + assert.equal(process.exitCode, 0, 'deploy should not have thrown an error'); + // confirm updated item + assert.deepEqual( + await testUtils.getActualJson( + 'testExisting_journey_updatecontact_sharedDE', + 'journey' + ), + await testUtils.getExpectedJson('9999999', 'journey', 'put-updatecontact-sharedDE'), + 'returned metadata was not equal expected for update journey with shared DE updatecontact activity' + ); + assert.equal( + testUtils.getAPIHistoryLength(), + 22, + 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' + ); + return; + }); }); describe('Templating ================', () => { @@ -545,7 +612,7 @@ describe('type: journey', () => { assert.equal( testUtils.getAPIHistoryLength(), - 29, + 31, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -741,7 +808,7 @@ describe('type: journey', () => { assert.equal( testUtils.getAPIHistoryLength(), - 35, + 37, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -776,7 +843,7 @@ describe('type: journey', () => { assert.equal( testUtils.getAPIHistoryLength(), - 35, + 37, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; @@ -811,7 +878,7 @@ describe('type: journey', () => { assert.equal( testUtils.getAPIHistoryLength(), - 35, + 37, 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' ); return; From 41499221893b5463709e18025d76bfd66d3894dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 09:23:20 +0000 Subject: [PATCH 05/38] #2544 add debug log for parent BU early return in retrieveFieldsForSingleSharedDe Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- @types/lib/metadataTypes/DataExtensionField.d.ts.map | 2 +- lib/metadataTypes/DataExtensionField.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts.map b/@types/lib/metadataTypes/DataExtensionField.d.ts.map index 5669ef526..35264b561 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts.map +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CA8B5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA/fwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAiC5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAlgBwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index 391539451..8b7f8679a 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -115,7 +115,10 @@ class DataExtensionField extends MetadataType { */ static async retrieveFieldsForSingleSharedDe(customerKey) { if (this.buObject.eid === this.buObject.mid) { - // already on parent BU, no shared retrieval needed + // already on parent BU, shared retrieval is not needed - all DEs are local here + Util.logger.debug( + `DataExtensionField.retrieveFieldsForSingleSharedDe: already on parent BU, skipping for ${customerKey}` + ); return {}; } const buObjectBak = this.buObject; From 88cf063b593f9b8e6682a3146a75ddfa6b72a102 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 10:23:53 +0000 Subject: [PATCH 06/38] #2544 add combined journey+dataExtension retrieve test and refactor shared DE helpers Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .../lib/metadataTypes/DataExtensionField.d.ts | 10 +++- .../metadataTypes/DataExtensionField.d.ts.map | 2 +- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/DataExtensionField.js | 21 +++++++- lib/metadataTypes/Journey.js | 52 ++++++------------- test/type.journey.test.js | 35 +++++++++++++ 6 files changed, 82 insertions(+), 40 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts b/@types/lib/metadataTypes/DataExtensionField.d.ts index a66586ad7..5e8f8faf3 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts @@ -66,13 +66,21 @@ declare class DataExtensionField extends MetadataType { */ static isSharedDe(customerKey: string): boolean; /** - * helps retrieving fields for a single shared DE from parent BU. + * helps retrieving fields for a single DE from parent BU. * Use when the DE is shared (stored on parent BU) and its fields are not in the current BU's cache. * * @param {string} customerKey external key of single DE * @returns {Promise.} Promise of items */ static retrieveFieldsForSingleSharedDe(customerKey: string): Promise; + /** + * Routes field retrieval to the correct method depending on whether the DE is local or shared. + * Use this instead of duplicating the isSharedDe() check at each call site. + * + * @param {string} customerKey external key of single DE + * @returns {Promise.} Promise of items + */ + static retrieveFieldsForSingleDeAuto(customerKey: string): Promise; /** * Retrieves all records for caching * diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts.map b/@types/lib/metadataTypes/DataExtensionField.d.ts.map index 35264b561..75a4f1da1 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts.map +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAiC5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAlgBwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAuC5B;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAM5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBArhBwB,mBAAmB"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index 247302122..fe40cc8ff 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index 8b7f8679a..3144a583a 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -107,7 +107,7 @@ class DataExtensionField extends MetadataType { } /** - * helps retrieving fields for a single shared DE from parent BU. + * helps retrieving fields for a single DE from parent BU. * Use when the DE is shared (stored on parent BU) and its fields are not in the current BU's cache. * * @param {string} customerKey external key of single DE @@ -121,6 +121,12 @@ class DataExtensionField extends MetadataType { ); return {}; } + if (!this.properties.credentials[this.buObject.credential]) { + Util.logger.error( + `DataExtensionField.retrieveFieldsForSingleSharedDe: credential '${this.buObject.credential}' not found in properties` + ); + return {}; + } const buObjectBak = this.buObject; const clientBak = this.client; /** @type {BuObject} */ @@ -146,6 +152,19 @@ class DataExtensionField extends MetadataType { return fields; } + /** + * Routes field retrieval to the correct method depending on whether the DE is local or shared. + * Use this instead of duplicating the isSharedDe() check at each call site. + * + * @param {string} customerKey external key of single DE + * @returns {Promise.} Promise of items + */ + static async retrieveFieldsForSingleDeAuto(customerKey) { + return this.isSharedDe(customerKey) + ? this.retrieveFieldsForSingleSharedDe(customerKey) + : this.retrieveFieldsForSingleDe(customerKey); + } + /** * Retrieves all records for caching * diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index b710baf20..de233f2ff 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1298,15 +1298,10 @@ class Journey extends MetadataType { // no dataExtensionField cache yet: retrieve fields for this specific DE tempCachedFields = true; alreadyFetchedDe = true; - const fields = DataExtensionField.isSharedDe( - contactField.r__dataExtension_key - ) - ? await DataExtensionField.retrieveFieldsForSingleSharedDe( - contactField.r__dataExtension_key - ) - : await DataExtensionField.retrieveFieldsForSingleDe( - contactField.r__dataExtension_key - ); + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); cache.setMetadata('dataExtensionField', fields); } let fieldName; @@ -1320,15 +1315,10 @@ class Journey extends MetadataType { } catch { // field not in existing cache - retrieve fields for this specific DE if (!alreadyFetchedDe) { - const fields = DataExtensionField.isSharedDe( - contactField.r__dataExtension_key - ) - ? await DataExtensionField.retrieveFieldsForSingleSharedDe( - contactField.r__dataExtension_key - ) - : await DataExtensionField.retrieveFieldsForSingleDe( - contactField.r__dataExtension_key - ); + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); if (Object.keys(fields).length > 0) { cache.mergeMetadata('dataExtensionField', fields); } @@ -1812,15 +1802,10 @@ class Journey extends MetadataType { // no dataExtensionField cache yet: retrieve fields for this specific DE tempCachedFields = true; alreadyFetchedDe = true; - const fields = DataExtensionField.isSharedDe( - contactField.r__dataExtension_key - ) - ? await DataExtensionField.retrieveFieldsForSingleSharedDe( - contactField.r__dataExtension_key - ) - : await DataExtensionField.retrieveFieldsForSingleDe( - contactField.r__dataExtension_key - ); + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); cache.setMetadata('dataExtensionField', fields); } let fieldObjectId; @@ -1834,15 +1819,10 @@ class Journey extends MetadataType { } catch { // field not in existing cache - retrieve fields for this specific DE if (!alreadyFetchedDe) { - const fields = DataExtensionField.isSharedDe( - contactField.r__dataExtension_key - ) - ? await DataExtensionField.retrieveFieldsForSingleSharedDe( - contactField.r__dataExtension_key - ) - : await DataExtensionField.retrieveFieldsForSingleDe( - contactField.r__dataExtension_key - ); + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); if (Object.keys(fields).length > 0) { cache.mergeMetadata('dataExtensionField', fields); } diff --git a/test/type.journey.test.js b/test/type.journey.test.js index ee92c124e..5632568f7 100644 --- a/test/type.journey.test.js +++ b/test/type.journey.test.js @@ -60,6 +60,41 @@ describe('type: journey', () => { return; }); + it('Should retrieve journeys with dataExtension type simultaneously (mcdev retrieve cred/bu -m journey dataExtension)', async () => { + // WHEN - both types at once, no keys: unrelated DEs present alongside UPDATECONTACTDATA DEs + await handler.retrieve('testInstance/testBU', ['journey', 'dataExtension']); + // THEN + assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error'); + // get results from cache + const result = cache.getCache(); + assert.equal( + result.journey ? Object.keys(result.journey).length : 0, + 6, + 'unexpected number of journeys (includes local-DE and shared-DE UPDATECONTACTDATA journeys)' + ); + // Verify UPDATECONTACTDATA activity with local DE is correctly resolved + assert.deepEqual( + await testUtils.getActualJson('testExisting_journey_updatecontact', 'journey'), + await testUtils.getExpectedJson('9999999', 'journey', 'get-updatecontact'), + 'returned JSON was not equal expected for journey with local DE updatecontact activity' + ); + // Verify UPDATECONTACTDATA activity with shared DE is correctly resolved + assert.deepEqual( + await testUtils.getActualJson( + 'testExisting_journey_updatecontact_sharedDE', + 'journey' + ), + await testUtils.getExpectedJson('9999999', 'journey', 'get-updatecontact-sharedDE'), + 'returned JSON was not equal expected for journey with shared DE updatecontact activity' + ); + assert.equal( + testUtils.getAPIHistoryLength(), + 34, + 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests' + ); + return; + }); + it('Should retrieve only published journeys', async () => { handler.setOptions({ onlyPublished: true }); // WHEN From aefcc76192c97e618760572ef9d6dfdd17af89ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sat, 14 Mar 2026 23:54:59 +0100 Subject: [PATCH 07/38] #2544: improve copilot's work --- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/Journey.js | 195 ++++++++++------------ 2 files changed, 93 insertions(+), 104 deletions(-) diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index fe40cc8ff..50a7a186b 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index de233f2ff..162afe332 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1286,60 +1286,60 @@ class Journey extends MetadataType { metadata[this.definition.keyField] }) activity-key=${activity.key}: ${ex.message}` ); + continue; } // Don't replace the field Id with the name if DE CustomerKey was not found - if (contactField.r__dataExtension_key) { + try { + DataExtensionField.buObject = this.buObject; + DataExtensionField.client = this.client; + DataExtensionField.properties = this.properties; + let alreadyFetchedDe = false; + if (!cache.getCache().dataExtensionField) { + // no dataExtensionField cache yet: retrieve fields for this specific DE + tempCachedFields = true; + alreadyFetchedDe = true; + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); + cache.setMetadata('dataExtensionField', fields); + } + let fieldName; try { - DataExtensionField.buObject = this.buObject; - DataExtensionField.client = this.client; - DataExtensionField.properties = this.properties; - let alreadyFetchedDe = false; - if (!cache.getCache().dataExtensionField) { - // no dataExtensionField cache yet: retrieve fields for this specific DE - tempCachedFields = true; - alreadyFetchedDe = true; - const fields = - await DataExtensionField.retrieveFieldsForSingleDeAuto( - contactField.r__dataExtension_key - ); - cache.setMetadata('dataExtensionField', fields); + fieldName = cache.searchForField( + 'dataExtensionField', + contactField.field, + 'ObjectID', + 'Name' + ); + } catch (ex) { + if (alreadyFetchedDe) { + throw ex; } - let fieldName; - try { - fieldName = cache.searchForField( - 'dataExtensionField', - contactField.field, - 'ObjectID', - 'Name' - ); - } catch { - // field not in existing cache - retrieve fields for this specific DE - if (!alreadyFetchedDe) { - const fields = - await DataExtensionField.retrieveFieldsForSingleDeAuto( - contactField.r__dataExtension_key - ); - if (Object.keys(fields).length > 0) { - cache.mergeMetadata('dataExtensionField', fields); - } - } - // throws if still not found, handled by outer catch - fieldName = cache.searchForField( - 'dataExtensionField', - contactField.field, - 'ObjectID', - 'Name' + // field not in existing cache - retrieve fields for this specific DE + const fields = + await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key ); + if (Object.keys(fields).length > 0) { + cache.mergeMetadata('dataExtensionField', fields); } - contactField.r__dataExtensionField_name = fieldName; - delete contactField.field; - } catch (ex) { - Util.logger.warn( - ` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${ - metadata[this.definition.keyField] - }) activity-key=${activity.key}: ${ex.message}` + // throws if still not found, handled by outer catch + fieldName = cache.searchForField( + 'dataExtensionField', + contactField.field, + 'ObjectID', + 'Name' ); } + contactField.r__dataExtensionField_name = fieldName; + delete contactField.field; + } catch (ex) { + Util.logger.warn( + ` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${ + metadata[this.definition.keyField] + }) activity-key=${activity.key}: ${ex.message}` + ); } } if (tempCachedFields) { @@ -1779,72 +1779,61 @@ class Journey extends MetadataType { activity?.arguments?.activityData?.updateContactFields ?? []; let tempCachedFields = false; for (const contactField of contactFields) { + if (!contactField.r__dataExtension_key) { + continue; + } + contactField.dataExtensionId = cache.searchForField( + 'dataExtension', + contactField.r__dataExtension_key, + 'CustomerKey', + 'ObjectID' + ); + if (!contactField.r__dataExtensionField_name) { + continue; + } + DataExtensionField.buObject = this.buObject; + DataExtensionField.client = this.client; + DataExtensionField.properties = this.properties; + let alreadyFetchedDe = false; + if (!cache.getCache().dataExtensionField) { + // no dataExtensionField cache yet: retrieve fields for this specific DE + tempCachedFields = true; + alreadyFetchedDe = true; + const fields = await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); + cache.setMetadata('dataExtensionField', fields); + } + let fieldObjectId; try { - contactField.dataExtensionId = cache.searchForField( - 'dataExtension', - contactField.r__dataExtension_key, + fieldObjectId = cache.searchForField( + 'dataExtensionField', + `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, 'CustomerKey', 'ObjectID' ); } catch (ex) { - Util.logger.warn( - ` - ${this.definition.type} '${metadata[this.definition.nameField]}' (${ - metadata[this.definition.keyField] - }) activity-key=${activity.key}: ${ex.message}` - ); - } - try { - DataExtensionField.buObject = this.buObject; - DataExtensionField.client = this.client; - DataExtensionField.properties = this.properties; - let alreadyFetchedDe = false; - if (!cache.getCache().dataExtensionField) { - // no dataExtensionField cache yet: retrieve fields for this specific DE - tempCachedFields = true; - alreadyFetchedDe = true; - const fields = - await DataExtensionField.retrieveFieldsForSingleDeAuto( - contactField.r__dataExtension_key - ); - cache.setMetadata('dataExtensionField', fields); + // field not in existing cache - retrieve fields for this specific DE + if (alreadyFetchedDe) { + throw ex; } - let fieldObjectId; - try { - fieldObjectId = cache.searchForField( - 'dataExtensionField', - `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, - 'CustomerKey', - 'ObjectID' - ); - } catch { - // field not in existing cache - retrieve fields for this specific DE - if (!alreadyFetchedDe) { - const fields = - await DataExtensionField.retrieveFieldsForSingleDeAuto( - contactField.r__dataExtension_key - ); - if (Object.keys(fields).length > 0) { - cache.mergeMetadata('dataExtensionField', fields); - } - } - // throws if still not found, handled by outer catch - fieldObjectId = cache.searchForField( - 'dataExtensionField', - `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, - 'CustomerKey', - 'ObjectID' - ); + const fields = await DataExtensionField.retrieveFieldsForSingleDeAuto( + contactField.r__dataExtension_key + ); + if (Object.keys(fields).length > 0) { + cache.mergeMetadata('dataExtensionField', fields); } - contactField.field = fieldObjectId; - delete contactField.r__dataExtensionField_name; - delete contactField.r__dataExtension_key; - } catch (ex) { - Util.logger.warn( - ` - ${this.definition.type} '${metadata[this.definition.nameField]}'(${ - metadata[this.definition.keyField] - }) activity - key=${activity.key}: ${ex.message} ` + // throws if still not found, handled by outer catch + fieldObjectId = cache.searchForField( + 'dataExtensionField', + `[${contactField.r__dataExtension_key}].[${contactField.r__dataExtensionField_name}]`, + 'CustomerKey', + 'ObjectID' ); } + contactField.field = fieldObjectId; + delete contactField.r__dataExtensionField_name; + delete contactField.r__dataExtension_key; } if (tempCachedFields) { // reset dataExtensionField caching to trigger re-caching From 657170099cf6c1034724f9f412d538e3fce2e261 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:16:08 +0000 Subject: [PATCH 08/38] Initial plan From 40bb2c60093625f74d95b4b8d6abfdf18f0c6fcb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:33:05 +0000 Subject: [PATCH 09/38] #1784 warn about DE fields needing manual deletion after deploy Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .../lib/metadataTypes/DataExtension.d.ts.map | 2 +- .../metadataTypes/DataExtensionField.d.ts.map | 2 +- lib/metadataTypes/DataExtension.js | 1 + lib/metadataTypes/DataExtensionField.js | 19 +++++++++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtension.d.ts.map b/@types/lib/metadataTypes/DataExtension.d.ts.map index 5b63fb471..b11737981 100644 --- a/@types/lib/metadataTypes/DataExtension.d.ts.map +++ b/@types/lib/metadataTypes/DataExtension.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts.map b/@types/lib/metadataTypes/DataExtensionField.d.ts.map index 75a4f1da1..145d19573 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts.map +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAuC5B;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAM5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAgK3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBArhBwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAuC5B;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAM5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAmL3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAxiBwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtension.js b/lib/metadataTypes/DataExtension.js index ee4efe0e5..b6c2cd30e 100644 --- a/lib/metadataTypes/DataExtension.js +++ b/lib/metadataTypes/DataExtension.js @@ -176,6 +176,7 @@ class DataExtension extends MetadataType { // Modify columns for update call DataExtensionField.client = this.client; DataExtensionField.properties = this.properties; + DataExtensionField.buObject = this.buObject; DataExtension.oldFields ||= {}; DataExtension.oldFields[metadataMap[metadataKey][this.definition.keyField]] = await DataExtensionField.prepareDeployColumnsOnUpdate( diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index 3144a583a..bc42b61dd 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -277,6 +277,10 @@ class DataExtensionField extends MetadataType { // make sure we stringify the name in case it looked numeric and then lowercase it for easy comparison as the server is comparing field names case-insensitive existingFieldByName[(fieldsObj[key].Name + '').toLowerCase()] = fieldsObj[key]; } + // capture field names from deploy payload before the loop modifies them (for renamed fields, the original name is used) + const deployColumnNames = new Set( + deployColumns.map((item) => (item.Name + '').toLowerCase()) + ); for (let i = deployColumns.length - 1; i >= 0; i--) { const item = deployColumns[i]; // make sure we stringify the name in case it looked numeric and then lowercase it for easy comparison as the server is comparing field names case-insensitive @@ -394,6 +398,21 @@ class DataExtensionField extends MetadataType { ) ); + // warn about fields that exist on the server but are not in the deploy payload + // these fields are NOT auto-deleted to prevent unintended data loss + const removedFieldNames = Object.values(existingFieldByName) + .filter((field) => !deployColumnNames.has((field.Name + '').toLowerCase())) + .map((field) => field.Name) + .toSorted(); + if (removedFieldNames.length > 0) { + Util.logger.warn( + ` - ${removedFieldNames.length} field(s) of ${deKey} found on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. Please run the following command to delete them:\nmcdev delete ${this.buObject.credential}/${this.buObject.businessUnit} -m ` + + removedFieldNames + .map((name) => `dataExtensionField:"${deKey}.${name}"`) + .join(' ') + ); + } + return existingFieldByName; } From 860a2fc37455827337b6cae796f988fa4e43a20c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 23:36:36 +0000 Subject: [PATCH 10/38] #1784 improve warning message formatting for deleted DE fields Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .../lib/metadataTypes/DataExtensionField.d.ts.map | 2 +- lib/metadataTypes/DataExtensionField.js | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtensionField.d.ts.map b/@types/lib/metadataTypes/DataExtensionField.d.ts.map index 145d19573..313744f9b 100644 --- a/@types/lib/metadataTypes/DataExtensionField.d.ts.map +++ b/@types/lib/metadataTypes/DataExtensionField.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAuC5B;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAM5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAmL3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAxiBwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtensionField.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtensionField.js"],"names":[],"mappings":";uBASa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;oCAI5C,OAAO,wBAAwB,EAAE,qBAAqB;qCACtD,OAAO,wBAAwB,EAAE,sBAAsB;AAfpE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACI,6BAAwB;IAExB;;;;;;OAMG;IACH,6BAJW,MAAM,qBACN,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIrE;IACD;;;;OAIG;IACH,2BAFa,OAAO,CAAE,kBAAkB,CAAC,CAQxC;IACD;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgB5B;IAED;;;;;OAKG;IACH,+BAHW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;OAMG;IACH,oDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAuC5B;IAED;;;;;;OAMG;IACH,kDAHW,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAM5B;IAED;;;;;;OAMG;IACH,0CAJW,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAUrE;IAED;;;;;OAKG;IACH,uCAHW,qBAAqB,GACnB,sBAAsB,EAAE,CASpC;IAED;;;;;;OAMG;IACH,uBAJW,sBAAsB,KACtB,sBAAsB,GACpB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,qCAHW,sBAAsB,GACpB,sBAAsB,CAelC;IAED;;;;;;;OAOG;IACH,mDAJW,sBAAsB,EAAE,SACxB,MAAM,GACJ,OAAO,CAAE,qBAAqB,CAAC,CAwL3C;IAYD;;;;;;OAMG;IACH,oCAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CAwH7B;CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA7iBwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index bc42b61dd..11e91f591 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -406,10 +406,15 @@ class DataExtensionField extends MetadataType { .toSorted(); if (removedFieldNames.length > 0) { Util.logger.warn( - ` - ${removedFieldNames.length} field(s) of ${deKey} found on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. Please run the following command to delete them:\nmcdev delete ${this.buObject.credential}/${this.buObject.businessUnit} -m ` + - removedFieldNames - .map((name) => `dataExtensionField:"${deKey}.${name}"`) - .join(' ') + ` - ${removedFieldNames.length} field(s) of ${deKey} found on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. To delete them, please run:` + ); + Util.logger.info( + Util.getGrayMsg( + `mcdev delete ${this.buObject.credential}/${this.buObject.businessUnit} -m ` + + removedFieldNames + .map((name) => `dataExtensionField:"${deKey}.${name}"`) + .join(' ') + ) ); } From ef02af7f37880c0a4491a7c70be34930cc194694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sun, 15 Mar 2026 09:46:03 +0100 Subject: [PATCH 11/38] #2145 improve field-not-auto-deleted warning --- lib/metadataTypes/DataExtensionField.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index 11e91f591..ed8a7f93d 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -406,7 +406,7 @@ class DataExtensionField extends MetadataType { .toSorted(); if (removedFieldNames.length > 0) { Util.logger.warn( - ` - ${removedFieldNames.length} field(s) of ${deKey} found on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. To delete them, please run:` + ` - dataExtension ${deKey}: found ${removedFieldNames.length} field${removedFieldNames.length>1?'s':''} on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. To delete them, please run:` ); Util.logger.info( Util.getGrayMsg( From 0ab5d9c18ce33317193a97fa02b6fb14444bd5ca Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 09:21:59 +0000 Subject: [PATCH 12/38] Initial plan From 4a4d60444ccd8384ebb08affe8b9c2162fad59f2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 09:25:25 +0000 Subject: [PATCH 13/38] feat: add copilot-instructions.md and update pr-labeler and post-checkout for copilot branches Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .github/copilot-instructions.md | 83 +++++++++++++++++++++++++++++++++ .github/pr-labeler.yml | 6 +-- .husky/post-checkout | 2 +- 3 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 000000000..56ff2f4f1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,83 @@ +# GitHub Copilot Instructions for sfmc-devtools + +## Commit Messages + +Prefix every commit message with the issue number it was created for: + +``` +#1234: +``` + +Example: `#1234: fix journey deployment error` + +## Branch Naming + +Branch names must follow this pattern, where the type is derived from the issue type: + +``` +copilot/task/1234-issue-title +copilot/bug/1234-issue-title +copilot/feature/1234-issue-title +``` + +- Use `task` for task/chore issues +- Use `bug` for bug report issues +- Use `feature` for feature request/enhancement issues +- Replace spaces in the issue title with hyphens and use lowercase + +## Pull Request Title + +The PR title should be derived from the branch name: + +``` +Branch: copilot/task/1234-issue-title +PR title: task/1234 issue title +``` + +Format: `/ ` + +## Pull Request Description + +Follow the structure defined in [PULL_REQUEST_TEMPLATE.md](./PULL_REQUEST_TEMPLATE.md): + +```markdown +# PR details + +## What changes did you make? (Give an overview) + +- closes #1234 + +## Further details (optional) + +... + +## Checklist + +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] test scripts updated +- [ ] Wiki updated (if applicable) +``` + +Replace `#1234` with the actual issue number the PR is created for. + +## Issue Relationship + +Always link the PR to the issue it was created for by including `closes #` in the PR description. + +## Labels + +The repository has component labels prefixed with `c/` based on the class names in `lib/metadataTypes/`. When files in that directory are changed, assign the matching pre-existing `c/` label(s) to the PR. + +Examples: +- Changes to `lib/metadataTypes/Journey.js` → assign label `c/journey` +- Changes to `lib/metadataTypes/Automation.js` → assign label `c/automation` +- Changes to `lib/metadataTypes/DataExtension.js` → assign label `c/dataextension` + +The label name is `c/` followed by the lowercase class name (filename without extension). + +Only assign labels that already exist in the repository. + +## Milestone + +Assign the same milestone to the PR that the issue has assigned. diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml index 980729c45..3bb46f4fe 100644 --- a/.github/pr-labeler.yml +++ b/.github/pr-labeler.yml @@ -1,3 +1,3 @@ -enhancement: ['feature/*', 'feat/*'] -bug: ['bugfix/*', 'bug/*', 'fix/*', 'hotfix/*'] -chore: ['chore/*', 'task/*'] +enhancement: ['feature/*', 'feat/*', 'copilot/feature/*'] +bug: ['bugfix/*', 'bug/*', 'fix/*', 'hotfix/*', 'copilot/bug/*'] +chore: ['chore/*', 'task/*', 'copilot/task/*'] diff --git a/.husky/post-checkout b/.husky/post-checkout index b1ebc3d06..b12a3dc35 100755 --- a/.husky/post-checkout +++ b/.husky/post-checkout @@ -1,7 +1,7 @@ #!/bin/sh # ### git commit message template ### git config commit.template .git/templatemessage -TICKETID=`git rev-parse --abbrev-ref HEAD | LC_ALL=en_US.utf8 grep -oP '^((feature|bug|bugfix|fix|hotfix|task|chore)\/)?\K\d{1,7}' || true` +TICKETID=`git rev-parse --abbrev-ref HEAD | LC_ALL=en_US.utf8 grep -oP '^((copilot\/)?(feature|bug|bugfix|fix|hotfix|task|chore)\/)?\K\d{1,7}' || true` if [ -z "$TICKETID" ] then TICKETID="0" From b30b53dea67f8e9414d210b1021ea3cc0a6bc3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sun, 15 Mar 2026 10:37:47 +0100 Subject: [PATCH 14/38] #2549 code review --- .github/copilot-instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 56ff2f4f1..d71bc3b42 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -74,7 +74,7 @@ Examples: - Changes to `lib/metadataTypes/Automation.js` → assign label `c/automation` - Changes to `lib/metadataTypes/DataExtension.js` → assign label `c/dataextension` -The label name is `c/` followed by the lowercase class name (filename without extension). +The label name is `c/` followed by the lower camel-cased class name (filename without extension). Only assign labels that already exist in the repository. From 6cf69efbf251814b46493b5991ddc1d960154fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sun, 15 Mar 2026 11:07:53 +0100 Subject: [PATCH 15/38] #0 double check if bug ticket is outdated --- .github/copilot-instructions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index d71bc3b42..727fb60ac 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,5 +1,7 @@ # GitHub Copilot Instructions for sfmc-devtools +Always assume a bug-ticket might be outdated and first try to verify if the described issue is still occurring. + ## Commit Messages Prefix every commit message with the issue number it was created for: From f59f5b24d526d4dc7729045b4edcad9d97d8ba8c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 10:15:50 +0000 Subject: [PATCH 16/38] Initial plan From 01295d91f16ade0ba31f7a6f1bc4bf86b7d5d218 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Mar 2026 10:55:59 +0000 Subject: [PATCH 17/38] #1834: fix getDependentFiles to find shared DEs in _ParentBU_ on child BU Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> --- .../lib/metadataTypes/DataExtension.d.ts.map | 2 +- @types/lib/metadataTypes/MetadataType.d.ts | 9 +++ .../lib/metadataTypes/MetadataType.d.ts.map | 2 +- lib/index.js | 4 +- lib/metadataTypes/DataExtension.js | 53 ++++++++++++ lib/metadataTypes/MetadataType.js | 61 ++++++++++++++ .../template_sharedDE-expected.json | 53 ++++++++++++ .../query/template_sharedDE-expected.json | 8 ++ .../query/template_sharedDE-expected.sql | 7 ++ test/type.query.test.js | 81 +++++++++++++++++++ 10 files changed, 276 insertions(+), 4 deletions(-) create mode 100644 test/resources/1111111/dataExtension/template_sharedDE-expected.json create mode 100644 test/resources/9999999/query/template_sharedDE-expected.json create mode 100644 test/resources/9999999/query/template_sharedDE-expected.sql diff --git a/@types/lib/metadataTypes/DataExtension.d.ts.map b/@types/lib/metadataTypes/DataExtension.d.ts.map index b11737981..a1730fa37 100644 --- a/@types/lib/metadataTypes/DataExtension.d.ts.map +++ b/@types/lib/metadataTypes/DataExtension.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":";uBAea,OAAO,wBAAwB,EAAE,QAAQ;+BACzC,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;8BACrD,OAAO,wBAAwB,EAAE,eAAe;gCAChD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;qCAI5C,OAAO,wBAAwB,EAAE,sBAAsB;oCACvD,OAAO,wBAAwB,EAAE,qBAAqB;gCACtD,OAAO,wBAAwB,EAAE,iBAAiB;+BAClD,OAAO,wBAAwB,EAAE,gBAAgB;AAb9D;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AACH;IACI,mFAAmF;IACnF;;;;MAAiB;IAEjB;;;;;;;OAOG;IACH,2BAJW,gBAAgB,aAChB,MAAM,GACJ,OAAO,CAAE,eAAe,CAAC,CAqGrC;IA0ED;;;;;OAKG;IACH,8CAHW,MAAM,GACJ,OAAO,CA0BnB;IAED;;;;;OAKG;IACH,wBAHW,iBAAiB,gBAK3B;IAED;;;;;;;OAOG;IACH,4DAHW,iBAAiB,GACf,IAAI,CAahB;IAED;;;;;;OAMG;IACH,wBAJW,iBAAiB,kBACjB,OAAO,gBAKjB;IAED;;;;;;;OAOG;IACH,yCALW,gBAAgB,oBAChB,gBAAgB,kBAChB;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,GAChC,OAAO,CAAE,IAAI,CAAC,CAsE1B;IAED;;;;;;;;;OASG;IACH,iDALW,gBAAgB,oBAChB,gBAAgB,kBAChB;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,GAChC,OAAO,CAAE,IAAI,CAAC,CAyE1B;IAED;;;;OAIG;IACH,yCAFa,OAAO,CAAE,MAAM,EAAE,CAAC,CA8C9B;IAED;;;;;;;;OAQG;IACH,iDANW,MAAM,kBACN,QAAQ,gBACR,MAAM;;QAEJ,OAAO,CAAE,MAAM,EAAE,CAAC,CAwE9B;IAED;;;;;;;;;;;OAWG;IACH,0CARW,MAAM,SACN,MAAM,mBACN,QAAQ,iBACR,MAAM,kBACN,QAAQ,gBACR,MAAM,GACJ,OAAO,CAAE,OAAO,CAAC,CA+C7B;IAED;;;;;;;;;OASG;IACH,8DANW,QAAQ,iBACR,MAAM,SACN,MAAM,QACN,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CA2B5B;IAED;;;;;;;;;OASG;IACH,6DANW,MAAM,kBACN,QAAQ,gBACR,MAAM,SACN,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAkB5B;IAED;;;;;;;;;;OAUG;IACH,8DAPW,MAAM,mBACN,QAAQ,iBACR,MAAM,SACN,MAAM,iBACN,MAAM,gBAgBhB;IAED;;;;;;;;OAQG;IACH,6BANW,MAAM,qBACN,MAAM,EAAE,MACR,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE;QAAC,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAgDhE;IAED;;;;;;OAMG;IACH,iDAHW,MAAM,EAAE,GACN,OAAO,CAAE,gBAAgB,CAAC,CAqEtC;IAED;;;;;;;OAOG;IACH,8BALW,gBAAgB,iBAChB,iBAAiB,qBACjB,MAAM,EAAE,GACN,OAAO,CAAE,IAAI,CAAC,CA0B1B;IAED;;;;;OAKG;IACH,4CAHW,MAAM,EAAE,GACN,OAAO,CAAE;QAAC,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAKhE;IAED;;;;;OAKG;IACH,mCAHW,iBAAiB,GACf,OAAO,CAAE,iBAAiB,CAAC,CAoFvC;IAED;;;;;;;OAOG;IACH,+BAUC;IAED;;;;;;;OAOG;IACH,0CAsBC;IAED;;;;;OAKG;IACH,0CAHW,gBAAgB,GACd,OAAO,CAAE,IAAI,CAAC,CAI1B;IAED;;;;;OAKG;IACH,gCAHW,iBAAiB,GACf,OAAO,CAAE,iBAAiB,CAAC,CAiIvC;IAED;;;;;;;;OAQG;IACH,gCA2CC;IAED;;;;;;;;;OASG;IACH,8BAqEC;IAED;;;;;;;;;;;OAWG;IACH,yBAgCC;IAED;;;;;OAKG;IACH,8BAHW,gBAAgB,GACd,OAAO,CAAE,GAAG,CAAC,CAiFzB;IAYD;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,OAAO,CAAE,IAAI,CAAC,CAM1B;IAED;;;;OAIG;IACH,2BAFa,OAAO,CAAE;QAAC,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAIhE;IAED;;;;;;;;OAQG;IACH,uCALW,MAAM,QACN,MAAM,qBACN,WAAW,GACT,OAAO,CAAE;QAAC,QAAQ,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAiDjE;IA6DD;;;;;;;OAOG;IACH,4BAWC;CAgHJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAltDwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/MetadataType.d.ts b/@types/lib/metadataTypes/MetadataType.d.ts index c8c3fa4d1..619c67aa8 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts +++ b/@types/lib/metadataTypes/MetadataType.d.ts @@ -748,6 +748,15 @@ declare class MetadataType { * @param {TypeKeyCombo} dependentTypeKeyCombo list started in this.getDependentTypes */ static getDependentFilesExtra(metadataItem: object, dependentTypeKeyCombo: TypeKeyCombo): void; + /** + * Returns alternative file paths to check when a dependency key is not found in the primary + * retrieve folder. Override in subtypes to support items stored in other BU folders. + * Used by {@link MetadataType.getDependentFiles}. + * + * @param {string[]} keyArr keys that were not found in the primary location + * @returns {Promise.} alternative file paths to check + */ + static getAlternativeFilesToCommit(keyArr: string[]): Promise; /** * helper for {@link MetadataType.getDependentFiles} * diff --git a/@types/lib/metadataTypes/MetadataType.d.ts.map b/@types/lib/metadataTypes/MetadataType.d.ts.map index f246f1e83..239085868 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts.map +++ b/@types/lib/metadataTypes/MetadataType.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 859f3cd1b..f663b71fd 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1004,12 +1004,12 @@ class Mcdev { `Found ${additionalAssetDependencies.length - initialAssetNumber} additional assets linked via ContentBlockByX.` ); } - // reset cache in case this is used progammatically somehow - Asset.getJsonFromFSCache = null; // remove duplicates in main object after adding dependencies typeKeyList[depType] = [...new Set(typeKeyList[depType])]; } + // reset cache regardless of whether assets were found, to avoid stale data in programmatic use + MetadataTypeInfo['asset'].getJsonFromFSCache = null; return typeKeyList; } diff --git a/lib/metadataTypes/DataExtension.js b/lib/metadataTypes/DataExtension.js index b6c2cd30e..4aa70b779 100644 --- a/lib/metadataTypes/DataExtension.js +++ b/lib/metadataTypes/DataExtension.js @@ -1664,6 +1664,59 @@ class DataExtension extends MetadataType { return super.getFilesToCommit(keyArr); } } + /** + * Returns paths in the _ParentBU_ retrieve folder for keys not found in the child BU folder. + * Shared dataExtensions are always stored under _ParentBU_, never on the child BU. + * Used by {@link MetadataType.getDependentFiles} to avoid false "not found" warnings. + * + * @param {string[]} keyArr keys that were not found in the child BU retrieve folder + * @returns {Promise.} file paths to check in the _ParentBU_ folder + */ + static async getAlternativeFilesToCommit(keyArr) { + // shared DEs are always in _ParentBU_; no alternative needed when already on parent BU + if (this.buObject.eid === this.buObject.mid) { + return []; + } + const parentBUPath = File.normalizePath([ + this.properties.directories.retrieve, + this.buObject.credential, + Util.parentBuName, + this.definition.type, + ]); + return keyArr.map((key) => + File.normalizePath([ + parentBUPath, + File.filterIllegalFilenames(key) + '.' + this.definition.type + '-meta.json', + ]) + ); + } + + /** + * Looks for a dataExtension file in the _ParentBU_ retrieve folder when not found in the + * child BU folder. Shared dataExtensions are always stored under _ParentBU_. + * Used by {@link MetadataType.buildTemplate} as a secondary file location. + * + * @param {string} templateDir primary retrieve directory (child BU) + * @param {string[]} typeDirArr type sub-directory array, e.g. ['dataExtension'] + * @param {string} templateName key/name of the metadata item + * @param {string} fileName full file name with extension suffix + * @param {Error} ex the original error from the primary read attempt + * @returns {Promise.} file content string or undefined if not found + */ + // eslint-disable-next-line no-unused-vars + static async readSecondaryFolder(templateDir, typeDirArr, templateName, fileName, ex) { + // shared DEs are always in _ParentBU_; no alternative needed when already on parent BU + if (this.buObject.eid === this.buObject.mid) { + return; + } + const parentBUDir = File.normalizePath([ + this.properties.directories.retrieve, + this.buObject.credential, + Util.parentBuName, + ]); + return File.readFilteredFilename([parentBUDir, ...typeDirArr], fileName, 'json'); + } + /** * helper for {@link MetadataType.createOrUpdate} * diff --git a/lib/metadataTypes/MetadataType.js b/lib/metadataTypes/MetadataType.js index ff8c65d7c..dfc4e7719 100644 --- a/lib/metadataTypes/MetadataType.js +++ b/lib/metadataTypes/MetadataType.js @@ -2765,6 +2765,55 @@ class MetadataType { } this.getDependentFilesExtra(metadataItem, dependentTypeKeyCombo); } + // Check alternative file paths for keys not yet found in the primary location. + // This enables subtypes to look in additional directories, e.g. shared DEs in _ParentBU_. + const keysNotYetFound = keyArr.filter( + (key) => !multiTypeKeyList[this.definition.type]?.includes(key) + ); + if (keysNotYetFound.length) { + const altFilePaths = (await this.getAlternativeFilesToCommit(keysNotYetFound)) + .filter(Boolean) + .filter((p) => p.endsWith('.json')); + for (const filePath of altFilePaths) { + let metadataItem; + try { + metadataItem = await File.readJson(filePath); + } catch { + Util.logger.debug( + `- Could not read ${filePath} while trying to find dependencies. Skipping` + ); + continue; + } + // store current key as found + multiTypeKeyList[this.definition.type].push( + metadataItem[this.definition.keyField] + '' + ); + // get dependent keys for this type + if (this.definition.dependencyGraph) { + for (const depType in this.definition.dependencyGraph) { + MetadataTypeInfo[depType].properties = this.properties; + MetadataTypeInfo[depType].buObject = this.buObject; + const dependentKeyArr = []; + for (const fieldReference of this.definition.dependencyGraph[depType]) { + const foundKeys = this.getNestedValue( + metadataItem, + fieldReference, + depType + ); + if (foundKeys) { + dependentKeyArr.push(...foundKeys); + } + } + if (dependentKeyArr.length) { + dependentTypeKeyCombo[depType] ||= []; + dependentTypeKeyCombo[depType].push(...dependentKeyArr); + } + } + } + this.getDependentFilesExtra(metadataItem, dependentTypeKeyCombo); + } + } + if (Object.keys(dependentTypeKeyCombo).length) { for (const type in dependentTypeKeyCombo) { // ensure we don't have duplicates @@ -2805,6 +2854,18 @@ class MetadataType { */ static getDependentFilesExtra(metadataItem, dependentTypeKeyCombo) {} + /** + * Returns alternative file paths to check when a dependency key is not found in the primary + * retrieve folder. Override in subtypes to support items stored in other BU folders. + * Used by {@link MetadataType.getDependentFiles}. + * + * @param {string[]} keyArr keys that were not found in the primary location + * @returns {Promise.} alternative file paths to check + */ + static async getAlternativeFilesToCommit(keyArr) { + return []; + } + /** * helper for {@link MetadataType.getDependentFiles} * diff --git a/test/resources/1111111/dataExtension/template_sharedDE-expected.json b/test/resources/1111111/dataExtension/template_sharedDE-expected.json new file mode 100644 index 000000000..ec25877ca --- /dev/null +++ b/test/resources/1111111/dataExtension/template_sharedDE-expected.json @@ -0,0 +1,53 @@ +{ + "CustomerKey": "{{{prefix}}}dataExtensionShared", + "DataRetentionPeriodLength": 6, + "Description": "{{{description}}}", + "Fields": [ + { + "DefaultValue": "", + "FieldType": "Text", + "IsPrimaryKey": false, + "IsRequired": false, + "MaxLength": 50, + "Name": "FirstName" + }, + { + "DefaultValue": "", + "FieldType": "Text", + "IsPrimaryKey": false, + "IsRequired": false, + "MaxLength": 50, + "Name": "LastName" + }, + { + "DefaultValue": "", + "FieldType": "EmailAddress", + "IsPrimaryKey": false, + "IsRequired": true, + "MaxLength": 254, + "Name": "EmailAddress" + }, + { + "DefaultValue": "", + "FieldType": "Text", + "IsPrimaryKey": true, + "IsRequired": true, + "MaxLength": 50, + "Name": "ContactKey" + } + ], + "IsSendable": true, + "IsTestable": true, + "Name": "{{{prefix}}}dataExtensionShared", + "ResetRetentionPeriodOnImport": false, + "SendableDataExtensionField": { + "Name": "ContactKey" + }, + "SendableSubscriberField": { + "Name": "Subscriber Key" + }, + "c__dataRetentionPeriodUnitOfMeasure": "Months", + "c__retentionPolicy": "individialRecords", + "r__folder_ContentType": "shared_dataextension", + "r__folder_Path": "Shared Items/Shared Data Extensions" +} diff --git a/test/resources/9999999/query/template_sharedDE-expected.json b/test/resources/9999999/query/template_sharedDE-expected.json new file mode 100644 index 000000000..4b8031ca5 --- /dev/null +++ b/test/resources/9999999/query/template_sharedDE-expected.json @@ -0,0 +1,8 @@ +{ + "name": "{{{prefix}}}query_SharedDE", + "key": "{{{prefix}}}query_SharedDE", + "description": "{{{description}}}", + "r__dataExtension_key": "{{{prefix}}}dataExtensionShared", + "targetUpdateTypeName": "Overwrite", + "r__folder_Path": "Query" +} diff --git a/test/resources/9999999/query/template_sharedDE-expected.sql b/test/resources/9999999/query/template_sharedDE-expected.sql new file mode 100644 index 000000000..01f415658 --- /dev/null +++ b/test/resources/9999999/query/template_sharedDE-expected.sql @@ -0,0 +1,7 @@ +SELECT + SubscriberKey AS testField, + TRIM(last_name) AS name +FROM + {{{prefix}}}dataExtensionShared +WHERE + country IN ({{{countryCodeIn}}}) diff --git a/test/type.query.test.js b/test/type.query.test.js index ab6715c45..f2a3264f7 100644 --- a/test/type.query.test.js +++ b/test/type.query.test.js @@ -815,6 +815,87 @@ describe('type: query', () => { return; }); + it('Should find shared dataExtension in _ParentBU_ when running buildTemplate with --dependencies on child BU', async () => { + // Retrieve shared DEs from _ParentBU_ to disk first + await handler.retrieve('testInstance/_ParentBU_', ['dataExtension']); + assert.equal( + process.exitCode, + 0, + '_ParentBU_ retrieve should not have thrown an error' + ); + const expectedApiCallsParentBURetrieve = 4; + assert.equal( + testUtils.getAPIHistoryLength(), + expectedApiCallsParentBURetrieve, + 'Unexpected number of requests for _ParentBU_ dataExtension retrieve' + ); + + // Retrieve query from child BU (testBU) + await handler.retrieve('testInstance/testBU', ['query']); + assert.equal( + process.exitCode, + 0, + 'testBU query retrieve should not have thrown an error' + ); + const expectedApiCallsTestBURetrieve = 5; + assert.equal( + testUtils.getAPIHistoryLength() - expectedApiCallsParentBURetrieve, + expectedApiCallsTestBURetrieve, + 'Unexpected number of requests for testBU query retrieve' + ); + + // Run buildTemplate with --dependencies: shared DE must be found in _ParentBU_ without warning + handler.setOptions({ dependencies: true, skipInteraction: true }); + const templateResult = await handler.buildTemplate( + 'testInstance/testBU', + 'query', + ['testExisting_query_SharedDE'], + ['testSourceMarket'] + ); + assert.equal(process.exitCode, 0, 'buildTemplate should not have thrown an error'); + + // Verify query was templated + assert.equal( + templateResult.query ? templateResult.query.length : 0, + 1, + 'expected one query to be templated' + ); + assert.deepEqual( + await testUtils.getActualTemplateJson('testExisting_query_SharedDE', 'query'), + await testUtils.getExpectedJson('9999999', 'query', 'template_sharedDE'), + 'returned query template JSON was not equal expected' + ); + expect( + await testUtils.getActualTemplateFile('testExisting_query_SharedDE', 'query', 'sql') + ).to.equal( + await testUtils.getExpectedFile('9999999', 'query', 'template_sharedDE', 'sql') + ); + + // Verify shared DE was found in _ParentBU_ and templated (not listed as missing) + assert.equal( + templateResult.dataExtension ? templateResult.dataExtension.length : 0, + 1, + 'expected shared DE to be found in _ParentBU_ and included in template result' + ); + assert.deepEqual( + await testUtils.getActualTemplateJson( + 'testExisting_dataExtensionShared', + 'dataExtension' + ), + await testUtils.getExpectedJson('1111111', 'dataExtension', 'template_sharedDE'), + 'returned shared DE template JSON was not equal expected' + ); + + assert.equal( + testUtils.getAPIHistoryLength() - + expectedApiCallsParentBURetrieve - + expectedApiCallsTestBURetrieve, + 4, + 'Unexpected number of requests made during buildTemplate --dependencies' + ); + return; + }); + it('Should create a query template via buildTemplate and build it', async () => { // download first before we test buildTemplate await handler.retrieve('testInstance/testBU', ['query']); From 2607dfec0df2c7c578bd92d56bfbd1a037ee77a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 09:39:20 +0000 Subject: [PATCH 18/38] Bump sfmc-sdk from 3.0.1 to 3.0.2 Bumps [sfmc-sdk](https://github.com/DougMidgley/SFMC-SDK) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/DougMidgley/SFMC-SDK/releases) - [Commits](https://github.com/DougMidgley/SFMC-SDK/compare/v3.0.1...v3.0.2) --- updated-dependencies: - dependency-name: sfmc-sdk dependency-version: 3.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 57 +++++++++++++++++++++++++++++++++++++++-------- package.json | 2 +- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index b45cef16b..4449bba36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "prettier": "3.8.1", "prettier-plugin-sql": "0.19.2", "semver": "7.7.4", - "sfmc-sdk": "3.0.1", + "sfmc-sdk": "3.0.2", "simple-git": "3.32.3", "toposort": "2.0.2", "update-notifier": "7.3.1", @@ -3340,21 +3340,25 @@ } }, "node_modules/fast-xml-builder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz", - "integrity": "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", + "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], - "license": "MIT" + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } }, "node_modules/fast-xml-parser": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.2.tgz", "integrity": "sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==", + "dev": true, "funding": [ { "type": "github", @@ -5759,6 +5763,21 @@ "node": ">=8" } }, + "node_modules/path-expression-matcher": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz", + "integrity": "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -6594,13 +6613,13 @@ } }, "node_modules/sfmc-sdk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sfmc-sdk/-/sfmc-sdk-3.0.1.tgz", - "integrity": "sha512-y2NwGUm4uuPAtWEKSiI+R4dFg65bXdP4EChRYmHHxnx9e1cOXBuH9166A84MDZC/sDLQ3UBdb1l4VuQ4YLIh0A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sfmc-sdk/-/sfmc-sdk-3.0.2.tgz", + "integrity": "sha512-rfgxBvo3owYbIVRjO29UgU2lDRwDoLEptW9bvcWkKsee1Be8VytoPg/lUd5uvh3CxFD6TQy/T6dZDKu5c0eDfw==", "license": "BSD-3-Clause", "dependencies": { "axios": "^1.7.2", - "fast-xml-parser": "5.4.2", + "fast-xml-parser": "5.5.6", "p-limit": "5.0.0" }, "engines": { @@ -6608,6 +6627,26 @@ "npm": ">=9" } }, + "node_modules/sfmc-sdk/node_modules/fast-xml-parser": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.6.tgz", + "integrity": "sha512-3+fdZyBRVg29n4rXP0joHthhcHdPUHaIC16cuyyd1iLsuaO6Vea36MPrxgAzbZna8lhvZeRL8Bc9GP56/J9xEw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.1.3", + "strnum": "^2.1.2" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/sfmc-sdk/node_modules/p-limit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", diff --git a/package.json b/package.json index 27999db79..62cabecf5 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "prettier": "3.8.1", "prettier-plugin-sql": "0.19.2", "semver": "7.7.4", - "sfmc-sdk": "3.0.1", + "sfmc-sdk": "3.0.2", "simple-git": "3.32.3", "toposort": "2.0.2", "update-notifier": "7.3.1", From 3900b5d771745bfecf96dbda12d1faa61e1fb9c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 18:17:44 +0000 Subject: [PATCH 19/38] Bump fast-xml-parser from 5.4.2 to 5.5.6 Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.4.2 to 5.5.6. - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.4.2...v5.5.6) --- updated-dependencies: - dependency-name: fast-xml-parser dependency-version: 5.5.6 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 19 ++++++++++--------- package.json | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4449bba36..9fd888606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", - "fast-xml-parser": "5.4.2", + "fast-xml-parser": "5.5.7", "globals": "17.4.0", "husky": "9.1.7", "lint-staged": "16.3.2", @@ -3355,9 +3355,9 @@ } }, "node_modules/fast-xml-parser": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.2.tgz", - "integrity": "sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==", + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.7.tgz", + "integrity": "sha512-LteOsISQ2GEiDHZch6L9hB0+MLoYVLToR7xotrzU0opCICBkxOPgHAy1HxAvtxfJNXDJpgAsQN30mkrfpO2Prg==", "dev": true, "funding": [ { @@ -3367,8 +3367,9 @@ ], "license": "MIT", "dependencies": { - "fast-xml-builder": "^1.0.0", - "strnum": "^2.1.2" + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.1.3", + "strnum": "^2.2.0" }, "bin": { "fxparser": "src/cli/cli.js" @@ -7011,9 +7012,9 @@ } }, "node_modules/strnum": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", - "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.1.tgz", + "integrity": "sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==", "funding": [ { "type": "github", diff --git a/package.json b/package.json index 62cabecf5..4069d2b41 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", - "fast-xml-parser": "5.4.2", + "fast-xml-parser": "5.5.7", "globals": "17.4.0", "husky": "9.1.7", "lint-staged": "16.3.2", From 58596b2854110812f253141238fc0b7db3b2b2af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 09:51:27 +0000 Subject: [PATCH 20/38] Bump prettier-plugin-sql from 0.19.2 to 0.20.0 Bumps [prettier-plugin-sql](https://github.com/un-ts/prettier) from 0.19.2 to 0.20.0. - [Release notes](https://github.com/un-ts/prettier/releases) - [Changelog](https://github.com/un-ts/prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/un-ts/prettier/compare/prettier-plugin-sql@0.19.2...prettier-plugin-sql@0.20.0) --- updated-dependencies: - dependency-name: prettier-plugin-sql dependency-version: 0.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9fd888606..30486430a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "mustache": "4.2.0", "p-limit": "7.3.0", "prettier": "3.8.1", - "prettier-plugin-sql": "0.19.2", + "prettier-plugin-sql": "0.20.0", "semver": "7.7.4", "sfmc-sdk": "3.0.2", "simple-git": "3.32.3", @@ -6104,14 +6104,14 @@ } }, "node_modules/prettier-plugin-sql": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.19.2.tgz", - "integrity": "sha512-DAu1Jcanpvs32OAOXsqaVXOpPs4nFLVkB3XwzRiZZVNL5/c+XdlNxWFMiMpMhYhmCG5BW3srK8mhikCOv5tPfg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.20.0.tgz", + "integrity": "sha512-7GRuduJIbWd10bFfYdFuymZdcVF37ZCukiuVi2a4c5ccqjAxHQtKbK7zSKyqGrFjCOBLQVVz4BStKWV7YvxAFA==", "license": "MIT", "dependencies": { "jsox": "^1.2.123", "node-sql-parser": "^5.3.10", - "sql-formatter": "^15.6.5", + "sql-formatter": "^15.7.0", "tslib": "^2.8.1" }, "engines": { diff --git a/package.json b/package.json index 4069d2b41..2c8d995b3 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "mustache": "4.2.0", "p-limit": "7.3.0", "prettier": "3.8.1", - "prettier-plugin-sql": "0.19.2", + "prettier-plugin-sql": "0.20.0", "semver": "7.7.4", "sfmc-sdk": "3.0.2", "simple-git": "3.32.3", From 9530955e4cd9b4c6bb56f771f3ba270e3cb5d175 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:52:19 +0000 Subject: [PATCH 21/38] Bump @types/node from 25.3.5 to 25.5.0 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.3.5 to 25.5.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.5.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30486430a..259c5c002 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "@types/fs-extra": "11.0.4", "@types/inquirer": "9.0.9", "@types/mocha": "10.0.8", - "@types/node": "25.3.5", + "@types/node": "25.5.0", "@types/yargs": "17.0.35", "assert": "2.1.0", "axios-mock-adapter": "2.0.0", @@ -1124,9 +1124,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "25.3.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz", - "integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "devOptional": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 2c8d995b3..222d1b004 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "@types/fs-extra": "11.0.4", "@types/inquirer": "9.0.9", "@types/mocha": "10.0.8", - "@types/node": "25.3.5", + "@types/node": "25.5.0", "@types/yargs": "17.0.35", "assert": "2.1.0", "axios-mock-adapter": "2.0.0", From ccc4cedeee2301aa5edc0808fbf522f7901b8ef8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:10:49 +0000 Subject: [PATCH 22/38] Bump eslint-plugin-jsdoc from 62.7.1 to 62.8.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 62.7.1 to 62.8.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v62.7.1...v62.8.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-version: 62.8.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 259c5c002..5cb9f2e4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "chai-files": "1.4.0", "eslint": "10.0.3", "eslint-config-ssjs": "2.0.0", - "eslint-plugin-jsdoc": "62.7.1", + "eslint-plugin-jsdoc": "62.8.0", "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", @@ -2863,9 +2863,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "62.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.7.1.tgz", - "integrity": "sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==", + "version": "62.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.8.0.tgz", + "integrity": "sha512-hu3r9/6JBmPG6wTcqtYzgZAnjEG2eqRUATfkFscokESg1VDxZM21ZaMire0KjeMwfj+SXvgB4Rvh5LBuesj92w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { diff --git a/package.json b/package.json index 222d1b004..d28fa60c0 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "chai-files": "1.4.0", "eslint": "10.0.3", "eslint-config-ssjs": "2.0.0", - "eslint-plugin-jsdoc": "62.7.1", + "eslint-plugin-jsdoc": "62.8.0", "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", From b276bdd1b83a8241922f2f79adb39c35bc0d7cc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:16:15 +0000 Subject: [PATCH 23/38] Bump lint-staged from 16.3.2 to 16.4.0 Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 16.3.2 to 16.4.0. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v16.3.2...v16.4.0) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 16.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 31 ++++++++++++++++++++++--------- package.json | 2 +- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5cb9f2e4c..8519f43ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "fast-xml-parser": "5.5.7", "globals": "17.4.0", "husky": "9.1.7", - "lint-staged": "16.3.2", + "lint-staged": "16.4.0", "mocha": "11.7.5", "mock-fs": "5.3.0", "npm-run-all": "4.1.5", @@ -4753,17 +4753,17 @@ } }, "node_modules/lint-staged": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.3.2.tgz", - "integrity": "sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.4.0.tgz", + "integrity": "sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==", "dev": true, "license": "MIT", "dependencies": { "commander": "^14.0.3", "listr2": "^9.0.5", - "micromatch": "^4.0.8", + "picomatch": "^4.0.3", "string-argv": "^0.3.2", - "tinyexec": "^1.0.2", + "tinyexec": "^1.0.4", "yaml": "^2.8.2" }, "bin": { @@ -4776,6 +4776,19 @@ "url": "https://opencollective.com/lint-staged" } }, + "node_modules/lint-staged/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/listr2": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", @@ -7192,9 +7205,9 @@ "dev": true }, "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", + "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index d28fa60c0..8b18d9e63 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "fast-xml-parser": "5.5.7", "globals": "17.4.0", "husky": "9.1.7", - "lint-staged": "16.3.2", + "lint-staged": "16.4.0", "mocha": "11.7.5", "mock-fs": "5.3.0", "npm-run-all": "4.1.5", From 0c138309ac4922974cacb47191ed96284a25f82c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:21:30 +0000 Subject: [PATCH 24/38] Bump simple-git from 3.32.3 to 3.33.0 Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.32.3 to 3.33.0. - [Release notes](https://github.com/steveukx/git-js/releases) - [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md) - [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.33.0/simple-git) --- updated-dependencies: - dependency-name: simple-git dependency-version: 3.33.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8519f43ac..11ca5d64c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "prettier-plugin-sql": "0.20.0", "semver": "7.7.4", "sfmc-sdk": "3.0.2", - "simple-git": "3.32.3", + "simple-git": "3.33.0", "toposort": "2.0.2", "update-notifier": "7.3.1", "winston": "3.19.0", @@ -6727,9 +6727,9 @@ } }, "node_modules/simple-git": { - "version": "3.32.3", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.32.3.tgz", - "integrity": "sha512-56a5oxFdWlsGygOXHWrG+xjj5w9ZIt2uQbzqiIGdR/6i5iococ7WQ/bNPzWxCJdEUGUCmyMH0t9zMpRJTaKxmw==", + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.33.0.tgz", + "integrity": "sha512-D4V/tGC2sjsoNhoMybKyGoE+v8A60hRawKQ1iFRA1zwuDgGZCBJ4ByOzZ5J8joBbi4Oam0qiPH+GhzmSBwbJng==", "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", diff --git a/package.json b/package.json index 8b18d9e63..deed7bccb 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "prettier-plugin-sql": "0.20.0", "semver": "7.7.4", "sfmc-sdk": "3.0.2", - "simple-git": "3.32.3", + "simple-git": "3.33.0", "toposort": "2.0.2", "update-notifier": "7.3.1", "winston": "3.19.0", From a99b9678a64c188e989440d20e6b80245c8da46f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:27:38 +0000 Subject: [PATCH 25/38] Bump inquirer from 13.3.0 to 13.3.2 Bumps [inquirer](https://github.com/SBoudrias/Inquirer.js) from 13.3.0 to 13.3.2. - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/inquirer@13.3.0...inquirer@13.3.2) --- updated-dependencies: - dependency-name: inquirer dependency-version: 13.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 192 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11ca5d64c..6b41e4d86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "console.table": "0.10.0", "deep-equal": "2.2.3", "fs-extra": "11.3.4", - "inquirer": "13.3.0", + "inquirer": "13.3.2", "json-to-table": "4.2.1", "mustache": "4.2.0", "p-limit": "7.3.0", @@ -466,24 +466,24 @@ } }, "node_modules/@inquirer/ansi": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.3.tgz", - "integrity": "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.4.tgz", + "integrity": "sha512-DpcZrQObd7S0R/U3bFdkcT5ebRwbTTC4D3tCc1vsJizmgPLxNJBo+AAFmrZwe8zk30P2QzgzGWZ3Q9uJwWuhIg==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@inquirer/checkbox": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.0.tgz", - "integrity": "sha512-/HjF1LN0a1h4/OFsbGKHNDtWICFU/dqXCdym719HFTyJo9IG7Otr+ziGWc9S0iQuohRZllh+WprSgd5UW5Fw0g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.1.2.tgz", + "integrity": "sha512-PubpMPO2nJgMufkoB3P2wwxNXEMUXnBIKi/ACzDUYfaoPuM7gSTmuxJeMscoLVEsR4qqrCMf5p0SiYGWnVJ8kw==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.5", - "@inquirer/figures": "^2.0.3", - "@inquirer/type": "^4.0.3" + "@inquirer/ansi": "^2.0.4", + "@inquirer/core": "^11.1.7", + "@inquirer/figures": "^2.0.4", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -498,13 +498,13 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.8.tgz", - "integrity": "sha512-Di6dgmiZ9xCSUxWUReWTqDtbhXCuG2MQm2xmgSAIruzQzBqNf49b8E07/vbCYY506kDe8BiwJbegXweG8M1klw==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.10.tgz", + "integrity": "sha512-tiNyA73pgpQ0FQ7axqtoLUe4GDYjNCDcVsbgcA5anvwg2z6i+suEngLKKJrWKJolT//GFPZHwN30binDIHgSgQ==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -519,14 +519,14 @@ } }, "node_modules/@inquirer/core": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.5.tgz", - "integrity": "sha512-QQPAX+lka8GyLcZ7u7Nb1h6q72iZ/oy0blilC3IB2nSt1Qqxp7akt94Jqhi/DzARuN3Eo9QwJRvtl4tmVe4T5A==", + "version": "11.1.7", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.7.tgz", + "integrity": "sha512-1BiBNDk9btIwYIzNZpkikIHXWeNzNncJePPqwDyVMhXhD1ebqbpn1mKGctpoqAbzywZfdG0O4tvmsGIcOevAPQ==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.3", - "@inquirer/figures": "^2.0.3", - "@inquirer/type": "^4.0.3", + "@inquirer/ansi": "^2.0.4", + "@inquirer/figures": "^2.0.4", + "@inquirer/type": "^4.0.4", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", @@ -545,14 +545,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.8.tgz", - "integrity": "sha512-sLcpbb9B3XqUEGrj1N66KwhDhEckzZ4nI/W6SvLXyBX8Wic3LDLENlWRvkOGpCPoserabe+MxQkpiMoI8irvyA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.10.tgz", + "integrity": "sha512-VJx4XyaKea7t8hEApTw5dxeIyMtWXre2OiyJcICCRZI4hkoHsMoCnl/KbUnJJExLbH9csLLHMVR144ZhFE1CwA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/external-editor": "^2.0.3", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/external-editor": "^2.0.4", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -567,13 +567,13 @@ } }, "node_modules/@inquirer/expand": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.8.tgz", - "integrity": "sha512-QieW3F1prNw3j+hxO7/NKkG1pk3oz7pOB6+5Upwu3OIwADfPX0oZVppsqlL+Vl/uBHHDSOBY0BirLctLnXwGGg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.10.tgz", + "integrity": "sha512-fC0UHJPXsTRvY2fObiwuQYaAnHrp3aDqfwKUJSdfpgv18QUG054ezGbaRNStk/BKD5IPijeMKWej8VV8O5Q/eQ==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -588,9 +588,9 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.3.tgz", - "integrity": "sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.4.tgz", + "integrity": "sha512-Prenuv9C1PHj2Itx0BcAOVBTonz02Hc2Nd2DbU67PdGUaqn0nPCnV34oDyyoaZHnmfRxkpuhh/u51ThkrO+RdA==", "license": "MIT", "dependencies": { "chardet": "^2.1.1", @@ -609,22 +609,22 @@ } }, "node_modules/@inquirer/figures": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.3.tgz", - "integrity": "sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.4.tgz", + "integrity": "sha512-eLBsjlS7rPS3WEhmOmh1znQ5IsQrxWzxWDxO51e4urv+iVrSnIHbq4zqJIOiyNdYLa+BVjwOtdetcQx1lWPpiQ==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@inquirer/input": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.8.tgz", - "integrity": "sha512-p0IJslw0AmedLEkOU+yrEX3Aj2RTpQq7ZOf8nc1DIhjzaxRWrrgeuE5Kyh39fVRgtcACaMXx/9WNo8+GjgBOfw==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.10.tgz", + "integrity": "sha512-nvZ6qEVeX/zVtZ1dY2hTGDQpVGD3R7MYPLODPgKO8Y+RAqxkrP3i/3NwF3fZpLdaMiNuK0z2NaYIx9tPwiSegQ==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -639,13 +639,13 @@ } }, "node_modules/@inquirer/number": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.8.tgz", - "integrity": "sha512-uGLiQah9A0F9UIvJBX52m0CnqtLaym0WpT9V4YZrjZ+YRDKZdwwoEPz06N6w8ChE2lrnsdyhY9sL+Y690Kh9gQ==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.10.tgz", + "integrity": "sha512-Ht8OQstxiS3APMGjHV0aYAjRAysidWdwurWEo2i8yI5xbhOBWqizT0+MU1S2GCcuhIBg+3SgWVjEoXgfhY+XaA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -660,14 +660,14 @@ } }, "node_modules/@inquirer/password": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.8.tgz", - "integrity": "sha512-zt1sF4lYLdvPqvmvHdmjOzuUUjuCQ897pdUCO8RbXMUDKXJTTyOQgtn23le+jwcb+MpHl3VAFvzIdxRAf6aPlA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.10.tgz", + "integrity": "sha512-QbNyvIE8q2GTqKLYSsA8ATG+eETo+m31DSR0+AU7x3d2FhaTWzqQek80dj3JGTo743kQc6mhBR0erMjYw5jQ0A==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/ansi": "^2.0.4", + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -682,21 +682,21 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.3.0.tgz", - "integrity": "sha512-JAj66kjdH/F1+B7LCigjARbwstt3SNUOSzMdjpsvwJmzunK88gJeXmcm95L9nw1KynvFVuY4SzXh/3Y0lvtgSg==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.3.2.tgz", + "integrity": "sha512-yFroiSj2iiBFlm59amdTvAcQFvWS6ph5oKESls/uqPBect7rTU2GbjyZO2DqxMGuIwVA8z0P4K6ViPcd/cp+0w==", "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.1.0", - "@inquirer/confirm": "^6.0.8", - "@inquirer/editor": "^5.0.8", - "@inquirer/expand": "^5.0.8", - "@inquirer/input": "^5.0.8", - "@inquirer/number": "^4.0.8", - "@inquirer/password": "^5.0.8", - "@inquirer/rawlist": "^5.2.4", - "@inquirer/search": "^4.1.4", - "@inquirer/select": "^5.1.0" + "@inquirer/checkbox": "^5.1.2", + "@inquirer/confirm": "^6.0.10", + "@inquirer/editor": "^5.0.10", + "@inquirer/expand": "^5.0.10", + "@inquirer/input": "^5.0.10", + "@inquirer/number": "^4.0.10", + "@inquirer/password": "^5.0.10", + "@inquirer/rawlist": "^5.2.6", + "@inquirer/search": "^4.1.6", + "@inquirer/select": "^5.1.2" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -711,13 +711,13 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.4.tgz", - "integrity": "sha512-fTuJ5Cq9W286isLxwj6GGyfTjx1Zdk4qppVEPexFuA6yioCCXS4V1zfKroQqw7QdbDPN73xs2DiIAlo55+kBqg==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.6.tgz", + "integrity": "sha512-jfw0MLJ5TilNsa9zlJ6nmRM0ZFVZhhTICt4/6CU2Dv1ndY7l3sqqo1gIYZyMMDw0LvE1u1nzJNisfHEhJIxq5w==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -732,14 +732,14 @@ } }, "node_modules/@inquirer/search": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.4.tgz", - "integrity": "sha512-9yPTxq7LPmYjrGn3DRuaPuPbmC6u3fiWcsE9ggfLcdgO/ICHYgxq7mEy1yJ39brVvgXhtOtvDVjDh9slJxE4LQ==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.6.tgz", + "integrity": "sha512-3/6kTRae98hhDevENScy7cdFEuURnSpM3JbBNg8yfXLw88HgTOl+neUuy/l9W0No5NzGsLVydhBzTIxZP7yChQ==", "license": "MIT", "dependencies": { - "@inquirer/core": "^11.1.5", - "@inquirer/figures": "^2.0.3", - "@inquirer/type": "^4.0.3" + "@inquirer/core": "^11.1.7", + "@inquirer/figures": "^2.0.4", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -754,15 +754,15 @@ } }, "node_modules/@inquirer/select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.0.tgz", - "integrity": "sha512-OyYbKnchS1u+zRe14LpYrN8S0wH1vD0p2yKISvSsJdH2TpI87fh4eZdWnpdbrGauCRWDph3NwxRmM4Pcm/hx1Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.1.2.tgz", + "integrity": "sha512-kTK8YIkHV+f02y7bWCh7E0u2/11lul5WepVTclr3UMBtBr05PgcZNWfMa7FY57ihpQFQH/spLMHTcr0rXy50tA==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.5", - "@inquirer/figures": "^2.0.3", - "@inquirer/type": "^4.0.3" + "@inquirer/ansi": "^2.0.4", + "@inquirer/core": "^11.1.7", + "@inquirer/figures": "^2.0.4", + "@inquirer/type": "^4.0.4" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -777,9 +777,9 @@ } }, "node_modules/@inquirer/type": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.3.tgz", - "integrity": "sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.4.tgz", + "integrity": "sha512-PamArxO3cFJZoOzspzo6cxVlLeIftyBsZw/S9bKY5DzxqJVZgjoj1oP8d0rskKtp7sZxBycsoer1g6UeJV1BBA==", "license": "MIT", "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -4052,15 +4052,15 @@ } }, "node_modules/inquirer": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-13.3.0.tgz", - "integrity": "sha512-APTrZe9IhrsshL0u2PgmEMLP3CXDBjZ99xh5dR2+sryOt5R+JGL0KNuaTTT2lW54B9eNQDMutPR05UYTL7Xb1Q==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-13.3.2.tgz", + "integrity": "sha512-bh/OjBGxNR9qvfQj1n5bxtIF58mbOTp2InN5dKuwUK03dXcDGFsjlDinQRuXMZ4EGiJaFieUWHCAaxH2p7iUBw==", "license": "MIT", "dependencies": { - "@inquirer/ansi": "^2.0.3", - "@inquirer/core": "^11.1.5", - "@inquirer/prompts": "^8.3.0", - "@inquirer/type": "^4.0.3", + "@inquirer/ansi": "^2.0.4", + "@inquirer/core": "^11.1.7", + "@inquirer/prompts": "^8.3.2", + "@inquirer/type": "^4.0.4", "mute-stream": "^3.0.0", "run-async": "^4.0.6", "rxjs": "^7.8.2" diff --git a/package.json b/package.json index deed7bccb..90169bd43 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "console.table": "0.10.0", "deep-equal": "2.2.3", "fs-extra": "11.3.4", - "inquirer": "13.3.0", + "inquirer": "13.3.2", "json-to-table": "4.2.1", "mustache": "4.2.0", "p-limit": "7.3.0", From ffe1db13db96b6e5c0ef563ab66ec9d7baad872b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Fri, 20 Mar 2026 17:34:12 +0100 Subject: [PATCH 26/38] #2568: fix bad reference to dataFilter --- @types/lib/metadataTypes/Filter.d.ts | 2 +- @types/lib/metadataTypes/definitions/Filter.definition.d.ts | 2 +- lib/metadataTypes/definitions/Filter.definition.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/@types/lib/metadataTypes/Filter.d.ts b/@types/lib/metadataTypes/Filter.d.ts index fd703fa1c..67c923dd1 100644 --- a/@types/lib/metadataTypes/Filter.d.ts +++ b/@types/lib/metadataTypes/Filter.d.ts @@ -115,7 +115,7 @@ declare namespace Filter { bodyIteratorField: string; dependencies: string[]; dependencyGraph: { - filterDefinition: string[]; + dataFilter: string[]; dataExtension: string[]; }; hasExtended: boolean; diff --git a/@types/lib/metadataTypes/definitions/Filter.definition.d.ts b/@types/lib/metadataTypes/definitions/Filter.definition.d.ts index 418557281..a5a5fbcd5 100644 --- a/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +++ b/@types/lib/metadataTypes/definitions/Filter.definition.d.ts @@ -2,7 +2,7 @@ declare namespace _default { let bodyIteratorField: string; let dependencies: string[]; namespace dependencyGraph { - let filterDefinition: string[]; + let dataFilter: string[]; let dataExtension: string[]; } let hasExtended: boolean; diff --git a/lib/metadataTypes/definitions/Filter.definition.js b/lib/metadataTypes/definitions/Filter.definition.js index 76ae6c136..9f10f57db 100644 --- a/lib/metadataTypes/definitions/Filter.definition.js +++ b/lib/metadataTypes/definitions/Filter.definition.js @@ -9,7 +9,7 @@ export default { 'folder-hidden', ], dependencyGraph: { - filterDefinition: ['r__dataFilter_key'], + dataFilter: ['r__dataFilter_key'], dataExtension: ['r__source_dataExtension_key', 'r__destination_dataExtension_key'], }, hasExtended: false, From 2900768cdf98506f120982625a2f213a20a96958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Fri, 20 Mar 2026 17:36:12 +0100 Subject: [PATCH 27/38] #0 auto-formatting --- lib/metadataTypes/DataExtensionField.js | 2 +- lib/metadataTypes/definitions/Filter.definition.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/metadataTypes/DataExtensionField.js b/lib/metadataTypes/DataExtensionField.js index ed8a7f93d..ae387ebf7 100644 --- a/lib/metadataTypes/DataExtensionField.js +++ b/lib/metadataTypes/DataExtensionField.js @@ -406,7 +406,7 @@ class DataExtensionField extends MetadataType { .toSorted(); if (removedFieldNames.length > 0) { Util.logger.warn( - ` - dataExtension ${deKey}: found ${removedFieldNames.length} field${removedFieldNames.length>1?'s':''} on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. To delete them, please run:` + ` - dataExtension ${deKey}: found ${removedFieldNames.length} field${removedFieldNames.length > 1 ? 's' : ''} on the server but not in the deploy payload. Fields cannot be auto-deleted due to potential data loss. To delete them, please run:` ); Util.logger.info( Util.getGrayMsg( diff --git a/lib/metadataTypes/definitions/Filter.definition.js b/lib/metadataTypes/definitions/Filter.definition.js index 9f10f57db..af7ed9a9d 100644 --- a/lib/metadataTypes/definitions/Filter.definition.js +++ b/lib/metadataTypes/definitions/Filter.definition.js @@ -30,8 +30,7 @@ export default { maxKeyLength: 36, // confirmed max length type: 'filter', soapType: 'FilterActivity', - typeDescription: - 'Used in automations to filter lists and DEs. Depends on type "FilterDefinitions".', + typeDescription: 'Used in automations to filter lists and DEs. Depends on type "DataFilter".', typeRetrieveByDefault: true, typeCdpByDefault: true, typeName: 'Automation: Filter Activity', From 325126cf70e4c638ed216abcf90d9e17af7a01e8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 15:15:41 +0000 Subject: [PATCH 28/38] #1834: add TypeKeyCombo typedef to DataExtension.js Co-authored-by: JoernBerkefeld <1917227+JoernBerkefeld@users.noreply.github.com> Agent-Logs-Url: https://github.com/Accenture/sfmc-devtools/sessions/7111d9b8-5d50-4cdc-8f35-a764875ef429 --- @types/lib/metadataTypes/DataExtension.d.ts | 2 + .../lib/metadataTypes/DataExtension.d.ts.map | 2 +- @types/lib/metadataTypes/MetadataType.d.ts | 12 +-- .../lib/metadataTypes/MetadataType.d.ts.map | 2 +- lib/metadataTypes/DataExtension.js | 89 +++++++++++-------- lib/metadataTypes/MetadataType.js | 82 ++++------------- test/type.query.test.js | 25 ++---- 7 files changed, 87 insertions(+), 127 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtension.d.ts b/@types/lib/metadataTypes/DataExtension.d.ts index 62969af95..dd6817b36 100644 --- a/@types/lib/metadataTypes/DataExtension.d.ts +++ b/@types/lib/metadataTypes/DataExtension.d.ts @@ -5,6 +5,7 @@ export type MetadataTypeItemDiff = import("../../types/mcdev.d.js").MetadataType export type MetadataTypeMap = import("../../types/mcdev.d.js").MetadataTypeMap; export type SoapRequestParams = import("../../types/mcdev.d.js").SoapRequestParams; export type TemplateMap = import("../../types/mcdev.d.js").TemplateMap; +export type TypeKeyCombo = import("../../types/mcdev.d.js").TypeKeyCombo; export type DataExtensionFieldItem = import("../../types/mcdev.d.js").DataExtensionFieldItem; export type DataExtensionFieldMap = import("../../types/mcdev.d.js").DataExtensionFieldMap; export type DataExtensionItem = import("../../types/mcdev.d.js").DataExtensionItem; @@ -16,6 +17,7 @@ export type DataExtensionMap = import("../../types/mcdev.d.js").DataExtensionMap * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap + * @typedef {import('../../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo */ /** * @typedef {import('../../types/mcdev.d.js').DataExtensionFieldItem} DataExtensionFieldItem diff --git a/@types/lib/metadataTypes/DataExtension.d.ts.map b/@types/lib/metadataTypes/DataExtension.d.ts.map index a1730fa37..05d87138c 100644 --- a/@types/lib/metadataTypes/DataExtension.d.ts.map +++ b/@types/lib/metadataTypes/DataExtension.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/MetadataType.d.ts b/@types/lib/metadataTypes/MetadataType.d.ts index 619c67aa8..fc0e11604 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts +++ b/@types/lib/metadataTypes/MetadataType.d.ts @@ -749,14 +749,16 @@ declare class MetadataType { */ static getDependentFilesExtra(metadataItem: object, dependentTypeKeyCombo: TypeKeyCombo): void; /** - * Returns alternative file paths to check when a dependency key is not found in the primary - * retrieve folder. Override in subtypes to support items stored in other BU folders. + * Hook called when dependency keys were not found in the primary retrieve folder. + * Override in subtypes to show type-specific warnings (e.g. shared/synchronized dataExtensions). + * Keys returned by this method still receive the generic "not found" warning. * Used by {@link MetadataType.getDependentFiles}. * - * @param {string[]} keyArr keys that were not found in the primary location - * @returns {Promise.} alternative file paths to check + * @param {string[]} notFound keys that could not be found in the retrieve folder + * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys + * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static getAlternativeFilesToCommit(keyArr: string[]): Promise; + static handleNotFoundDependencies(notFound: string[], notFoundList: TypeKeyCombo): Promise; /** * helper for {@link MetadataType.getDependentFiles} * diff --git a/@types/lib/metadataTypes/MetadataType.d.ts.map b/@types/lib/metadataTypes/MetadataType.d.ts.map index 239085868..6518a3cd8 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts.map +++ b/@types/lib/metadataTypes/MetadataType.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtension.js b/lib/metadataTypes/DataExtension.js index 4aa70b779..a06f6ba51 100644 --- a/lib/metadataTypes/DataExtension.js +++ b/lib/metadataTypes/DataExtension.js @@ -19,6 +19,7 @@ import { checkbox } from '@inquirer/prompts'; * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap + * @typedef {import('../../types/mcdev.d.js').TypeKeyCombo} TypeKeyCombo */ /** @@ -1665,17 +1666,20 @@ class DataExtension extends MetadataType { } } /** - * Returns paths in the _ParentBU_ retrieve folder for keys not found in the child BU folder. - * Shared dataExtensions are always stored under _ParentBU_, never on the child BU. - * Used by {@link MetadataType.getDependentFiles} to avoid false "not found" warnings. + * Hook called when dependency keys were not found in the child BU retrieve folder. + * Checks the `_ParentBU_` folder for shared or synchronized dataExtensions and emits + * readable warnings. Does NOT add the found items to the deployment package. + * Only active when running on a child BU (eid !== mid). + * Used by {@link MetadataType.getDependentFiles}. * - * @param {string[]} keyArr keys that were not found in the child BU retrieve folder - * @returns {Promise.} file paths to check in the _ParentBU_ folder + * @param {string[]} notFound keys that were not found in the child BU retrieve folder + * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys + * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static async getAlternativeFilesToCommit(keyArr) { - // shared DEs are always in _ParentBU_; no alternative needed when already on parent BU + static async handleNotFoundDependencies(notFound, notFoundList) { + // on parent BU, shared DE check is not applicable if (this.buObject.eid === this.buObject.mid) { - return []; + return notFound; } const parentBUPath = File.normalizePath([ this.properties.directories.retrieve, @@ -1683,38 +1687,49 @@ class DataExtension extends MetadataType { Util.parentBuName, this.definition.type, ]); - return keyArr.map((key) => - File.normalizePath([ + const stillNotFound = []; + for (const key of notFound) { + const filePath = File.normalizePath([ parentBUPath, File.filterIllegalFilenames(key) + '.' + this.definition.type + '-meta.json', - ]) - ); - } - - /** - * Looks for a dataExtension file in the _ParentBU_ retrieve folder when not found in the - * child BU folder. Shared dataExtensions are always stored under _ParentBU_. - * Used by {@link MetadataType.buildTemplate} as a secondary file location. - * - * @param {string} templateDir primary retrieve directory (child BU) - * @param {string[]} typeDirArr type sub-directory array, e.g. ['dataExtension'] - * @param {string} templateName key/name of the metadata item - * @param {string} fileName full file name with extension suffix - * @param {Error} ex the original error from the primary read attempt - * @returns {Promise.} file content string or undefined if not found - */ - // eslint-disable-next-line no-unused-vars - static async readSecondaryFolder(templateDir, typeDirArr, templateName, fileName, ex) { - // shared DEs are always in _ParentBU_; no alternative needed when already on parent BU - if (this.buObject.eid === this.buObject.mid) { - return; + ]); + let metadataItem; + try { + metadataItem = await File.readJson(filePath); + } catch { + stillNotFound.push(key); + continue; + } + const contentType = metadataItem.r__folder_ContentType; + if (contentType === 'shared_dataextension') { + Util.logger.warn( + `dataExtension '${key}' is a shared dataExtension stored in _ParentBU_.` + ); + Util.logger.warn(`It cannot be included in the child BU deployment package.`); + Util.logger.warn( + `References to it may need to be changed during deployment via mcdev templating or manually.` + ); + Util.logger.warn( + `To update the shared dataExtension itself, run build for the parent BU and deploy it separately.` + ); + notFoundList[this.definition.type] ||= []; + notFoundList[this.definition.type].push(key); + } else if (contentType === 'synchronizeddataextension') { + Util.logger.warn( + `dataExtension '${key}' is a synchronized dataExtension stored in _ParentBU_.` + ); + Util.logger.warn(`It cannot be included in the child BU deployment package.`); + Util.logger.warn( + `The reference to it likely needs to be changed during deployment via mcdev templating or manually.` + ); + notFoundList[this.definition.type] ||= []; + notFoundList[this.definition.type].push(key); + } else { + // regular dataExtension found on parent BU cannot be used from a child BU; treat as not found + stillNotFound.push(key); + } } - const parentBUDir = File.normalizePath([ - this.properties.directories.retrieve, - this.buObject.credential, - Util.parentBuName, - ]); - return File.readFilteredFilename([parentBUDir, ...typeDirArr], fileName, 'json'); + return stillNotFound; } /** diff --git a/lib/metadataTypes/MetadataType.js b/lib/metadataTypes/MetadataType.js index dfc4e7719..b80dce28e 100644 --- a/lib/metadataTypes/MetadataType.js +++ b/lib/metadataTypes/MetadataType.js @@ -2765,55 +2765,6 @@ class MetadataType { } this.getDependentFilesExtra(metadataItem, dependentTypeKeyCombo); } - // Check alternative file paths for keys not yet found in the primary location. - // This enables subtypes to look in additional directories, e.g. shared DEs in _ParentBU_. - const keysNotYetFound = keyArr.filter( - (key) => !multiTypeKeyList[this.definition.type]?.includes(key) - ); - if (keysNotYetFound.length) { - const altFilePaths = (await this.getAlternativeFilesToCommit(keysNotYetFound)) - .filter(Boolean) - .filter((p) => p.endsWith('.json')); - for (const filePath of altFilePaths) { - let metadataItem; - try { - metadataItem = await File.readJson(filePath); - } catch { - Util.logger.debug( - `- Could not read ${filePath} while trying to find dependencies. Skipping` - ); - continue; - } - // store current key as found - multiTypeKeyList[this.definition.type].push( - metadataItem[this.definition.keyField] + '' - ); - // get dependent keys for this type - if (this.definition.dependencyGraph) { - for (const depType in this.definition.dependencyGraph) { - MetadataTypeInfo[depType].properties = this.properties; - MetadataTypeInfo[depType].buObject = this.buObject; - const dependentKeyArr = []; - for (const fieldReference of this.definition.dependencyGraph[depType]) { - const foundKeys = this.getNestedValue( - metadataItem, - fieldReference, - depType - ); - if (foundKeys) { - dependentKeyArr.push(...foundKeys); - } - } - if (dependentKeyArr.length) { - dependentTypeKeyCombo[depType] ||= []; - dependentTypeKeyCombo[depType].push(...dependentKeyArr); - } - } - } - this.getDependentFilesExtra(metadataItem, dependentTypeKeyCombo); - } - } - if (Object.keys(dependentTypeKeyCombo).length) { for (const type in dependentTypeKeyCombo) { // ensure we don't have duplicates @@ -2834,14 +2785,17 @@ class MetadataType { (key) => !multiTypeKeyList[this.definition.type].includes(key) ); if (notFound && notFound.length) { - Util.logger.warn( - Util.getGrayMsg( - ` ☇ skipping ${this.definition.type} dependenc${notFound.length === 1 ? 'y' : 'ies'} ${notFound.join(', ')}: Not found on your in your project folder.` - ) - ); - // make sure we don't search for it twice - notFoundList[this.definition.type] ||= []; - notFoundList[this.definition.type].push(...notFound); + const remainingNotFound = await this.handleNotFoundDependencies(notFound, notFoundList); + if (remainingNotFound.length) { + Util.logger.warn( + Util.getGrayMsg( + ` ☇ skipping ${this.definition.type} dependenc${remainingNotFound.length === 1 ? 'y' : 'ies'} ${remainingNotFound.join(', ')}: Not found on your in your project folder.` + ) + ); + // make sure we don't search for it twice + notFoundList[this.definition.type] ||= []; + notFoundList[this.definition.type].push(...remainingNotFound); + } } return multiTypeKeyList; } @@ -2855,15 +2809,17 @@ class MetadataType { static getDependentFilesExtra(metadataItem, dependentTypeKeyCombo) {} /** - * Returns alternative file paths to check when a dependency key is not found in the primary - * retrieve folder. Override in subtypes to support items stored in other BU folders. + * Hook called when dependency keys were not found in the primary retrieve folder. + * Override in subtypes to show type-specific warnings (e.g. shared/synchronized dataExtensions). + * Keys returned by this method still receive the generic "not found" warning. * Used by {@link MetadataType.getDependentFiles}. * - * @param {string[]} keyArr keys that were not found in the primary location - * @returns {Promise.} alternative file paths to check + * @param {string[]} notFound keys that could not be found in the retrieve folder + * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys + * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static async getAlternativeFilesToCommit(keyArr) { - return []; + static async handleNotFoundDependencies(notFound, notFoundList) { + return notFound; } /** diff --git a/test/type.query.test.js b/test/type.query.test.js index f2a3264f7..f788a8a31 100644 --- a/test/type.query.test.js +++ b/test/type.query.test.js @@ -815,7 +815,7 @@ describe('type: query', () => { return; }); - it('Should find shared dataExtension in _ParentBU_ when running buildTemplate with --dependencies on child BU', async () => { + it('Should warn about shared dataExtension in _ParentBU_ when running buildTemplate with --dependencies on child BU', async () => { // Retrieve shared DEs from _ParentBU_ to disk first await handler.retrieve('testInstance/_ParentBU_', ['dataExtension']); assert.equal( @@ -844,7 +844,7 @@ describe('type: query', () => { 'Unexpected number of requests for testBU query retrieve' ); - // Run buildTemplate with --dependencies: shared DE must be found in _ParentBU_ without warning + // Run buildTemplate with --dependencies: shared DE must show a warning, not be included in result handler.setOptions({ dependencies: true, skipInteraction: true }); const templateResult = await handler.buildTemplate( 'testInstance/testBU', @@ -871,28 +871,13 @@ describe('type: query', () => { await testUtils.getExpectedFile('9999999', 'query', 'template_sharedDE', 'sql') ); - // Verify shared DE was found in _ParentBU_ and templated (not listed as missing) + // Verify shared DE was NOT included in template result (only a warning should be shown) assert.equal( templateResult.dataExtension ? templateResult.dataExtension.length : 0, - 1, - 'expected shared DE to be found in _ParentBU_ and included in template result' - ); - assert.deepEqual( - await testUtils.getActualTemplateJson( - 'testExisting_dataExtensionShared', - 'dataExtension' - ), - await testUtils.getExpectedJson('1111111', 'dataExtension', 'template_sharedDE'), - 'returned shared DE template JSON was not equal expected' + 0, + 'shared DE should not be included in the child BU template result - only a warning should be shown' ); - assert.equal( - testUtils.getAPIHistoryLength() - - expectedApiCallsParentBURetrieve - - expectedApiCallsTestBURetrieve, - 4, - 'Unexpected number of requests made during buildTemplate --dependencies' - ); return; }); From 713412263947f794902da813a529eb6eadf73217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sat, 21 Mar 2026 19:59:28 +0100 Subject: [PATCH 29/38] #1834: reduce lines printed for warnings --- @types/lib/metadataTypes/DataExtension.d.ts.map | 2 +- @types/lib/metadataTypes/MetadataType.d.ts | 3 +-- @types/lib/metadataTypes/MetadataType.d.ts.map | 2 +- lib/metadataTypes/DataExtension.js | 11 +++-------- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/@types/lib/metadataTypes/DataExtension.d.ts.map b/@types/lib/metadataTypes/DataExtension.d.ts.map index 05d87138c..b16bceaf8 100644 --- a/@types/lib/metadataTypes/DataExtension.d.ts.map +++ b/@types/lib/metadataTypes/DataExtension.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DataExtension.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/DataExtension.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/@types/lib/metadataTypes/MetadataType.d.ts b/@types/lib/metadataTypes/MetadataType.d.ts index fc0e11604..9549007f0 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts +++ b/@types/lib/metadataTypes/MetadataType.d.ts @@ -755,10 +755,9 @@ declare class MetadataType { * Used by {@link MetadataType.getDependentFiles}. * * @param {string[]} notFound keys that could not be found in the retrieve folder - * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static handleNotFoundDependencies(notFound: string[], notFoundList: TypeKeyCombo): Promise; + static handleNotFoundDependencies(notFound: string[]): Promise; /** * helper for {@link MetadataType.getDependentFiles} * diff --git a/@types/lib/metadataTypes/MetadataType.d.ts.map b/@types/lib/metadataTypes/MetadataType.d.ts.map index 6518a3cd8..bcab33ecc 100644 --- a/@types/lib/metadataTypes/MetadataType.d.ts.map +++ b/@types/lib/metadataTypes/MetadataType.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MetadataType.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/MetadataType.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/metadataTypes/DataExtension.js b/lib/metadataTypes/DataExtension.js index a06f6ba51..319ade0ee 100644 --- a/lib/metadataTypes/DataExtension.js +++ b/lib/metadataTypes/DataExtension.js @@ -1703,22 +1703,17 @@ class DataExtension extends MetadataType { const contentType = metadataItem.r__folder_ContentType; if (contentType === 'shared_dataextension') { Util.logger.warn( - `dataExtension '${key}' is a shared dataExtension stored in _ParentBU_.` + `dataExtension '${key}' is a shared dataExtension stored in _ParentBU_. It cannot be included in the child BU deployment package.` ); - Util.logger.warn(`It cannot be included in the child BU deployment package.`); Util.logger.warn( - `References to it may need to be changed during deployment via mcdev templating or manually.` - ); - Util.logger.warn( - `To update the shared dataExtension itself, run build for the parent BU and deploy it separately.` + `References to it may need to be changed during deployment via mcdev templating or manually. To update the shared dataExtension itself, run build for the parent BU and deploy it separately.` ); notFoundList[this.definition.type] ||= []; notFoundList[this.definition.type].push(key); } else if (contentType === 'synchronizeddataextension') { Util.logger.warn( - `dataExtension '${key}' is a synchronized dataExtension stored in _ParentBU_.` + `dataExtension '${key}' is a synchronized dataExtension stored in _ParentBU_. It cannot be included in the child BU deployment package.` ); - Util.logger.warn(`It cannot be included in the child BU deployment package.`); Util.logger.warn( `The reference to it likely needs to be changed during deployment via mcdev templating or manually.` ); From a3fd7024abed77d8547702bdf5a7b58d77a3e835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Sat, 21 Mar 2026 20:01:50 +0100 Subject: [PATCH 30/38] #1834: fix incorrect listing of found shared/synced dataExtensions --- lib/metadataTypes/DataExtension.js | 7 +------ lib/metadataTypes/MetadataType.js | 5 ++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/metadataTypes/DataExtension.js b/lib/metadataTypes/DataExtension.js index 319ade0ee..60d5d8ddf 100644 --- a/lib/metadataTypes/DataExtension.js +++ b/lib/metadataTypes/DataExtension.js @@ -1673,10 +1673,9 @@ class DataExtension extends MetadataType { * Used by {@link MetadataType.getDependentFiles}. * * @param {string[]} notFound keys that were not found in the child BU retrieve folder - * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static async handleNotFoundDependencies(notFound, notFoundList) { + static async handleNotFoundDependencies(notFound) { // on parent BU, shared DE check is not applicable if (this.buObject.eid === this.buObject.mid) { return notFound; @@ -1708,8 +1707,6 @@ class DataExtension extends MetadataType { Util.logger.warn( `References to it may need to be changed during deployment via mcdev templating or manually. To update the shared dataExtension itself, run build for the parent BU and deploy it separately.` ); - notFoundList[this.definition.type] ||= []; - notFoundList[this.definition.type].push(key); } else if (contentType === 'synchronizeddataextension') { Util.logger.warn( `dataExtension '${key}' is a synchronized dataExtension stored in _ParentBU_. It cannot be included in the child BU deployment package.` @@ -1717,8 +1714,6 @@ class DataExtension extends MetadataType { Util.logger.warn( `The reference to it likely needs to be changed during deployment via mcdev templating or manually.` ); - notFoundList[this.definition.type] ||= []; - notFoundList[this.definition.type].push(key); } else { // regular dataExtension found on parent BU cannot be used from a child BU; treat as not found stillNotFound.push(key); diff --git a/lib/metadataTypes/MetadataType.js b/lib/metadataTypes/MetadataType.js index b80dce28e..e1e5e4dff 100644 --- a/lib/metadataTypes/MetadataType.js +++ b/lib/metadataTypes/MetadataType.js @@ -2785,7 +2785,7 @@ class MetadataType { (key) => !multiTypeKeyList[this.definition.type].includes(key) ); if (notFound && notFound.length) { - const remainingNotFound = await this.handleNotFoundDependencies(notFound, notFoundList); + const remainingNotFound = await this.handleNotFoundDependencies(notFound); if (remainingNotFound.length) { Util.logger.warn( Util.getGrayMsg( @@ -2815,10 +2815,9 @@ class MetadataType { * Used by {@link MetadataType.getDependentFiles}. * * @param {string[]} notFound keys that could not be found in the retrieve folder - * @param {TypeKeyCombo} notFoundList accumulator of all not-found keys * @returns {Promise.} keys that should still trigger the default "not found" warning */ - static async handleNotFoundDependencies(notFound, notFoundList) { + static async handleNotFoundDependencies(notFound) { return notFound; } From baa7527bcfc636fcf4225957053f5e7e8d8f7f2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:33:26 +0000 Subject: [PATCH 31/38] Bump eslint from 10.0.3 to 10.1.0 Bumps [eslint](https://github.com/eslint/eslint) from 10.0.3 to 10.1.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.0.3...v10.1.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.1.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6b41e4d86..90f77a70d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "c8": "11.0.0", "chai": "6.2.2", "chai-files": "1.4.0", - "eslint": "10.0.3", + "eslint": "10.1.0", "eslint-config-ssjs": "2.0.0", "eslint-plugin-jsdoc": "62.8.0", "eslint-plugin-mocha": "11.2.0", @@ -245,13 +245,13 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.2.tgz", - "integrity": "sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", + "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^1.1.0" + "@eslint/core": "^1.1.1" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -2775,16 +2775,16 @@ } }, "node_modules/eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", - "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz", + "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.3", - "@eslint/config-helpers": "^0.5.2", + "@eslint/config-helpers": "^0.5.3", "@eslint/core": "^1.1.1", "@eslint/plugin-kit": "^0.6.1", "@humanfs/node": "^0.16.6", @@ -2797,7 +2797,7 @@ "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", - "espree": "^11.1.1", + "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3151,9 +3151,9 @@ } }, "node_modules/eslint/node_modules/espree": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.1.tgz", - "integrity": "sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { diff --git a/package.json b/package.json index 90169bd43..c1ceba3d0 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "c8": "11.0.0", "chai": "6.2.2", "chai-files": "1.4.0", - "eslint": "10.0.3", + "eslint": "10.1.0", "eslint-config-ssjs": "2.0.0", "eslint-plugin-jsdoc": "62.8.0", "eslint-plugin-mocha": "11.2.0", From 39516c51c57a5c5518c5b546690cf053930b21e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:56:17 +0000 Subject: [PATCH 32/38] Bump fast-xml-parser from 5.5.7 to 5.5.9 Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.5.7 to 5.5.9. - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits) --- updated-dependencies: - dependency-name: fast-xml-parser dependency-version: 5.5.9 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 90f77a70d..68690f41e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", - "fast-xml-parser": "5.5.7", + "fast-xml-parser": "5.5.9", "globals": "17.4.0", "husky": "9.1.7", "lint-staged": "16.4.0", @@ -3355,9 +3355,9 @@ } }, "node_modules/fast-xml-parser": { - "version": "5.5.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.7.tgz", - "integrity": "sha512-LteOsISQ2GEiDHZch6L9hB0+MLoYVLToR7xotrzU0opCICBkxOPgHAy1HxAvtxfJNXDJpgAsQN30mkrfpO2Prg==", + "version": "5.5.9", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.9.tgz", + "integrity": "sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g==", "dev": true, "funding": [ { @@ -3368,8 +3368,8 @@ "license": "MIT", "dependencies": { "fast-xml-builder": "^1.1.4", - "path-expression-matcher": "^1.1.3", - "strnum": "^2.2.0" + "path-expression-matcher": "^1.2.0", + "strnum": "^2.2.2" }, "bin": { "fxparser": "src/cli/cli.js" @@ -5778,9 +5778,9 @@ } }, "node_modules/path-expression-matcher": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz", - "integrity": "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.2.0.tgz", + "integrity": "sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==", "funding": [ { "type": "github", @@ -7025,9 +7025,9 @@ } }, "node_modules/strnum": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.1.tgz", - "integrity": "sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.2.tgz", + "integrity": "sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==", "funding": [ { "type": "github", diff --git a/package.json b/package.json index c1ceba3d0..bb32a3152 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "eslint-plugin-mocha": "11.2.0", "eslint-plugin-prettier": "5.5.5", "eslint-plugin-unicorn": "63.0.0", - "fast-xml-parser": "5.5.7", + "fast-xml-parser": "5.5.9", "globals": "17.4.0", "husky": "9.1.7", "lint-staged": "16.4.0", From d61520a3b1ee0961e3feb75891b51cc2c8255fa3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:59:45 +0000 Subject: [PATCH 33/38] Bump typescript from 5.9.3 to 6.0.2 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 6.0.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68690f41e..abf609ef2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "mock-fs": "5.3.0", "npm-run-all": "4.1.5", "prettier-eslint": "16.4.2", - "typescript": "5.9.3" + "typescript": "6.0.2" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -7304,9 +7304,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index bb32a3152..5a4c8b42c 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "mock-fs": "5.3.0", "npm-run-all": "4.1.5", "prettier-eslint": "16.4.2", - "typescript": "5.9.3" + "typescript": "6.0.2" }, "optionalDependencies": { "fsevents": "*" From d91f06ad22056f40c8f3cb365f971b8f0f53120d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Tue, 24 Mar 2026 19:28:28 +0100 Subject: [PATCH 34/38] Revert "Bump typescript from 5.9.3 to 6.0.2" This reverts commit d61520a3b1ee0961e3feb75891b51cc2c8255fa3. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index abf609ef2..68690f41e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "mock-fs": "5.3.0", "npm-run-all": "4.1.5", "prettier-eslint": "16.4.2", - "typescript": "6.0.2" + "typescript": "5.9.3" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -7304,9 +7304,9 @@ } }, "node_modules/typescript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", - "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 5a4c8b42c..bb32a3152 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "mock-fs": "5.3.0", "npm-run-all": "4.1.5", "prettier-eslint": "16.4.2", - "typescript": "6.0.2" + "typescript": "5.9.3" }, "optionalDependencies": { "fsevents": "*" From 94966795ea74a41d23c5690ae50e21dcadebca0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Tue, 24 Mar 2026 19:36:00 +0100 Subject: [PATCH 35/38] #0: auto-sync milestone from issue to associated PR --- .github/workflows/sync-milestone.yml | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/sync-milestone.yml diff --git a/.github/workflows/sync-milestone.yml b/.github/workflows/sync-milestone.yml new file mode 100644 index 000000000..947758af5 --- /dev/null +++ b/.github/workflows/sync-milestone.yml @@ -0,0 +1,55 @@ +name: Sync Milestone from Issue +on: + pull_request: + types: [opened, edited, reopened] + +jobs: + sync-milestone: + runs-on: ubuntu-latest + permissions: + issues: read + pull-requests: write + steps: + - name: Sync Milestone + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + REPO: ${{ github.repository }} + OWNER: ${{ github.repository_owner }} + run: | + # 1. Get the milestone of the officially linked issues and the PR's current milestone via GraphQL + # This catches issues linked via "Fixes #123" and similar in the body or the UI sidebar. + API_RESPONSE=$(gh api graphql -f query=' + query($owner: String!, $name: String!, $pr: Int!) { + repository(owner: $owner, name: $name) { + pullRequest(number: $pr) { + milestone { + number + } + closingIssuesReferences(first: 1) { + nodes { + milestone { + number + title + } + } + } + } + } + }' -F owner="$OWNER" -F name="${REPO#*/}" -F pr=$PR_NUMBER) + + MILESTONE_NUMBER=$(echo "$API_RESPONSE" | jq -r '.data.repository.pullRequest.closingIssuesReferences.nodes[0].milestone.number // "null"') + MILESTONE_TITLE=$(echo "$API_RESPONSE" | jq -r '.data.repository.pullRequest.closingIssuesReferences.nodes[0].milestone.title // "null"') + CURRENT_PR_MILESTONE=$(echo "$API_RESPONSE" | jq -r '.data.repository.pullRequest.milestone.number // "null"') + + # 2. Check if a milestone was found + if [ "$MILESTONE_NUMBER" != "null" ] && [ -n "$MILESTONE_NUMBER" ]; then + if [ "$MILESTONE_NUMBER" = "$CURRENT_PR_MILESTONE" ]; then + echo "PR already has milestone '$MILESTONE_TITLE' set. No update needed." + else + echo "Found milestone '$MILESTONE_TITLE' from linked issue. Assigning to PR..." + gh pr edit $PR_NUMBER --milestone "$MILESTONE_TITLE" --repo "$REPO" + fi + else + echo "No milestone found on linked issues or no issues linked." + fi From ba84181615111a5a00d2c5bdaa55b528442811a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Tue, 24 Mar 2026 19:39:44 +0100 Subject: [PATCH 36/38] #0: auto-close milestone after publishing the related release --- .github/workflows/npm-publish.yml | 53 +++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 0b79c3008..bde1905e4 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -8,8 +8,8 @@ on: types: [published] permissions: - id-token: write # Required for OIDC - contents: read + id-token: write # Required for OIDC + contents: read jobs: build: @@ -34,3 +34,52 @@ jobs: registry-url: https://registry.npmjs.org/ - run: npm publish + - name: Close release milestone if empty + env: + GH_TOKEN: ${{ github.token }} + REPO: ${{ github.repository }} + RELEASE_TAG: ${{ github.event.release.tag_name }} + run: | + set -euo pipefail + + owner="${REPO%%/*}" + repo="${REPO##*/}" + + milestone_title="${RELEASE_TAG#v}" + + if [ -z "${milestone_title}" ]; then + echo "Could not parse milestone version from release tag (tag=${RELEASE_TAG})." + exit 0 + fi + + milestones_json="$(gh api "repos/${owner}/${repo}/milestones?state=open&per_page=100")" + + milestone_number="$(echo "$milestones_json" | jq -r \ + --arg milestone_title "$milestone_title" \ + '.[] | select(.title == $milestone_title) | .number' \ + | head -n1)" + + if [ -z "${milestone_number}" ] || [ "${milestone_number}" = "null" ]; then + echo "No matching open milestone found for parsed version '${milestone_title}'." + exit 0 + fi + + milestone="$(gh api "repos/${owner}/${repo}/milestones/${milestone_number}")" + state="$(echo "$milestone" | jq -r '.state')" + open_issues="$(echo "$milestone" | jq -r '.open_issues')" + title="$(echo "$milestone" | jq -r '.title')" + + echo "Matched milestone #${milestone_number} '${title}' (state=${state}, open_issues=${open_issues})." + + if [ "$state" != "open" ]; then + echo "Milestone is already closed. Nothing to do." + exit 0 + fi + + if [ "$open_issues" -ne 0 ]; then + echo "Milestone has open items. Skipping close." + exit 0 + fi + + gh api -X PATCH "repos/${owner}/${repo}/milestones/${milestone_number}" -f state="closed" >/dev/null + echo "Milestone #${milestone_number} closed." From b427643f8cf9d4067d55a931aa7e141d08925d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Tue, 24 Mar 2026 20:03:22 +0100 Subject: [PATCH 37/38] #0: fix missing skipInteration option for postFixKeysReretrieve --- @types/lib/util/cli.d.ts.map | 2 +- lib/util/cli.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/@types/lib/util/cli.d.ts.map b/@types/lib/util/cli.d.ts.map index aaf9c99b5..b1b7bf979 100644 --- a/@types/lib/util/cli.d.ts.map +++ b/@types/lib/util/cli.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../lib/util/cli.js"],"names":[],"mappings":";yBAca,OAAO,wBAAwB,EAAE,UAAU;uBAC3C,OAAO,wBAAwB,EAAE,QAAQ;oBACzC,OAAO,wBAAwB,EAAE,KAAK;0BACtC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;2BAChD,OAAO,wBAAwB,EAAE,YAAY;sBAC7C,OAAO,wBAAwB,EAAE,OAAO;+BACxC,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;oCACnD,OAAO,wBAAwB,EAAE,qBAAqB;mCACtD,OAAO,wBAAwB,EAAE,oBAAoB;gCACrD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;2BAC5C,OAAO,wBAAwB,EAAE,YAAY;0BAC7C,OAAO,wBAAwB,EAAE,WAAW;;IAQrD;;;;;OAKG;IACH,4BAFa,OAAO,CAAE,MAAM,GAAG,OAAO,CAAC,CAUtC;IAED;;;;;OAKG;IACH,wCAHW,OAAO,GACL,OAAO,CAAE,OAAO,GAAG,MAAM,CAAC,CAkBtC;IAED;;;;OAIG;IACH,+CAHW,MAAM,EAAE,GACN,OAAO,CAAE,OAAO,CAAC,CA0B7B;IAED;;;;;OAKG;IACH,4CAHW,OAAO,GACL,IAAI,CAShB;IAED;;;;;;;;OAQG;IACH,sCALW,OAAO,YACP,MAAM,eACN,OAAO,GACL,OAAO,CAAE,MAAM,GAAG,OAAO,CAAC,CAUtC;IAED;;;;;;;;OAQG;IACH,yCANW,OAAO,UACP,MAAM,qBACN,OAAO,GAAG,MAAM,aAChB,OAAO,GACL,OAAO,CAAE,QAAQ,CAAC,CAuE9B;IAED;;;;;;;;OAQG;IACH,+BANW,OAAO,eACP,MAAM,qBACN,OAAO,aACP,OAAO,GACL,OAAO,CAAE;QAAC,YAAY,EAAC,MAAM,CAAC;QAAC,UAAU,EAAC,MAAM,CAAA;KAAC,CAAC,CA8D9D;IAED;;;;;;;OAOG;IACH,oCALW,OAAO,aACP,MAAM,eACN,OAAO,GACL,OAAO,CAAE,OAAO,GAAG,MAAM,CAAC,CA+DtC;IAED;;;;;;OAMG;IACH,qCAJW,OAAO,aACP,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAwE5B;IAED;;;;;;OAMG;IACH,iCAJW,OAAO,gBACP,MAAM,EAAE,GACN,OAAO,CAAE,IAAI,CAAC,CAgG1B;IAED;;;;OAIG;IACH,yBAFa,WAAW,EAAE,CA0GzB"} \ No newline at end of file +{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../lib/util/cli.js"],"names":[],"mappings":";yBAca,OAAO,wBAAwB,EAAE,UAAU;uBAC3C,OAAO,wBAAwB,EAAE,QAAQ;oBACzC,OAAO,wBAAwB,EAAE,KAAK;0BACtC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;2BAChD,OAAO,wBAAwB,EAAE,YAAY;sBAC7C,OAAO,wBAAwB,EAAE,OAAO;+BACxC,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;oCACnD,OAAO,wBAAwB,EAAE,qBAAqB;mCACtD,OAAO,wBAAwB,EAAE,oBAAoB;gCACrD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;2BAC5C,OAAO,wBAAwB,EAAE,YAAY;0BAC7C,OAAO,wBAAwB,EAAE,WAAW;;IAQrD;;;;;OAKG;IACH,4BAFa,OAAO,CAAE,MAAM,GAAG,OAAO,CAAC,CAUtC;IAED;;;;;OAKG;IACH,wCAHW,OAAO,GACL,OAAO,CAAE,OAAO,GAAG,MAAM,CAAC,CAkBtC;IAED;;;;OAIG;IACH,+CAHW,MAAM,EAAE,GACN,OAAO,CAAE,OAAO,CAAC,CA6B7B;IAED;;;;;OAKG;IACH,4CAHW,OAAO,GACL,IAAI,CAShB;IAED;;;;;;;;OAQG;IACH,sCALW,OAAO,YACP,MAAM,eACN,OAAO,GACL,OAAO,CAAE,MAAM,GAAG,OAAO,CAAC,CAUtC;IAED;;;;;;;;OAQG;IACH,yCANW,OAAO,UACP,MAAM,qBACN,OAAO,GAAG,MAAM,aAChB,OAAO,GACL,OAAO,CAAE,QAAQ,CAAC,CAuE9B;IAED;;;;;;;;OAQG;IACH,+BANW,OAAO,eACP,MAAM,qBACN,OAAO,aACP,OAAO,GACL,OAAO,CAAE;QAAC,YAAY,EAAC,MAAM,CAAC;QAAC,UAAU,EAAC,MAAM,CAAA;KAAC,CAAC,CA8D9D;IAED;;;;;;;OAOG;IACH,oCALW,OAAO,aACP,MAAM,eACN,OAAO,GACL,OAAO,CAAE,OAAO,GAAG,MAAM,CAAC,CA+DtC;IAED;;;;;;OAMG;IACH,qCAJW,OAAO,aACP,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAwE5B;IAED;;;;;;OAMG;IACH,iCAJW,OAAO,gBACP,MAAM,EAAE,GACN,OAAO,CAAE,IAAI,CAAC,CAgG1B;IAED;;;;OAIG;IACH,yBAFa,WAAW,EAAE,CA0GzB"} \ No newline at end of file diff --git a/lib/util/cli.js b/lib/util/cli.js index d75a1ad15..753217a1c 100644 --- a/lib/util/cli.js +++ b/lib/util/cli.js @@ -87,6 +87,9 @@ const Cli = { return true; } else if (Util.isFalse(Util.skipInteraction?.fixKeysReretrieve)) { return false; + } else if (Util.skipInteraction) { + // generic --yes / --skipInteraction: use the confirm default (true = do re-retrieve) + return true; } else { const fixKeysReretrieve = await confirm({ message: `Do you want to re-retrieve dependent types (${dependentTypes.join( From 9771a36ed6e41e08ad7dfb98f6f2142f95cbf6c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Tue, 24 Mar 2026 20:11:15 +0100 Subject: [PATCH 38/38] prepare-release changes --- package-lock.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68690f41e..6622e5b33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3522,10 +3522,11 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" }, "node_modules/fn.name": { "version": "1.1.0",