@mcp-abap-adt/core 4.4.0 → 4.4.2

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/handlers/class/high/handleUpdateClass.d.ts.map +1 -1
  3. package/dist/handlers/class/high/handleUpdateClass.js +60 -71
  4. package/dist/handlers/class/high/handleUpdateClass.js.map +1 -1
  5. package/dist/handlers/data_element/high/handleUpdateDataElement.js +19 -19
  6. package/dist/handlers/data_element/high/handleUpdateDataElement.js.map +1 -1
  7. package/dist/handlers/domain/high/handleUpdateDomain.d.ts.map +1 -1
  8. package/dist/handlers/domain/high/handleUpdateDomain.js +18 -18
  9. package/dist/handlers/domain/high/handleUpdateDomain.js.map +1 -1
  10. package/dist/handlers/interface/high/handleUpdateInterface.d.ts.map +1 -1
  11. package/dist/handlers/interface/high/handleUpdateInterface.js +33 -36
  12. package/dist/handlers/interface/high/handleUpdateInterface.js.map +1 -1
  13. package/dist/handlers/program/high/handleUpdateProgram.d.ts.map +1 -1
  14. package/dist/handlers/program/high/handleUpdateProgram.js +103 -112
  15. package/dist/handlers/program/high/handleUpdateProgram.js.map +1 -1
  16. package/dist/handlers/search/readonly/handleSearchObject.d.ts +1 -1
  17. package/dist/handlers/search/readonly/handleSearchObject.js +1 -1
  18. package/dist/handlers/search/readonly/handleSearchObject.js.map +1 -1
  19. package/dist/handlers/service_definition/high/handleUpdateServiceDefinition.d.ts.map +1 -1
  20. package/dist/handlers/service_definition/high/handleUpdateServiceDefinition.js +22 -24
  21. package/dist/handlers/service_definition/high/handleUpdateServiceDefinition.js.map +1 -1
  22. package/dist/handlers/structure/high/handleUpdateStructure.js +37 -40
  23. package/dist/handlers/structure/high/handleUpdateStructure.js.map +1 -1
  24. package/dist/handlers/table/high/handleUpdateTable.js +35 -36
  25. package/dist/handlers/table/high/handleUpdateTable.js.map +1 -1
  26. package/dist/handlers/view/high/handleUpdateView.d.ts.map +1 -1
  27. package/dist/handlers/view/high/handleUpdateView.js +97 -106
  28. package/dist/handlers/view/high/handleUpdateView.js.map +1 -1
  29. package/docs/superpowers/plans/2026-03-26-guaranteed-unlock.md +220 -0
  30. package/package.json +1 -1
