@tradik/xslt-processor 1.0.3 → 1.3.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 (131) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +110 -520
  3. package/bin/lib/decode.js +15 -0
  4. package/bin/lib/dom.js +177 -0
  5. package/bin/lib/loaders.js +127 -0
  6. package/bin/lib/options.js +131 -0
  7. package/bin/lib/output.js +114 -0
  8. package/bin/lib/paths.js +186 -0
  9. package/bin/lib/transform.js +206 -0
  10. package/bin/xslt.js +73 -168
  11. package/dist/xslt-processor.browser.js +9564 -1585
  12. package/dist/xslt-processor.browser.js.map +4 -4
  13. package/dist/xslt-processor.browser.min.js +13 -2
  14. package/dist/xslt-processor.browser.min.js.map +4 -4
  15. package/dist/xslt-processor.cjs +9572 -1586
  16. package/dist/xslt-processor.cjs.map +4 -4
  17. package/dist/xslt-processor.d.cts +658 -0
  18. package/dist/xslt-processor.d.ts +459 -12
  19. package/dist/xslt-processor.js +9546 -1582
  20. package/dist/xslt-processor.js.map +4 -4
  21. package/package.json +71 -20
  22. package/src/XSLTProcessor.js +494 -48
  23. package/src/async/abort.js +63 -0
  24. package/src/async/documentUris.js +128 -0
  25. package/src/async/loaders.js +134 -0
  26. package/src/async/preload.js +159 -0
  27. package/src/async/processor.js +206 -0
  28. package/src/async/stream.js +125 -0
  29. package/src/bridge/engine.js +221 -0
  30. package/src/bridge/loader.js +78 -0
  31. package/src/bridge/results.js +75 -0
  32. package/src/bridge/version.js +63 -0
  33. package/src/index.js +26 -8
  34. package/src/io/decode.js +140 -0
  35. package/src/io/readSource.js +167 -0
  36. package/src/xpath/axes.js +562 -0
  37. package/src/xpath/documentOrder.js +270 -0
  38. package/src/xpath/evaluator.js +518 -357
  39. package/src/xpath/index.js +8 -2
  40. package/src/xpath/namespaceNodes.js +172 -0
  41. package/src/xpath/nodeSetFunctions.js +169 -0
  42. package/src/xpath/parser.js +30 -5
  43. package/src/xpath/strings.js +183 -0
  44. package/src/xpath/tokenizer.js +37 -23
  45. package/src/xslt/attributeSets.js +95 -0
  46. package/src/xslt/avt.js +103 -0
  47. package/src/xslt/computedNames.js +91 -0
  48. package/src/xslt/copying.js +212 -0
  49. package/src/xslt/declarationNames.js +80 -0
  50. package/src/xslt/domParsing.js +95 -0
  51. package/src/xslt/elements.js +57 -0
  52. package/src/xslt/engine/bindings.js +195 -0
  53. package/src/xslt/engine/context.js +105 -0
  54. package/src/xslt/engine/controlFlow.js +145 -0
  55. package/src/xslt/engine/copyInstructions.js +133 -0
  56. package/src/xslt/engine/declarations.js +233 -0
  57. package/src/xslt/engine/functionSupport.js +103 -0
  58. package/src/xslt/engine/methods.js +33 -0
  59. package/src/xslt/engine/nodeConstruction.js +187 -0
  60. package/src/xslt/engine/numbering.js +104 -0
  61. package/src/xslt/engine/outputDeclaration.js +77 -0
  62. package/src/xslt/engine/sequenceConstructor.js +228 -0
  63. package/src/xslt/engine/stylesheetLoading.js +208 -0
  64. package/src/xslt/engine/templateInvocation.js +253 -0
  65. package/src/xslt/engine/templateRules.js +243 -0
  66. package/src/xslt/engine/textInstructions.js +171 -0
  67. package/src/xslt/engine/topLevel.js +130 -0
  68. package/src/xslt/engine/transformation.js +263 -0
  69. package/src/xslt/engine/workStack.js +245 -0
  70. package/src/xslt/engine.js +184 -1736
  71. package/src/xslt/exslt/arguments.js +99 -0
  72. package/src/xslt/exslt/calendar.js +120 -0
  73. package/src/xslt/exslt/common.js +44 -0
  74. package/src/xslt/exslt/dateCalc.js +261 -0
  75. package/src/xslt/exslt/dateFormat.js +150 -0
  76. package/src/xslt/exslt/dateParse.js +265 -0
  77. package/src/xslt/exslt/dates.js +259 -0
  78. package/src/xslt/exslt/duration.js +207 -0
  79. package/src/xslt/exslt/dynamic.js +59 -0
  80. package/src/xslt/exslt/index.js +59 -0
  81. package/src/xslt/exslt/math.js +177 -0
  82. package/src/xslt/exslt/sets.js +96 -0
  83. package/src/xslt/exslt/stringOps.js +163 -0
  84. package/src/xslt/exslt/strings.js +147 -0
  85. package/src/xslt/exslt/uri.js +92 -0
  86. package/src/xslt/formatNumber.js +233 -0
  87. package/src/xslt/forwardsCompatible.js +75 -0
  88. package/src/xslt/functions.js +270 -0
  89. package/src/xslt/index.js +38 -1
  90. package/src/xslt/keys.js +164 -0
  91. package/src/xslt/literalResult.js +223 -0
  92. package/src/xslt/matchScope.js +116 -0
  93. package/src/xslt/number.js +271 -0
  94. package/src/xslt/numberFormat.js +253 -0
  95. package/src/xslt/outputNames.js +58 -0
  96. package/src/xslt/patternCompiler.js +175 -0
  97. package/src/xslt/patterns.js +324 -0
  98. package/src/xslt/qname.js +90 -0
  99. package/src/xslt/resultDocument.js +98 -0
  100. package/src/xslt/resultNamespaces.js +219 -0
  101. package/src/xslt/resultTree.js +211 -0
  102. package/src/xslt/serializer/baseWriter.js +390 -0
  103. package/src/xslt/serializer/chunks.js +120 -0
  104. package/src/xslt/serializer/constants.js +92 -0
  105. package/src/xslt/serializer/encoding.js +327 -0
  106. package/src/xslt/serializer/escape.js +135 -0
  107. package/src/xslt/serializer/frames.js +168 -0
  108. package/src/xslt/serializer/htmlDoctype.js +102 -0
  109. package/src/xslt/serializer/htmlEntities.js +77 -0
  110. package/src/xslt/serializer/htmlSerializer.js +239 -0
  111. package/src/xslt/serializer/indent.js +51 -0
  112. package/src/xslt/serializer/namespaces.js +68 -0
  113. package/src/xslt/serializer/rawText.js +41 -0
  114. package/src/xslt/serializer/settings.js +179 -0
  115. package/src/xslt/serializer/textSerializer.js +77 -0
  116. package/src/xslt/serializer/xhtmlDocument.js +103 -0
  117. package/src/xslt/serializer/xmlSerializer.js +227 -0
  118. package/src/xslt/serializer.js +90 -0
  119. package/src/xslt/sort.js +151 -0
  120. package/src/xslt/spaceNameTests.js +115 -0
  121. package/src/xslt/stylesheetChecks.js +206 -0
  122. package/src/xslt/stylesheetNamespaces.js +266 -0
  123. package/src/xslt/templatePriority.js +45 -0
  124. package/src/xslt/uri.js +68 -0
  125. package/src/xslt/variables.js +152 -0
  126. package/src/xslt/whitespace.js +200 -0
  127. package/LICENSE +0 -29
  128. package/src/XSLTProcessor.test.js +0 -930
  129. package/src/xpath/evaluator.test.js +0 -1852
  130. package/src/xpath/tokenizer.test.js +0 -224
  131. package/src/xslt/engine.test.js +0 -3130
package/package.json CHANGED
@@ -1,40 +1,71 @@
1
1
  {
2
2
  "name": "@tradik/xslt-processor",
3
- "version": "1.0.3",
3
+ "version": "1.3.0",
4
4
  "description": "JavaScript implementation of XSLTProcessor for browser environments and CLI",
5
5
  "type": "module",
6
+ "workspaces": [
7
+ "packages/*"
8
+ ],
6
9
  "main": "dist/xslt-processor.cjs",
7
10
  "module": "dist/xslt-processor.js",
8
- "browser": "dist/xslt-processor.browser.js",
11
+ "browser": "dist/xslt-processor.js",
9
12
  "types": "dist/xslt-processor.d.ts",
10
13
  "bin": {
11
- "xslt": "./bin/xslt.js"
14
+ "xslt": "bin/xslt.js"
12
15
  },
13
16
  "exports": {
14
17
  ".": {
15
- "types": "./dist/xslt-processor.d.ts",
16
- "browser": "./dist/xslt-processor.browser.js",
17
- "import": "./dist/xslt-processor.js",
18
- "require": "./dist/xslt-processor.cjs"
18
+ "browser": {
19
+ "types": "./dist/xslt-processor.d.ts",
20
+ "default": "./dist/xslt-processor.js"
21
+ },
22
+ "import": {
23
+ "types": "./dist/xslt-processor.d.ts",
24
+ "default": "./dist/xslt-processor.js"
25
+ },
26
+ "require": {
27
+ "types": "./dist/xslt-processor.d.cts",
28
+ "default": "./dist/xslt-processor.cjs"
29
+ }
19
30
  }
20
31
  },
21
32
  "files": [
22
33
  "dist",
23
34
  "src",
24
- "bin"
35
+ "bin",
36
+ "!src/**/*.test.js",
37
+ "!bin/**/*.test.js"
25
38
  ],
26
39
  "publishConfig": {
27
40
  "access": "public"
28
41
  },
29
42
  "scripts": {
30
43
  "build": "node scripts/build.js",
31
- "test": "node --test --experimental-test-coverage src/*.test.js src/**/*.test.js",
44
+ "test": "node --test --experimental-test-coverage --test-coverage-lines=100 --test-coverage-functions=100 --test-coverage-branches=96 --test-coverage-exclude=\"**/*.test.js\" --test-coverage-exclude=\"packages/**\" \"src/**/*.test.js\"",
45
+ "test:xslt3": "npm test --workspace @tradik/xslt3",
46
+ "suites:fetch": "node packages/xslt3/test-suites/fetch.mjs all",
47
+ "test:suites:unit": "node --test --experimental-test-coverage --test-coverage-include=\"packages/xslt3/test-suites/**\" --test-coverage-exclude=\"**/*.test.mjs\" --test-coverage-lines=96 \"packages/xslt3/test-suites/**/*.test.mjs\"",
48
+ "test:qt3:parse": "node packages/xslt3/test-suites/run.mjs qt3 --parse-only",
49
+ "test:qt3": "node packages/xslt3/test-suites/run.mjs qt3",
50
+ "test:xslt30": "node packages/xslt3/test-suites/run.mjs xslt30",
32
51
  "test:watch": "node --test --watch src/**/*.test.js",
33
- "test:browser": "node tests/browser-test-runner.js",
34
- "lint": "eslint src/",
35
- "format": "prettier --write \"src/**/*.js\"",
36
- "format:check": "prettier --check \"src/**/*.js\"",
37
- "prepublishOnly": "npm run build && npm run test"
52
+ "test:conformance": "node scripts/conformance.mjs",
53
+ "test:dom": "node scripts/test-dom.mjs",
54
+ "test:conformance:unit": "node --test \"scripts/conformance/*.test.mjs\"",
55
+ "conformance:fetch": "node scripts/fetch-conformance.mjs",
56
+ "lint": "eslint src/ bin/ scripts/ tests/browser/ site/ packages/",
57
+ "format": "prettier --write \"src/**/*.js\" \"bin/**/*.js\" \"scripts/**/*.{js,mjs}\" \"tests/browser/**/*.mjs\" \"site/scripts/*.mjs\" \"site/templates/**/js/*.js\" \"packages/*/src/**/*.js\" \"packages/*/test-suites/**/*.mjs\"",
58
+ "format:check": "prettier --check \"src/**/*.js\" \"bin/**/*.js\" \"scripts/**/*.{js,mjs}\" \"tests/browser/**/*.mjs\" \"site/scripts/*.mjs\" \"site/templates/**/js/*.js\" \"packages/*/src/**/*.js\" \"packages/*/test-suites/**/*.mjs\"",
59
+ "prepublishOnly": "npm run build && npm run test",
60
+ "docs:check": "node scripts/check-links.mjs",
61
+ "bench": "node scripts/benchmark/run.mjs",
62
+ "bench:xpath": "node scripts/benchmark/run.mjs --suite xpath",
63
+ "bench:xslt": "node scripts/benchmark/run.mjs --suite xslt",
64
+ "test:bench": "node --test \"scripts/benchmark/*.test.mjs\"",
65
+ "test:browser": "playwright test -c tests/browser/playwright.config.mjs",
66
+ "test:binaries": "node --test \"scripts/binaries/*.test.mjs\" \"scripts/lib/*.test.mjs\"",
67
+ "test:site": "node --test --experimental-test-coverage --test-coverage-include=\"site/**\" --test-coverage-lines=96 \"site/scripts/*.test.mjs\"",
68
+ "site:content": "node site/scripts/build-content.mjs"
38
69
  },
39
70
  "keywords": [
40
71
  "xslt",
@@ -55,14 +86,34 @@
55
86
  "bugs": {
56
87
  "url": "https://github.com/spagu/XSLT-Processor/issues"
57
88
  },
58
- "homepage": "https://github.com/spagu/XSLT-Processor#readme",
89
+ "homepage": "https://xslt-processor.tradik.com/",
59
90
  "engines": {
60
- "node": ">=18.0.0"
91
+ "node": ">=20.19.0"
61
92
  },
62
93
  "devDependencies": {
63
- "eslint": "^9.0.0",
64
- "prettier": "^3.4.0",
65
- "esbuild": "^0.24.0",
66
- "jsdom": "^25.0.0"
94
+ "@eslint/js": "^10.0.1",
95
+ "@playwright/test": "^1.63.0",
96
+ "@xmldom/xmldom": "^0.9.12",
97
+ "esbuild": "^0.28.2",
98
+ "eslint": "^10.11.0",
99
+ "jsdom": "^30.1.1",
100
+ "linkedom": "^0.18.13",
101
+ "prettier": "^3.9.9"
102
+ },
103
+ "peerDependencies": {
104
+ "@tradik/xslt3": "^1.0.0",
105
+ "@xmldom/xmldom": ">=0.9.0",
106
+ "jsdom": ">=25.0.0"
107
+ },
108
+ "peerDependenciesMeta": {
109
+ "@tradik/xslt3": {
110
+ "optional": true
111
+ },
112
+ "@xmldom/xmldom": {
113
+ "optional": true
114
+ },
115
+ "jsdom": {
116
+ "optional": true
117
+ }
67
118
  }
68
119
  }