arc-1 1.3.0 → 1.5.0

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 (279) hide show
  1. package/README.md +1 -1
  2. package/dist/adt/abapgit.d.ts.map +1 -1
  3. package/dist/adt/abapgit.js +64 -7
  4. package/dist/adt/abapgit.js.map +1 -1
  5. package/dist/adt/aunit.js +4 -4
  6. package/dist/adt/aunit.js.map +1 -1
  7. package/dist/adt/class-structure.d.ts +4 -2
  8. package/dist/adt/class-structure.d.ts.map +1 -1
  9. package/dist/adt/class-structure.js +18 -9
  10. package/dist/adt/class-structure.js.map +1 -1
  11. package/dist/adt/client.d.ts +18 -52
  12. package/dist/adt/client.d.ts.map +1 -1
  13. package/dist/adt/client.js +69 -92
  14. package/dist/adt/client.js.map +1 -1
  15. package/dist/adt/config.d.ts +5 -0
  16. package/dist/adt/config.d.ts.map +1 -1
  17. package/dist/adt/config.js.map +1 -1
  18. package/dist/adt/create-request.d.ts +4 -0
  19. package/dist/adt/create-request.d.ts.map +1 -0
  20. package/dist/adt/create-request.js +16 -0
  21. package/dist/adt/create-request.js.map +1 -0
  22. package/dist/adt/crud.d.ts +3 -3
  23. package/dist/adt/crud.d.ts.map +1 -1
  24. package/dist/adt/crud.js +28 -9
  25. package/dist/adt/crud.js.map +1 -1
  26. package/dist/adt/data-source-policy.d.ts +20 -8
  27. package/dist/adt/data-source-policy.d.ts.map +1 -1
  28. package/dist/adt/data-source-policy.js +55 -109
  29. package/dist/adt/data-source-policy.js.map +1 -1
  30. package/dist/adt/ddic-xml.d.ts +9 -0
  31. package/dist/adt/ddic-xml.d.ts.map +1 -1
  32. package/dist/adt/ddic-xml.js +17 -3
  33. package/dist/adt/ddic-xml.js.map +1 -1
  34. package/dist/adt/devtools.d.ts.map +1 -1
  35. package/dist/adt/devtools.js +10 -7
  36. package/dist/adt/devtools.js.map +1 -1
  37. package/dist/adt/diagnostics.d.ts +11 -9
  38. package/dist/adt/diagnostics.d.ts.map +1 -1
  39. package/dist/adt/diagnostics.js +88 -14
  40. package/dist/adt/diagnostics.js.map +1 -1
  41. package/dist/adt/enhancements.d.ts +7 -0
  42. package/dist/adt/enhancements.d.ts.map +1 -0
  43. package/dist/adt/enhancements.js +89 -0
  44. package/dist/adt/enhancements.js.map +1 -0
  45. package/dist/adt/errors.d.ts +21 -10
  46. package/dist/adt/errors.d.ts.map +1 -1
  47. package/dist/adt/errors.js +76 -54
  48. package/dist/adt/errors.js.map +1 -1
  49. package/dist/adt/features.d.ts.map +1 -1
  50. package/dist/adt/features.js +2 -0
  51. package/dist/adt/features.js.map +1 -1
  52. package/dist/adt/flp.d.ts.map +1 -1
  53. package/dist/adt/flp.js +5 -4
  54. package/dist/adt/flp.js.map +1 -1
  55. package/dist/adt/fm-signature.d.ts +1 -1
  56. package/dist/adt/fm-signature.d.ts.map +1 -1
  57. package/dist/adt/fm-signature.js +9 -1
  58. package/dist/adt/fm-signature.js.map +1 -1
  59. package/dist/adt/http-deadline.d.ts +2 -0
  60. package/dist/adt/http-deadline.d.ts.map +1 -1
  61. package/dist/adt/http-deadline.js.map +1 -1
  62. package/dist/adt/http.d.ts +12 -29
  63. package/dist/adt/http.d.ts.map +1 -1
  64. package/dist/adt/http.js +102 -95
  65. package/dist/adt/http.js.map +1 -1
  66. package/dist/adt/internal-data-operations.d.ts +3 -2
  67. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  68. package/dist/adt/internal-data-operations.js +8 -1
  69. package/dist/adt/internal-data-operations.js.map +1 -1
  70. package/dist/adt/lock-object.d.ts +92 -0
  71. package/dist/adt/lock-object.d.ts.map +1 -0
  72. package/dist/adt/lock-object.js +195 -0
  73. package/dist/adt/lock-object.js.map +1 -0
  74. package/dist/adt/publish-state.d.ts +4 -0
  75. package/dist/adt/publish-state.d.ts.map +1 -0
  76. package/dist/adt/publish-state.js +61 -0
  77. package/dist/adt/publish-state.js.map +1 -0
  78. package/dist/adt/rap-generate.d.ts +5 -1
  79. package/dist/adt/rap-generate.d.ts.map +1 -1
  80. package/dist/adt/rap-generate.js +112 -100
  81. package/dist/adt/rap-generate.js.map +1 -1
  82. package/dist/adt/server-driven.d.ts +56 -13
  83. package/dist/adt/server-driven.d.ts.map +1 -1
  84. package/dist/adt/server-driven.js +114 -23
  85. package/dist/adt/server-driven.js.map +1 -1
  86. package/dist/adt/source-precondition.d.ts +3 -0
  87. package/dist/adt/source-precondition.d.ts.map +1 -0
  88. package/dist/adt/source-precondition.js +12 -0
  89. package/dist/adt/source-precondition.js.map +1 -0
  90. package/dist/adt/text-search.js +5 -5
  91. package/dist/adt/text-search.js.map +1 -1
  92. package/dist/adt/transport.d.ts +1 -2
  93. package/dist/adt/transport.d.ts.map +1 -1
  94. package/dist/adt/transport.js +20 -15
  95. package/dist/adt/transport.js.map +1 -1
  96. package/dist/adt/types.d.ts +21 -1
  97. package/dist/adt/types.d.ts.map +1 -1
  98. package/dist/adt/user-agent.d.ts +4 -0
  99. package/dist/adt/user-agent.d.ts.map +1 -0
  100. package/dist/adt/user-agent.js +11 -0
  101. package/dist/adt/user-agent.js.map +1 -0
  102. package/dist/adt/xml-entities.d.ts +3 -0
  103. package/dist/adt/xml-entities.d.ts.map +1 -0
  104. package/dist/adt/xml-entities.js +19 -0
  105. package/dist/adt/xml-entities.js.map +1 -0
  106. package/dist/adt/xml-parser.d.ts +7 -30
  107. package/dist/adt/xml-parser.d.ts.map +1 -1
  108. package/dist/adt/xml-parser.js +25 -54
  109. package/dist/adt/xml-parser.js.map +1 -1
  110. package/dist/authz/policy.d.ts.map +1 -1
  111. package/dist/authz/policy.js +2 -0
  112. package/dist/authz/policy.js.map +1 -1
  113. package/dist/cache/caching-layer.d.ts.map +1 -1
  114. package/dist/cache/caching-layer.js +5 -10
  115. package/dist/cache/caching-layer.js.map +1 -1
  116. package/dist/cli.js +1 -1
  117. package/dist/cli.js.map +1 -1
  118. package/dist/context/grep.d.ts +14 -0
  119. package/dist/context/grep.d.ts.map +1 -1
  120. package/dist/context/grep.js +49 -0
  121. package/dist/context/grep.js.map +1 -1
  122. package/dist/context/unit-surgery.d.ts +4 -2
  123. package/dist/context/unit-surgery.d.ts.map +1 -1
  124. package/dist/context/unit-surgery.js +54 -6
  125. package/dist/context/unit-surgery.js.map +1 -1
  126. package/dist/handlers/activate.d.ts.map +1 -1
  127. package/dist/handlers/activate.js +11 -20
  128. package/dist/handlers/activate.js.map +1 -1
  129. package/dist/handlers/diagnose.d.ts.map +1 -1
  130. package/dist/handlers/diagnose.js +11 -30
  131. package/dist/handlers/diagnose.js.map +1 -1
  132. package/dist/handlers/dispatch.d.ts.map +1 -1
  133. package/dist/handlers/dispatch.js +63 -8
  134. package/dist/handlers/dispatch.js.map +1 -1
  135. package/dist/handlers/editable-source.d.ts +6 -0
  136. package/dist/handlers/editable-source.d.ts.map +1 -0
  137. package/dist/handlers/editable-source.js +53 -0
  138. package/dist/handlers/editable-source.js.map +1 -0
  139. package/dist/handlers/feature-cache.d.ts +2 -0
  140. package/dist/handlers/feature-cache.d.ts.map +1 -1
  141. package/dist/handlers/feature-cache.js +8 -0
  142. package/dist/handlers/feature-cache.js.map +1 -1
  143. package/dist/handlers/hyperfocused.js +1 -1
  144. package/dist/handlers/hyperfocused.js.map +1 -1
  145. package/dist/handlers/lint.d.ts.map +1 -1
  146. package/dist/handlers/lint.js +13 -4
  147. package/dist/handlers/lint.js.map +1 -1
  148. package/dist/handlers/object-types.d.ts +2 -3
  149. package/dist/handlers/object-types.d.ts.map +1 -1
  150. package/dist/handlers/object-types.js +13 -5
  151. package/dist/handlers/object-types.js.map +1 -1
  152. package/dist/handlers/publish-failure.d.ts +7 -0
  153. package/dist/handlers/publish-failure.d.ts.map +1 -0
  154. package/dist/handlers/publish-failure.js +42 -0
  155. package/dist/handlers/publish-failure.js.map +1 -0
  156. package/dist/handlers/read.d.ts.map +1 -1
  157. package/dist/handlers/read.js +39 -9
  158. package/dist/handlers/read.js.map +1 -1
  159. package/dist/handlers/schemas.d.ts +45 -0
  160. package/dist/handlers/schemas.d.ts.map +1 -1
  161. package/dist/handlers/schemas.js +50 -7
  162. package/dist/handlers/schemas.js.map +1 -1
  163. package/dist/handlers/syntax.d.ts +5 -0
  164. package/dist/handlers/syntax.d.ts.map +1 -0
  165. package/dist/handlers/syntax.js +35 -0
  166. package/dist/handlers/syntax.js.map +1 -0
  167. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  168. package/dist/handlers/tool-descriptions.js +7 -5
  169. package/dist/handlers/tool-descriptions.js.map +1 -1
  170. package/dist/handlers/tool-registry.d.ts +4 -4
  171. package/dist/handlers/tool-registry.d.ts.map +1 -1
  172. package/dist/handlers/tool-registry.js +4 -0
  173. package/dist/handlers/tool-registry.js.map +1 -1
  174. package/dist/handlers/tools.d.ts +1 -16
  175. package/dist/handlers/tools.d.ts.map +1 -1
  176. package/dist/handlers/tools.js +44 -55
  177. package/dist/handlers/tools.js.map +1 -1
  178. package/dist/handlers/transport.d.ts.map +1 -1
  179. package/dist/handlers/transport.js +17 -3
  180. package/dist/handlers/transport.js.map +1 -1
  181. package/dist/handlers/write/class-edit.d.ts +16 -0
  182. package/dist/handlers/write/class-edit.d.ts.map +1 -0
  183. package/dist/handlers/write/class-edit.js +55 -0
  184. package/dist/handlers/write/class-edit.js.map +1 -0
  185. package/dist/handlers/write/class-surgery.d.ts +2 -2
  186. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  187. package/dist/handlers/write/class-surgery.js +189 -220
  188. package/dist/handlers/write/class-surgery.js.map +1 -1
  189. package/dist/handlers/write/context.d.ts +1 -8
  190. package/dist/handlers/write/context.d.ts.map +1 -1
  191. package/dist/handlers/write/create.d.ts.map +1 -1
  192. package/dist/handlers/write/create.js +11 -4
  193. package/dist/handlers/write/create.js.map +1 -1
  194. package/dist/handlers/write/metadata-update.d.ts +4 -0
  195. package/dist/handlers/write/metadata-update.d.ts.map +1 -0
  196. package/dist/handlers/write/metadata-update.js +58 -0
  197. package/dist/handlers/write/metadata-update.js.map +1 -0
  198. package/dist/handlers/write/rap.d.ts.map +1 -1
  199. package/dist/handlers/write/rap.js +132 -155
  200. package/dist/handlers/write/rap.js.map +1 -1
  201. package/dist/handlers/write/unit-surgery.d.ts +2 -2
  202. package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
  203. package/dist/handlers/write/unit-surgery.js +58 -34
  204. package/dist/handlers/write/unit-surgery.js.map +1 -1
  205. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  206. package/dist/handlers/write/update-delete.js +34 -82
  207. package/dist/handlers/write/update-delete.js.map +1 -1
  208. package/dist/handlers/write-helpers.d.ts +4 -3
  209. package/dist/handlers/write-helpers.d.ts.map +1 -1
  210. package/dist/handlers/write-helpers.js +135 -21
  211. package/dist/handlers/write-helpers.js.map +1 -1
  212. package/dist/handlers/write.d.ts.map +1 -1
  213. package/dist/handlers/write.js +13 -31
  214. package/dist/handlers/write.js.map +1 -1
  215. package/dist/lint/config-builder.d.ts +10 -1
  216. package/dist/lint/config-builder.d.ts.map +1 -1
  217. package/dist/lint/config-builder.js +4 -0
  218. package/dist/lint/config-builder.js.map +1 -1
  219. package/dist/lint/lint.d.ts +3 -1
  220. package/dist/lint/lint.d.ts.map +1 -1
  221. package/dist/lint/lint.js +2 -1
  222. package/dist/lint/lint.js.map +1 -1
  223. package/dist/public/read-only-client.d.ts +6 -0
  224. package/dist/public/read-only-client.d.ts.map +1 -0
  225. package/dist/public/read-only-client.js +66 -0
  226. package/dist/public/read-only-client.js.map +1 -0
  227. package/dist/public/testing.d.ts +4 -0
  228. package/dist/public/testing.d.ts.map +1 -1
  229. package/dist/public/testing.js +6 -0
  230. package/dist/public/testing.js.map +1 -1
  231. package/dist/public/types.d.ts +14 -15
  232. package/dist/public/types.d.ts.map +1 -1
  233. package/dist/server/audit.d.ts +6 -1
  234. package/dist/server/audit.d.ts.map +1 -1
  235. package/dist/server/audit.js.map +1 -1
  236. package/dist/server/config.d.ts.map +1 -1
  237. package/dist/server/config.js +9 -2
  238. package/dist/server/config.js.map +1 -1
  239. package/dist/server/deny-actions.d.ts +2 -1
  240. package/dist/server/deny-actions.d.ts.map +1 -1
  241. package/dist/server/deny-actions.js +13 -2
  242. package/dist/server/deny-actions.js.map +1 -1
  243. package/dist/server/http.d.ts.map +1 -1
  244. package/dist/server/http.js +7 -5
  245. package/dist/server/http.js.map +1 -1
  246. package/dist/server/logger.d.ts +3 -3
  247. package/dist/server/logger.d.ts.map +1 -1
  248. package/dist/server/logger.js +7 -7
  249. package/dist/server/logger.js.map +1 -1
  250. package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
  251. package/dist/server/multi-target-basic-auth.js +1 -0
  252. package/dist/server/multi-target-basic-auth.js.map +1 -1
  253. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  254. package/dist/server/multi-target-runtime.js +1 -0
  255. package/dist/server/multi-target-runtime.js.map +1 -1
  256. package/dist/server/oauth-redirect-policy.d.ts +13 -0
  257. package/dist/server/oauth-redirect-policy.d.ts.map +1 -0
  258. package/dist/server/oauth-redirect-policy.js +21 -0
  259. package/dist/server/oauth-redirect-policy.js.map +1 -0
  260. package/dist/server/plugin-loader.d.ts.map +1 -1
  261. package/dist/server/plugin-loader.js +1 -3
  262. package/dist/server/plugin-loader.js.map +1 -1
  263. package/dist/server/safe-http-client.d.ts +8 -14
  264. package/dist/server/safe-http-client.d.ts.map +1 -1
  265. package/dist/server/safe-http-client.js +51 -73
  266. package/dist/server/safe-http-client.js.map +1 -1
  267. package/dist/server/server.d.ts +5 -4
  268. package/dist/server/server.d.ts.map +1 -1
  269. package/dist/server/server.js +36 -27
  270. package/dist/server/server.js.map +1 -1
  271. package/dist/server/types.d.ts +6 -4
  272. package/dist/server/types.d.ts.map +1 -1
  273. package/dist/server/types.js +2 -0
  274. package/dist/server/types.js.map +1 -1
  275. package/dist/version.d.ts +3 -0
  276. package/dist/version.d.ts.map +1 -0
  277. package/dist/version.js +3 -0
  278. package/dist/version.js.map +1 -0
  279. package/package.json +15 -15
