xslt-processor 3.4.0 → 4.1.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 (265) hide show
  1. package/README.md +48 -0
  2. package/index.d.mts +861 -0
  3. package/index.d.ts +861 -4
  4. package/index.js +4570 -12
  5. package/index.js.map +1 -1
  6. package/index.mjs +4534 -0
  7. package/index.mjs.map +1 -0
  8. package/package.json +23 -18
  9. package/umd/xslt-processor.global.js +9 -0
  10. package/umd/xslt-processor.global.js.map +1 -0
  11. package/constants.d.ts +0 -12
  12. package/constants.js +0 -17
  13. package/constants.js.map +0 -1
  14. package/dom/functions.d.ts +0 -14
  15. package/dom/functions.js +0 -57
  16. package/dom/functions.js.map +0 -1
  17. package/dom/index.d.ts +0 -7
  18. package/dom/index.js +0 -24
  19. package/dom/index.js.map +0 -1
  20. package/dom/util.d.ts +0 -7
  21. package/dom/util.js +0 -43
  22. package/dom/util.js.map +0 -1
  23. package/dom/xbrowser-node.d.ts +0 -9
  24. package/dom/xbrowser-node.js +0 -32
  25. package/dom/xbrowser-node.js.map +0 -1
  26. package/dom/xdocument.d.ts +0 -16
  27. package/dom/xdocument.js +0 -74
  28. package/dom/xdocument.js.map +0 -1
  29. package/dom/xml-functions.d.ts +0 -73
  30. package/dom/xml-functions.js +0 -402
  31. package/dom/xml-functions.js.map +0 -1
  32. package/dom/xml-output-options.d.ts +0 -6
  33. package/dom/xml-output-options.js +0 -3
  34. package/dom/xml-output-options.js.map +0 -1
  35. package/dom/xml-parser.d.ts +0 -47
  36. package/dom/xml-parser.js +0 -308
  37. package/dom/xml-parser.js.map +0 -1
  38. package/dom/xmltoken.d.ts +0 -12
  39. package/dom/xmltoken.js +0 -102
  40. package/dom/xmltoken.js.map +0 -1
  41. package/dom/xnode.d.ts +0 -73
  42. package/dom/xnode.js +0 -451
  43. package/dom/xnode.js.map +0 -1
  44. package/test-without-jest.d.ts +0 -1
  45. package/test-without-jest.js +0 -63
  46. package/test-without-jest.js.map +0 -1
  47. package/umd/constants.d.ts +0 -12
  48. package/umd/dom/functions.d.ts +0 -14
  49. package/umd/dom/index.d.ts +0 -7
  50. package/umd/dom/util.d.ts +0 -7
  51. package/umd/dom/xbrowser-node.d.ts +0 -9
  52. package/umd/dom/xdocument.d.ts +0 -16
  53. package/umd/dom/xml-functions.d.ts +0 -73
  54. package/umd/dom/xml-output-options.d.ts +0 -6
  55. package/umd/dom/xml-parser.d.ts +0 -47
  56. package/umd/dom/xmltoken.d.ts +0 -12
  57. package/umd/dom/xnode.d.ts +0 -73
  58. package/umd/index.d.ts +0 -4
  59. package/umd/test-without-jest.d.ts +0 -1
  60. package/umd/xpath/common-function.d.ts +0 -8
  61. package/umd/xpath/expr-context.d.ts +0 -116
  62. package/umd/xpath/expressions/binary-expr.d.ts +0 -11
  63. package/umd/xpath/expressions/expression.d.ts +0 -4
  64. package/umd/xpath/expressions/filter-expr.d.ts +0 -9
  65. package/umd/xpath/expressions/function-call-expr.d.ts +0 -12
  66. package/umd/xpath/expressions/index.d.ts +0 -13
  67. package/umd/xpath/expressions/literal-expr.d.ts +0 -7
  68. package/umd/xpath/expressions/location-expr.d.ts +0 -15
  69. package/umd/xpath/expressions/number-expr.d.ts +0 -7
  70. package/umd/xpath/expressions/path-expr.d.ts +0 -9
  71. package/umd/xpath/expressions/predicate-expr.d.ts +0 -8
  72. package/umd/xpath/expressions/step-expr.d.ts +0 -25
  73. package/umd/xpath/expressions/token-expr.d.ts +0 -7
  74. package/umd/xpath/expressions/unary-minus-expr.d.ts +0 -8
  75. package/umd/xpath/expressions/union-expr.d.ts +0 -9
  76. package/umd/xpath/expressions/variable-expr.d.ts +0 -7
  77. package/umd/xpath/functions/index.d.ts +0 -4
  78. package/umd/xpath/functions/internal-functions.d.ts +0 -2
  79. package/umd/xpath/functions/non-standard.d.ts +0 -12
  80. package/umd/xpath/functions/standard-20.d.ts +0 -5
  81. package/umd/xpath/functions/standard.d.ts +0 -40
  82. package/umd/xpath/functions/xslt-specific.d.ts +0 -3
  83. package/umd/xpath/grammar-rule-candidate.d.ts +0 -8
  84. package/umd/xpath/index.d.ts +0 -3
  85. package/umd/xpath/match-resolver.d.ts +0 -55
  86. package/umd/xpath/node-tests/index.d.ts +0 -8
  87. package/umd/xpath/node-tests/node-test-any.d.ts +0 -6
  88. package/umd/xpath/node-tests/node-test-comment.d.ts +0 -6
  89. package/umd/xpath/node-tests/node-test-element-or-attribute.d.ts +0 -6
  90. package/umd/xpath/node-tests/node-test-name.d.ts +0 -10
  91. package/umd/xpath/node-tests/node-test-nc.d.ts +0 -9
  92. package/umd/xpath/node-tests/node-test-pi.d.ts +0 -8
  93. package/umd/xpath/node-tests/node-test-text.d.ts +0 -6
  94. package/umd/xpath/node-tests/node-test.d.ts +0 -5
  95. package/umd/xpath/tokens.d.ts +0 -62
  96. package/umd/xpath/values/boolean-value.d.ts +0 -11
  97. package/umd/xpath/values/index.d.ts +0 -5
  98. package/umd/xpath/values/node-set-value.d.ts +0 -11
  99. package/umd/xpath/values/node-value.d.ts +0 -7
  100. package/umd/xpath/values/number-value.d.ts +0 -11
  101. package/umd/xpath/values/string-value.d.ts +0 -11
  102. package/umd/xpath/xpath-grammar-rules.d.ts +0 -68
  103. package/umd/xpath/xpath-token-rule.d.ts +0 -7
  104. package/umd/xpath/xpath.d.ts +0 -174
  105. package/umd/xpathdebug.d.ts +0 -2
  106. package/umd/xslt/index.d.ts +0 -3
  107. package/umd/xslt/xslt-decimal-format-settings.d.ts +0 -28
  108. package/umd/xslt/xslt-options.d.ts +0 -7
  109. package/umd/xslt/xslt-parameter.d.ts +0 -5
  110. package/umd/xslt/xslt.d.ts +0 -275
  111. package/umd/xslt-processor.js +0 -2
  112. package/umd/xslt-processor.js.map +0 -1
  113. package/xpath/common-function.d.ts +0 -8
  114. package/xpath/common-function.js +0 -32
  115. package/xpath/common-function.js.map +0 -1
  116. package/xpath/expr-context.d.ts +0 -116
  117. package/xpath/expr-context.js +0 -191
  118. package/xpath/expr-context.js.map +0 -1
  119. package/xpath/expressions/binary-expr.d.ts +0 -11
  120. package/xpath/expressions/binary-expr.js +0 -166
  121. package/xpath/expressions/binary-expr.js.map +0 -1
  122. package/xpath/expressions/expression.d.ts +0 -4
  123. package/xpath/expressions/expression.js +0 -10
  124. package/xpath/expressions/expression.js.map +0 -1
  125. package/xpath/expressions/filter-expr.d.ts +0 -9
  126. package/xpath/expressions/filter-expr.js +0 -53
  127. package/xpath/expressions/filter-expr.js.map +0 -1
  128. package/xpath/expressions/function-call-expr.d.ts +0 -12
  129. package/xpath/expressions/function-call-expr.js +0 -97
  130. package/xpath/expressions/function-call-expr.js.map +0 -1
  131. package/xpath/expressions/index.d.ts +0 -13
  132. package/xpath/expressions/index.js +0 -30
  133. package/xpath/expressions/index.js.map +0 -1
  134. package/xpath/expressions/literal-expr.d.ts +0 -7
  135. package/xpath/expressions/literal-expr.js +0 -34
  136. package/xpath/expressions/literal-expr.js.map +0 -1
  137. package/xpath/expressions/location-expr.d.ts +0 -15
  138. package/xpath/expressions/location-expr.js +0 -99
  139. package/xpath/expressions/location-expr.js.map +0 -1
  140. package/xpath/expressions/number-expr.d.ts +0 -7
  141. package/xpath/expressions/number-expr.js +0 -34
  142. package/xpath/expressions/number-expr.js.map +0 -1
  143. package/xpath/expressions/path-expr.d.ts +0 -9
  144. package/xpath/expressions/path-expr.js +0 -52
  145. package/xpath/expressions/path-expr.js.map +0 -1
  146. package/xpath/expressions/predicate-expr.d.ts +0 -8
  147. package/xpath/expressions/predicate-expr.js +0 -41
  148. package/xpath/expressions/predicate-expr.js.map +0 -1
  149. package/xpath/expressions/step-expr.d.ts +0 -25
  150. package/xpath/expressions/step-expr.js +0 -281
  151. package/xpath/expressions/step-expr.js.map +0 -1
  152. package/xpath/expressions/token-expr.d.ts +0 -7
  153. package/xpath/expressions/token-expr.js +0 -34
  154. package/xpath/expressions/token-expr.js.map +0 -1
  155. package/xpath/expressions/unary-minus-expr.d.ts +0 -8
  156. package/xpath/expressions/unary-minus-expr.js +0 -34
  157. package/xpath/expressions/unary-minus-expr.js.map +0 -1
  158. package/xpath/expressions/union-expr.d.ts +0 -9
  159. package/xpath/expressions/union-expr.js +0 -51
  160. package/xpath/expressions/union-expr.js.map +0 -1
  161. package/xpath/expressions/variable-expr.d.ts +0 -7
  162. package/xpath/expressions/variable-expr.js +0 -33
  163. package/xpath/expressions/variable-expr.js.map +0 -1
  164. package/xpath/functions/index.d.ts +0 -4
  165. package/xpath/functions/index.js +0 -21
  166. package/xpath/functions/index.js.map +0 -1
  167. package/xpath/functions/internal-functions.d.ts +0 -2
  168. package/xpath/functions/internal-functions.js +0 -22
  169. package/xpath/functions/internal-functions.js.map +0 -1
  170. package/xpath/functions/non-standard.d.ts +0 -12
  171. package/xpath/functions/non-standard.js +0 -45
  172. package/xpath/functions/non-standard.js.map +0 -1
  173. package/xpath/functions/standard-20.d.ts +0 -5
  174. package/xpath/functions/standard-20.js +0 -26
  175. package/xpath/functions/standard-20.js.map +0 -1
  176. package/xpath/functions/standard.d.ts +0 -40
  177. package/xpath/functions/standard.js +0 -442
  178. package/xpath/functions/standard.js.map +0 -1
  179. package/xpath/functions/xslt-specific.d.ts +0 -3
  180. package/xpath/functions/xslt-specific.js +0 -14
  181. package/xpath/functions/xslt-specific.js.map +0 -1
  182. package/xpath/grammar-rule-candidate.d.ts +0 -8
  183. package/xpath/grammar-rule-candidate.js +0 -3
  184. package/xpath/grammar-rule-candidate.js.map +0 -1
  185. package/xpath/index.d.ts +0 -3
  186. package/xpath/index.js +0 -20
  187. package/xpath/index.js.map +0 -1
  188. package/xpath/match-resolver.d.ts +0 -55
  189. package/xpath/match-resolver.js +0 -137
  190. package/xpath/match-resolver.js.map +0 -1
  191. package/xpath/node-tests/index.d.ts +0 -8
  192. package/xpath/node-tests/index.js +0 -18
  193. package/xpath/node-tests/index.js.map +0 -1
  194. package/xpath/node-tests/node-test-any.d.ts +0 -6
  195. package/xpath/node-tests/node-test-any.js +0 -15
  196. package/xpath/node-tests/node-test-any.js.map +0 -1
  197. package/xpath/node-tests/node-test-comment.d.ts +0 -6
  198. package/xpath/node-tests/node-test-comment.js +0 -15
  199. package/xpath/node-tests/node-test-comment.js.map +0 -1
  200. package/xpath/node-tests/node-test-element-or-attribute.d.ts +0 -6
  201. package/xpath/node-tests/node-test-element-or-attribute.js +0 -16
  202. package/xpath/node-tests/node-test-element-or-attribute.js.map +0 -1
  203. package/xpath/node-tests/node-test-name.d.ts +0 -10
  204. package/xpath/node-tests/node-test-name.js +0 -39
  205. package/xpath/node-tests/node-test-name.js.map +0 -1
  206. package/xpath/node-tests/node-test-nc.d.ts +0 -9
  207. package/xpath/node-tests/node-test-nc.js +0 -17
  208. package/xpath/node-tests/node-test-nc.js.map +0 -1
  209. package/xpath/node-tests/node-test-pi.d.ts +0 -8
  210. package/xpath/node-tests/node-test-pi.js +0 -17
  211. package/xpath/node-tests/node-test-pi.js.map +0 -1
  212. package/xpath/node-tests/node-test-text.d.ts +0 -6
  213. package/xpath/node-tests/node-test-text.js +0 -15
  214. package/xpath/node-tests/node-test-text.js.map +0 -1
  215. package/xpath/node-tests/node-test.d.ts +0 -5
  216. package/xpath/node-tests/node-test.js +0 -3
  217. package/xpath/node-tests/node-test.js.map +0 -1
  218. package/xpath/tokens.d.ts +0 -62
  219. package/xpath/tokens.js +0 -301
  220. package/xpath/tokens.js.map +0 -1
  221. package/xpath/values/boolean-value.d.ts +0 -11
  222. package/xpath/values/boolean-value.js +0 -24
  223. package/xpath/values/boolean-value.js.map +0 -1
  224. package/xpath/values/index.d.ts +0 -5
  225. package/xpath/values/index.js +0 -47
  226. package/xpath/values/index.js.map +0 -1
  227. package/xpath/values/node-set-value.d.ts +0 -11
  228. package/xpath/values/node-set-value.js +0 -28
  229. package/xpath/values/node-set-value.js.map +0 -1
  230. package/xpath/values/node-value.d.ts +0 -7
  231. package/xpath/values/node-value.js +0 -3
  232. package/xpath/values/node-value.js.map +0 -1
  233. package/xpath/values/number-value.d.ts +0 -11
  234. package/xpath/values/number-value.js +0 -24
  235. package/xpath/values/number-value.js.map +0 -1
  236. package/xpath/values/string-value.d.ts +0 -11
  237. package/xpath/values/string-value.js +0 -24
  238. package/xpath/values/string-value.js.map +0 -1
  239. package/xpath/xpath-grammar-rules.d.ts +0 -68
  240. package/xpath/xpath-grammar-rules.js +0 -75
  241. package/xpath/xpath-grammar-rules.js.map +0 -1
  242. package/xpath/xpath-token-rule.d.ts +0 -7
  243. package/xpath/xpath-token-rule.js +0 -3
  244. package/xpath/xpath-token-rule.js.map +0 -1
  245. package/xpath/xpath.d.ts +0 -174
  246. package/xpath/xpath.js +0 -912
  247. package/xpath/xpath.js.map +0 -1
  248. package/xpathdebug.d.ts +0 -2
  249. package/xpathdebug.js +0 -188
  250. package/xpathdebug.js.map +0 -1
  251. package/xslt/index.d.ts +0 -3
  252. package/xslt/index.js +0 -20
  253. package/xslt/index.js.map +0 -1
  254. package/xslt/xslt-decimal-format-settings.d.ts +0 -28
  255. package/xslt/xslt-decimal-format-settings.js +0 -3
  256. package/xslt/xslt-decimal-format-settings.js.map +0 -1
  257. package/xslt/xslt-options.d.ts +0 -7
  258. package/xslt/xslt-options.js +0 -3
  259. package/xslt/xslt-options.js.map +0 -1
  260. package/xslt/xslt-parameter.d.ts +0 -5
  261. package/xslt/xslt-parameter.js +0 -3
  262. package/xslt/xslt-parameter.js.map +0 -1
  263. package/xslt/xslt.d.ts +0 -275
  264. package/xslt/xslt.js +0 -1329
  265. package/xslt/xslt.js.map +0 -1