@@ -78,9 +78,10 @@ async function handleUpdateTable(context, args) {
78
78
  // Note: No validation needed for update - table must already exist
79
79
  const shouldActivate = activate !== false; // Default to true if not specified
80
80
  let activateResponse;
81
- // Lock
82
- const lockHandle = await client.getTable().lock({ tableName });
81
+ let lockHandle;
83
82
  try {
83
+ // Lock
84
+ lockHandle = await client.getTable().lock({ tableName });
84
85
  // Step 1: Check new code BEFORE update (with ddlCode and version='inactive')
85
86
  logger?.info(`[UpdateTable] Checking new DDL code before update: ${tableName}`);
86
87
  let checkNewCodePassed = false;
@@ -122,46 +123,44 @@ async function handleUpdateTable(context, args) {
122
123
  else {
123
124
  logger?.info(`[UpdateTable] Skipping update - new code check failed: ${tableName}`);
124
125
  }
125
- // Step 3: Unlock (MANDATORY after lock)
126
- await client.getTable().unlock({ tableName }, lockHandle);
127
- logger?.info(`[UpdateTable] Table unlocked: ${tableName}`);
128
- // Step 4: Check inactive version (after unlock)
129
- logger?.info(`[UpdateTable] Checking inactive version: ${tableName}`);
130
- try {
131
- await (0, utils_1.safeCheckOperation)(() => client.getTable().check({ tableName }, 'inactive'), tableName, {
132
- debug: (message) => logger?.debug(`[UpdateTable] ${message}`),
133
- });
134
- logger?.info(`[UpdateTable] Inactive version check completed: ${tableName}`);
135
- }
136
- catch (checkError) {
137
- // If error was marked as "already checked", continue silently
138
- if (checkError.isAlreadyChecked) {
139
- logger?.info(`[UpdateTable] Table ${tableName} was already checked - this is OK, continuing`);
126
+ }
127
+ finally {
128
+ if (lockHandle) {
129
+ try {
130
+ await client.getTable().unlock({ tableName }, lockHandle);
131
+ logger?.info(`[UpdateTable] Table unlocked: ${tableName}`);
140
132
  }
141
- else {
142
- // Log warning but don't fail - inactive check is informational
143
- logger?.warn(`[UpdateTable] Inactive version check had issues: ${tableName}`, {
144
- error: checkError instanceof Error
145
- ? checkError.message
146
- : String(checkError),
147
- });
133
+ catch (unlockError) {
134
+ logger?.warn(`Failed to unlock table ${tableName}: ${unlockError?.message || unlockError}`);
148
135
  }
149
136
  }
150
- // Activate if requested
151
- if (shouldActivate) {
152
- const activateState = await client.getTable().activate({ tableName });
153
- activateResponse = activateState.activateResult;
154
- }
155
137
  }
156
- catch (error) {
157
- // Try to unlock on error
158
- try {
159
- await client.getTable().unlock({ tableName: tableName }, lockHandle);
138
+ // Step 4: Check inactive version (after unlock)
139
+ logger?.info(`[UpdateTable] Checking inactive version: ${tableName}`);
140
+ try {
141
+ await (0, utils_1.safeCheckOperation)(() => client.getTable().check({ tableName }, 'inactive'), tableName, {
142
+ debug: (message) => logger?.debug(`[UpdateTable] ${message}`),
143
+ });
144
+ logger?.info(`[UpdateTable] Inactive version check completed: ${tableName}`);
145
+ }
146
+ catch (checkError) {
147
+ // If error was marked as "already checked", continue silently
148
+ if (checkError.isAlreadyChecked) {
149
+ logger?.info(`[UpdateTable] Table ${tableName} was already checked - this is OK, continuing`);
160
150
  }
161
- catch (unlockError) {
162
- logger?.error('Failed to unlock table after error:', unlockError);
151
+ else {
152
+ // Log warning but don't fail - inactive check is informational
153
+ logger?.warn(`[UpdateTable] Inactive version check had issues: ${tableName}`, {
154
+ error: checkError instanceof Error
155
+ ? checkError.message
156
+ : String(checkError),
157
+ });
163
158
  }
164
- throw error;
159
+ }
160
+ // Activate if requested
161
+ if (shouldActivate) {
162
+ const activateState = await client.getTable().activate({ tableName });
163
+ activateResponse = activateState.activateResult;
165
164
  }
166
165
  // Parse activation warnings if activation was performed
167
166
  let activationWarnings = [];
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpdateTable.js","sourceRoot":"","sources":["../../../../src/handlers/table/high/handleUpdateTable.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAyDH,8CAmPC;AA1SD,qDAA4C;AAC5C,kDAAuD;AAEvD,8CAK4B;AAEf,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAU;IAC1C,WAAW,EACT,6MAA6M;IAC/M,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,iEAAiE;aACpE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,0OAA0O;aAC7O;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,mGAAmG;aACtG;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oDAAoD;aAClE;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;KACrC;CACO,CAAC;AASX;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,IAAqB;IAErB,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GAAG,IAAI,GAChB,GAAG,IAAuB,CAAC;QAE5B,aAAa;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAA,oBAAY,EAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,EAAE,IAAI,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,+CAA+C;YAC/C,4EAA4E;YAC5E,mDAAmD;YACnD,+DAA+D;YAC/D,yFAAyF;YACzF,MAAM,EAAE,KAAK,CACX,+DAA+D,SAAS,EAAE,CAC3E,CAAC;QACJ,CAAC;QAAC,OAAO,eAAoB,EAAE,CAAC;YAC9B,MAAM,YAAY,GAChB,eAAe,YAAY,KAAK;gBAC9B,CAAC,CAAC,eAAe,CAAC,OAAO;gBACzB,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC9B,MAAM,EAAE,KAAK,CACX,8CAA8C,YAAY,EAAE,CAC7D,CAAC;YACF,OAAO,IAAA,oBAAY,EACjB,IAAI,KAAK,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,gBAAgB;YAChB,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;YAE3C,8HAA8H;YAC9H,mEAAmE;YACnE,MAAM,cAAc,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,mCAAmC;YAC9E,IAAI,gBAAiC,CAAC;YAEtC,OAAO;YACP,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,6EAA6E;gBAC7E,MAAM,EAAE,IAAI,CACV,sDAAsD,SAAS,EAAE,CAClE,CAAC;gBACF,IAAI,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,IAAA,0BAAkB,EACtB,GAAG,EAAE,CACH,MAAM;yBACH,QAAQ,EAAE;yBACV,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,CAAC,EACxD,SAAS,EACT;wBACE,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CACzB,MAAM,EAAE,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC;qBAC5C,CACF,CAAC;oBACF,kBAAkB,GAAG,IAAI,CAAC;oBAC1B,MAAM,EAAE,IAAI,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,8DAA8D;oBAC9D,IAAK,UAAkB,CAAC,gBAAgB,EAAE,CAAC;wBACzC,MAAM,EAAE,IAAI,CACV,uBAAuB,SAAS,+CAA+C,CAChF,CAAC;wBACF,kBAAkB,GAAG,IAAI,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,kDAAkD;wBAClD,MAAM,EAAE,KAAK,CAAC,wCAAwC,SAAS,EAAE,EAAE;4BACjE,KAAK,EACH,UAAU,YAAY,KAAK;gCACzB,CAAC,CAAC,UAAU,CAAC,OAAO;gCACpB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;yBACzB,CAAC,CAAC;wBACH,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAClG,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,wCAAwC;gBACxC,IAAI,kBAAkB,EAAE,CAAC;oBACvB,MAAM,EAAE,IAAI,CACV,+CAA+C,SAAS,EAAE,CAC3D,CAAC;oBACF,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAC5B;wBACE,SAAS;wBACT,OAAO,EAAE,QAAQ;wBACjB,gBAAgB,EAAE,iBAAiB;qBACpC,EACD,EAAE,UAAU,EAAE,CACf,CAAC;oBACF,MAAM,EAAE,IAAI,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,IAAI,CACV,0DAA0D,SAAS,EAAE,CACtE,CAAC;gBACJ,CAAC;gBAED,wCAAwC;gBACxC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC1D,MAAM,EAAE,IAAI,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;gBAE3D,gDAAgD;gBAChD,MAAM,EAAE,IAAI,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC;oBACH,MAAM,IAAA,0BAAkB,EACtB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,EACxD,SAAS,EACT;wBACE,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CACzB,MAAM,EAAE,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC;qBAC5C,CACF,CAAC;oBACF,MAAM,EAAE,IAAI,CACV,mDAAmD,SAAS,EAAE,CAC/D,CAAC;gBACJ,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,8DAA8D;oBAC9D,IAAK,UAAkB,CAAC,gBAAgB,EAAE,CAAC;wBACzC,MAAM,EAAE,IAAI,CACV,uBAAuB,SAAS,+CAA+C,CAChF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,+DAA+D;wBAC/D,MAAM,EAAE,IAAI,CACV,oDAAoD,SAAS,EAAE,EAC/D;4BACE,KAAK,EACH,UAAU,YAAY,KAAK;gCACzB,CAAC,CAAC,UAAU,CAAC,OAAO;gCACpB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;yBACzB,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,wBAAwB;gBACxB,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtE,gBAAgB,GAAG,aAAa,CAAC,cAAc,CAAC;gBAClD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yBAAyB;gBACzB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;gBACvE,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,MAAM,EAAE,KAAK,CAAC,qCAAqC,EAAE,WAAW,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,wDAAwD;YACxD,IAAI,kBAAkB,GAAa,EAAE,CAAC;YACtC,IACE,cAAc;gBACd,gBAAgB;gBAChB,OAAO,gBAAgB,CAAC,IAAI,KAAK,QAAQ;gBACzC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAChD,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;oBAC3B,gBAAgB,EAAE,KAAK;oBACvB,mBAAmB,EAAE,IAAI;iBAC1B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACjE,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAC/B,CAAC,GAAQ,EAAE,EAAE,CACX,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,SAAS,EAAE,CACzD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,EAAE,IAAI,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;YAEnE,wBAAwB;YACxB,MAAM,cAAc,GAAG;gBACrB,MAAM;gBACN,gBAAgB;gBAChB,QAAQ;gBACR,QAAQ;gBACR,gBAAgB;aACjB,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,SAAS;gBACrB,iBAAiB,EAAE,iBAAiB,IAAI,OAAO;gBAC/C,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,cAAc;oBACrB,CAAC,CAAC,SAAS,SAAS,4CAA4C;oBAChE,CAAC,CAAC,SAAS,SAAS,8CAA8C;gBACpE,GAAG,EAAE,2BAA2B,IAAA,2BAAmB,EAAC,SAAS,CAAC,EAAE;gBAChE,eAAe,EAAE,cAAc;gBAC/B,mBAAmB,EACjB,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;gBAChE,iBAAiB,EAAE,QAAQ,CAAC,MAAM;aACnC,CAAC;YAEF,OAAO,IAAA,uBAAe,EAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrC,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,EAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC,+BAA+B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YAElE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI;gBACvC,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;oBACvC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI;oBACrB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YAEnC,OAAO,IAAA,oBAAY,EAAC,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"handleUpdateTable.js","sourceRoot":"","sources":["../../../../src/handlers/table/high/handleUpdateTable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpdateView.d.ts","sourceRoot":"","sources":["../../../../src/handlers/view/high/handleUpdateView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AASX,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG;;;;;;GA4O1E"}
1
+ {"version":3,"file":"handleUpdateView.d.ts","sourceRoot":"","sources":["../../../../src/handlers/view/high/handleUpdateView.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AASX,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG;;;;;;GAgO1E"}
@@ -59,11 +59,11 @@ async function handleUpdateView(context, params) {
59
59
  const client = (0, clients_1.createAdtClient)(connection);
60
60
  const shouldActivate = args.activate === true;
61
61
  let lockHandle;
62
- // Lock
63
- logger?.debug(`Locking view: ${viewName}`);
64
- lockHandle = await client.getView().lock({ viewName });
65
- logger?.debug(`View locked: ${viewName} (handle=${lockHandle ? `${lockHandle.substring(0, 8)}...` : 'none'})`);
66
62
  try {
63
+ // Lock
64
+ logger?.debug(`Locking view: ${viewName}`);
65
+ lockHandle = await client.getView().lock({ viewName });
66
+ logger?.debug(`View locked: ${viewName} (handle=${lockHandle ? `${lockHandle.substring(0, 8)}...` : 'none'})`);
67
67
  // Check new code BEFORE update
68
68
  logger?.debug(`Checking new DDL code before update: ${viewName}`);
69
69
  let checkNewCodePassed = false;
@@ -99,127 +99,118 @@ async function handleUpdateView(context, params) {
99
99
  else {
100
100
  logger?.warn(`Skipping update - new code check failed: ${viewName}`);
101
101
  }
102
- // Unlock (MANDATORY)
103
- logger?.debug(`Unlocking view: ${viewName}`);
104
- await client.getView().unlock({ viewName }, lockHandle);
105
- logger?.info(`View unlocked: ${viewName}`);
106
- // Check inactive version (after unlock)
107
- logger?.debug(`Checking inactive version: ${viewName}`);
108
- try {
109
- await (0, utils_1.safeCheckOperation)(() => client
110
- .getView()
111
- .check({ viewName, ddlSource: args.ddl_source }, 'inactive'), viewName, {
112
- debug: (message) => logger?.debug(message),
113
- });
114
- logger?.debug(`Inactive version check completed: ${viewName}`);
115
- }
116
- catch (checkError) {
117
- if (checkError.isAlreadyChecked) {
118
- logger?.debug(`View ${viewName} was already checked - continuing`);
119
- }
120
- else {
121
- logger?.warn(`Inactive version check had issues: ${viewName} - ${checkError instanceof Error ? checkError.message : String(checkError)}`);
122
- }
123
- }
124
- // Activate if requested
125
- let activateResponse;
126
- if (shouldActivate) {
127
- logger?.debug(`Activating view: ${viewName}`);
102
+ }
103
+ finally {
104
+ if (lockHandle) {
128
105
  try {
129
- const activateState = await client.getView().activate({ viewName });
130
- activateResponse = activateState.activateResult;
131
- logger?.info(`View activated: ${viewName}`);
106
+ logger?.debug(`Unlocking view: ${viewName}`);
107
+ await client.getView().unlock({ viewName }, lockHandle);
108
+ logger?.info(`View unlocked: ${viewName}`);
132
109
  }
133
- catch (activationError) {
134
- logger?.error(`Activation failed: ${viewName} - ${activationError instanceof Error ? activationError.message : String(activationError)}`);
135
- throw new Error(`Activation failed: ${activationError instanceof Error ? activationError.message : String(activationError)}`);
110
+ catch (unlockError) {
111
+ logger?.warn(`Failed to unlock view ${viewName}: ${unlockError?.message || unlockError}`);
136
112
  }
137
113
  }
138
- else {
139
- logger?.debug(`Skipping activation for: ${viewName}`);
114
+ }
115
+ // Check inactive version (after unlock)
116
+ logger?.debug(`Checking inactive version: ${viewName}`);
117
+ try {
118
+ await (0, utils_1.safeCheckOperation)(() => client
119
+ .getView()
120
+ .check({ viewName, ddlSource: args.ddl_source }, 'inactive'), viewName, {
121
+ debug: (message) => logger?.debug(message),
122
+ });
123
+ logger?.debug(`Inactive version check completed: ${viewName}`);
124
+ }
125
+ catch (checkError) {
126
+ if (checkError.isAlreadyChecked) {
127
+ logger?.debug(`View ${viewName} was already checked - continuing`);
140
128
  }
141
- // Parse activation warnings if activation was performed
142
- let activationWarnings = [];
143
- if (shouldActivate && activateResponse) {
144
- if (typeof activateResponse.data === 'string' &&
145
- activateResponse.data.includes('<chkl:messages')) {
146
- const parser = new fast_xml_parser_1.XMLParser({
147
- ignoreAttributes: false,
148
- attributeNamePrefix: '@_',
149
- });
150
- const result = parser.parse(activateResponse.data);
151
- const messages = result?.['chkl:messages']?.msg;
152
- if (messages) {
153
- const msgArray = Array.isArray(messages) ? messages : [messages];
154
- activationWarnings = msgArray.map((msg) => `${msg['@_type']}: ${msg.shortText?.txt || 'Unknown'}`);
155
- }
156
- }
129
+ else {
130
+ logger?.warn(`Inactive version check had issues: ${viewName} - ${checkError instanceof Error ? checkError.message : String(checkError)}`);
157
131
  }
158
- logger?.info(`UpdateView completed successfully: ${viewName}`);
159
- const result = {
160
- success: true,
161
- view_name: viewName,
162
- type: 'DDLS',
163
- activated: shouldActivate,
164
- message: `View ${viewName} updated${shouldActivate ? ' and activated' : ''} successfully`,
165
- uri: `/sap/bc/adt/ddic/ddl/sources/${(0, utils_1.encodeSapObjectName)(viewName).toLowerCase()}`,
166
- steps_completed: [
167
- 'lock',
168
- 'check_new_code',
169
- 'update',
170
- 'unlock',
171
- 'check_inactive',
172
- ...(shouldActivate ? ['activate'] : []),
173
- ],
174
- activation_warnings: activationWarnings.length > 0 ? activationWarnings : undefined,
175
- };
176
- return (0, utils_1.return_response)({
177
- data: JSON.stringify(result, null, 2),
178
- status: 200,
179
- statusText: 'OK',
180
- headers: {},
181
- config: {},
182
- });
183
132
  }
184
- catch (workflowError) {
185
- // On error, ensure we attempt unlock
133
+ // Activate if requested
134
+ let activateResponse;
135
+ if (shouldActivate) {
136
+ logger?.debug(`Activating view: ${viewName}`);
186
137
  try {
187
- if (lockHandle) {
188
- logger?.warn(`Attempting unlock after error for view ${viewName}`);
189
- await client.getView().unlock({ viewName }, lockHandle);
190
- logger?.warn(`Unlocked view after error: ${viewName}`);
191
- }
138
+ const activateState = await client.getView().activate({ viewName });
139
+ activateResponse = activateState.activateResult;
140
+ logger?.info(`View activated: ${viewName}`);
192
141
  }
193
- catch (unlockError) {
194
- logger?.error(`Failed to unlock view after error: ${viewName} - ${unlockError instanceof Error ? unlockError.message : String(unlockError)}`);
142
+ catch (activationError) {
143
+ logger?.error(`Activation failed: ${viewName} - ${activationError instanceof Error ? activationError.message : String(activationError)}`);
144
+ throw new Error(`Activation failed: ${activationError instanceof Error ? activationError.message : String(activationError)}`);
195
145
  }
196
- // Parse error message
197
- let errorMessage = workflowError instanceof Error
198
- ? workflowError.message
199
- : String(workflowError);
200
- // Attempt to parse ADT XML error
201
- try {
146
+ }
147
+ else {
148
+ logger?.debug(`Skipping activation for: ${viewName}`);
149
+ }
150
+ // Parse activation warnings if activation was performed
151
+ let activationWarnings = [];
152
+ if (shouldActivate && activateResponse) {
153
+ if (typeof activateResponse.data === 'string' &&
154
+ activateResponse.data.includes('<chkl:messages')) {
202
155
  const parser = new fast_xml_parser_1.XMLParser({
203
156
  ignoreAttributes: false,
204
157
  attributeNamePrefix: '@_',
205
158
  });
206
- const errorData = workflowError?.response?.data
207
- ? parser.parse(workflowError.response.data)
208
- : null;
209
- const errorMsg = errorData?.['exc:exception']?.message?.['#text'] ||
210
- errorData?.['exc:exception']?.message;
211
- if (errorMsg) {
212
- errorMessage = `SAP Error: ${errorMsg}`;
159
+ const result = parser.parse(activateResponse.data);
160
+ const messages = result?.['chkl:messages']?.msg;
161
+ if (messages) {
162
+ const msgArray = Array.isArray(messages) ? messages : [messages];
163
+ activationWarnings = msgArray.map((msg) => `${msg['@_type']}: ${msg.shortText?.txt || 'Unknown'}`);
213
164
  }
214
165
  }
215
- catch {
216
- // ignore parse errors
217
- }
218
- return (0, utils_1.return_error)(new Error(errorMessage));
219
166
  }
167
+ logger?.info(`UpdateView completed successfully: ${viewName}`);
168
+ const result = {
169
+ success: true,
170
+ view_name: viewName,
171
+ type: 'DDLS',
172
+ activated: shouldActivate,
173
+ message: `View ${viewName} updated${shouldActivate ? ' and activated' : ''} successfully`,
174
+ uri: `/sap/bc/adt/ddic/ddl/sources/${(0, utils_1.encodeSapObjectName)(viewName).toLowerCase()}`,
175
+ steps_completed: [
176
+ 'lock',
177
+ 'check_new_code',
178
+ 'update',
179
+ 'unlock',
180
+ 'check_inactive',
181
+ ...(shouldActivate ? ['activate'] : []),
182
+ ],
183
+ activation_warnings: activationWarnings.length > 0 ? activationWarnings : undefined,
184
+ };
185
+ return (0, utils_1.return_response)({
186
+ data: JSON.stringify(result, null, 2),
187
+ status: 200,
188
+ statusText: 'OK',
189
+ headers: {},
190
+ config: {},
191
+ });
220
192
  }
221
193
  catch (error) {
222
- const errorMessage = error instanceof Error ? error.message : String(error);
194
+ // Parse error message
195
+ let errorMessage = error instanceof Error ? error.message : String(error);
196
+ // Attempt to parse ADT XML error
197
+ try {
198
+ const parser = new fast_xml_parser_1.XMLParser({
199
+ ignoreAttributes: false,
200
+ attributeNamePrefix: '@_',
201
+ });
202
+ const errorData = error?.response?.data
203
+ ? parser.parse(error.response.data)
204
+ : null;
205
+ const errorMsg = errorData?.['exc:exception']?.message?.['#text'] ||
206
+ errorData?.['exc:exception']?.message;
207
+ if (errorMsg) {
208
+ errorMessage = `SAP Error: ${errorMsg}`;
209
+ }
210
+ }
211
+ catch {
212
+ // ignore parse errors
213
+ }
223
214
  logger?.error(`Error updating view ${viewName}: ${errorMessage}`);
224
215
  return (0, utils_1.return_error)(new Error(errorMessage));
225
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpdateView.js","sourceRoot":"","sources":["../../../../src/handlers/view/high/handleUpdateView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleUpdateView.js","sourceRoot":"","sources":["../../../../src/handlers/view/high/handleUpdateView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
1
+ # Guaranteed Unlock on Error — Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Replace try-catch unlock-on-error with try-finally in all update handlers to guarantee unlock regardless of error path.
6
+
7
+ **Architecture:** Move lock() inside the same try block that has the finally-unlock. Use the existing safe pattern from `handleUpdateFunctionGroup.ts` and `handleUpdateFunctionModule.ts` as reference. Activate stays AFTER the finally block (after unlock).
8
+
9
+ **Tech Stack:** TypeScript, existing ADT client methods
10
+
11
+ ---
12
+
13
+ ## Reference Pattern (from handleUpdateFunctionModule.ts)
14
+
15
+ ```typescript
16
+ let lockHandle: string | undefined;
17
+ try {
18
+ lockHandle = await client.getXxx().lock({ ... });
19
+ // ... check, update, etc.
20
+ } finally {
21
+ if (lockHandle) {
22
+ try {
23
+ await client.getXxx().unlock({ ... }, lockHandle);
24
+ } catch (unlockError: any) {
25
+ logger?.warn(`Failed to unlock after error: ${unlockError?.message || unlockError}`);
26
+ }
27
+ }
28
+ }
29
+ // activate AFTER finally (unlock already done)
30
+ ```
31
+
32
+ ## Key transformation
33
+
34
+ **Before (vulnerable):**
35
+ ```typescript
36
+ lockHandle = await client.getXxx().lock({ ... }); // OUTSIDE try
37
+ try {
38
+ // check → update → unlock (happy path)
39
+ } catch (workflowError) {
40
+ // unlock-on-error (catch only)
41
+ if (lockHandle) await client.getXxx().unlock({ ... }, lockHandle);
42
+ throw workflowError;
43
+ }
44
+ ```
45
+
46
+ **After (safe):**
47
+ ```typescript
48
+ let lockHandle: string | undefined;
49
+ try {
50
+ lockHandle = await client.getXxx().lock({ ... });
51
+ // check → update (NO unlock in happy path — finally handles it)
52
+ } finally {
53
+ if (lockHandle) {
54
+ try {
55
+ await client.getXxx().unlock({ ... }, lockHandle);
56
+ logger?.info(`Unlocked: ${objectName}`);
57
+ } catch (unlockError: any) {
58
+ logger?.warn(`Failed to unlock ${objectName}: ${unlockError?.message || unlockError}`);
59
+ }
60
+ }
61
+ }
62
+ // check inactive + activate AFTER finally
63
+ ```
64
+
65
+ **Important:** Remove the explicit `unlock()` call from the happy path — `finally` handles both happy and error paths. Check-inactive and activate move AFTER the finally block since they don't need the lock.
66
+
67
+ ---
68
+
69
+ ## Vulnerable Handlers (9 files)
70
+
71
+ ### Task 1: handleUpdateProgram.ts
72
+
73
+ **Files:**
74
+ - Modify: `src/handlers/program/high/handleUpdateProgram.ts`
75
+
76
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
77
+
78
+ Move `lock()` (line 111) inside the inner try. Replace inner `try { ... } catch (workflowError) { unlock; }` with `try { ... } finally { unlock; }`. Remove explicit `unlock()` from happy path (line 167). Move check-inactive (lines 171-191) and activate (lines 194-212) after the finally block.
79
+
80
+ - [ ] **Step 2: Verify build**
81
+
82
+ Run: `npx tsc --noEmit`
83
+ Expected: no errors
84
+
85
+ - [ ] **Step 3: Commit**
86
+
87
+ ```bash
88
+ git commit -m "fix(UpdateProgram): guarantee unlock via try-finally (#22)"
89
+ ```
90
+
91
+ ### Task 2: handleUpdateClass.ts
92
+
93
+ **Files:**
94
+ - Modify: `src/handlers/class/high/handleUpdateClass.ts`
95
+
96
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
97
+
98
+ Same transformation: lock inside try, finally for unlock, remove happy-path unlock, move check-inactive + activate after finally.
99
+
100
+ - [ ] **Step 2: Verify build**
101
+
102
+ Run: `npx tsc --noEmit`
103
+
104
+ - [ ] **Step 3: Commit**
105
+
106
+ ```bash
107
+ git commit -m "fix(UpdateClass): guarantee unlock via try-finally (#22)"
108
+ ```
109
+
110
+ ### Task 3: handleUpdateInterface.ts
111
+
112
+ **Files:**
113
+ - Modify: `src/handlers/interface/high/handleUpdateInterface.ts`
114
+
115
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
116
+ - [ ] **Step 2: Verify build**
117
+ - [ ] **Step 3: Commit**
118
+
119
+ ```bash
120
+ git commit -m "fix(UpdateInterface): guarantee unlock via try-finally (#22)"
121
+ ```
122
+
123
+ ### Task 4: handleUpdateView.ts
124
+
125
+ **Files:**
126
+ - Modify: `src/handlers/view/high/handleUpdateView.ts`
127
+
128
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
129
+ - [ ] **Step 2: Verify build**
130
+ - [ ] **Step 3: Commit**
131
+
132
+ ```bash
133
+ git commit -m "fix(UpdateView): guarantee unlock via try-finally (#22)"
134
+ ```
135
+
136
+ ### Task 5: handleUpdateTable.ts
137
+
138
+ **Files:**
139
+ - Modify: `src/handlers/table/high/handleUpdateTable.ts`
140
+
141
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
142
+ - [ ] **Step 2: Verify build**
143
+ - [ ] **Step 3: Commit**
144
+
145
+ ```bash
146
+ git commit -m "fix(UpdateTable): guarantee unlock via try-finally (#22)"
147
+ ```
148
+
149
+ ### Task 6: handleUpdateStructure.ts
150
+
151
+ **Files:**
152
+ - Modify: `src/handlers/structure/high/handleUpdateStructure.ts`
153
+
154
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
155
+ - [ ] **Step 2: Verify build**
156
+ - [ ] **Step 3: Commit**
157
+
158
+ ```bash
159
+ git commit -m "fix(UpdateStructure): guarantee unlock via try-finally (#22)"
160
+ ```
161
+
162
+ ### Task 7: handleUpdateDomain.ts
163
+
164
+ **Files:**
165
+ - Modify: `src/handlers/domain/high/handleUpdateDomain.ts`
166
+
167
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
168
+ - [ ] **Step 2: Verify build**
169
+ - [ ] **Step 3: Commit**
170
+
171
+ ```bash
172
+ git commit -m "fix(UpdateDomain): guarantee unlock via try-finally (#22)"
173
+ ```
174
+
175
+ ### Task 8: handleUpdateServiceDefinition.ts
176
+
177
+ **Files:**
178
+ - Modify: `src/handlers/service_definition/high/handleUpdateServiceDefinition.ts`
179
+
180
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
181
+ - [ ] **Step 2: Verify build**
182
+ - [ ] **Step 3: Commit**
183
+
184
+ ```bash
185
+ git commit -m "fix(UpdateServiceDefinition): guarantee unlock via try-finally (#22)"
186
+ ```
187
+
188
+ ### Task 9: handleUpdateDataElement.ts
189
+
190
+ **Files:**
191
+ - Modify: `src/handlers/data_element/high/handleUpdateDataElement.ts`
192
+
193
+ - [ ] **Step 1: Refactor lock/unlock to try-finally**
194
+ - [ ] **Step 2: Verify build**
195
+ - [ ] **Step 3: Commit**
196
+
197
+ ```bash
198
+ git commit -m "fix(UpdateDataElement): guarantee unlock via try-finally (#22)"
199
+ ```
200
+
201
+ ### Task 10: Final verification
202
+
203
+ - [ ] **Step 1: Full build check**
204
+
205
+ Run: `npx tsc --noEmit`
206
+
207
+ - [ ] **Step 2: Squash into single commit**
208
+
209
+ Squash all 9 fix commits into one:
210
+ ```bash
211
+ git commit -m "fix: guarantee unlock via try-finally in all update handlers (#22)"
212
+ ```
213
+
214
+ - [ ] **Step 3: Update CHANGELOG.md**
215
+
216
+ Add entry under `[Unreleased]`:
217
+ ```markdown
218
+ ### Fixed
219
+ - Guarantee unlock via `try-finally` in all update handlers — prevents locked objects when errors occur between lock and unlock (#22). Affected: UpdateProgram, UpdateClass, UpdateInterface, UpdateView, UpdateTable, UpdateStructure, UpdateDomain, UpdateServiceDefinition, UpdateDataElement.
220
+ ```
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/core",
3
3
  "mcpName": "io.github.fr0ster/mcp-abap-adt",
4
- "version": "4.4.0",
4
+ "version": "4.4.2",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {