@itwin/ecschema-editing 4.9.0-dev.24 → 4.9.0-dev.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log - @itwin/ecschema-editing
2
2
 
3
- This log was last generated on Fri, 06 Sep 2024 05:08:18 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 13 Sep 2024 15:12:41 GMT and should not be manually modified.
4
+
5
+ ## 4.8.7
6
+ Fri, 13 Sep 2024 15:11:17 GMT
7
+
8
+ _Version update only_
4
9
 
5
10
  ## 4.8.6
6
11
  Fri, 06 Sep 2024 05:06:49 GMT
@@ -1 +1 @@
1
- {"version":3,"file":"RenameEditHandler.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/RenameEditHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAA6I,sBAAsB,EAAgC,MAAM,qCAAqC,CAAC;AAQtP;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,kBAAkB,QAoB/F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,QAuB7I"}
1
+ {"version":3,"file":"RenameEditHandler.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/RenameEditHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAA6I,sBAAsB,EAAgC,MAAM,qCAAqC,CAAC;AAQtP;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,kBAAkB,QAuB/F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,QA2B7I"}
@@ -15,7 +15,10 @@ const Utils = require("../../Differencing/Utils");
15
15
  * @internal
16
16
  */
17
17
  function applyRenamePropertyEdit(result, edit) {
18
- const [itemName, path] = edit.key.split(".");
18
+ const [schemaName, itemName, path] = edit.key.split(".");
19
+ if (!result.sourceSchemaName.startsWith(schemaName)) {
20
+ return;
21
+ }
19
22
  const difference = result.differences.find((entry) => {
20
23
  return Utils.isClassPropertyDifference(entry) && entry.changeType === "add" && entry.itemName === itemName && entry.path === path;
21
24
  });
@@ -36,16 +39,20 @@ exports.applyRenamePropertyEdit = applyRenamePropertyEdit;
36
39
  * @internal
37
40
  */
38
41
  function applyRenameSchemaItemEdit(result, edit, postProcessing) {
42
+ const [schemaName, itemName] = ecschema_metadata_1.SchemaItem.parseFullName(edit.key);
43
+ if (!result.sourceSchemaName.startsWith(schemaName)) {
44
+ return;
45
+ }
39
46
  const difference = result.differences.find((entry) => {
40
- return Utils.isSchemaItemDifference(entry) && entry.itemName === edit.key;
47
+ return Utils.isSchemaItemDifference(entry) && entry.changeType === "add" && entry.itemName === itemName;
41
48
  });
42
49
  const itemDifference = difference;
43
50
  if (itemDifference === undefined) {
44
51
  return;
45
52
  }
46
- renameName(itemDifference, edit.key, edit.value);
53
+ renameName(itemDifference, itemName, edit.value);
47
54
  if (result.conflicts) {
48
- const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === edit.key && entry.path === undefined);
55
+ const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === itemName && entry.path === undefined);
49
56
  if (conflictIndex > -1) {
50
57
  result.conflicts.splice(conflictIndex, 1);
51
58
  }
@@ -57,7 +64,8 @@ function applyRenameSchemaItemEdit(result, edit, postProcessing) {
57
64
  exports.applyRenameSchemaItemEdit = applyRenameSchemaItemEdit;
58
65
  function renameSchemaItem(result, edit, schemaType) {
59
66
  const schemaKey = ecschema_metadata_1.SchemaKey.parseString(result.sourceSchemaName);
60
- const oldKey = new ecschema_metadata_1.SchemaItemKey(edit.key, schemaKey);
67
+ const [_schemaName, itemName] = ecschema_metadata_1.SchemaItem.parseFullName(edit.key);
68
+ const oldKey = new ecschema_metadata_1.SchemaItemKey(itemName, schemaKey);
61
69
  const newKey = new ecschema_metadata_1.SchemaItemKey(edit.value, schemaKey);
62
70
  switch (schemaType) {
63
71
  case ecschema_metadata_1.SchemaItemType.CustomAttributeClass:
@@ -1 +1 @@
1
- {"version":3,"file":"RenameEditHandler.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/RenameEditHandler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,0EAAsP;AACtP,gEAA8O;AAC9O,kDAAkD;AAMlD;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAA8B,EAAE,IAAwB;IAC9F,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;IAEjE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACnD,OAAO,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IACpI,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,UAA+C,CAAC;IAC3E,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IAErC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAChH,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AApBD,0DAoBC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAA8B,EAAE,IAA0B,EAAE,cAAwC;IAE5I,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACnD,OAAO,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,UAAqC,CAAC;IAC7D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACrH,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAG,EAAE;QAClB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAvBD,8DAuBC;AAED,SAAS,gBAAgB,CAAC,MAA8B,EAAE,IAA0B,EAAE,UAAsB;IAC1G,MAAM,SAAS,GAAG,6BAAS,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,iCAAa,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,iCAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAExD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,kCAAc,CAAC,oBAAoB;YACtC,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM;QACR,KAAK,kCAAc,CAAC,WAAW;YAC7B,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,kCAAc,CAAC,WAAW;YAC7B,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,kCAAc,CAAC,MAAM;YACxB,MAAM;QACR,KAAK,kCAAc,CAAC,YAAY;YAC9B,MAAM;QACR,KAAK,kCAAc,CAAC,cAAc;YAChC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,kCAAc,CAAC,KAAK;YACvB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM;QACR,KAAK,kCAAc,CAAC,UAAU;YAC5B,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM;QACR,KAAK,kCAAc,CAAC,gBAAgB;YAClC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,kCAAc,CAAC,iBAAiB;YACnC,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,kCAAc,CAAC,WAAW;YAC7B,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,kCAAc,CAAC,IAAI;YACtB,MAAM;QACR,KAAK,kCAAc,CAAC,UAAU;YAC5B,MAAM;IACV,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAA6C,EAAE,MAAqB,EAAE,MAAqB;IAClH,IAAI,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzE,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B,EAAE,OAAe,EAAE,OAAe;IACnF,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,oBAAoB,GAAG,MAA2C,CAAC;QACzE,oBAAoB,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,MAA2E,EAAE,MAAqB,EAAE,MAAqB;IAC7J,IAAI,MAAM,CAAC,UAAU,KAAK,kCAAc,CAAC,iBAAiB,EAAE,CAAC;QAC3D,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAA4C,CAAC;QACxH,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACjF,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC7C,CAAC;gBACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxD,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;4BACpD,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IACvH,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,gBAAgB,EAAE,CAAC;YACzD,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAClE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACnD,IAAI,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnE,MAAM,KAAK,GAAG,QAAqC,CAAC;oBACpD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,EAAE,CAAC;YACnD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IACrH,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAClE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACnD,IAAI,QAAQ,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC/E,MAAM,KAAK,GAAG,QAAqC,CAAC;oBACpD,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,EAAE,CAAC;YACnD,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/F,KAAK,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IAClH,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,mBAAmB,IAAI,QAAQ,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;oBACxF,MAAM,KAAK,GAAG,QAA0E,CAAC;oBACzF,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC1D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,IAAI,CACrD,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,wBAAwB,CACtG,EAAE,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,UAA4E,CAAC;YAClG,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC1D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IACjH,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,IAAI,EAAE,CAAC;YAC7F,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;gBACpF,KAAK,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IAClH,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,UAAU,KAAK,kCAAc,CAAC,WAAW,EAAE,CAAC;YACrD,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAClF,MAAM,KAAK,GAAG,QAAoE,CAAC;oBAAA,CAAC;oBACpF,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC1D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,IAAI,CACrD,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,qBAAqB,CAChG,EAAE,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAsE,CAAC;YAC5F,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC1D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IAC3H,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,UAAU,KAAK,kCAAc,CAAC,oBAAoB,EAAE,CAAC;YAC9D,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,uBAAuB,EAAE,CAAC;YACnE,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvF,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvF,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACvC,KAAK,MAAM,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBACjE,IAAI,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC;wBACnD,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,KAAK,MAAM,eAAe,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;wBACxD,IAAI,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC;4BACnD,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,oDAAoD;QACpD;;;;;;;;;;YAUI;IACN,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IACxH,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,UAAU,KAAK,kCAAc,CAAC,iBAAiB,EAAE,CAAC;YAC3D,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACvG,MAAM,KAAK,GAAG,MAAM,CAAC,UAA+C,CAAC;YACrE,IAAI,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAC1E,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC3C,MAAM,KAAK,GAAG,QAA6C,CAAC;oBAC5D,IAAI,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;wBAC1E,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,kCAAc,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,KAAK,mCAAgB,CAAC,2BAA2B,EAAE,CAAC;YACjI,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IAClH,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,WAAW,EAAE,CAAC;YACpD,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5C,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;gBAClF,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,KAAK,CAAC,EAAE,CAAC;YACvG,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,WAAW,EAA0B,EAAE,MAAqB,EAAE,MAAqB;IAC5G,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,KAAK,kCAAc,CAAC,KAAK,EAAE,CAAC;YAC9C,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,mCAAgB,CAAC,gBAAgB,EAAE,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,KAAK,CAAC,EAAE,CAAC;YACvG,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { RenamePropertyEdit, RenameSchemaItemEdit } from \"./SchemaEdits\";\r\nimport { AnySchemaItemDifference, ClassItemDifference, ClassPropertyDifference, RelationshipClassDifference, RelationshipConstraintClassDifference, SchemaDifferenceResult, SchemaOtherTypes, SchemaType } from \"../../Differencing/SchemaDifference\";\r\nimport { NavigationPropertyProps, PrimitiveArrayPropertyProps, PrimitivePropertyProps, RelationshipConstraintProps, SchemaItemKey, SchemaItemType, SchemaKey, StructArrayPropertyProps, StructPropertyProps } from \"@itwin/ecschema-metadata\";\r\nimport * as Utils from \"../../Differencing/Utils\";\r\n\r\ntype Editable<T extends object> = {\r\n -readonly [P in keyof T]: T[P];\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function applyRenamePropertyEdit(result: SchemaDifferenceResult, edit: RenamePropertyEdit) {\r\n const [itemName, path] = edit.key.split(\".\") as [string, string];\r\n\r\n const difference = result.differences.find((entry) => {\r\n return Utils.isClassPropertyDifference(entry) && entry.changeType === \"add\" && entry.itemName === itemName && entry.path === path;\r\n });\r\n\r\n const propertyDifference = difference as Editable<ClassPropertyDifference>;\r\n if (propertyDifference === undefined) {\r\n return;\r\n }\r\n\r\n propertyDifference.path = edit.value;\r\n\r\n if (result.conflicts) {\r\n const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === itemName && entry.path === path);\r\n if (conflictIndex > -1) {\r\n result.conflicts.splice(conflictIndex, 1);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function applyRenameSchemaItemEdit(result: SchemaDifferenceResult, edit: RenameSchemaItemEdit, postProcessing: (cb: () => void) => void) {\r\n\r\n const difference = result.differences.find((entry) => {\r\n return Utils.isSchemaItemDifference(entry) && entry.itemName === edit.key;\r\n });\r\n\r\n const itemDifference = difference as AnySchemaItemDifference;\r\n if (itemDifference === undefined) {\r\n return;\r\n }\r\n\r\n renameName(itemDifference, edit.key, edit.value);\r\n\r\n if (result.conflicts) {\r\n const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === edit.key && entry.path === undefined);\r\n if (conflictIndex > -1) {\r\n result.conflicts.splice(conflictIndex, 1);\r\n }\r\n }\r\n\r\n postProcessing(() => {\r\n renameSchemaItem(result, edit, itemDifference.schemaType);\r\n });\r\n}\r\n\r\nfunction renameSchemaItem(result: SchemaDifferenceResult, edit: RenameSchemaItemEdit, schemaType: SchemaType) {\r\n const schemaKey = SchemaKey.parseString(result.sourceSchemaName);\r\n const oldKey = new SchemaItemKey(edit.key, schemaKey);\r\n const newKey = new SchemaItemKey(edit.value, schemaKey);\r\n\r\n switch (schemaType) {\r\n case SchemaItemType.CustomAttributeClass:\r\n renameCustomAttributeClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.EntityClass:\r\n renameEntityClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Enumeration:\r\n renameEnumerationName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Format:\r\n break;\r\n case SchemaItemType.InvertedUnit:\r\n break;\r\n case SchemaItemType.KindOfQuantity:\r\n renameKindOfQuantityName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Mixin:\r\n renameMixinName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Phenomenon:\r\n renamePhenomenonName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.PropertyCategory:\r\n renamePropertyCategoryName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.RelationshipClass:\r\n renameRelationshipClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.StructClass:\r\n renameStructClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Unit:\r\n break;\r\n case SchemaItemType.UnitSystem:\r\n break;\r\n }\r\n}\r\n\r\nfunction renameBaseClass(difference: ClassItemDifference[\"difference\"], oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n if (difference.baseClass && oldKey.matchesFullName(difference.baseClass)) {\r\n difference.baseClass = newKey.fullName;\r\n }\r\n}\r\n\r\nfunction renameName(change: AnySchemaItemDifference, oldName: string, newName: string) {\r\n if (change.itemName === oldName) {\r\n const schemaItemDifference = change as Editable<AnySchemaItemDifference>;\r\n schemaItemDifference.itemName = newName;\r\n }\r\n}\r\n\r\nfunction renameRelationshipConstraint(change: RelationshipClassDifference | RelationshipConstraintClassDifference, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n const constraintProps = [change.difference.source, change.difference.target] as Editable<RelationshipConstraintProps>[];\r\n for (const props of constraintProps) {\r\n if (props) {\r\n if (props.abstractConstraint && oldKey.matchesFullName(props.abstractConstraint)) {\r\n props.abstractConstraint = newKey.fullName;\r\n }\r\n if (props.constraintClasses !== undefined) {\r\n for (let i = 0; i < props.constraintClasses.length; i++) {\r\n if (oldKey.matchesFullName(props.constraintClasses[i]))\r\n props.constraintClasses[i] = newKey.fullName;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < change.difference.length; i++) {\r\n if (oldKey.matchesFullName(change.difference[i]))\r\n change.difference[i] = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renamePropertyCategoryName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.PropertyCategory) {\r\n renameName(entry, oldKey.name, newKey.name);\r\n }\r\n\r\n if (Utils.isClassDifference(entry) && entry.difference.properties) {\r\n for (const property of entry.difference.properties) {\r\n if (property.category && oldKey.matchesFullName(property.category)) {\r\n const props = property as Editable<typeof property>;\r\n props.category = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.Property) {\r\n if (entry.difference.category && oldKey.matchesFullName(entry.difference.category)) {\r\n entry.difference.category = newKey.fullName;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction renameKindOfQuantityName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (Utils.isClassDifference(entry) && entry.difference.properties) {\r\n for (const property of entry.difference.properties) {\r\n if (property.kindOfQuantity && oldKey.matchesFullName(property.kindOfQuantity)) {\r\n const props = property as Editable<typeof property>;\r\n props.kindOfQuantity = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.Property) {\r\n if (entry.difference.kindOfQuantity && oldKey.matchesFullName(entry.difference.kindOfQuantity)) {\r\n entry.difference.kindOfQuantity = newKey.fullName;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction renameEnumerationName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"PrimitiveProperty\" || property.type === \"PrimitiveArrayProperty\") {\r\n const props = property as Editable<PrimitivePropertyProps | PrimitiveArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && (\r\n change.difference.type === \"PrimitiveProperty\" || change.difference.type === \"PrimitiveArrayProperty\"\r\n )) {\r\n const props = change.difference as Editable<PrimitivePropertyProps | PrimitiveArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renamePhenomenonName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.Constant || entry.schemaType === SchemaItemType.Unit) {\r\n if (entry.difference.phenomenon && oldKey.matchesFullName(entry.difference.phenomenon))\r\n entry.difference.phenomenon = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renameStructClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.StructClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"StructProperty\" || property.type === \"StructArrayProperty\") {\r\n const props = property as Editable<StructPropertyProps | StructArrayPropertyProps>;;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && (\r\n change.difference.type === \"StructProperty\" || change.difference.type === \"StructArrayProperty\"\r\n )) {\r\n const props = change.difference as Editable<StructPropertyProps | StructArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renameCustomAttributeClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.CustomAttributeClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.CustomAttributeInstance) {\r\n if (change.difference.className && oldKey.matchesFullName(change.difference.className)) {\r\n change.difference.className = newKey.fullName;\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property || Utils.isClassDifference(change)) {\r\n if (change.difference.customAttributes) {\r\n for (const customAttribute of change.difference.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.customAttributes) {\r\n for (const customAttribute of property.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n }\r\n // https://github.com/iTwin/itwinjs-core/issues/7020\r\n /* if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n const constraintProps = [change.difference.source, change.difference.target] as Editable<RelationshipConstraintProps>[];\r\n for (const props of constraintProps) {\r\n if (props.customAttributes !== undefined) {\r\n for (const customAttribute of props.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n } */\r\n }\r\n}\r\n\r\nfunction renameRelationshipClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && change.difference.type === \"NavigationProperty\") {\r\n const props = change.difference as Editable<NavigationPropertyProps>;\r\n if (props.relationshipName && oldKey.matchesFullName(props.relationshipName))\r\n props.relationshipName = newKey.fullName;\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"NavigationProperty\") {\r\n const props = property as Editable<NavigationPropertyProps>;\r\n if (props.relationshipName && oldKey.matchesFullName(props.relationshipName))\r\n props.relationshipName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaItemType.RelationshipClass || change.schemaType === SchemaOtherTypes.RelationshipConstraintClass) {\r\n renameRelationshipConstraint(change, oldKey, newKey);\r\n }\r\n }\r\n}\r\n\r\nfunction renameEntityClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.EntityClass) {\r\n renameName(entry, oldKey.name, newKey.name);\r\n renameBaseClass(entry.difference, oldKey, newKey);\r\n }\r\n\r\n if (entry.schemaType === SchemaItemType.Mixin) {\r\n if (entry.difference.appliesTo && oldKey.matchesFullName(entry.difference.appliesTo))\r\n entry.difference.appliesTo = newKey.fullName;\r\n }\r\n\r\n if (Utils.isRelationshipClassDifference(entry) || Utils.isRelationshipConstraintClassDifference(entry)) {\r\n renameRelationshipConstraint(entry, oldKey, newKey);\r\n }\r\n }\r\n}\r\n\r\nfunction renameMixinName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.Mixin) {\r\n renameBaseClass(entry.difference, oldKey, newKey);\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.EntityClassMixin) {\r\n for (let i = 0; i < entry.difference.length; i++) {\r\n if (oldKey.matchesFullName(entry.difference[i])) {\r\n entry.difference[i] = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (Utils.isRelationshipClassDifference(entry) || Utils.isRelationshipConstraintClassDifference(entry)) {\r\n renameRelationshipConstraint(entry, oldKey, newKey);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RenameEditHandler.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/RenameEditHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { RenamePropertyEdit, RenameSchemaItemEdit } from \"./SchemaEdits\";\r\nimport { AnySchemaItemDifference, ClassItemDifference, ClassPropertyDifference, RelationshipClassDifference, RelationshipConstraintClassDifference, SchemaDifferenceResult, SchemaOtherTypes, SchemaType } from \"../../Differencing/SchemaDifference\";\r\nimport { NavigationPropertyProps, PrimitiveArrayPropertyProps, PrimitivePropertyProps, RelationshipConstraintProps, SchemaItem, SchemaItemKey, SchemaItemType, SchemaKey, StructArrayPropertyProps, StructPropertyProps } from \"@itwin/ecschema-metadata\";\r\nimport * as Utils from \"../../Differencing/Utils\";\r\n\r\ntype Editable<T extends object> = {\r\n -readonly [P in keyof T]: T[P];\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function applyRenamePropertyEdit(result: SchemaDifferenceResult, edit: RenamePropertyEdit) {\r\n const [schemaName, itemName, path] = edit.key.split(\".\") as [string, string, string];\r\n if (!result.sourceSchemaName.startsWith(schemaName)) {\r\n return;\r\n }\r\n\r\n const difference = result.differences.find((entry) => {\r\n return Utils.isClassPropertyDifference(entry) && entry.changeType === \"add\" && entry.itemName === itemName && entry.path === path;\r\n });\r\n\r\n const propertyDifference = difference as Editable<ClassPropertyDifference>;\r\n if (propertyDifference === undefined) {\r\n return;\r\n }\r\n\r\n propertyDifference.path = edit.value;\r\n\r\n if (result.conflicts) {\r\n const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === itemName && entry.path === path);\r\n if (conflictIndex > -1) {\r\n result.conflicts.splice(conflictIndex, 1);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function applyRenameSchemaItemEdit(result: SchemaDifferenceResult, edit: RenameSchemaItemEdit, postProcessing: (cb: () => void) => void) {\r\n const [schemaName, itemName] = SchemaItem.parseFullName(edit.key);\r\n if (!result.sourceSchemaName.startsWith(schemaName)) {\r\n return;\r\n }\r\n\r\n const difference = result.differences.find((entry) => {\r\n return Utils.isSchemaItemDifference(entry) && entry.changeType === \"add\" && entry.itemName === itemName;\r\n });\r\n\r\n const itemDifference = difference as AnySchemaItemDifference;\r\n if (itemDifference === undefined) {\r\n return;\r\n }\r\n\r\n renameName(itemDifference, itemName, edit.value);\r\n\r\n if (result.conflicts) {\r\n const conflictIndex = result.conflicts.findIndex((entry) => entry.itemName === itemName && entry.path === undefined);\r\n if (conflictIndex > -1) {\r\n result.conflicts.splice(conflictIndex, 1);\r\n }\r\n }\r\n\r\n postProcessing(() => {\r\n renameSchemaItem(result, edit, itemDifference.schemaType);\r\n });\r\n}\r\n\r\nfunction renameSchemaItem(result: SchemaDifferenceResult, edit: RenameSchemaItemEdit, schemaType: SchemaType) {\r\n const schemaKey = SchemaKey.parseString(result.sourceSchemaName);\r\n const [_schemaName, itemName] = SchemaItem.parseFullName(edit.key);\r\n const oldKey = new SchemaItemKey(itemName, schemaKey);\r\n const newKey = new SchemaItemKey(edit.value, schemaKey);\r\n\r\n switch (schemaType) {\r\n case SchemaItemType.CustomAttributeClass:\r\n renameCustomAttributeClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.EntityClass:\r\n renameEntityClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Enumeration:\r\n renameEnumerationName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Format:\r\n break;\r\n case SchemaItemType.InvertedUnit:\r\n break;\r\n case SchemaItemType.KindOfQuantity:\r\n renameKindOfQuantityName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Mixin:\r\n renameMixinName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Phenomenon:\r\n renamePhenomenonName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.PropertyCategory:\r\n renamePropertyCategoryName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.RelationshipClass:\r\n renameRelationshipClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.StructClass:\r\n renameStructClassName(result, oldKey, newKey);\r\n break;\r\n case SchemaItemType.Unit:\r\n break;\r\n case SchemaItemType.UnitSystem:\r\n break;\r\n }\r\n}\r\n\r\nfunction renameBaseClass(difference: ClassItemDifference[\"difference\"], oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n if (difference.baseClass && oldKey.matchesFullName(difference.baseClass)) {\r\n difference.baseClass = newKey.fullName;\r\n }\r\n}\r\n\r\nfunction renameName(change: AnySchemaItemDifference, oldName: string, newName: string) {\r\n if (change.itemName === oldName) {\r\n const schemaItemDifference = change as Editable<AnySchemaItemDifference>;\r\n schemaItemDifference.itemName = newName;\r\n }\r\n}\r\n\r\nfunction renameRelationshipConstraint(change: RelationshipClassDifference | RelationshipConstraintClassDifference, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n const constraintProps = [change.difference.source, change.difference.target] as Editable<RelationshipConstraintProps>[];\r\n for (const props of constraintProps) {\r\n if (props) {\r\n if (props.abstractConstraint && oldKey.matchesFullName(props.abstractConstraint)) {\r\n props.abstractConstraint = newKey.fullName;\r\n }\r\n if (props.constraintClasses !== undefined) {\r\n for (let i = 0; i < props.constraintClasses.length; i++) {\r\n if (oldKey.matchesFullName(props.constraintClasses[i]))\r\n props.constraintClasses[i] = newKey.fullName;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < change.difference.length; i++) {\r\n if (oldKey.matchesFullName(change.difference[i]))\r\n change.difference[i] = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renamePropertyCategoryName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.PropertyCategory) {\r\n renameName(entry, oldKey.name, newKey.name);\r\n }\r\n\r\n if (Utils.isClassDifference(entry) && entry.difference.properties) {\r\n for (const property of entry.difference.properties) {\r\n if (property.category && oldKey.matchesFullName(property.category)) {\r\n const props = property as Editable<typeof property>;\r\n props.category = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.Property) {\r\n if (entry.difference.category && oldKey.matchesFullName(entry.difference.category)) {\r\n entry.difference.category = newKey.fullName;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction renameKindOfQuantityName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (Utils.isClassDifference(entry) && entry.difference.properties) {\r\n for (const property of entry.difference.properties) {\r\n if (property.kindOfQuantity && oldKey.matchesFullName(property.kindOfQuantity)) {\r\n const props = property as Editable<typeof property>;\r\n props.kindOfQuantity = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.Property) {\r\n if (entry.difference.kindOfQuantity && oldKey.matchesFullName(entry.difference.kindOfQuantity)) {\r\n entry.difference.kindOfQuantity = newKey.fullName;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction renameEnumerationName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"PrimitiveProperty\" || property.type === \"PrimitiveArrayProperty\") {\r\n const props = property as Editable<PrimitivePropertyProps | PrimitiveArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && (\r\n change.difference.type === \"PrimitiveProperty\" || change.difference.type === \"PrimitiveArrayProperty\"\r\n )) {\r\n const props = change.difference as Editable<PrimitivePropertyProps | PrimitiveArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renamePhenomenonName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.Constant || entry.schemaType === SchemaItemType.Unit) {\r\n if (entry.difference.phenomenon && oldKey.matchesFullName(entry.difference.phenomenon))\r\n entry.difference.phenomenon = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renameStructClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.StructClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"StructProperty\" || property.type === \"StructArrayProperty\") {\r\n const props = property as Editable<StructPropertyProps | StructArrayPropertyProps>;;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && (\r\n change.difference.type === \"StructProperty\" || change.difference.type === \"StructArrayProperty\"\r\n )) {\r\n const props = change.difference as Editable<StructPropertyProps | StructArrayPropertyProps>;\r\n if (props.typeName && oldKey.matchesFullName(props.typeName))\r\n props.typeName = newKey.fullName;\r\n }\r\n }\r\n}\r\n\r\nfunction renameCustomAttributeClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.CustomAttributeClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.CustomAttributeInstance) {\r\n if (change.difference.className && oldKey.matchesFullName(change.difference.className)) {\r\n change.difference.className = newKey.fullName;\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property || Utils.isClassDifference(change)) {\r\n if (change.difference.customAttributes) {\r\n for (const customAttribute of change.difference.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.customAttributes) {\r\n for (const customAttribute of property.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n }\r\n // https://github.com/iTwin/itwinjs-core/issues/7020\r\n /* if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n const constraintProps = [change.difference.source, change.difference.target] as Editable<RelationshipConstraintProps>[];\r\n for (const props of constraintProps) {\r\n if (props.customAttributes !== undefined) {\r\n for (const customAttribute of props.customAttributes) {\r\n if (oldKey.matchesFullName(customAttribute.className))\r\n customAttribute.className = newKey.fullName;\r\n }\r\n }\r\n }\r\n } */\r\n }\r\n}\r\n\r\nfunction renameRelationshipClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const change of differences) {\r\n if (change.schemaType === SchemaItemType.RelationshipClass) {\r\n renameBaseClass(change.difference, oldKey, newKey);\r\n }\r\n\r\n if (change.schemaType === SchemaOtherTypes.Property && change.difference.type === \"NavigationProperty\") {\r\n const props = change.difference as Editable<NavigationPropertyProps>;\r\n if (props.relationshipName && oldKey.matchesFullName(props.relationshipName))\r\n props.relationshipName = newKey.fullName;\r\n }\r\n\r\n if (Utils.isClassDifference(change) && change.difference.properties) {\r\n for (const property of change.difference.properties) {\r\n if (property.type === \"NavigationProperty\") {\r\n const props = property as Editable<NavigationPropertyProps>;\r\n if (props.relationshipName && oldKey.matchesFullName(props.relationshipName))\r\n props.relationshipName = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (change.schemaType === SchemaItemType.RelationshipClass || change.schemaType === SchemaOtherTypes.RelationshipConstraintClass) {\r\n renameRelationshipConstraint(change, oldKey, newKey);\r\n }\r\n }\r\n}\r\n\r\nfunction renameEntityClassName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.EntityClass) {\r\n renameName(entry, oldKey.name, newKey.name);\r\n renameBaseClass(entry.difference, oldKey, newKey);\r\n }\r\n\r\n if (entry.schemaType === SchemaItemType.Mixin) {\r\n if (entry.difference.appliesTo && oldKey.matchesFullName(entry.difference.appliesTo))\r\n entry.difference.appliesTo = newKey.fullName;\r\n }\r\n\r\n if (Utils.isRelationshipClassDifference(entry) || Utils.isRelationshipConstraintClassDifference(entry)) {\r\n renameRelationshipConstraint(entry, oldKey, newKey);\r\n }\r\n }\r\n}\r\n\r\nfunction renameMixinName({ differences }: SchemaDifferenceResult, oldKey: SchemaItemKey, newKey: SchemaItemKey) {\r\n for (const entry of differences) {\r\n if (entry.schemaType === SchemaItemType.Mixin) {\r\n renameBaseClass(entry.difference, oldKey, newKey);\r\n }\r\n\r\n if (entry.schemaType === SchemaOtherTypes.EntityClassMixin) {\r\n for (let i = 0; i < entry.difference.length; i++) {\r\n if (oldKey.matchesFullName(entry.difference[i])) {\r\n entry.difference[i] = newKey.fullName;\r\n }\r\n }\r\n }\r\n\r\n if (Utils.isRelationshipClassDifference(entry) || Utils.isRelationshipConstraintClassDifference(entry)) {\r\n renameRelationshipConstraint(entry, oldKey, newKey);\r\n }\r\n }\r\n}\r\n"]}
@@ -48,12 +48,12 @@ declare abstract class Editor {
48
48
  protected add(edit: AnySchemaEdits): void;
49
49
  }
50
50
  declare class PropertyEditor extends Editor {
51
- rename(className: string, propertyName: string, newName: string): void;
52
- skip(className: string, propertyName: string): void;
51
+ rename(schemaName: string, className: string, propertyName: string, newName: string): void;
52
+ skip(schemaName: string, className: string, propertyName: string): void;
53
53
  }
54
54
  declare class ItemEditor extends Editor {
55
- rename(itemName: string, newName: string): void;
56
- skip(itemName: string): void;
55
+ rename(schemaName: string, itemName: string, newName: string): void;
56
+ skip(schemaName: string, itemName: string): void;
57
57
  }
58
58
  /**
59
59
  * Defines a set of edits of a schema that can be applied to a schema during merging. The intention of this class
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaEdits.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/SchemaEdits.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAIlF;;;GAGG;AACH,oBAAY,cAAc;IACxB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC,cAAc,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACxB,QAAQ,GACR,oBAAoB,GACpB,kBAAkB,CAAC;AAErB,uBAAe,MAAM;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;IAIxC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc;CAWnC;AAED,cAAM,cAAe,SAAQ,MAAM;IAE1B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQ/D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAMpD;AAED,cAAM,UAAW,SAAQ,MAAM;IACtB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQxC,IAAI,CAAC,QAAQ,EAAE,MAAM;CAM7B;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C,SAAgB,UAAU,EAAE,cAAc,CAAC;IAC3C,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC;;OAEG;gBACS,UAAU,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;IAWtD;;OAEG;IACU,OAAO,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtE,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC;CAG/C"}
1
+ {"version":3,"file":"SchemaEdits.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/SchemaEdits.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAIlF;;;GAGG;AACH,oBAAY,cAAc;IACxB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC,cAAc,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACxB,QAAQ,GACR,oBAAoB,GACpB,kBAAkB,CAAC;AAErB,uBAAe,MAAM;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC;IAIxC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc;CAWnC;AAED,cAAM,cAAe,SAAQ,MAAM;IAE1B,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQnF,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAMxE;AAED,cAAM,UAAW,SAAQ,MAAM;IACtB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQ5D,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAMjD;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C,SAAgB,UAAU,EAAE,cAAc,CAAC;IAC3C,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC;;OAEG;gBACS,UAAU,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;IAWtD;;OAEG;IACU,OAAO,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtE,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC;CAG/C"}
@@ -37,32 +37,32 @@ class Editor {
37
37
  }
38
38
  }
39
39
  class PropertyEditor extends Editor {
40
- rename(className, propertyName, newName) {
40
+ rename(schemaName, className, propertyName, newName) {
41
41
  this.add({
42
42
  type: SchemaEditType.RenameProperty,
43
- key: `${className}.${propertyName}`,
43
+ key: `${schemaName}.${className}.${propertyName}`,
44
44
  value: newName,
45
45
  });
46
46
  }
47
- skip(className, propertyName) {
47
+ skip(schemaName, className, propertyName) {
48
48
  this.add({
49
49
  type: SchemaEditType.Skip,
50
- key: `${className}.${propertyName}`,
50
+ key: `${schemaName}.${className}.${propertyName}`,
51
51
  });
52
52
  }
53
53
  }
54
54
  class ItemEditor extends Editor {
55
- rename(itemName, newName) {
55
+ rename(schemaName, itemName, newName) {
56
56
  this.add({
57
57
  type: SchemaEditType.RenameSchemaItem,
58
- key: itemName,
58
+ key: `${schemaName}.${itemName}`,
59
59
  value: newName,
60
60
  });
61
61
  }
62
- skip(itemName) {
62
+ skip(schemaName, itemName) {
63
63
  this.add({
64
64
  type: SchemaEditType.Skip,
65
- key: itemName,
65
+ key: `${schemaName}.${itemName}`,
66
66
  });
67
67
  }
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaEdits.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/SchemaEdits.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { SchemaDifferenceResult } from \"../../Differencing/SchemaDifference\";\r\nimport { applyRenamePropertyEdit, applyRenameSchemaItemEdit } from \"./RenameEditHandler\";\r\nimport { applySkipEdit } from \"./SkipEditHandler\";\r\n\r\n/**\r\n * An enumeration that has all the schema edit names.\r\n * @alpha\r\n */\r\nexport enum SchemaEditType {\r\n RenameSchemaItem = \"RenameSchemaItem\",\r\n RenameProperty = \"RenameProperty\",\r\n Skip = \"Skip\",\r\n}\r\n\r\n/**\r\n * Schema edit entry to rename a schema item.\r\n * @alpha\r\n */\r\nexport interface RenameSchemaItemEdit {\r\n type: SchemaEditType.RenameSchemaItem;\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * Schema edit entry to rename a property of a class.\r\n * @alpha\r\n */\r\nexport interface RenamePropertyEdit {\r\n type: SchemaEditType.RenameProperty;\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * Schema edit entry to skip a certain schema element matching the given key.\r\n * @alpha\r\n */\r\nexport interface SkipEdit {\r\n type: SchemaEditType.Skip;\r\n key: string;\r\n}\r\n\r\n/**\r\n * Union for all supported edits that can be applied to a schema.\r\n * @alpha\r\n */\r\nexport type AnySchemaEdits =\r\n SkipEdit |\r\n RenameSchemaItemEdit |\r\n RenamePropertyEdit;\r\n\r\nabstract class Editor {\r\n private readonly _edits: Array<AnySchemaEdits>;\r\n\r\n constructor(edits: Array<AnySchemaEdits>) {\r\n this._edits = edits;\r\n }\r\n\r\n protected add(edit: AnySchemaEdits) {\r\n const overrideEntry = this._edits.findIndex((entry) => {\r\n return entry.type === edit.type && entry.key === edit.key;\r\n });\r\n\r\n if (overrideEntry > -1) {\r\n this._edits[overrideEntry] = edit;\r\n } else {\r\n this._edits.push(edit);\r\n }\r\n }\r\n}\r\n\r\nclass PropertyEditor extends Editor {\r\n\r\n public rename(className: string, propertyName: string, newName: string) {\r\n this.add({\r\n type: SchemaEditType.RenameProperty,\r\n key: `${className}.${propertyName}`,\r\n value: newName,\r\n });\r\n }\r\n\r\n public skip(className: string, propertyName: string) {\r\n this.add({\r\n type: SchemaEditType.Skip,\r\n key: `${className}.${propertyName}`,\r\n });\r\n }\r\n}\r\n\r\nclass ItemEditor extends Editor {\r\n public rename(itemName: string, newName: string) {\r\n this.add({\r\n type: SchemaEditType.RenameSchemaItem,\r\n key: itemName,\r\n value: newName,\r\n });\r\n }\r\n\r\n public skip(itemName: string) {\r\n this.add({\r\n type: SchemaEditType.Skip,\r\n key: itemName,\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Defines a set of edits of a schema that can be applied to a schema during merging. The intention of this class\r\n * is to support saving of edits and load them again if needed.\r\n * @alpha\r\n */\r\nexport class SchemaEdits {\r\n private readonly _edits: Array<AnySchemaEdits>;\r\n\r\n public readonly properties: PropertyEditor;\r\n public readonly items: ItemEditor;\r\n\r\n /**\r\n * @alpha\r\n */\r\n constructor(initialize?: ReadonlyArray<AnySchemaEdits>) {\r\n this._edits = [];\r\n\r\n if (initialize) {\r\n this._edits.push(...initialize);\r\n }\r\n\r\n this.items = new ItemEditor(this._edits);\r\n this.properties = new PropertyEditor(this._edits);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public async applyTo(differenceResult: SchemaDifferenceResult): Promise<void> {\r\n const postProcessing: Array<() => void> = [];\r\n for (const schemaEdit of this._edits) {\r\n if (schemaEdit.type === SchemaEditType.RenameSchemaItem) {\r\n applyRenameSchemaItemEdit(differenceResult, schemaEdit, postProcessing.push.bind(postProcessing));\r\n }\r\n if (schemaEdit.type === SchemaEditType.RenameProperty) {\r\n applyRenamePropertyEdit(differenceResult, schemaEdit);\r\n }\r\n if (schemaEdit.type === SchemaEditType.Skip) {\r\n applySkipEdit(differenceResult, schemaEdit);\r\n }\r\n }\r\n\r\n for (const callback of postProcessing) {\r\n callback();\r\n }\r\n }\r\n\r\n public toJSON(): ReadonlyArray<AnySchemaEdits> {\r\n return this._edits;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SchemaEdits.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/SchemaEdits.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,2DAAyF;AACzF,uDAAkD;AAElD;;;GAGG;AACH,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uDAAqC,CAAA;IACrC,mDAAiC,CAAA;IACjC,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAwCD,MAAe,MAAM;IAGnB,YAAY,KAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAES,GAAG,CAAC,IAAoB;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACpD,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAED,MAAM,cAAe,SAAQ,MAAM;IAE1B,MAAM,CAAC,UAAkB,EAAE,SAAiB,EAAE,YAAoB,EAAE,OAAe;QACxF,IAAI,CAAC,GAAG,CAAC;YACP,IAAI,EAAE,cAAc,CAAC,cAAc;YACnC,GAAG,EAAE,GAAG,UAAU,IAAI,SAAS,IAAI,YAAY,EAAE;YACjD,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,UAAkB,EAAE,SAAiB,EAAE,YAAoB;QACrE,IAAI,CAAC,GAAG,CAAC;YACP,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,GAAG,EAAE,GAAG,UAAU,IAAI,SAAS,IAAI,YAAY,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAW,SAAQ,MAAM;IACtB,MAAM,CAAC,UAAkB,EAAE,QAAgB,EAAE,OAAe;QACjE,IAAI,CAAC,GAAG,CAAC;YACP,IAAI,EAAE,cAAc,CAAC,gBAAgB;YACrC,GAAG,EAAE,GAAG,UAAU,IAAI,QAAQ,EAAE;YAChC,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,UAAkB,EAAE,QAAgB;QAC9C,IAAI,CAAC,GAAG,CAAC;YACP,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,GAAG,EAAE,GAAG,UAAU,IAAI,QAAQ,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;GAIG;AACH,MAAa,WAAW;IAMtB;;OAEG;IACH,YAAY,UAA0C;QACpD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,gBAAwC;QAC3D,MAAM,cAAc,GAAsB,EAAE,CAAC;QAC7C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACxD,IAAA,6CAAyB,EAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC;gBACtD,IAAA,2CAAuB,EAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAA,+BAAa,EAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA7CD,kCA6CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { SchemaDifferenceResult } from \"../../Differencing/SchemaDifference\";\r\nimport { applyRenamePropertyEdit, applyRenameSchemaItemEdit } from \"./RenameEditHandler\";\r\nimport { applySkipEdit } from \"./SkipEditHandler\";\r\n\r\n/**\r\n * An enumeration that has all the schema edit names.\r\n * @alpha\r\n */\r\nexport enum SchemaEditType {\r\n RenameSchemaItem = \"RenameSchemaItem\",\r\n RenameProperty = \"RenameProperty\",\r\n Skip = \"Skip\",\r\n}\r\n\r\n/**\r\n * Schema edit entry to rename a schema item.\r\n * @alpha\r\n */\r\nexport interface RenameSchemaItemEdit {\r\n type: SchemaEditType.RenameSchemaItem;\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * Schema edit entry to rename a property of a class.\r\n * @alpha\r\n */\r\nexport interface RenamePropertyEdit {\r\n type: SchemaEditType.RenameProperty;\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/**\r\n * Schema edit entry to skip a certain schema element matching the given key.\r\n * @alpha\r\n */\r\nexport interface SkipEdit {\r\n type: SchemaEditType.Skip;\r\n key: string;\r\n}\r\n\r\n/**\r\n * Union for all supported edits that can be applied to a schema.\r\n * @alpha\r\n */\r\nexport type AnySchemaEdits =\r\n SkipEdit |\r\n RenameSchemaItemEdit |\r\n RenamePropertyEdit;\r\n\r\nabstract class Editor {\r\n private readonly _edits: Array<AnySchemaEdits>;\r\n\r\n constructor(edits: Array<AnySchemaEdits>) {\r\n this._edits = edits;\r\n }\r\n\r\n protected add(edit: AnySchemaEdits) {\r\n const overrideEntry = this._edits.findIndex((entry) => {\r\n return entry.type === edit.type && entry.key === edit.key;\r\n });\r\n\r\n if (overrideEntry > -1) {\r\n this._edits[overrideEntry] = edit;\r\n } else {\r\n this._edits.push(edit);\r\n }\r\n }\r\n}\r\n\r\nclass PropertyEditor extends Editor {\r\n\r\n public rename(schemaName: string, className: string, propertyName: string, newName: string) {\r\n this.add({\r\n type: SchemaEditType.RenameProperty,\r\n key: `${schemaName}.${className}.${propertyName}`,\r\n value: newName,\r\n });\r\n }\r\n\r\n public skip(schemaName: string, className: string, propertyName: string) {\r\n this.add({\r\n type: SchemaEditType.Skip,\r\n key: `${schemaName}.${className}.${propertyName}`,\r\n });\r\n }\r\n}\r\n\r\nclass ItemEditor extends Editor {\r\n public rename(schemaName: string, itemName: string, newName: string) {\r\n this.add({\r\n type: SchemaEditType.RenameSchemaItem,\r\n key: `${schemaName}.${itemName}`,\r\n value: newName,\r\n });\r\n }\r\n\r\n public skip(schemaName: string, itemName: string) {\r\n this.add({\r\n type: SchemaEditType.Skip,\r\n key: `${schemaName}.${itemName}`,\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Defines a set of edits of a schema that can be applied to a schema during merging. The intention of this class\r\n * is to support saving of edits and load them again if needed.\r\n * @alpha\r\n */\r\nexport class SchemaEdits {\r\n private readonly _edits: Array<AnySchemaEdits>;\r\n\r\n public readonly properties: PropertyEditor;\r\n public readonly items: ItemEditor;\r\n\r\n /**\r\n * @alpha\r\n */\r\n constructor(initialize?: ReadonlyArray<AnySchemaEdits>) {\r\n this._edits = [];\r\n\r\n if (initialize) {\r\n this._edits.push(...initialize);\r\n }\r\n\r\n this.items = new ItemEditor(this._edits);\r\n this.properties = new PropertyEditor(this._edits);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public async applyTo(differenceResult: SchemaDifferenceResult): Promise<void> {\r\n const postProcessing: Array<() => void> = [];\r\n for (const schemaEdit of this._edits) {\r\n if (schemaEdit.type === SchemaEditType.RenameSchemaItem) {\r\n applyRenameSchemaItemEdit(differenceResult, schemaEdit, postProcessing.push.bind(postProcessing));\r\n }\r\n if (schemaEdit.type === SchemaEditType.RenameProperty) {\r\n applyRenamePropertyEdit(differenceResult, schemaEdit);\r\n }\r\n if (schemaEdit.type === SchemaEditType.Skip) {\r\n applySkipEdit(differenceResult, schemaEdit);\r\n }\r\n }\r\n\r\n for (const callback of postProcessing) {\r\n callback();\r\n }\r\n }\r\n\r\n public toJSON(): ReadonlyArray<AnySchemaEdits> {\r\n return this._edits;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SkipEditHandler.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/SkipEditHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,QAa3E"}
1
+ {"version":3,"file":"SkipEditHandler.d.ts","sourceRoot":"","sources":["../../../../src/Merging/Edits/SkipEditHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAElF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,QAiB3E"}
@@ -16,7 +16,10 @@ exports.applySkipEdit = void 0;
16
16
  * @internal
17
17
  */
18
18
  function applySkipEdit(result, edit) {
19
- const [itemName, pathName] = edit.key.split(".");
19
+ const [schemaName, itemName, pathName] = edit.key.split(".");
20
+ if (!result.sourceSchemaName.startsWith(schemaName)) {
21
+ return;
22
+ }
20
23
  const foundIndices = pathName !== undefined
21
24
  ? findRelatedItemEntries(result, itemName, pathName)
22
25
  : findItemEntries(result, itemName);
@@ -1 +1 @@
1
- {"version":3,"file":"SkipEditHandler.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/SkipEditHandler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAMH;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,MAA8B,EAAE,IAAc;IAC1E,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAiC,CAAC;IACjF,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS;QACzC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACpD,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,sBAAsB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAbD,sCAaC;AAED,SAAS,sBAAsB,CAAC,SAAqC,EAAE,QAAgB,EAAE,IAAa;IACpG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACtC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,WAAW,EAA0B,EAAE,QAAgB;IAChF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAE,WAAW,EAA0B,EAAE,QAAgB,EAAE,QAAgB;IACzG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzH,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { SchemaDifferenceResult } from \"../../Differencing/SchemaDifference\";\r\nimport type { SchemaDifferenceConflict } from \"../../ecschema-editing\";\r\nimport type { SkipEdit } from \"./SchemaEdits\";\r\n\r\n/**\r\n * Applies a skip edit to the schema differences. It basically removes all entries that\r\n * that are associated with the item to skip.\r\n * @param result The result of a schema differencing run\r\n * @param edit The skip edit to be applied.\r\n * @internal\r\n */\r\nexport function applySkipEdit(result: SchemaDifferenceResult, edit: SkipEdit) {\r\n const [itemName, pathName] = edit.key.split(\".\") as [string, string | undefined];\r\n const foundIndices = pathName !== undefined\r\n ? findRelatedItemEntries(result, itemName, pathName)\r\n : findItemEntries(result, itemName);\r\n\r\n for (const index of foundIndices.reverse()) {\r\n result.differences.splice(index, 1);\r\n }\r\n\r\n if (result.conflicts) {\r\n removeRelatedConflicts(result.conflicts, itemName, pathName);\r\n }\r\n}\r\n\r\nfunction removeRelatedConflicts(conflicts: SchemaDifferenceConflict[], itemName: string, path?: string) {\r\n const indices: number[] = [];\r\n conflicts.forEach((conflict, index) => {\r\n if (conflict.itemName === itemName && conflict.path === path) {\r\n indices.push(index);\r\n }\r\n });\r\n\r\n for (const index of indices.reverse()) {\r\n conflicts.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction findItemEntries({ differences }: SchemaDifferenceResult, itemName: string): number[] {\r\n const found: number[] = [];\r\n differences.forEach((difference, index) => {\r\n if (\"itemName\" in difference && difference.itemName === itemName) {\r\n found.push(index);\r\n }\r\n });\r\n return found;\r\n}\r\n\r\nfunction findRelatedItemEntries({ differences }: SchemaDifferenceResult, itemName: string, pathName: string): number[] {\r\n const found: number[] = [];\r\n differences.forEach((difference, index) => {\r\n if (\"itemName\" in difference && difference.itemName === itemName && \"path\" in difference && difference.path === pathName) {\r\n found.push(index);\r\n }\r\n });\r\n return found;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"SkipEditHandler.js","sourceRoot":"","sources":["../../../../src/Merging/Edits/SkipEditHandler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAMH;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,MAA8B,EAAE,IAAc;IAC1E,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAyC,CAAC;IACrG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS;QACzC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACpD,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,sBAAsB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAjBD,sCAiBC;AAED,SAAS,sBAAsB,CAAC,SAAqC,EAAE,QAAgB,EAAE,IAAa;IACpG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACtC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,WAAW,EAA0B,EAAE,QAAgB;IAChF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAE,WAAW,EAA0B,EAAE,QAAgB,EAAE,QAAgB;IACzG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzH,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Merging\r\n */\r\n\r\nimport type { SchemaDifferenceResult } from \"../../Differencing/SchemaDifference\";\r\nimport type { SchemaDifferenceConflict } from \"../../ecschema-editing\";\r\nimport type { SkipEdit } from \"./SchemaEdits\";\r\n\r\n/**\r\n * Applies a skip edit to the schema differences. It basically removes all entries that\r\n * that are associated with the item to skip.\r\n * @param result The result of a schema differencing run\r\n * @param edit The skip edit to be applied.\r\n * @internal\r\n */\r\nexport function applySkipEdit(result: SchemaDifferenceResult, edit: SkipEdit) {\r\n const [schemaName, itemName, pathName] = edit.key.split(\".\") as [string, string, string | undefined];\r\n if (!result.sourceSchemaName.startsWith(schemaName)) {\r\n return;\r\n }\r\n\r\n const foundIndices = pathName !== undefined\r\n ? findRelatedItemEntries(result, itemName, pathName)\r\n : findItemEntries(result, itemName);\r\n\r\n for (const index of foundIndices.reverse()) {\r\n result.differences.splice(index, 1);\r\n }\r\n\r\n if (result.conflicts) {\r\n removeRelatedConflicts(result.conflicts, itemName, pathName);\r\n }\r\n}\r\n\r\nfunction removeRelatedConflicts(conflicts: SchemaDifferenceConflict[], itemName: string, path?: string) {\r\n const indices: number[] = [];\r\n conflicts.forEach((conflict, index) => {\r\n if (conflict.itemName === itemName && conflict.path === path) {\r\n indices.push(index);\r\n }\r\n });\r\n\r\n for (const index of indices.reverse()) {\r\n conflicts.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction findItemEntries({ differences }: SchemaDifferenceResult, itemName: string): number[] {\r\n const found: number[] = [];\r\n differences.forEach((difference, index) => {\r\n if (\"itemName\" in difference && difference.itemName === itemName) {\r\n found.push(index);\r\n }\r\n });\r\n return found;\r\n}\r\n\r\nfunction findRelatedItemEntries({ differences }: SchemaDifferenceResult, itemName: string, pathName: string): number[] {\r\n const found: number[] = [];\r\n differences.forEach((difference, index) => {\r\n if (\"itemName\" in difference && difference.itemName === itemName && \"path\" in difference && difference.path === pathName) {\r\n found.push(index);\r\n }\r\n });\r\n return found;\r\n}\r\n\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/ecschema-editing",
3
- "version": "4.9.0-dev.24",
3
+ "version": "4.9.0-dev.26",
4
4
  "description": "ECSchema editing and validation API",
5
5
  "license": "MIT",
6
6
  "main": "lib/cjs/ecschema-editing.js",
@@ -41,16 +41,16 @@
41
41
  "rimraf": "^3.0.2",
42
42
  "sinon": "^17.0.2",
43
43
  "typescript": "~5.3.3",
44
- "@itwin/build-tools": "4.9.0-dev.24",
45
- "@itwin/core-bentley": "4.9.0-dev.24",
46
- "@itwin/core-common": "4.9.0-dev.24",
47
- "@itwin/core-quantity": "4.9.0-dev.24",
48
- "@itwin/ecschema-metadata": "4.9.0-dev.24"
44
+ "@itwin/build-tools": "4.9.0-dev.26",
45
+ "@itwin/core-common": "4.9.0-dev.26",
46
+ "@itwin/core-quantity": "4.9.0-dev.26",
47
+ "@itwin/core-bentley": "4.9.0-dev.26",
48
+ "@itwin/ecschema-metadata": "4.9.0-dev.26"
49
49
  },
50
50
  "peerDependencies": {
51
- "@itwin/core-bentley": "^4.9.0-dev.24",
52
- "@itwin/core-quantity": "^4.9.0-dev.24",
53
- "@itwin/ecschema-metadata": "^4.9.0-dev.24"
51
+ "@itwin/core-bentley": "^4.9.0-dev.26",
52
+ "@itwin/core-quantity": "^4.9.0-dev.26",
53
+ "@itwin/ecschema-metadata": "^4.9.0-dev.26"
54
54
  },
55
55
  "nyc": {
56
56
  "extends": "./node_modules/@itwin/build-tools/.nycrc"