arc-1 1.6.0 → 1.7.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 (282) hide show
  1. package/README.md +22 -15
  2. package/dist/adt/application-log.d.ts +36 -0
  3. package/dist/adt/application-log.d.ts.map +1 -0
  4. package/dist/adt/application-log.js +143 -0
  5. package/dist/adt/application-log.js.map +1 -0
  6. package/dist/adt/class-structure.d.ts +2 -1
  7. package/dist/adt/class-structure.d.ts.map +1 -1
  8. package/dist/adt/class-structure.js +28 -10
  9. package/dist/adt/class-structure.js.map +1 -1
  10. package/dist/adt/client.d.ts +6 -4
  11. package/dist/adt/client.d.ts.map +1 -1
  12. package/dist/adt/client.js +9 -9
  13. package/dist/adt/client.js.map +1 -1
  14. package/dist/adt/codeintel.d.ts +9 -23
  15. package/dist/adt/codeintel.d.ts.map +1 -1
  16. package/dist/adt/codeintel.js +14 -34
  17. package/dist/adt/codeintel.js.map +1 -1
  18. package/dist/adt/devtools.d.ts +8 -1
  19. package/dist/adt/devtools.d.ts.map +1 -1
  20. package/dist/adt/devtools.js +67 -37
  21. package/dist/adt/devtools.js.map +1 -1
  22. package/dist/adt/diagnostics.d.ts +2 -0
  23. package/dist/adt/diagnostics.d.ts.map +1 -1
  24. package/dist/adt/diagnostics.js +10 -8
  25. package/dist/adt/diagnostics.js.map +1 -1
  26. package/dist/adt/errors.d.ts +5 -1
  27. package/dist/adt/errors.d.ts.map +1 -1
  28. package/dist/adt/errors.js +26 -0
  29. package/dist/adt/errors.js.map +1 -1
  30. package/dist/adt/feed-schema.d.ts +32 -0
  31. package/dist/adt/feed-schema.d.ts.map +1 -0
  32. package/dist/adt/feed-schema.js +123 -0
  33. package/dist/adt/feed-schema.js.map +1 -0
  34. package/dist/adt/fm-parameter-docs.d.ts +7 -0
  35. package/dist/adt/fm-parameter-docs.d.ts.map +1 -0
  36. package/dist/adt/fm-parameter-docs.js +134 -0
  37. package/dist/adt/fm-parameter-docs.js.map +1 -0
  38. package/dist/adt/fm-signature.d.ts +8 -1
  39. package/dist/adt/fm-signature.d.ts.map +1 -1
  40. package/dist/adt/fm-signature.js +37 -28
  41. package/dist/adt/fm-signature.js.map +1 -1
  42. package/dist/adt/http-deadline.d.ts.map +1 -1
  43. package/dist/adt/http-deadline.js +4 -1
  44. package/dist/adt/http-deadline.js.map +1 -1
  45. package/dist/adt/http-retry-after.d.ts +20 -0
  46. package/dist/adt/http-retry-after.d.ts.map +1 -0
  47. package/dist/adt/http-retry-after.js +37 -0
  48. package/dist/adt/http-retry-after.js.map +1 -0
  49. package/dist/adt/http.d.ts +6 -19
  50. package/dist/adt/http.d.ts.map +1 -1
  51. package/dist/adt/http.js +78 -79
  52. package/dist/adt/http.js.map +1 -1
  53. package/dist/adt/include-expansion.d.ts +143 -0
  54. package/dist/adt/include-expansion.d.ts.map +1 -0
  55. package/dist/adt/include-expansion.js +475 -0
  56. package/dist/adt/include-expansion.js.map +1 -0
  57. package/dist/adt/internal-data-operations.d.ts +3 -3
  58. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  59. package/dist/adt/internal-data-operations.js +9 -2
  60. package/dist/adt/internal-data-operations.js.map +1 -1
  61. package/dist/adt/revision-feed.d.ts +8 -0
  62. package/dist/adt/revision-feed.d.ts.map +1 -0
  63. package/dist/adt/revision-feed.js +108 -0
  64. package/dist/adt/revision-feed.js.map +1 -0
  65. package/dist/adt/security-session-gate.d.ts +23 -0
  66. package/dist/adt/security-session-gate.d.ts.map +1 -0
  67. package/dist/adt/security-session-gate.js +56 -0
  68. package/dist/adt/security-session-gate.js.map +1 -0
  69. package/dist/adt/source-diff.d.ts +4 -1
  70. package/dist/adt/source-diff.d.ts.map +1 -1
  71. package/dist/adt/source-diff.js +5 -3
  72. package/dist/adt/source-diff.js.map +1 -1
  73. package/dist/adt/stored-text/chunks.d.ts +8 -0
  74. package/dist/adt/stored-text/chunks.d.ts.map +1 -0
  75. package/dist/adt/stored-text/chunks.js +55 -0
  76. package/dist/adt/stored-text/chunks.js.map +1 -0
  77. package/dist/adt/stored-text/decoder.d.ts +31 -0
  78. package/dist/adt/stored-text/decoder.d.ts.map +1 -0
  79. package/dist/adt/stored-text/decoder.js +319 -0
  80. package/dist/adt/stored-text/decoder.js.map +1 -0
  81. package/dist/adt/stored-text/errors.d.ts +10 -0
  82. package/dist/adt/stored-text/errors.d.ts.map +1 -0
  83. package/dist/adt/stored-text/errors.js +10 -0
  84. package/dist/adt/stored-text/errors.js.map +1 -0
  85. package/dist/adt/stored-text/index.d.ts +7 -0
  86. package/dist/adt/stored-text/index.d.ts.map +1 -0
  87. package/dist/adt/stored-text/index.js +6 -0
  88. package/dist/adt/stored-text/index.js.map +1 -0
  89. package/dist/adt/stored-text/key.d.ts +3 -0
  90. package/dist/adt/stored-text/key.d.ts.map +1 -0
  91. package/dist/adt/stored-text/key.js +23 -0
  92. package/dist/adt/stored-text/key.js.map +1 -0
  93. package/dist/adt/stored-text/reader.d.ts +52 -0
  94. package/dist/adt/stored-text/reader.d.ts.map +1 -0
  95. package/dist/adt/stored-text/reader.js +142 -0
  96. package/dist/adt/stored-text/reader.js.map +1 -0
  97. package/dist/adt/stored-text/source.d.ts +5 -0
  98. package/dist/adt/stored-text/source.d.ts.map +1 -0
  99. package/dist/adt/stored-text/source.js +284 -0
  100. package/dist/adt/stored-text/source.js.map +1 -0
  101. package/dist/adt/stored-text/types.d.ts +38 -0
  102. package/dist/adt/stored-text/types.d.ts.map +1 -0
  103. package/dist/adt/stored-text/types.js +2 -0
  104. package/dist/adt/stored-text/types.js.map +1 -0
  105. package/dist/adt/structure-hierarchy.d.ts.map +1 -1
  106. package/dist/adt/structure-hierarchy.js +11 -27
  107. package/dist/adt/structure-hierarchy.js.map +1 -1
  108. package/dist/adt/syntax-batch.d.ts +66 -0
  109. package/dist/adt/syntax-batch.d.ts.map +1 -0
  110. package/dist/adt/syntax-batch.js +115 -0
  111. package/dist/adt/syntax-batch.js.map +1 -0
  112. package/dist/adt/table-query.d.ts +3 -1
  113. package/dist/adt/table-query.d.ts.map +1 -1
  114. package/dist/adt/table-query.js +32 -4
  115. package/dist/adt/table-query.js.map +1 -1
  116. package/dist/adt/text-elements.js +1 -1
  117. package/dist/adt/text-elements.js.map +1 -1
  118. package/dist/adt/transport-diff.d.ts +16 -25
  119. package/dist/adt/transport-diff.d.ts.map +1 -1
  120. package/dist/adt/transport-diff.js +201 -103
  121. package/dist/adt/transport-diff.js.map +1 -1
  122. package/dist/adt/transport-review-budget.d.ts +15 -0
  123. package/dist/adt/transport-review-budget.d.ts.map +1 -0
  124. package/dist/adt/transport-review-budget.js +57 -0
  125. package/dist/adt/transport-review-budget.js.map +1 -0
  126. package/dist/adt/transport.d.ts +1 -1
  127. package/dist/adt/transport.d.ts.map +1 -1
  128. package/dist/adt/transport.js +2 -2
  129. package/dist/adt/transport.js.map +1 -1
  130. package/dist/adt/types.d.ts +1 -0
  131. package/dist/adt/types.d.ts.map +1 -1
  132. package/dist/adt/user-agent.d.ts +1 -1
  133. package/dist/adt/where-used-native.d.ts +22 -0
  134. package/dist/adt/where-used-native.d.ts.map +1 -0
  135. package/dist/adt/where-used-native.js +111 -0
  136. package/dist/adt/where-used-native.js.map +1 -0
  137. package/dist/adt/xml-parser.d.ts +2 -3
  138. package/dist/adt/xml-parser.d.ts.map +1 -1
  139. package/dist/adt/xml-parser.js +1 -91
  140. package/dist/adt/xml-parser.js.map +1 -1
  141. package/dist/aff/validator.d.ts.map +1 -1
  142. package/dist/aff/validator.js +8 -2
  143. package/dist/aff/validator.js.map +1 -1
  144. package/dist/authz/policy.d.ts.map +1 -1
  145. package/dist/authz/policy.js +10 -2
  146. package/dist/authz/policy.js.map +1 -1
  147. package/dist/cache/sqlite-driver.d.ts +24 -0
  148. package/dist/cache/sqlite-driver.d.ts.map +1 -0
  149. package/dist/cache/sqlite-driver.js +59 -0
  150. package/dist/cache/sqlite-driver.js.map +1 -0
  151. package/dist/cache/sqlite.d.ts +4 -2
  152. package/dist/cache/sqlite.d.ts.map +1 -1
  153. package/dist/cache/sqlite.js +5 -4
  154. package/dist/cache/sqlite.js.map +1 -1
  155. package/dist/cli.js +4 -1
  156. package/dist/cli.js.map +1 -1
  157. package/dist/context/grep.d.ts +2 -0
  158. package/dist/context/grep.d.ts.map +1 -1
  159. package/dist/context/grep.js +8 -7
  160. package/dist/context/grep.js.map +1 -1
  161. package/dist/extract-sap-cookies.js +1 -0
  162. package/dist/extract-sap-cookies.js.map +1 -1
  163. package/dist/handlers/application-log-input.d.ts +32 -0
  164. package/dist/handlers/application-log-input.d.ts.map +1 -0
  165. package/dist/handlers/application-log-input.js +34 -0
  166. package/dist/handlers/application-log-input.js.map +1 -0
  167. package/dist/handlers/application-log.d.ts +4 -0
  168. package/dist/handlers/application-log.d.ts.map +1 -0
  169. package/dist/handlers/application-log.js +14 -0
  170. package/dist/handlers/application-log.js.map +1 -0
  171. package/dist/handlers/cds-hints.d.ts +1 -1
  172. package/dist/handlers/cds-hints.d.ts.map +1 -1
  173. package/dist/handlers/cds-hints.js +21 -63
  174. package/dist/handlers/cds-hints.js.map +1 -1
  175. package/dist/handlers/context.d.ts.map +1 -1
  176. package/dist/handlers/context.js +7 -3
  177. package/dist/handlers/context.js.map +1 -1
  178. package/dist/handlers/diagnose.d.ts.map +1 -1
  179. package/dist/handlers/diagnose.js +10 -1
  180. package/dist/handlers/diagnose.js.map +1 -1
  181. package/dist/handlers/dispatch.d.ts.map +1 -1
  182. package/dist/handlers/dispatch.js +54 -9
  183. package/dist/handlers/dispatch.js.map +1 -1
  184. package/dist/handlers/dump-filter-inputs.d.ts +38 -0
  185. package/dist/handlers/dump-filter-inputs.d.ts.map +1 -0
  186. package/dist/handlers/dump-filter-inputs.js +44 -0
  187. package/dist/handlers/dump-filter-inputs.js.map +1 -0
  188. package/dist/handlers/expanded-read.d.ts +24 -0
  189. package/dist/handlers/expanded-read.d.ts.map +1 -0
  190. package/dist/handlers/expanded-read.js +56 -0
  191. package/dist/handlers/expanded-read.js.map +1 -0
  192. package/dist/handlers/function-parameter-language.d.ts +5 -0
  193. package/dist/handlers/function-parameter-language.d.ts.map +1 -0
  194. package/dist/handlers/function-parameter-language.js +19 -0
  195. package/dist/handlers/function-parameter-language.js.map +1 -0
  196. package/dist/handlers/function-processing.d.ts +5 -0
  197. package/dist/handlers/function-processing.d.ts.map +1 -1
  198. package/dist/handlers/function-processing.js +5 -0
  199. package/dist/handlers/function-processing.js.map +1 -1
  200. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  201. package/dist/handlers/hyperfocused.js +2 -1
  202. package/dist/handlers/hyperfocused.js.map +1 -1
  203. package/dist/handlers/long-text-input.d.ts +113 -0
  204. package/dist/handlers/long-text-input.d.ts.map +1 -0
  205. package/dist/handlers/long-text-input.js +113 -0
  206. package/dist/handlers/long-text-input.js.map +1 -0
  207. package/dist/handlers/long-text.d.ts +5 -0
  208. package/dist/handlers/long-text.d.ts.map +1 -0
  209. package/dist/handlers/long-text.js +122 -0
  210. package/dist/handlers/long-text.js.map +1 -0
  211. package/dist/handlers/navigate.d.ts.map +1 -1
  212. package/dist/handlers/navigate.js +8 -3
  213. package/dist/handlers/navigate.js.map +1 -1
  214. package/dist/handlers/object-types.d.ts.map +1 -1
  215. package/dist/handlers/object-types.js +7 -4
  216. package/dist/handlers/object-types.js.map +1 -1
  217. package/dist/handlers/query-input.d.ts +50 -0
  218. package/dist/handlers/query-input.d.ts.map +1 -0
  219. package/dist/handlers/query-input.js +59 -0
  220. package/dist/handlers/query-input.js.map +1 -0
  221. package/dist/handlers/query-tool.d.ts +11 -0
  222. package/dist/handlers/query-tool.d.ts.map +1 -0
  223. package/dist/handlers/query-tool.js +99 -0
  224. package/dist/handlers/query-tool.js.map +1 -0
  225. package/dist/handlers/query.d.ts +1 -1
  226. package/dist/handlers/query.d.ts.map +1 -1
  227. package/dist/handlers/query.js +7 -1
  228. package/dist/handlers/query.js.map +1 -1
  229. package/dist/handlers/read.d.ts +1 -0
  230. package/dist/handlers/read.d.ts.map +1 -1
  231. package/dist/handlers/read.js +57 -9
  232. package/dist/handlers/read.js.map +1 -1
  233. package/dist/handlers/schemas.d.ts +17 -4
  234. package/dist/handlers/schemas.d.ts.map +1 -1
  235. package/dist/handlers/schemas.js +51 -9
  236. package/dist/handlers/schemas.js.map +1 -1
  237. package/dist/handlers/syntax.d.ts.map +1 -1
  238. package/dist/handlers/syntax.js +8 -0
  239. package/dist/handlers/syntax.js.map +1 -1
  240. package/dist/handlers/tools.d.ts.map +1 -1
  241. package/dist/handlers/tools.js +72 -70
  242. package/dist/handlers/tools.js.map +1 -1
  243. package/dist/handlers/transport-review.d.ts +5 -0
  244. package/dist/handlers/transport-review.d.ts.map +1 -0
  245. package/dist/handlers/transport-review.js +108 -0
  246. package/dist/handlers/transport-review.js.map +1 -0
  247. package/dist/handlers/transport.d.ts.map +1 -1
  248. package/dist/handlers/transport.js +3 -58
  249. package/dist/handlers/transport.js.map +1 -1
  250. package/dist/handlers/where-used-details.d.ts +28 -0
  251. package/dist/handlers/where-used-details.d.ts.map +1 -0
  252. package/dist/handlers/where-used-details.js +67 -0
  253. package/dist/handlers/where-used-details.js.map +1 -0
  254. package/dist/handlers/where-used.d.ts +8 -3
  255. package/dist/handlers/where-used.d.ts.map +1 -1
  256. package/dist/handlers/where-used.js +40 -18
  257. package/dist/handlers/where-used.js.map +1 -1
  258. package/dist/handlers/write/create.d.ts.map +1 -1
  259. package/dist/handlers/write/create.js +15 -12
  260. package/dist/handlers/write/create.js.map +1 -1
  261. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  262. package/dist/handlers/write/update-delete.js +5 -3
  263. package/dist/handlers/write/update-delete.js.map +1 -1
  264. package/dist/server/audit.d.ts.map +1 -1
  265. package/dist/server/audit.js +49 -2
  266. package/dist/server/audit.js.map +1 -1
  267. package/dist/server/config.d.ts.map +1 -1
  268. package/dist/server/config.js +5 -1
  269. package/dist/server/config.js.map +1 -1
  270. package/dist/server/multi-target-tools.d.ts.map +1 -1
  271. package/dist/server/multi-target-tools.js +8 -7
  272. package/dist/server/multi-target-tools.js.map +1 -1
  273. package/dist/server/server.d.ts.map +1 -1
  274. package/dist/server/server.js +3 -2
  275. package/dist/server/server.js.map +1 -1
  276. package/dist/server/tool-auth.d.ts +1 -1
  277. package/dist/server/tool-auth.d.ts.map +1 -1
  278. package/dist/server/tool-auth.js +24 -4
  279. package/dist/server/tool-auth.js.map +1 -1
  280. package/dist/version.d.ts +1 -1
  281. package/dist/version.js +1 -1
  282. package/package.json +13 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"include-expansion.js","sourceRoot":"","sources":["../../src/adt/include-expansion.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Private registry of ARC-1's own fixed data reads.
3
3
  *
4
- * Some features read SAP metadata tables with statements ARC-1 builds itself: repository lookup,
5
- * class hierarchy, transaction enrichment, BOR method resolution and authorization-trace decoding.
4
+ * Some features read SAP tables with statements ARC-1 builds itself: repository lookup,
5
+ * class hierarchy, transaction enrichment, BOR method resolution, authorization-trace decoding and stored text.
6
6
  * They are declared here so that code, tests and operator documentation cannot drift apart, and so
7
7
  * that "which feature breaks if I block this table?" has one answer.
8
8
  *
@@ -22,7 +22,7 @@
22
22
  * registry exists to prevent.
23
23
  */
24
24
  import type { DataSourcePolicyError } from './data-source-policy.js';
25
- export type InternalDataOperationId = 'replacement_lineage' | 'tadir_lookup_db' | 'tran_program_enrichment' | 'class_hierarchy' | 'interface_implementers' | 'bor_method_lookup' | 'authorization_trace';
25
+ export type InternalDataOperationId = 'replacement_lineage' | 'tadir_lookup_db' | 'tran_program_enrichment' | 'class_hierarchy' | 'interface_implementers' | 'bor_method_lookup' | 'authorization_trace' | 'stored_text';
26
26
  export interface InternalDataOperation {
27
27
  /** Exact canonical sources this server-owned operation reads. */
28
28
  readonly sources: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"internal-data-operations.d.ts","sourceRoot":"","sources":["../../src/adt/internal-data-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB,GACjB,wBAAwB,GACxB,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAqD3F,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,KAAK,CAAC;IAAE,EAAE,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAU7F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,uBAAuB,EAC3B,KAAK,EAAE,qBAAqB,EAC5B,aAAa,EAAE,OAAO,GACrB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5F"}
1
+ {"version":3,"file":"internal-data-operations.d.ts","sourceRoot":"","sources":["../../src/adt/internal-data-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB,GACjB,wBAAwB,GACxB,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CA6D3F,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,KAAK,CAAC;IAAE,EAAE,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAU7F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,uBAAuB,EAC3B,KAAK,EAAE,qBAAqB,EAC5B,aAAa,EAAE,OAAO,GACrB,MAAM,CAGR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5F"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Private registry of ARC-1's own fixed data reads.
3
3
  *
4
- * Some features read SAP metadata tables with statements ARC-1 builds itself: repository lookup,
5
- * class hierarchy, transaction enrichment, BOR method resolution and authorization-trace decoding.
4
+ * Some features read SAP tables with statements ARC-1 builds itself: repository lookup,
5
+ * class hierarchy, transaction enrichment, BOR method resolution, authorization-trace decoding and stored text.
6
6
  * They are declared here so that code, tests and operator documentation cannot drift apart, and so
7
7
  * that "which feature breaks if I block this table?" has one answer.
8
8
  *
@@ -67,6 +67,13 @@ export const INTERNAL_DATA_OPERATIONS = {
67
67
  guidance: 'The authorization trace needs SUAUTHVALTRC for the trace rows and TOBJ to decode field names. ' +
68
68
  'Both are required: returning positional values without their field names would be ambiguous and misleading, so the action is denied rather than partially answered.',
69
69
  },
70
+ stored_text: {
71
+ sources: ['STXH', 'STXL', 'TTXOB', 'TTXID', 'T002'],
72
+ consumer: 'SAPQuery(action="long_text")',
73
+ criticality: 'core',
74
+ guidance: 'Classic stored text requires STXH/STXL and the TTXOB/TTXID/T002 configuration. ' +
75
+ 'Use an application-specific released API when these reads are not permitted; do not bypass the policy with RFC, helpers, or free SQL.',
76
+ },
70
77
  };
71
78
  /** Every distinct source ARC-1 reads for its own features, for docs and operator tooling. */
72
79
  export function internalDataSources() {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-data-operations.js","sourceRoot":"","sources":["../../src/adt/internal-data-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-data-operations.js","sourceRoot":"","sources":["../../src/adt/internal-data-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { RevisionListResult } from './types.js';
2
+ /** Fixed local explanation, safe to expose even when SAP diagnostics are hidden. */
3
+ export declare class RevisionHistoryError extends Error {
4
+ constructor();
5
+ }
6
+ /** Parse source revision history feed from /source/main/versions */
7
+ export declare function parseRevisionFeed(xml: string): RevisionListResult;
8
+ //# sourceMappingURL=revision-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-feed.d.ts","sourceRoot":"","sources":["../../src/adt/revision-feed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAWnE,oFAAoF;AACpF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAEC;CACF;AA8CD,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CA4CjE"}
@@ -0,0 +1,108 @@
1
+ import { XMLValidator } from 'fast-xml-parser';
2
+ import { parseXml, toRecordArray } from './xml-parser.js';
3
+ const TRANSPORT_RELS = new Set([
4
+ 'http://www.sap.com/adt/relations/transport/request', // live shape (a4h 758)
5
+ 'http://www.sap.com/adt/relations/transports', // legacy — kept for older releases
6
+ ]);
7
+ /** CTS request/task id: 3-char system + K/T/… + 6 alphanumerics, e.g. A4HK906291. */
8
+ const CTS_ID_RE = /^[A-Z0-9]{3}[A-Z][A-Z0-9]{6}$/;
9
+ /** Fixed local explanation, safe to expose even when SAP diagnostics are hidden. */
10
+ export class RevisionHistoryError extends Error {
11
+ constructor() {
12
+ super('Invalid or unexpected revision history response; this is not an empty history.');
13
+ }
14
+ }
15
+ /** Decode a URI component, returning the raw value rather than throwing on a malformed `%` escape. */
16
+ function safeDecode(value) {
17
+ try {
18
+ return decodeURIComponent(value);
19
+ }
20
+ catch {
21
+ return value;
22
+ }
23
+ }
24
+ /**
25
+ * CTS request id of a revision, from its transport link.
26
+ *
27
+ * `adtcore:name` carries the id; `@_title` is the transport DESCRIPTION (only used as a last
28
+ * resort, for releases that put the id there). The href tail is accepted ONLY when it looks
29
+ * like a CTS id — ADT also emits hrefs ending in `reference?obj_name=…`, and returning
30
+ * `"reference"` for every revision would silently break attribution everywhere.
31
+ * Evidence: docs/plans/2026-08-03-transport-diff.md §1.
32
+ */
33
+ function revisionTransportId(links) {
34
+ for (const link of links) {
35
+ if (!TRANSPORT_RELS.has(String(link['@_rel'] ?? '')))
36
+ continue;
37
+ const name = String(link['@_name'] ?? '').trim();
38
+ if (name)
39
+ return name;
40
+ const tail = safeDecode(String(link['@_href'] ?? '')
41
+ .split('/')
42
+ .pop()
43
+ ?.split('?')[0] ?? '')
44
+ .trim()
45
+ .toUpperCase();
46
+ if (CTS_ID_RE.test(tail))
47
+ return tail;
48
+ // `@_title`/`@_version` are last resorts for older releases that put the id there; both
49
+ // go through the shape guard, so a description can never be mistaken for a transport.
50
+ for (const attr of ['@_title', '@_version']) {
51
+ const value = String(link[attr] ?? '')
52
+ .trim()
53
+ .toUpperCase();
54
+ if (CTS_ID_RE.test(value))
55
+ return value;
56
+ }
57
+ }
58
+ return '';
59
+ }
60
+ /** Parse source revision history feed from /source/main/versions */
61
+ export function parseRevisionFeed(xml) {
62
+ if (!xml.trim())
63
+ throw new RevisionHistoryError();
64
+ try {
65
+ if (XMLValidator.validate(xml) !== true)
66
+ throw new Error('Invalid revision history XML.');
67
+ const parsed = parseXml(xml);
68
+ if (!Object.hasOwn(parsed, 'feed'))
69
+ throw new Error('Expected a revision Atom feed.');
70
+ if (parsed.feed !== '' && (!parsed.feed || typeof parsed.feed !== 'object' || Array.isArray(parsed.feed)))
71
+ throw new Error('Unexpected revision feed content.');
72
+ const feed = (parsed.feed ?? {});
73
+ const title = String(feed.title ?? '');
74
+ const match = title.match(/^Version List of (\S+) \(([A-Z]+)\)/);
75
+ const object = {
76
+ name: String(match?.[1] ?? ''),
77
+ type: String(match?.[2] ?? ''),
78
+ };
79
+ const revisions = [];
80
+ const rawEntries = feed.entry === undefined ? [] : Array.isArray(feed.entry) ? feed.entry : [feed.entry];
81
+ if (rawEntries.some((entry) => !entry || typeof entry !== 'object' || Array.isArray(entry)))
82
+ throw new Error('Unexpected revision entry.');
83
+ const entries = toRecordArray(feed.entry);
84
+ for (const entry of entries) {
85
+ const authorNode = toRecordArray(entry.author)[0] ?? {};
86
+ const contentNode = toRecordArray(entry.content)[0] ?? {};
87
+ if (!contentNode['@_src'])
88
+ throw new Error('Revision entry is missing its content reference.');
89
+ const links = toRecordArray(entry.link);
90
+ const transport = revisionTransportId(links);
91
+ const versionTitle = String(entry.title ?? '');
92
+ revisions.push({
93
+ id: String(entry.id ?? ''),
94
+ author: String(authorNode.name ?? ''),
95
+ timestamp: String(entry.updated ?? ''),
96
+ ...(versionTitle ? { versionTitle } : {}),
97
+ ...(transport ? { transport } : {}),
98
+ uri: String(contentNode['@_src'] ?? ''),
99
+ });
100
+ }
101
+ const next = toRecordArray(feed.link).find((link) => link['@_rel'] === 'next');
102
+ return { object, revisions, ...(next ? { historyComplete: false } : {}) };
103
+ }
104
+ catch {
105
+ throw new RevisionHistoryError();
106
+ }
107
+ }
108
+ //# sourceMappingURL=revision-feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revision-feed.js","sourceRoot":"","sources":["../../src/adt/revision-feed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Lets one request establish the SAP security session before a cold client fans out.
3
+ *
4
+ * Returning the first response's cookie avoids issuing unused sessions for every
5
+ * startup probe. See docs/research/2026-10-22-security-session-bootstrap.md.
6
+ */
7
+ import { type RequestDeadlineOptions } from './http-deadline.js';
8
+ /** True when one of the cookies is a SAP security session cookie (`SAP_SESSIONID_<SID>_<CLNT>`). */
9
+ export declare function hasSecuritySessionCookie(cookieNames: Iterable<string>): boolean;
10
+ export declare class SecuritySessionGate {
11
+ private pending;
12
+ private ready;
13
+ private currentGeneration;
14
+ get generation(): number;
15
+ /**
16
+ * A failed cold request lets one waiter take over. A successful response (or 304)
17
+ * opens the gate even without cookies, for systems without security sessions.
18
+ */
19
+ run(hasSessionCookie: () => boolean, request: (waited: boolean) => Promise<Response>, options?: RequestDeadlineOptions): Promise<Response>;
20
+ /** Keep a pending owner until it settles, but reject its old session state. */
21
+ reset(): void;
22
+ }
23
+ //# sourceMappingURL=security-session-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-session-gate.d.ts","sourceRoot":"","sources":["../../src/adt/security-session-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA4B,KAAK,sBAAsB,EAA2B,MAAM,oBAAoB,CAAC;AAEpH,oGAAoG;AACpG,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAE/E;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,iBAAiB,CAAK;IAE9B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACG,GAAG,CACP,gBAAgB,EAAE,MAAM,OAAO,EAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC/C,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAuBnB;IAED,+EAA+E;IAC/E,KAAK,IAAI,IAAI,CAGZ;CACF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Lets one request establish the SAP security session before a cold client fans out.
3
+ *
4
+ * Returning the first response's cookie avoids issuing unused sessions for every
5
+ * startup probe. See docs/research/2026-10-22-security-session-bootstrap.md.
6
+ */
7
+ import { awaitWithinRequestBudget, throwIfRequestCancelled } from './http-deadline.js';
8
+ /** True when one of the cookies is a SAP security session cookie (`SAP_SESSIONID_<SID>_<CLNT>`). */
9
+ export function hasSecuritySessionCookie(cookieNames) {
10
+ return [...cookieNames].some((name) => name.startsWith('SAP_SESSIONID'));
11
+ }
12
+ export class SecuritySessionGate {
13
+ pending;
14
+ ready = false;
15
+ currentGeneration = 0;
16
+ get generation() {
17
+ return this.currentGeneration;
18
+ }
19
+ /**
20
+ * A failed cold request lets one waiter take over. A successful response (or 304)
21
+ * opens the gate even without cookies, for systems without security sessions.
22
+ */
23
+ async run(hasSessionCookie, request, options) {
24
+ let waited = false;
25
+ while (this.pending) {
26
+ waited = true;
27
+ await awaitWithinRequestBudget(this.pending, options);
28
+ }
29
+ throwIfRequestCancelled(options);
30
+ if (this.ready || hasSessionCookie())
31
+ return request(waited);
32
+ const generation = this.generation;
33
+ let release;
34
+ const pending = new Promise((resolve) => {
35
+ release = resolve;
36
+ });
37
+ this.pending = pending;
38
+ try {
39
+ const result = await request(waited);
40
+ if (generation === this.generation && (result.ok || result.status === 304))
41
+ this.ready = true;
42
+ return result;
43
+ }
44
+ finally {
45
+ if (this.pending === pending)
46
+ this.pending = undefined;
47
+ release();
48
+ }
49
+ }
50
+ /** Keep a pending owner until it settles, but reject its old session state. */
51
+ reset() {
52
+ this.currentGeneration++;
53
+ this.ready = false;
54
+ }
55
+ }
56
+ //# sourceMappingURL=security-session-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-session-gate.js","sourceRoot":"","sources":["../../src/adt/security-session-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAA+B,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEpH,oGAAoG;AACpG,MAAM,UAAU,wBAAwB,CAAC,WAA6B;IACpE,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAA4B;IACnC,KAAK,GAAG,KAAK,CAAC;IACd,iBAAiB,GAAG,CAAC,CAAC;IAE9B,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CACP,gBAA+B,EAC/B,OAA+C,EAC/C,OAAgC;QAEhC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,IAAI,gBAAgB,EAAE;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,OAAoB,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9F,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -24,5 +24,8 @@ export interface UnifiedDiffResult {
24
24
  * `ignoreCosmetics` additionally drops trailing blanks and normalizes the final newline —
25
25
  * opt-in, for review diffs (see `normalizeCosmetics`).
26
26
  */
27
- export declare function unifiedDiff(oldText: string, newText: string, oldLabel: string, newLabel: string, context?: number, ignoreCosmetics?: boolean): UnifiedDiffResult;
27
+ export declare function unifiedDiff(oldText: string, newText: string, oldLabel: string, newLabel: string, context?: number, ignoreCosmetics?: boolean, work?: {
28
+ timeout: number;
29
+ maxEditLength: number;
30
+ }): UnifiedDiffResult;
28
31
  //# sourceMappingURL=source-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-diff.d.ts","sourceRoot":"","sources":["../../src/adt/source-diff.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,EACX,eAAe,UAAQ,GACtB,iBAAiB,CAuBnB"}
1
+ {"version":3,"file":"source-diff.d.ts","sourceRoot":"","sources":["../../src/adt/source-diff.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAI,EACX,eAAe,UAAQ,EACvB,IAAI,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAChD,iBAAiB,CAwBnB"}
@@ -17,7 +17,7 @@ function normalizeNewlines(text) {
17
17
  *
18
18
  * Review-only (opt-in): the ABAP pretty-printer and a save round-trip can flip trailing
19
19
  * spaces across a whole include, which renders as a full-file rewrite in a transport
20
- * review. SAP's own diff compares lines with plain `String.equals` and shows that noise;
20
+ * review. SAP ADT 1.2 also exposes a whitespace-ignore option;
21
21
  * `SAPRead action="diff"` keeps SAP's byte-exact behaviour by default.
22
22
  */
23
23
  function normalizeCosmetics(text) {
@@ -36,7 +36,7 @@ function normalizeCosmetics(text) {
36
36
  * `ignoreCosmetics` additionally drops trailing blanks and normalizes the final newline —
37
37
  * opt-in, for review diffs (see `normalizeCosmetics`).
38
38
  */
39
- export function unifiedDiff(oldText, newText, oldLabel, newLabel, context = 3, ignoreCosmetics = false) {
39
+ export function unifiedDiff(oldText, newText, oldLabel, newLabel, context = 3, ignoreCosmetics = false, work) {
40
40
  const rawA = normalizeNewlines(oldText);
41
41
  const rawB = normalizeNewlines(newText);
42
42
  const a = ignoreCosmetics ? normalizeCosmetics(rawA) : rawA;
@@ -46,7 +46,9 @@ export function unifiedDiff(oldText, newText, oldLabel, newLabel, context = 3, i
46
46
  // as whitespace-only rather than letting the caller render "no change".
47
47
  return { identical: true, diff: '', added: 0, removed: 0, ...(rawA !== rawB ? { cosmeticOnly: true } : {}) };
48
48
  }
49
- const patch = createTwoFilesPatch(oldLabel, newLabel, a, b, '', '', { context });
49
+ const patch = createTwoFilesPatch(oldLabel, newLabel, a, b, '', '', { context, ...work });
50
+ if (patch === undefined)
51
+ throw new Error('Diff calculation exceeded its work budget; statistics are unavailable.');
50
52
  // `---`/`+++` are the two file headers and appear first; skipping by PREFIX would also drop
51
53
  // real deletions of lines that start with `--` (the ABAP/CDS comment marker), so anchor on
52
54
  // the header position instead. Hunk bodies start after the first `@@`.
@@ -1 +1 @@
1
- {"version":3,"file":"source-diff.js","sourceRoot":"","sources":["../../src/adt/source-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAmB3C,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,KAAK;IAEvB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,yFAAyF;QACzF,wEAAwE;QACxE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/G,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjF,4FAA4F;IAC5F,2FAA2F;IAC3F,uEAAuE;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,EAAE,CAAC;aAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"source-diff.js","sourceRoot":"","sources":["../../src/adt/source-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAmB3C,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,KAAK,EACvB,IAAiD;IAEjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,yFAAyF;QACzF,wEAAwE;QACxE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/G,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1F,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACnH,4FAA4F;IAC5F,2FAA2F;IAC3F,uEAAuE;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,EAAE,CAAC;aAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TextKey } from './types.js';
2
+ export declare function keyFilters(key: TextKey): {
3
+ field: string;
4
+ op: string;
5
+ value: string;
6
+ }[];
7
+ export declare function assembleChunks(rows: Record<string, string>[], key: TextKey, client: string): Buffer;
8
+ //# sourceMappingURL=chunks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../../../src/adt/stored-text/chunks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO;;;;IAatC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCnG"}
@@ -0,0 +1,55 @@
1
+ /** Assemble bounded STXL storage rows; decoding and SAP access live in separate modules. */
2
+ import { DEFAULT_LIMITS } from './decoder.js';
3
+ import { TextReadError } from './errors.js';
4
+ const keyLengths = { TDOBJECT: 10, TDNAME: 70, TDID: 4, TDSPRAS: 1 };
5
+ export function keyFilters(key) {
6
+ return Object.entries(keyLengths).map(([name, length]) => {
7
+ const value = key[name];
8
+ if (typeof value !== 'string' ||
9
+ !value.length ||
10
+ value.length > length ||
11
+ Array.from(value).some((char) => char.charCodeAt(0) < 32)) {
12
+ throw new TextReadError('INVALID_KEY', `invalid ${name}`);
13
+ }
14
+ return { field: name, op: '=', value };
15
+ });
16
+ }
17
+ export function assembleChunks(rows, key, client) {
18
+ keyFilters(key);
19
+ if (!/^\d{3}$/.test(client))
20
+ throw new TextReadError('INVALID_KEY', 'invalid client');
21
+ if (!rows.length || rows.length > 256)
22
+ throw new TextReadError('CORRUPT_CLUSTER', 'missing or excessive chunks');
23
+ const chunks = rows
24
+ .map((row) => {
25
+ if (row.MANDT !== client ||
26
+ row.RELID !== 'TX' ||
27
+ Object.keys(keyLengths).some((name) => row[name] !== key[name]))
28
+ throw new TextReadError('CORRUPT_CLUSTER', 'chunk identity mismatch');
29
+ if (!/^\d+ *$/.test(row.SRTF2) || !/^\d+ *$/.test(row.CLUSTR))
30
+ throw new TextReadError('CORRUPT_CLUSTER', 'invalid chunk integer');
31
+ const index = Number(row.SRTF2);
32
+ const length = Number(row.CLUSTR);
33
+ if (!Number.isSafeInteger(index) ||
34
+ index < 0 ||
35
+ index > 255 ||
36
+ length < 1 ||
37
+ length > 7902 ||
38
+ !/^[\da-f]{15804}$/iu.test(row.CLUSTD))
39
+ throw new TextReadError('CORRUPT_CLUSTER', 'invalid or truncated binary chunk');
40
+ return { index, data: Buffer.from(row.CLUSTD.slice(0, length * 2), 'hex') };
41
+ })
42
+ .sort((a, b) => a.index - b.index);
43
+ let total = 0;
44
+ for (const [index, chunk] of chunks.entries()) {
45
+ if (chunk.index !== index)
46
+ throw new TextReadError('CORRUPT_CLUSTER', 'missing or duplicate chunk sequence');
47
+ if (index < chunks.length - 1 && chunk.data.length !== 7902)
48
+ throw new TextReadError('CORRUPT_CLUSTER', 'short intermediate chunk');
49
+ total += chunk.data.length;
50
+ if (total > DEFAULT_LIMITS.maxInputBytes)
51
+ throw new TextReadError('LIMIT_EXCEEDED', 'compressed input limit exceeded');
52
+ }
53
+ return Buffer.concat(chunks.map((chunk) => chunk.data), total);
54
+ }
55
+ //# sourceMappingURL=chunks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks.js","sourceRoot":"","sources":["../../../src/adt/stored-text/chunks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface TextLine {
2
+ format: string;
3
+ text: string;
4
+ }
5
+ export interface DecodeLimits {
6
+ maxInputBytes: number;
7
+ maxOutputBytes: number;
8
+ maxLines: number;
9
+ }
10
+ export interface UnpackedCluster {
11
+ version: number;
12
+ codePage: string;
13
+ compressed: boolean;
14
+ compressedTrailingBytes: number;
15
+ payload: Buffer;
16
+ }
17
+ export interface DecodedText {
18
+ version: number;
19
+ codePage: string;
20
+ compressed: boolean;
21
+ compressedTrailingBytes: number;
22
+ wellFormedUnicode: boolean;
23
+ lines: TextLine[];
24
+ outputBytes: number;
25
+ }
26
+ export declare const DEFAULT_LIMITS: Readonly<DecodeLimits>;
27
+ /** Validate the tested container profile and return its bounded decompressed payload. */
28
+ export declare function unpackCluster(data: Buffer, limits?: DecodeLimits): Promise<UnpackedCluster>;
29
+ /** Decode the verified stored-TLINE profile; returned lines retain ITF formatting codes. */
30
+ export declare function decodeStxl(data: Buffer, limits?: DecodeLimits): Promise<DecodedText>;
31
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../../src/adt/stored-text/decoder.ts"],"names":[],"mappings":"AA2DA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,YAAY,CAIhD,CAAC;AA6CH,yFAAyF;AACzF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,YAA6B,GAAG,OAAO,CAAC,eAAe,CAAC,CAoDjH;AAqID,4FAA4F;AAC5F,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,YAA6B,GAAG,OAAO,CAAC,WAAW,CAAC,CAY1G"}