package/README.md CHANGED
@@ -219,6 +219,54 @@ HTML per se is not strict XML. Because of that, starting on version 2.0.0, this
219
219
  - Tags like `<hr>`, `<link>` and `<meta>` don't need to be closed. The output for these tags doesn't close them (adding a `/` before the tag closes, or a corresponding close tag);
220
220
  - This rule doesn't apply for XHTML, which is strict XML.
221
221
 
222
+ ### Whitespace Handling
223
+
224
+ This library supports `xsl:strip-space` and `xsl:preserve-space` for controlling whitespace in the input document.
225
+
226
+ #### `xsl:strip-space`
227
+
228
+ Use `<xsl:strip-space>` to remove whitespace-only text nodes from specified elements in the input document:
229
+
230
+ ```xml
231
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
232
+ <!-- Strip whitespace from all elements -->
233
+ <xsl:strip-space elements="*"/>
234
+
235
+ <!-- Or strip from specific elements -->
236
+ <xsl:strip-space elements="book chapter section"/>
237
+
238
+ <!-- ... templates ... -->
239
+ </xsl:stylesheet>
240
+ ```
241
+
242
+ The `elements` attribute accepts:
243
+ - `*` - matches all elements
244
+ - `name` - matches elements with the specified local name
245
+ - `prefix:*` - matches all elements in a namespace
246
+ - `prefix:name` - matches a specific element in a namespace
247
+ - Multiple patterns separated by whitespace (e.g., `"book chapter section"`)
248
+
249
+ #### `xsl:preserve-space`
250
+
251
+ Use `<xsl:preserve-space>` to preserve whitespace in specific elements, overriding `xsl:strip-space`:
252
+
253
+ ```xml
254
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
255
+ <xsl:strip-space elements="*"/>
256
+ <!-- Preserve whitespace in pre and code elements -->
257
+ <xsl:preserve-space elements="pre code"/>
258
+
259
+ <!-- ... templates ... -->
260
+ </xsl:stylesheet>
261
+ ```
262
+
263
+ #### Precedence Rules
264
+
265
+ 1. `xml:space="preserve"` attribute on an element takes highest precedence
266
+ 2. `xsl:preserve-space` overrides `xsl:strip-space` for matching elements
267
+ 3. `xsl:strip-space` applies to remaining matches
268
+ 4. By default (no declarations), whitespace is preserved
269
+
222
270
  ## References
223
271
 
224
272
  - XPath Specification: http://www.w3.org/TR/1999/REC-xpath-19991116