@@ -0,0 +1,16 @@
1
+ import type { AdtHttpClient } from '../../adt/http.js';
2
+ import type { ClassStructure } from '../../adt/types.js';
3
+ import type { ToolResult } from '../shared.js';
4
+ import type { SapWriteContext } from './context.js';
5
+ interface ClassEdit {
6
+ http: AdtHttpClient;
7
+ read(url: string): Promise<string>;
8
+ readMainAndStructure(): Promise<{
9
+ main: string;
10
+ structure: ClassStructure;
11
+ }>;
12
+ save(url: string, source: string): Promise<void>;
13
+ }
14
+ export declare function withClassEdit(ctx: SapWriteContext, edit: (locked: ClassEdit) => Promise<ToolResult>): Promise<ToolResult>;
15
+ export {};
16
+ //# sourceMappingURL=class-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-edit.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/class-edit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,UAAU,SAAS;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,UAAU,CAAC,GAC/C,OAAO,CAAC,UAAU,CAAC,CAiDrB"}
@@ -0,0 +1,55 @@
1
+ /** Keep a class surgery's source, structure and write within one SAP lock. */
2
+ import { lockObject, unlockObject, updateSource } from '../../adt/crud.js';
3
+ import { checkOperation, OperationType } from '../../adt/safety.js';
4
+ import { assertSourceHash } from '../../adt/source-precondition.js';
5
+ import { parseClassStructure } from '../../adt/xml-parser.js';
6
+ import { logger } from '../../server/logger.js';
7
+ import { getCachedFeatures } from '../feature-cache.js';
8
+ export async function withClassEdit(ctx, edit) {
9
+ const { client, objectUrl, srcUrl, name, transport, invalidateWrittenObject } = ctx;
10
+ checkOperation(client.safety, OperationType.Update, 'EditClass');
11
+ return client.http.withStatefulSession(async (session) => {
12
+ const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', getCachedFeatures()?.abapRelease);
13
+ let writeAttempted = false;
14
+ const read = async (url, checkSource = true) => {
15
+ checkOperation(client.safety, OperationType.Read, 'GetSource');
16
+ // SAP returns the editable draft (active when none exists). Both endpoints must use
17
+ // this same selection under the lock; caches and inactive worklists can be stale.
18
+ const source = (await session.get(url, { 'Cache-Control': 'no-cache' })).body;
19
+ if (checkSource)
20
+ assertSourceHash(source, ctx.args.expectedSourceHash, url);
21
+ return source;
22
+ };
23
+ try {
24
+ return await edit({
25
+ http: session,
26
+ read,
27
+ async readMainAndStructure() {
28
+ const main = await read(srcUrl);
29
+ const structure = parseClassStructure(await read(`${objectUrl}/objectstructure`, false), name);
30
+ return { main, structure };
31
+ },
32
+ async save(url, source) {
33
+ writeAttempted = true;
34
+ await updateSource(session, client.safety, url, source, lock.lockHandle, transport ?? (lock.corrNr || undefined));
35
+ },
36
+ });
37
+ }
38
+ finally {
39
+ try {
40
+ await unlockObject(session, objectUrl, lock.lockHandle);
41
+ }
42
+ finally {
43
+ if (writeAttempted) {
44
+ try {
45
+ invalidateWrittenObject('CLAS', name);
46
+ }
47
+ catch {
48
+ logger.warn('Class surgery cache invalidation failed after a write attempt.');
49
+ }
50
+ }
51
+ }
52
+ }
53
+ });
54
+ }
55
+ //# sourceMappingURL=class-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-edit.js","sourceRoot":"","sources":["../../../src/handlers/write/class-edit.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * SAPWrite actions — class-section surgery (issue #303).
3
3
  *
4
- * These actions share a common shape: fetch objectstructure → optional diff/refuse → splice into
5
- * /source/main (or /includes/<inc> when include= is set) → PUT under lock → no auto-activate.
4
+ * These actions share a common shape: lock → fresh source/structure → optional diff/refuse → splice into
5
+ * /source/main (or /includes/<inc> when include= is set) → PUT → unlock, with no auto-activation.
6
6
  * Pre-write lint runs on the SPLICED FULL source (not the partial input fragment) because a raw
7
7
  * DEFINITION block alone fails abaplint with "Expected CLASSIMPLEMENTATION" (verified live on a4h);
8
8
  * lint is skipped for include= writes (same precedent as the `update include=` path).
@@ -1 +1 @@
1
- {"version":3,"file":"class-surgery.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA8IrF;AAED,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAqH9F;AAED,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkE9F;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiGpF;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA6DvF;AAED,wBAAsB,iCAAiC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAsFjG"}
1
+ {"version":3,"file":"class-surgery.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwBH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAGxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAmGrF;AAED,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAuF9F;AAED,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA6C9F;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAmFpF;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAwCvF;AAED,wBAAsB,iCAAiC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA2EjG"}