@blazedpath/commons 0.2.2 → 0.3.1

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 (626) hide show
  1. package/README.md +4 -1
  2. package/dist/blz-base/health/index.d.ts +1 -0
  3. package/dist/blz-base/health/index.js +1 -0
  4. package/dist/blz-base/index.d.ts +108 -0
  5. package/dist/blz-base/index.js +1 -0
  6. package/dist/blz-cache/LruCache.d.ts +31 -0
  7. package/dist/blz-cache/LruCache.js +1 -0
  8. package/dist/blz-cache/index.d.ts +2 -0
  9. package/dist/blz-cache/index.js +1 -0
  10. package/dist/blz-config/index.d.ts +16 -0
  11. package/dist/blz-config/index.js +1 -0
  12. package/dist/blz-core/index.d.ts +32 -0
  13. package/dist/blz-core/index.js +1 -0
  14. package/dist/blz-cryptography/index.d.ts +2 -0
  15. package/dist/blz-cryptography/index.js +1 -0
  16. package/dist/blz-datetimes/index.d.ts +35 -0
  17. package/dist/blz-datetimes/index.js +1 -0
  18. package/dist/blz-file/fileService.d.ts +25 -0
  19. package/dist/blz-file/fileService.js +1 -0
  20. package/dist/blz-file/index.d.ts +2 -0
  21. package/dist/blz-file/index.js +1 -0
  22. package/dist/blz-file/index.test.js +1 -0
  23. package/dist/blz-file/lab.js +1 -0
  24. package/dist/blz-hazelcast/index.d.ts +25 -0
  25. package/dist/blz-hazelcast/index.js +1 -0
  26. package/dist/blz-hazelcast/lib/credentials.d.ts +10 -0
  27. package/dist/blz-hazelcast/lib/credentials.js +1 -0
  28. package/dist/blz-hazelcast/lib/credentialsFactory.d.ts +1 -0
  29. package/dist/blz-hazelcast/lib/credentialsFactory.js +1 -0
  30. package/dist/blz-hazelcast/lib/hazelcastCache.d.ts +27 -0
  31. package/dist/blz-hazelcast/lib/hazelcastCache.js +1 -0
  32. package/dist/blz-iterable/index.d.ts +49 -0
  33. package/dist/blz-iterable/index.js +1 -0
  34. package/dist/blz-json-schema/index.d.ts +1 -0
  35. package/dist/blz-json-schema/index.js +1 -0
  36. package/dist/blz-jwt/index.d.ts +12 -0
  37. package/dist/blz-jwt/index.js +1 -0
  38. package/dist/blz-kafka/index.d.ts +9 -0
  39. package/dist/blz-kafka/index.js +1 -0
  40. package/dist/blz-math/index.d.ts +22 -0
  41. package/dist/blz-math/index.js +1 -0
  42. package/dist/blz-mongodb/index.d.ts +28 -0
  43. package/dist/blz-mongodb/index.js +1 -0
  44. package/dist/blz-rds/__test__/scape.test.js +1 -0
  45. package/dist/blz-rds/blz-rds-executor.d.ts +4 -0
  46. package/dist/blz-rds/blz-rds-executor.js +1 -0
  47. package/dist/blz-rds/blz-rds-helper.d.ts +5 -0
  48. package/dist/blz-rds/blz-rds-helper.js +1 -0
  49. package/dist/blz-rds/commands/core/add.d.ts +2 -0
  50. package/dist/blz-rds/commands/core/add.js +1 -0
  51. package/dist/blz-rds/commands/core/and.d.ts +3 -0
  52. package/dist/blz-rds/commands/core/and.js +1 -0
  53. package/dist/blz-rds/commands/core/asc.d.ts +2 -0
  54. package/dist/blz-rds/commands/core/asc.js +1 -0
  55. package/dist/blz-rds/commands/core/avg.d.ts +2 -0
  56. package/dist/blz-rds/commands/core/avg.js +1 -0
  57. package/dist/blz-rds/commands/core/column-ref.d.ts +2 -0
  58. package/dist/blz-rds/commands/core/column-ref.js +1 -0
  59. package/dist/blz-rds/commands/core/count-distinct.d.ts +2 -0
  60. package/dist/blz-rds/commands/core/count-distinct.js +1 -0
  61. package/dist/blz-rds/commands/core/count.d.ts +2 -0
  62. package/dist/blz-rds/commands/core/count.js +1 -0
  63. package/dist/blz-rds/commands/core/decimal.d.ts +2 -0
  64. package/dist/blz-rds/commands/core/decimal.js +1 -0
  65. package/dist/blz-rds/commands/core/desc.d.ts +2 -0
  66. package/dist/blz-rds/commands/core/desc.js +1 -0
  67. package/dist/blz-rds/commands/core/distinct.d.ts +2 -0
  68. package/dist/blz-rds/commands/core/distinct.js +1 -0
  69. package/dist/blz-rds/commands/core/divide.d.ts +2 -0
  70. package/dist/blz-rds/commands/core/divide.js +1 -0
  71. package/dist/blz-rds/commands/core/embedded-exists.d.ts +3 -0
  72. package/dist/blz-rds/commands/core/embedded-exists.js +1 -0
  73. package/dist/blz-rds/commands/core/embedded-select.d.ts +2 -0
  74. package/dist/blz-rds/commands/core/embedded-select.js +1 -0
  75. package/dist/blz-rds/commands/core/equals.d.ts +3 -0
  76. package/dist/blz-rds/commands/core/equals.js +1 -0
  77. package/dist/blz-rds/commands/core/false.d.ts +2 -0
  78. package/dist/blz-rds/commands/core/false.js +1 -0
  79. package/dist/blz-rds/commands/core/greater-or-equal.d.ts +3 -0
  80. package/dist/blz-rds/commands/core/greater-or-equal.js +1 -0
  81. package/dist/blz-rds/commands/core/greater.d.ts +3 -0
  82. package/dist/blz-rds/commands/core/greater.js +1 -0
  83. package/dist/blz-rds/commands/core/in.d.ts +3 -0
  84. package/dist/blz-rds/commands/core/in.js +1 -0
  85. package/dist/blz-rds/commands/core/integer.d.ts +2 -0
  86. package/dist/blz-rds/commands/core/integer.js +1 -0
  87. package/dist/blz-rds/commands/core/is-not-null.d.ts +3 -0
  88. package/dist/blz-rds/commands/core/is-not-null.js +1 -0
  89. package/dist/blz-rds/commands/core/is-null-or-value.d.ts +3 -0
  90. package/dist/blz-rds/commands/core/is-null-or-value.js +1 -0
  91. package/dist/blz-rds/commands/core/is-null.d.ts +3 -0
  92. package/dist/blz-rds/commands/core/is-null.js +1 -0
  93. package/dist/blz-rds/commands/core/less-or-equal.d.ts +3 -0
  94. package/dist/blz-rds/commands/core/less-or-equal.js +1 -0
  95. package/dist/blz-rds/commands/core/less-unary.d.ts +2 -0
  96. package/dist/blz-rds/commands/core/less-unary.js +1 -0
  97. package/dist/blz-rds/commands/core/less.d.ts +3 -0
  98. package/dist/blz-rds/commands/core/less.js +1 -0
  99. package/dist/blz-rds/commands/core/like.d.ts +3 -0
  100. package/dist/blz-rds/commands/core/like.js +1 -0
  101. package/dist/blz-rds/commands/core/max.d.ts +2 -0
  102. package/dist/blz-rds/commands/core/max.js +1 -0
  103. package/dist/blz-rds/commands/core/min.d.ts +2 -0
  104. package/dist/blz-rds/commands/core/min.js +1 -0
  105. package/dist/blz-rds/commands/core/multiply.d.ts +2 -0
  106. package/dist/blz-rds/commands/core/multiply.js +1 -0
  107. package/dist/blz-rds/commands/core/not-equals.d.ts +3 -0
  108. package/dist/blz-rds/commands/core/not-equals.js +1 -0
  109. package/dist/blz-rds/commands/core/not-in.d.ts +3 -0
  110. package/dist/blz-rds/commands/core/not-in.js +1 -0
  111. package/dist/blz-rds/commands/core/not.d.ts +3 -0
  112. package/dist/blz-rds/commands/core/not.js +1 -0
  113. package/dist/blz-rds/commands/core/null.d.ts +2 -0
  114. package/dist/blz-rds/commands/core/null.js +1 -0
  115. package/dist/blz-rds/commands/core/nvl.d.ts +2 -0
  116. package/dist/blz-rds/commands/core/nvl.js +1 -0
  117. package/dist/blz-rds/commands/core/or.d.ts +3 -0
  118. package/dist/blz-rds/commands/core/or.js +1 -0
  119. package/dist/blz-rds/commands/core/parameter.d.ts +2 -0
  120. package/dist/blz-rds/commands/core/parameter.js +1 -0
  121. package/dist/blz-rds/commands/core/remainder.d.ts +2 -0
  122. package/dist/blz-rds/commands/core/remainder.js +1 -0
  123. package/dist/blz-rds/commands/core/string.d.ts +2 -0
  124. package/dist/blz-rds/commands/core/string.js +1 -0
  125. package/dist/blz-rds/commands/core/subtract.d.ts +2 -0
  126. package/dist/blz-rds/commands/core/subtract.js +1 -0
  127. package/dist/blz-rds/commands/core/sum.d.ts +2 -0
  128. package/dist/blz-rds/commands/core/sum.js +1 -0
  129. package/dist/blz-rds/commands/core/true.d.ts +2 -0
  130. package/dist/blz-rds/commands/core/true.js +1 -0
  131. package/dist/blz-rds/commands/core/tuple.d.ts +2 -0
  132. package/dist/blz-rds/commands/core/tuple.js +1 -0
  133. package/dist/blz-rds/commands/datetimes/add-days.d.ts +2 -0
  134. package/dist/blz-rds/commands/datetimes/add-days.js +1 -0
  135. package/dist/blz-rds/commands/datetimes/add-hours.d.ts +2 -0
  136. package/dist/blz-rds/commands/datetimes/add-hours.js +1 -0
  137. package/dist/blz-rds/commands/datetimes/add-milliseconds.d.ts +2 -0
  138. package/dist/blz-rds/commands/datetimes/add-milliseconds.js +1 -0
  139. package/dist/blz-rds/commands/datetimes/add-minutes.d.ts +2 -0
  140. package/dist/blz-rds/commands/datetimes/add-minutes.js +1 -0
  141. package/dist/blz-rds/commands/datetimes/add-months.d.ts +2 -0
  142. package/dist/blz-rds/commands/datetimes/add-months.js +1 -0
  143. package/dist/blz-rds/commands/datetimes/add-seconds.d.ts +2 -0
  144. package/dist/blz-rds/commands/datetimes/add-seconds.js +1 -0
  145. package/dist/blz-rds/commands/datetimes/add-years.d.ts +2 -0
  146. package/dist/blz-rds/commands/datetimes/add-years.js +1 -0
  147. package/dist/blz-rds/commands/datetimes/date-diff.d.ts +2 -0
  148. package/dist/blz-rds/commands/datetimes/date-diff.js +1 -0
  149. package/dist/blz-rds/commands/datetimes/date.d.ts +2 -0
  150. package/dist/blz-rds/commands/datetimes/date.js +1 -0
  151. package/dist/blz-rds/commands/datetimes/datetime-diff.d.ts +2 -0
  152. package/dist/blz-rds/commands/datetimes/datetime-diff.js +1 -0
  153. package/dist/blz-rds/commands/datetimes/datetime.d.ts +2 -0
  154. package/dist/blz-rds/commands/datetimes/datetime.js +1 -0
  155. package/dist/blz-rds/commands/datetimes/day.d.ts +2 -0
  156. package/dist/blz-rds/commands/datetimes/day.js +1 -0
  157. package/dist/blz-rds/commands/datetimes/hour.d.ts +2 -0
  158. package/dist/blz-rds/commands/datetimes/hour.js +1 -0
  159. package/dist/blz-rds/commands/datetimes/millisecond.d.ts +2 -0
  160. package/dist/blz-rds/commands/datetimes/millisecond.js +1 -0
  161. package/dist/blz-rds/commands/datetimes/minute.d.ts +2 -0
  162. package/dist/blz-rds/commands/datetimes/minute.js +1 -0
  163. package/dist/blz-rds/commands/datetimes/month-text.d.ts +2 -0
  164. package/dist/blz-rds/commands/datetimes/month-text.js +1 -0
  165. package/dist/blz-rds/commands/datetimes/month.d.ts +2 -0
  166. package/dist/blz-rds/commands/datetimes/month.js +1 -0
  167. package/dist/blz-rds/commands/datetimes/now.d.ts +2 -0
  168. package/dist/blz-rds/commands/datetimes/now.js +1 -0
  169. package/dist/blz-rds/commands/datetimes/second.d.ts +2 -0
  170. package/dist/blz-rds/commands/datetimes/second.js +1 -0
  171. package/dist/blz-rds/commands/datetimes/subtract-days.d.ts +2 -0
  172. package/dist/blz-rds/commands/datetimes/subtract-days.js +1 -0
  173. package/dist/blz-rds/commands/datetimes/subtract-hours.d.ts +2 -0
  174. package/dist/blz-rds/commands/datetimes/subtract-hours.js +1 -0
  175. package/dist/blz-rds/commands/datetimes/subtract-milliseconds.d.ts +2 -0
  176. package/dist/blz-rds/commands/datetimes/subtract-milliseconds.js +1 -0
  177. package/dist/blz-rds/commands/datetimes/subtract-minutes.d.ts +2 -0
  178. package/dist/blz-rds/commands/datetimes/subtract-minutes.js +1 -0
  179. package/dist/blz-rds/commands/datetimes/subtract-seconds.d.ts +2 -0
  180. package/dist/blz-rds/commands/datetimes/subtract-seconds.js +1 -0
  181. package/dist/blz-rds/commands/datetimes/time-diff.d.ts +2 -0
  182. package/dist/blz-rds/commands/datetimes/time-diff.js +1 -0
  183. package/dist/blz-rds/commands/datetimes/time.d.ts +2 -0
  184. package/dist/blz-rds/commands/datetimes/time.js +1 -0
  185. package/dist/blz-rds/commands/datetimes/today.d.ts +2 -0
  186. package/dist/blz-rds/commands/datetimes/today.js +1 -0
  187. package/dist/blz-rds/commands/datetimes/week-day-text.d.ts +2 -0
  188. package/dist/blz-rds/commands/datetimes/week-day-text.js +1 -0
  189. package/dist/blz-rds/commands/datetimes/week-day.d.ts +2 -0
  190. package/dist/blz-rds/commands/datetimes/week-day.js +1 -0
  191. package/dist/blz-rds/commands/datetimes/week.d.ts +2 -0
  192. package/dist/blz-rds/commands/datetimes/week.js +1 -0
  193. package/dist/blz-rds/commands/datetimes/year.d.ts +2 -0
  194. package/dist/blz-rds/commands/datetimes/year.js +1 -0
  195. package/dist/blz-rds/commands/math/abs.d.ts +2 -0
  196. package/dist/blz-rds/commands/math/abs.js +1 -0
  197. package/dist/blz-rds/commands/math/acos.d.ts +2 -0
  198. package/dist/blz-rds/commands/math/acos.js +1 -0
  199. package/dist/blz-rds/commands/math/asin.d.ts +2 -0
  200. package/dist/blz-rds/commands/math/asin.js +1 -0
  201. package/dist/blz-rds/commands/math/atan.d.ts +2 -0
  202. package/dist/blz-rds/commands/math/atan.js +1 -0
  203. package/dist/blz-rds/commands/math/atan2.d.ts +2 -0
  204. package/dist/blz-rds/commands/math/atan2.js +1 -0
  205. package/dist/blz-rds/commands/math/ceil.d.ts +2 -0
  206. package/dist/blz-rds/commands/math/ceil.js +1 -0
  207. package/dist/blz-rds/commands/math/cos.d.ts +2 -0
  208. package/dist/blz-rds/commands/math/cos.js +1 -0
  209. package/dist/blz-rds/commands/math/cosh.d.ts +2 -0
  210. package/dist/blz-rds/commands/math/cosh.js +1 -0
  211. package/dist/blz-rds/commands/math/exp.d.ts +2 -0
  212. package/dist/blz-rds/commands/math/exp.js +1 -0
  213. package/dist/blz-rds/commands/math/floor.d.ts +2 -0
  214. package/dist/blz-rds/commands/math/floor.js +1 -0
  215. package/dist/blz-rds/commands/math/log.d.ts +2 -0
  216. package/dist/blz-rds/commands/math/log.js +1 -0
  217. package/dist/blz-rds/commands/math/log10.d.ts +2 -0
  218. package/dist/blz-rds/commands/math/log10.js +1 -0
  219. package/dist/blz-rds/commands/math/pow.d.ts +2 -0
  220. package/dist/blz-rds/commands/math/pow.js +1 -0
  221. package/dist/blz-rds/commands/math/random.d.ts +2 -0
  222. package/dist/blz-rds/commands/math/random.js +1 -0
  223. package/dist/blz-rds/commands/math/round.d.ts +2 -0
  224. package/dist/blz-rds/commands/math/round.js +1 -0
  225. package/dist/blz-rds/commands/math/sign.d.ts +2 -0
  226. package/dist/blz-rds/commands/math/sign.js +1 -0
  227. package/dist/blz-rds/commands/math/sin.d.ts +2 -0
  228. package/dist/blz-rds/commands/math/sin.js +1 -0
  229. package/dist/blz-rds/commands/math/sinh.d.ts +2 -0
  230. package/dist/blz-rds/commands/math/sinh.js +1 -0
  231. package/dist/blz-rds/commands/math/sqrt.d.ts +2 -0
  232. package/dist/blz-rds/commands/math/sqrt.js +1 -0
  233. package/dist/blz-rds/commands/math/tan.d.ts +2 -0
  234. package/dist/blz-rds/commands/math/tan.js +1 -0
  235. package/dist/blz-rds/commands/math/tanh.d.ts +2 -0
  236. package/dist/blz-rds/commands/math/tanh.js +1 -0
  237. package/dist/blz-rds/commands/math/trunc.d.ts +2 -0
  238. package/dist/blz-rds/commands/math/trunc.js +1 -0
  239. package/dist/blz-rds/commands/strings/concat.d.ts +2 -0
  240. package/dist/blz-rds/commands/strings/concat.js +1 -0
  241. package/dist/blz-rds/commands/strings/contains.d.ts +3 -0
  242. package/dist/blz-rds/commands/strings/contains.js +1 -0
  243. package/dist/blz-rds/commands/strings/ends-with.d.ts +3 -0
  244. package/dist/blz-rds/commands/strings/ends-with.js +1 -0
  245. package/dist/blz-rds/commands/strings/index-of.d.ts +2 -0
  246. package/dist/blz-rds/commands/strings/index-of.js +1 -0
  247. package/dist/blz-rds/commands/strings/is-null-or-empty.d.ts +3 -0
  248. package/dist/blz-rds/commands/strings/is-null-or-empty.js +1 -0
  249. package/dist/blz-rds/commands/strings/is-null-or-white-space.d.ts +3 -0
  250. package/dist/blz-rds/commands/strings/is-null-or-white-space.js +1 -0
  251. package/dist/blz-rds/commands/strings/join.d.ts +2 -0
  252. package/dist/blz-rds/commands/strings/join.js +1 -0
  253. package/dist/blz-rds/commands/strings/last-index-of.d.ts +2 -0
  254. package/dist/blz-rds/commands/strings/last-index-of.js +1 -0
  255. package/dist/blz-rds/commands/strings/length.d.ts +2 -0
  256. package/dist/blz-rds/commands/strings/length.js +1 -0
  257. package/dist/blz-rds/commands/strings/pad-left.d.ts +2 -0
  258. package/dist/blz-rds/commands/strings/pad-left.js +1 -0
  259. package/dist/blz-rds/commands/strings/pad-right.d.ts +2 -0
  260. package/dist/blz-rds/commands/strings/pad-right.js +1 -0
  261. package/dist/blz-rds/commands/strings/replace.d.ts +2 -0
  262. package/dist/blz-rds/commands/strings/replace.js +1 -0
  263. package/dist/blz-rds/commands/strings/starts-with.d.ts +3 -0
  264. package/dist/blz-rds/commands/strings/starts-with.js +1 -0
  265. package/dist/blz-rds/commands/strings/substring.d.ts +2 -0
  266. package/dist/blz-rds/commands/strings/substring.js +1 -0
  267. package/dist/blz-rds/commands/strings/to-lower.d.ts +2 -0
  268. package/dist/blz-rds/commands/strings/to-lower.js +1 -0
  269. package/dist/blz-rds/commands/strings/to-upper.d.ts +2 -0
  270. package/dist/blz-rds/commands/strings/to-upper.js +1 -0
  271. package/dist/blz-rds/commands/strings/trim-end.d.ts +2 -0
  272. package/dist/blz-rds/commands/strings/trim-end.js +1 -0
  273. package/dist/blz-rds/commands/strings/trim-start.d.ts +2 -0
  274. package/dist/blz-rds/commands/strings/trim-start.js +1 -0
  275. package/dist/blz-rds/commands/strings/trim.d.ts +2 -0
  276. package/dist/blz-rds/commands/strings/trim.js +1 -0
  277. package/dist/blz-rds/index.d.ts +53 -0
  278. package/dist/blz-rds/index.js +1 -0
  279. package/dist/blz-rds-mysql/base.d.ts +83 -0
  280. package/dist/blz-rds-mysql/base.js +1 -0
  281. package/dist/blz-rds-mysql/connection-manager.d.ts +8 -0
  282. package/dist/blz-rds-mysql/connection-manager.js +1 -0
  283. package/dist/blz-rds-mysql/execute-bulk-insert.d.ts +2 -0
  284. package/dist/blz-rds-mysql/execute-bulk-insert.js +1 -0
  285. package/dist/blz-rds-mysql/execute-bulk-merge.d.ts +2 -0
  286. package/dist/blz-rds-mysql/execute-bulk-merge.js +1 -0
  287. package/dist/blz-rds-mysql/execute-non-query.d.ts +14 -0
  288. package/dist/blz-rds-mysql/execute-non-query.js +1 -0
  289. package/dist/blz-rds-mysql/execute-query.d.ts +11 -0
  290. package/dist/blz-rds-mysql/execute-query.js +1 -0
  291. package/dist/blz-rds-mysql/index.d.ts +9 -0
  292. package/dist/blz-rds-mysql/index.js +1 -0
  293. package/dist/blz-rds-mysql/stored-procedure.d.ts +19 -0
  294. package/dist/blz-rds-mysql/stored-procedure.js +1 -0
  295. package/dist/blz-rds-mysqlx/base.d.ts +83 -0
  296. package/dist/blz-rds-mysqlx/base.js +1 -0
  297. package/dist/blz-rds-mysqlx/connection-manager.d.ts +6 -0
  298. package/dist/blz-rds-mysqlx/connection-manager.js +1 -0
  299. package/dist/blz-rds-mysqlx/execute-bulk-insert.d.ts +2 -0
  300. package/dist/blz-rds-mysqlx/execute-bulk-insert.js +1 -0
  301. package/dist/blz-rds-mysqlx/execute-bulk-merge.d.ts +2 -0
  302. package/dist/blz-rds-mysqlx/execute-bulk-merge.js +1 -0
  303. package/dist/blz-rds-mysqlx/execute-non-query.d.ts +4 -0
  304. package/dist/blz-rds-mysqlx/execute-non-query.js +1 -0
  305. package/dist/blz-rds-mysqlx/execute-query.d.ts +7 -0
  306. package/dist/blz-rds-mysqlx/execute-query.js +1 -0
  307. package/dist/blz-rds-mysqlx/index.d.ts +9 -0
  308. package/dist/blz-rds-mysqlx/index.js +1 -0
  309. package/dist/blz-rds-mysqlx/stored-procedure.d.ts +20 -0
  310. package/dist/blz-rds-mysqlx/stored-procedure.js +1 -0
  311. package/dist/blz-rds-oracle/index.d.ts +25 -0
  312. package/dist/blz-rds-oracle/index.js +1 -0
  313. package/dist/blz-rds-postgres/base.d.ts +94 -0
  314. package/dist/blz-rds-postgres/base.js +1 -0
  315. package/dist/blz-rds-postgres/connection-manager.d.ts +6 -0
  316. package/dist/blz-rds-postgres/connection-manager.js +1 -0
  317. package/dist/blz-rds-postgres/execute-bulk-insert.d.ts +5 -0
  318. package/dist/blz-rds-postgres/execute-bulk-insert.js +1 -0
  319. package/dist/blz-rds-postgres/execute-bulk-merge.d.ts +4 -0
  320. package/dist/blz-rds-postgres/execute-bulk-merge.js +1 -0
  321. package/dist/blz-rds-postgres/execute-non-query.d.ts +12 -0
  322. package/dist/blz-rds-postgres/execute-non-query.js +1 -0
  323. package/dist/blz-rds-postgres/execute-query.d.ts +4 -0
  324. package/dist/blz-rds-postgres/execute-query.js +1 -0
  325. package/dist/blz-rds-postgres/index.d.ts +9 -0
  326. package/dist/blz-rds-postgres/index.js +1 -0
  327. package/dist/blz-rds-postgres/result-set.js +1 -0
  328. package/dist/blz-rds-postgres/stored-procedure.d.ts +19 -0
  329. package/dist/blz-rds-postgres/stored-procedure.js +1 -0
  330. package/dist/blz-redis/index.d.ts +31 -0
  331. package/dist/blz-redis/index.js +1 -0
  332. package/dist/blz-redis/lib/redisCache.d.ts +33 -0
  333. package/dist/blz-redis/lib/redisCache.js +1 -0
  334. package/dist/blz-regex/index.d.ts +3 -0
  335. package/dist/blz-regex/index.js +1 -0
  336. package/dist/blz-security/__test__/autorization.test.js +1 -0
  337. package/dist/blz-security/__test__/autorizationKpn.test.js +1 -0
  338. package/dist/blz-security/__test__/orderManagement.test.js +1 -0
  339. package/dist/blz-security/__test__/secureUrl.test.js +1 -0
  340. package/dist/blz-security/__test__/solveMergeRule.test.js +1 -0
  341. package/dist/blz-security/__test__/sqlInjectionGuard.test.js +1 -0
  342. package/dist/blz-security/__test__/xssGuard.test.js +1 -0
  343. package/dist/blz-security/authorizationService.d.ts +42 -0
  344. package/dist/blz-security/authorizationService.js +2 -0
  345. package/dist/blz-security/config/global.js +1 -0
  346. package/dist/blz-security/filescanner/index.d.ts +24 -0
  347. package/dist/blz-security/filescanner/index.js +1 -0
  348. package/dist/blz-security/helpers/consts.d.ts +28 -0
  349. package/dist/blz-security/helpers/consts.js +1 -0
  350. package/dist/blz-security/helpers/utils.d.ts +82 -0
  351. package/dist/blz-security/helpers/utils.js +1 -0
  352. package/dist/blz-security/implementations/cache.d.ts +58 -0
  353. package/dist/blz-security/implementations/cache.js +1 -0
  354. package/dist/blz-security/implementations/oidc.d.ts +100 -0
  355. package/dist/blz-security/implementations/oidc.js +1 -0
  356. package/dist/blz-security/implementations/pkceCacheStore.d.ts +2 -0
  357. package/dist/blz-security/implementations/pkceCacheStore.js +1 -0
  358. package/dist/blz-security/implementations/saml.js +1 -0
  359. package/dist/blz-security/implementations/uma.d.ts +31 -0
  360. package/dist/blz-security/implementations/uma.js +1 -0
  361. package/dist/blz-security/implementations/webAuthn.js +1 -0
  362. package/dist/blz-security/implementations/wstg.js +1 -0
  363. package/dist/blz-security/index.d.ts +4 -0
  364. package/dist/blz-security/index.js +2 -0
  365. package/dist/blz-security/lab/index.js +1 -0
  366. package/dist/blz-security/middleware/HapiServerAzureAd.d.ts +26 -0
  367. package/dist/blz-security/middleware/HapiServerAzureAd.js +1 -0
  368. package/dist/blz-security/middleware/HapiServerKeycloak.d.ts +47 -0
  369. package/dist/blz-security/middleware/HapiServerKeycloak.js +1 -0
  370. package/dist/blz-security/middleware/HapiServerSimToken.d.ts +13 -0
  371. package/dist/blz-security/middleware/HapiServerSimToken.js +1 -0
  372. package/dist/blz-security/middleware/hapi.d.ts +14 -0
  373. package/dist/blz-security/middleware/hapi.js +1 -0
  374. package/dist/blz-security/middleware/hapiServer.js +1 -0
  375. package/dist/blz-security/navigationMemoryRepository.d.ts +6 -0
  376. package/dist/blz-security/navigationMemoryRepository.js +1 -0
  377. package/dist/blz-security/navigationMongoDbRepository.d.ts +15 -0
  378. package/dist/blz-security/navigationMongoDbRepository.js +1 -0
  379. package/dist/blz-security/secureUrlService.d.ts +7 -0
  380. package/dist/blz-security/secureUrlService.js +1 -0
  381. package/dist/blz-security/securityService.d.ts +72 -0
  382. package/dist/blz-security/securityService.js +1 -0
  383. package/dist/blz-security/sqlInjectionGuard.d.ts +37 -0
  384. package/dist/blz-security/sqlInjectionGuard.js +1 -0
  385. package/dist/blz-security/xssGuard.d.ts +14 -0
  386. package/dist/blz-security/xssGuard.js +1 -0
  387. package/dist/blz-strings/index.d.ts +42 -0
  388. package/dist/blz-strings/index.js +1 -0
  389. package/dist/blz-uuid/index.d.ts +1 -0
  390. package/dist/blz-uuid/index.js +1 -0
  391. package/dist/blz-yaml/index.d.ts +2 -0
  392. package/dist/blz-yaml/index.js +1 -0
  393. package/dist/index.d.ts +34 -0
  394. package/dist/index.js +1 -0
  395. package/dist/process-managers/index.d.ts +25 -0
  396. package/dist/process-managers/index.js +1 -0
  397. package/package.json +52 -41
  398. package/blz-base/health/index.js +0 -215
  399. package/blz-base/index.js +0 -1466
  400. package/blz-cache/LruCache.js +0 -44
  401. package/blz-cache/index.js +0 -29
  402. package/blz-config/index.js +0 -434
  403. package/blz-core/index.js +0 -364
  404. package/blz-cryptography/index.js +0 -54
  405. package/blz-datetimes/index.js +0 -356
  406. package/blz-file/example.dat +0 -2545
  407. package/blz-file/fileService.js +0 -205
  408. package/blz-file/index.js +0 -94
  409. package/blz-file/index.test.js +0 -31
  410. package/blz-file/lab.js +0 -33
  411. package/blz-hazelcast/index.js +0 -189
  412. package/blz-hazelcast/lib/credentials.js +0 -25
  413. package/blz-hazelcast/lib/credentialsFactory.js +0 -12
  414. package/blz-hazelcast/lib/hazelcastCache.js +0 -234
  415. package/blz-iterable/index.js +0 -446
  416. package/blz-json-schema/index.js +0 -11
  417. package/blz-jwt/index.js +0 -121
  418. package/blz-kafka/index.js +0 -522
  419. package/blz-math/index.js +0 -131
  420. package/blz-mongodb/index.js +0 -326
  421. package/blz-rds/__test__/scape.test.js +0 -58
  422. package/blz-rds/blz-rds-executor.js +0 -578
  423. package/blz-rds/blz-rds-helper.js +0 -310
  424. package/blz-rds/commands/core/add.js +0 -13
  425. package/blz-rds/commands/core/and.js +0 -18
  426. package/blz-rds/commands/core/asc.js +0 -10
  427. package/blz-rds/commands/core/avg.js +0 -10
  428. package/blz-rds/commands/core/column-ref.js +0 -8
  429. package/blz-rds/commands/core/count-distinct.js +0 -10
  430. package/blz-rds/commands/core/count.js +0 -10
  431. package/blz-rds/commands/core/decimal.js +0 -8
  432. package/blz-rds/commands/core/desc.js +0 -10
  433. package/blz-rds/commands/core/distinct.js +0 -10
  434. package/blz-rds/commands/core/divide.js +0 -11
  435. package/blz-rds/commands/core/embedded-exists.js +0 -17
  436. package/blz-rds/commands/core/embedded-select.js +0 -17
  437. package/blz-rds/commands/core/equals.js +0 -9
  438. package/blz-rds/commands/core/false.js +0 -8
  439. package/blz-rds/commands/core/greater-or-equal.js +0 -9
  440. package/blz-rds/commands/core/greater.js +0 -9
  441. package/blz-rds/commands/core/in.js +0 -9
  442. package/blz-rds/commands/core/integer.js +0 -8
  443. package/blz-rds/commands/core/is-not-null.js +0 -11
  444. package/blz-rds/commands/core/is-null-or-value.js +0 -10
  445. package/blz-rds/commands/core/is-null.js +0 -11
  446. package/blz-rds/commands/core/less-or-equal.js +0 -9
  447. package/blz-rds/commands/core/less-unary.js +0 -12
  448. package/blz-rds/commands/core/less.js +0 -9
  449. package/blz-rds/commands/core/like.js +0 -12
  450. package/blz-rds/commands/core/max.js +0 -10
  451. package/blz-rds/commands/core/min.js +0 -10
  452. package/blz-rds/commands/core/multiply.js +0 -13
  453. package/blz-rds/commands/core/not-equals.js +0 -9
  454. package/blz-rds/commands/core/not-in.js +0 -9
  455. package/blz-rds/commands/core/not.js +0 -13
  456. package/blz-rds/commands/core/null.js +0 -8
  457. package/blz-rds/commands/core/nvl.js +0 -11
  458. package/blz-rds/commands/core/or.js +0 -13
  459. package/blz-rds/commands/core/parameter.js +0 -34
  460. package/blz-rds/commands/core/remainder.js +0 -16
  461. package/blz-rds/commands/core/string.js +0 -8
  462. package/blz-rds/commands/core/subtract.js +0 -13
  463. package/blz-rds/commands/core/sum.js +0 -10
  464. package/blz-rds/commands/core/true.js +0 -8
  465. package/blz-rds/commands/core/tuple.js +0 -13
  466. package/blz-rds/commands/datetimes/add-days.js +0 -11
  467. package/blz-rds/commands/datetimes/add-hours.js +0 -11
  468. package/blz-rds/commands/datetimes/add-milliseconds.js +0 -11
  469. package/blz-rds/commands/datetimes/add-minutes.js +0 -11
  470. package/blz-rds/commands/datetimes/add-months.js +0 -11
  471. package/blz-rds/commands/datetimes/add-seconds.js +0 -11
  472. package/blz-rds/commands/datetimes/add-years.js +0 -11
  473. package/blz-rds/commands/datetimes/date-diff.js +0 -11
  474. package/blz-rds/commands/datetimes/date.js +0 -12
  475. package/blz-rds/commands/datetimes/datetime-diff.js +0 -11
  476. package/blz-rds/commands/datetimes/datetime.js +0 -15
  477. package/blz-rds/commands/datetimes/day.js +0 -10
  478. package/blz-rds/commands/datetimes/hour.js +0 -10
  479. package/blz-rds/commands/datetimes/millisecond.js +0 -10
  480. package/blz-rds/commands/datetimes/minute.js +0 -10
  481. package/blz-rds/commands/datetimes/month-text.js +0 -10
  482. package/blz-rds/commands/datetimes/month.js +0 -10
  483. package/blz-rds/commands/datetimes/now.js +0 -9
  484. package/blz-rds/commands/datetimes/second.js +0 -10
  485. package/blz-rds/commands/datetimes/subtract-days.js +0 -11
  486. package/blz-rds/commands/datetimes/subtract-hours.js +0 -11
  487. package/blz-rds/commands/datetimes/subtract-milliseconds.js +0 -11
  488. package/blz-rds/commands/datetimes/subtract-minutes.js +0 -11
  489. package/blz-rds/commands/datetimes/subtract-seconds.js +0 -11
  490. package/blz-rds/commands/datetimes/time-diff.js +0 -11
  491. package/blz-rds/commands/datetimes/time.js +0 -13
  492. package/blz-rds/commands/datetimes/today.js +0 -9
  493. package/blz-rds/commands/datetimes/week-day-text.js +0 -10
  494. package/blz-rds/commands/datetimes/week-day.js +0 -10
  495. package/blz-rds/commands/datetimes/week.js +0 -10
  496. package/blz-rds/commands/datetimes/year.js +0 -10
  497. package/blz-rds/commands/math/abs.js +0 -10
  498. package/blz-rds/commands/math/acos.js +0 -10
  499. package/blz-rds/commands/math/asin.js +0 -10
  500. package/blz-rds/commands/math/atan.js +0 -10
  501. package/blz-rds/commands/math/atan2.js +0 -11
  502. package/blz-rds/commands/math/ceil.js +0 -10
  503. package/blz-rds/commands/math/cos.js +0 -10
  504. package/blz-rds/commands/math/cosh.js +0 -10
  505. package/blz-rds/commands/math/exp.js +0 -10
  506. package/blz-rds/commands/math/floor.js +0 -10
  507. package/blz-rds/commands/math/log.js +0 -18
  508. package/blz-rds/commands/math/log10.js +0 -10
  509. package/blz-rds/commands/math/pow.js +0 -11
  510. package/blz-rds/commands/math/random.js +0 -9
  511. package/blz-rds/commands/math/round.js +0 -18
  512. package/blz-rds/commands/math/sign.js +0 -10
  513. package/blz-rds/commands/math/sin.js +0 -10
  514. package/blz-rds/commands/math/sinh.js +0 -10
  515. package/blz-rds/commands/math/sqrt.js +0 -10
  516. package/blz-rds/commands/math/tan.js +0 -10
  517. package/blz-rds/commands/math/tanh.js +0 -10
  518. package/blz-rds/commands/math/trunc.js +0 -18
  519. package/blz-rds/commands/strings/concat.js +0 -20
  520. package/blz-rds/commands/strings/contains.js +0 -12
  521. package/blz-rds/commands/strings/ends-with.js +0 -12
  522. package/blz-rds/commands/strings/index-of.js +0 -11
  523. package/blz-rds/commands/strings/is-null-or-empty.js +0 -11
  524. package/blz-rds/commands/strings/is-null-or-white-space.js +0 -11
  525. package/blz-rds/commands/strings/join.js +0 -22
  526. package/blz-rds/commands/strings/last-index-of.js +0 -11
  527. package/blz-rds/commands/strings/length.js +0 -10
  528. package/blz-rds/commands/strings/pad-left.js +0 -20
  529. package/blz-rds/commands/strings/pad-right.js +0 -20
  530. package/blz-rds/commands/strings/replace.js +0 -12
  531. package/blz-rds/commands/strings/starts-with.js +0 -12
  532. package/blz-rds/commands/strings/substring.js +0 -12
  533. package/blz-rds/commands/strings/to-lower.js +0 -10
  534. package/blz-rds/commands/strings/to-upper.js +0 -10
  535. package/blz-rds/commands/strings/trim-end.js +0 -10
  536. package/blz-rds/commands/strings/trim-start.js +0 -10
  537. package/blz-rds/commands/strings/trim.js +0 -10
  538. package/blz-rds/index.js +0 -744
  539. package/blz-rds-mysql/base.js +0 -857
  540. package/blz-rds-mysql/connection-manager.js +0 -129
  541. package/blz-rds-mysql/execute-bulk-insert.js +0 -35
  542. package/blz-rds-mysql/execute-bulk-merge.js +0 -45
  543. package/blz-rds-mysql/execute-non-query.js +0 -34
  544. package/blz-rds-mysql/execute-query.js +0 -50
  545. package/blz-rds-mysql/index.js +0 -41
  546. package/blz-rds-mysql/stored-procedure.js +0 -207
  547. package/blz-rds-mysqlx/base.js +0 -846
  548. package/blz-rds-mysqlx/connection-manager.js +0 -141
  549. package/blz-rds-mysqlx/execute-bulk-insert.js +0 -35
  550. package/blz-rds-mysqlx/execute-bulk-merge.js +0 -45
  551. package/blz-rds-mysqlx/execute-non-query.js +0 -29
  552. package/blz-rds-mysqlx/execute-query.js +0 -39
  553. package/blz-rds-mysqlx/index.js +0 -41
  554. package/blz-rds-mysqlx/stored-procedure.js +0 -179
  555. package/blz-rds-oracle/index.js +0 -539
  556. package/blz-rds-postgres/base.js +0 -861
  557. package/blz-rds-postgres/connection-manager.js +0 -225
  558. package/blz-rds-postgres/execute-bulk-insert.js +0 -81
  559. package/blz-rds-postgres/execute-bulk-merge.js +0 -93
  560. package/blz-rds-postgres/execute-non-query.js +0 -23
  561. package/blz-rds-postgres/execute-query.js +0 -37
  562. package/blz-rds-postgres/index.js +0 -41
  563. package/blz-rds-postgres/result-set.js +0 -51
  564. package/blz-rds-postgres/stored-procedure.js +0 -116
  565. package/blz-redis/index.js +0 -217
  566. package/blz-redis/lib/redisCache.js +0 -265
  567. package/blz-regex/index.js +0 -25
  568. package/blz-security/.eslintrc.js +0 -15
  569. package/blz-security/__test__/AuthorizationKpn.yaml +0 -1149
  570. package/blz-security/__test__/FinancingSetting.yaml +0 -177
  571. package/blz-security/__test__/KpnConfigPortal.yaml +0 -330
  572. package/blz-security/__test__/OrderManagement.yaml +0 -5190
  573. package/blz-security/__test__/Security.yaml +0 -128
  574. package/blz-security/__test__/autorization.test.js +0 -105
  575. package/blz-security/__test__/autorizationKpn.test.js +0 -42
  576. package/blz-security/__test__/orderManagement.test.js +0 -26
  577. package/blz-security/__test__/secureUrl.test.js +0 -79
  578. package/blz-security/__test__/solveMergeRule.test.js +0 -109
  579. package/blz-security/__test__/sqlInjectionGuard.test.js +0 -203
  580. package/blz-security/__test__/xssGuard.test.js +0 -204
  581. package/blz-security/authorizationService.js +0 -537
  582. package/blz-security/config/global.js +0 -8
  583. package/blz-security/config/welcome +0 -8
  584. package/blz-security/doc/README.md +0 -75
  585. package/blz-security/filescanner/index.js +0 -46
  586. package/blz-security/helpers/consts.js +0 -229
  587. package/blz-security/helpers/utils.js +0 -267
  588. package/blz-security/implementations/cache.js +0 -90
  589. package/blz-security/implementations/oidc.js +0 -404
  590. package/blz-security/implementations/pkceCacheStore.js +0 -23
  591. package/blz-security/implementations/saml.js +0 -10
  592. package/blz-security/implementations/uma.js +0 -63
  593. package/blz-security/implementations/webAuthn.js +0 -9
  594. package/blz-security/implementations/wstg.js +0 -72
  595. package/blz-security/index.js +0 -77
  596. package/blz-security/lab/index.js +0 -43
  597. package/blz-security/middleware/HapiServerAzureAd.js +0 -681
  598. package/blz-security/middleware/HapiServerKeycloak.js +0 -876
  599. package/blz-security/middleware/HapiServerSimToken.js +0 -286
  600. package/blz-security/middleware/hapi.js +0 -555
  601. package/blz-security/middleware/hapiServer.js +0 -1008
  602. package/blz-security/navigationMemoryRepository.js +0 -15
  603. package/blz-security/navigationMongoDbRepository.js +0 -73
  604. package/blz-security/secureUrlService.js +0 -47
  605. package/blz-security/securityService.js +0 -413
  606. package/blz-security/sqlInjectionGuard.js +0 -162
  607. package/blz-security/templates/forbidden.html +0 -0
  608. package/blz-security/templates/session-iframe-azure-ad.html +0 -7
  609. package/blz-security/templates/session-iframe.html +0 -73
  610. package/blz-security/templates/unauthorized.html +0 -1
  611. package/blz-security/xssGuard.js +0 -87
  612. package/blz-strings/index.js +0 -167
  613. package/blz-uuid/index.js +0 -7
  614. package/blz-yaml/index.js +0 -19
  615. package/index.js +0 -84
  616. package/process-managers/index.js +0 -422
  617. /package/{blz-rds-mysql → dist/blz-rds-mysql}/syntaxis.json +0 -0
  618. /package/{blz-rds-mysqlx → dist/blz-rds-mysqlx}/syntaxis.json +0 -0
  619. /package/{blz-rds-oracle → dist/blz-rds-oracle}/syntaxis.json +0 -0
  620. /package/{blz-rds-postgres → dist/blz-rds-postgres}/syntaxis.json +0 -0
  621. /package/{blz-security → dist/blz-security}/lab/ConfigurationAdmin.agent.json +0 -0
  622. /package/{blz-security → dist/blz-security}/lab/frontend.json +0 -0
  623. /package/{blz-security → dist/blz-security}/lab/result.json +0 -0
  624. /package/{blz-security → dist/blz-security}/lab/resultOnWeb.json +0 -0
  625. /package/{blz-security → dist/blz-security}/lab/rules.json +0 -0
  626. /package/{blz-security → dist/blz-security}/lab/securityRules.json +0 -0
@@ -1,203 +0,0 @@
1
- /* eslint-disable no-undef */
2
- const SqlInjectionGuard = require('../sqlInjectionGuard') // Adjust path as needed
3
- const pino = require('pino')
4
-
5
- describe('SqlInjectionGuard', () => {
6
- let guard
7
-
8
- beforeEach(() => {
9
- delete process.env.blz_securityApiSanitizeOnlyLog
10
- delete process.env.blz_securityApiSanitizeAllowedInputRegex
11
- guard = new SqlInjectionGuard(pino({ level: 'silent' }))
12
- })
13
-
14
- test('accepts safe simple strings', () => {
15
- const params = [{ name: 'username', value: 'john_doe' }]
16
- expect(() => guard.validateParamList(params)).not.toThrow()
17
- })
18
-
19
- test('accepts safe identifiers with dots and dashes', () => {
20
- const params = [{ name: 'email', value: 'test.user-name' }]
21
- expect(() => guard.validateParamList(params)).not.toThrow()
22
- })
23
-
24
- test('blocks basic SQL injection attempt', () => {
25
- const params = [{ name: 'query', value: "' OR 1=1 --" }]
26
- expect(() => guard.validateParamList(params)).toThrow()
27
- })
28
-
29
- test('blocks semicolon followed by DROP statement', () => {
30
- const sql = "SELECT * FROM users; DROP TABLE users;"
31
- expect(() => guard.validateRawSql(sql)).toThrow()
32
- })
33
-
34
- test('blocks string with pg_sleep function', () => {
35
- const sql = "SELECT pg_sleep(10);"
36
- expect(() => guard.validateRawSql(sql)).toThrow()
37
- })
38
-
39
- test('blocks nested object with SQLi', () => {
40
- const obj = {
41
- user: {
42
- comment: "'; DROP TABLE users;"
43
- }
44
- }
45
- expect(() => guard.validateObject(obj)).toThrow()
46
- })
47
-
48
- test('blocks deep object traversal with SQLi', () => {
49
- const obj = {
50
- a: {
51
- b: {
52
- c: "' OR '1'='1"
53
- }
54
- }
55
- }
56
- expect(() => guard.validateObject(obj)).toThrow()
57
- })
58
-
59
- test('does not block number values', () => {
60
- const params = [{ name: 'count', value: 12345 }]
61
- expect(() => guard.validateParamList(params)).not.toThrow()
62
- })
63
-
64
- test('does not block boolean values', () => {
65
- const params = [{ name: 'active', value: true }]
66
- expect(() => guard.validateParamList(params)).not.toThrow()
67
- })
68
-
69
- test('does not block empty string', () => {
70
- const params = [{ name: 'description', value: '' }]
71
- expect(() => guard.validateParamList(params)).not.toThrow()
72
- })
73
-
74
- test('allows <script> input when custom regex allows all characters', () => {
75
- process.env.blz_securityApiSanitizeAllowedInputRegex = '^.{1,100}$'
76
- guard = new SqlInjectionGuard(pino({ level: 'silent' }))
77
- const params = [{ name: 'comment', value: '<script>alert("x")</script>' }]
78
- expect(() => guard.validateParamList(params)).not.toThrow()
79
- })
80
-
81
- test('blocks SQL injection even if allowedInputRegex allows special characters', () => {
82
- process.env.blz_securityApiSanitizeAllowedInputRegex = '^.{1,100}$'
83
- guard = new SqlInjectionGuard(pino({ level: 'silent' }))
84
- const params = [{ name: 'input', value: "'; DROP TABLE users;" }]
85
- expect(() => guard.validateParamList(params)).toThrow()
86
- })
87
-
88
- test('only logs when onlyLog mode is enabled', () => {
89
- process.env.blz_securityApiSanitizeOnlyLog = 'true'
90
- guard = new SqlInjectionGuard(pino({ level: 'silent' }))
91
- const params = [{ name: 'input', value: "' OR 'x'='x" }]
92
- expect(() => guard.validateParamList(params)).not.toThrow()
93
- })
94
-
95
- test('ignores non-string values in validateObject', () => {
96
- const obj = {
97
- safe: true,
98
- count: 42,
99
- list: [1, 2, 3],
100
- nested: {
101
- values: [false, null, undefined]
102
- }
103
- }
104
- expect(() => guard.validateObject(obj)).not.toThrow()
105
- })
106
-
107
- test('blocks string containing EXEC', () => {
108
- const sql = "EXEC('SELECT * FROM users')"
109
- expect(() => guard.validateRawSql(sql)).toThrow()
110
- })
111
-
112
- test('blocks string using dbms_lock.sleep', () => {
113
- const sql = "SELECT dbms_lock.sleep(10) FROM dual"
114
- expect(() => guard.validateRawSql(sql)).toThrow()
115
- })
116
-
117
- test('does not block special characters like = or &', () => {
118
- const params = [{ name: 'filter', value: 'key=value&x=1' }]
119
- expect(() => guard.validateParamList(params)).not.toThrow()
120
- })
121
-
122
- test('does not block values containing HTML but not SQL', () => {
123
- const params = [{ name: 'html', value: '<b>bold</b>' }]
124
- expect(() => guard.validateParamList(params)).not.toThrow()
125
- })
126
-
127
- test('throws on invalid JSON pattern in env', () => {
128
- process.env.blz_securityApiSanitizeDangerousParamPatterns = 'INVALID_JSON'
129
- expect(() => {
130
- new SqlInjectionGuard(pino({ level: 'silent' }))
131
- }).not.toThrow()
132
- })
133
-
134
- test('blocks /* comment pattern in param', () => {
135
- const params = [{ name: 'q', value: '*/ DROP TABLE' }]
136
- expect(() => guard.validateParamList(params)).toThrow()
137
- })
138
-
139
- test('blocks SELECT-FROM pattern', () => {
140
- const params = [{ name: 'sql', value: 'SELECT * FROM users' }]
141
- expect(() => guard.validateParamList(params)).toThrow()
142
- })
143
-
144
- test('blocks INSERT INTO pattern', () => {
145
- const params = [{ name: 'payload', value: 'INSERT INTO table VALUES (1)' }]
146
- expect(() => guard.validateParamList(params)).toThrow()
147
- })
148
-
149
- test('blocks UPDATE SET = pattern', () => {
150
- const params = [{ name: 'input', value: 'UPDATE table SET name="x"' }]
151
- expect(() => guard.validateParamList(params)).toThrow()
152
- })
153
-
154
- test('blocks DELETE FROM pattern', () => {
155
- const params = [{ name: 'delete', value: 'DELETE FROM users' }]
156
- expect(() => guard.validateParamList(params)).toThrow()
157
- })
158
-
159
- test('allows input with only < at the end', () => {
160
- const params = [{ name: 'input', value: 'allowed<' }]
161
- expect(() => guard.validateParamList(params)).not.toThrow()
162
- })
163
-
164
- test('allows input with only > at the beginning', () => {
165
- const params = [{ name: 'input', value: '>allowed' }]
166
- expect(() => guard.validateParamList(params)).not.toThrow()
167
- })
168
-
169
- test('blocks OR with LIKE pattern', () => {
170
- const params = [{ name: 'search', value: "' OR name LIKE '%admin%'" }]
171
- expect(() => guard.validateParamList(params)).toThrow()
172
- })
173
-
174
- test('blocks AND with LIKE pattern', () => {
175
- const params = [{ name: 'search', value: "' AND role LIKE '%user%'" }]
176
- expect(() => guard.validateParamList(params)).toThrow()
177
- })
178
-
179
- test('blocks UNION SELECT statement', () => {
180
- const params = [{ name: 'payload', value: "' UNION SELECT password FROM users --" }]
181
- expect(() => guard.validateParamList(params)).toThrow()
182
- })
183
-
184
- test('blocks complex obfuscated SQL injection', () => {
185
- const params = [{ name: 'value', value: "admin'/**/OR/**/'1'='1" }]
186
- expect(() => guard.validateParamList(params)).toThrow()
187
- })
188
-
189
- test('does not block input that looks like markup but is valid by whitelist', () => {
190
- const params = [{ name: 'input', value: 'example>' }]
191
- expect(() => guard.validateParamList(params)).not.toThrow()
192
- })
193
-
194
- // test('blocks expression with encoded SQL keywords', () => {
195
- // const params = [{ name: 'x', value: '%53%45%4C%45%43%54 * FROM users' }] // SELECT
196
- // expect(() => guard.validateParamList(params)).toThrow()
197
- // })
198
-
199
- test('does not block input with common punctuation', () => {
200
- const params = [{ name: 'text', value: 'Hello, world! How are you?' }]
201
- expect(() => guard.validateParamList(params)).not.toThrow()
202
- })
203
- })
@@ -1,204 +0,0 @@
1
- const XssGuard = require('../xssGuard');
2
- const logger = require('pino');
3
-
4
- describe('XssGuard', () => {
5
- let guard;
6
-
7
- beforeEach(() => {
8
- guard = new XssGuard(logger({ level: 'silent' }));
9
- });
10
-
11
-
12
- test('sanitizes buffer as String', () => {
13
- const input = {"zipBinaryString":"PK\u0003\u0004\u0014\u0000\b\u0000\b\u0000݄îZ\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000:\u0000\u0000\u0000criteria-set-11-exported-2025-07-14T16:38:58.967Z1073.jsoníÝmS\u001ai¢\u0006à¿bñéLU3E7/B¾ù‚ÆZ\u0010J\u00187™ÍVÊ\u0018vŽg3š£fÏLmí?\u0005´³‰Aeiºy€ë›±Û\u0006ZáÊs?Ý÷óÏÒåíÕýèöêb0º/½úç×ÿ<ùXz\u0015ÇQéîþâþË]éU©}º·ßi\u001f–¢Òõů£Ò«R÷âöê®Ë;\u001f.îF\u001fwn®w\u0006¿Þü}´3\u001cÝÝï4wÊ;ÿuõëç›ÛûÑÇ\u001f¾ùG)*}\u001cÝ]Þ^}¾¿º¹.½*=þ±ÑoÓ=LJL*I­\\i–+É0Ž_ÅÍWIëÇÝVóçhçáx÷J^Õv_%\u001f\u001bÕúÏ?Ì>\\«\u001c7†IåU%~U¯ÿب$3\u000f÷Ç^»¯âƏI¥ñó\u000f¥Eœ¢Ò«¿üq¾n®'g«Ö¬D³NáÕÝÞçϟ®./>|\u001aŸ·áÙOíRTú|q;º¾?øú\b×_>}\u001aïÞþíòӗ»éÙI÷þp;ºøûǛÿ›~kït°w0<靖¢ÒßnGÿûet}ùûð÷ÏãÃ\u001fîtޖ¢Òè\u001fãÃß|\u001cïM¹R)¿)ÿ¹wtôþðaÛá7¿…?ŸHùæoÛ\u0019ïpùåöv|̓»›ñ¯þ§³RTº¹ý%=\\y¼ÇíèãÕýñ§½Ë˛/×÷éw?Ž>|ÿÍ«»£«Ëû«û«›/w\u00077×\u001f¯¦\u000f9}µ\u0017Ó]ÇOþ»m÷·\u0017×w\u0017—ão=Ú^úË»ÒôÕ¼+ýµ\u0014•în¾Ü^Žf\u001eä×˿f\u001fÿãèÃýÍí`ò\u0017~t{óë³;\fožÞüËèù\u001fÿeôäOŸ]Ýý}üäž9ÀÃ.O?ƒÑ/¿Ž®ïŸ{\u000eÓ=ž<Âá—ëë«ë_ž9BºÇŒ#܎ÿš¾Ì>ù£ß>®ïfoKóϜþoö˜ñÈÿÞþÄ/àë\u001džþùg\u0005öyæY<óKøv—§ñܯáÛ]f\u001cã«wË3çô»½f=›OŸn./^8Ðãf\u001cçòËÝýͯãÓ\u0016?³-yf[õ™mµg¶Õ¿Ûvu·ÿÇ\u0007Áàó§«ñ‡ÓÑ^gО|@\u001düû™>·1yncõ¹µç6Ö\u001fo¼\u001d}\u001a>ùÙ7~=ÿоÃg·U\b>û?\u001dü©=œÛV‹;~þð¨3œþ4øÃ\u001fþl†?Í5\u0018ü\u001c¼„ÐÁ:!t`ð\u0003\u001føÀ\u0007>»a\u000f~¸cðÃ\u001fþðgCýi\u0004ëÏÑéÁûãÙü\u001c]]_\\_^]ÿ²s<º\u001eÝ^]î\u001cL€Y\u0013‹&¯\fE(BÑ:R4~\u000fþ©Û›¾\u0005‰´l‘ê\u0001‹t8¿H‡cPÖ\u0006¤C \u0001\tH@\u0002Òw Õž\u001f2N2U„#\u001cáh;8ª†Î‘A\u0012hD#\u001amFIØ\u001auú{o{GG³=z=øÓNÿâ÷ñe\fÿu?\u001aßHuqûû\u000fkÂQúʀ\u0004$ ¹’Dñò%zx>\u000bO\u001cí'ŽNËGy0\u0014WwëñLŠ’¤ÒªT*³@J’jeºé\t–Æ´ŒOÒԕÅy:9=|ð®\u0014½+íu:½éWý÷‡íý“áäëL~™uâ\u0018ÇÂulüþ\u001ctž¼Ñ_·÷:Ãד/\u0007o\u0007ÃvwçätØ>>Û\u001bö֟\u0004\u0007íÇ£3î=ó©:9i\u000fŸ¯-Ͳ0ð>‡þÛîðýÉa{¯3[Ä«ñ¦Ï\u0017¿ßfïB\b\bÇ'ÿ¤Ó99M#Àçõû÷\u000b4>ã\u001a׌϶~|Ö\b·æ!ܐp2ï4>éY‡cF[T¢\u0012•¨ôH¥f€©áYž©a³Y­\u0005›\u001ab\nS˜ÚàPð +ê[\u001c«ÝÐ/¶è\u001d½?\u0019\ffƒÕ¹¹¸NÅZ›K,¦¯G†‡!\f¹èC©C€£<\u0004\u0019\u0011¡\bE(Ú\nŠÂm‹p‘\u0003èD'ÓJ[ÈR­˜i¥…£ºÉÇv\u000e˜v®®?Ü|¹þø\"OoÞ¼yóļÒÃäÑwNŕøùy¥—´:8k\u001fžL®#}™«éK–å!\nQˆBTÆ\u001e‰¸V¯åpåCR+ÿ¹|”Þ(4Û§þø9|¼ºÜ9¹þÇÍÕåh§¼3ý]í|¸øtq}9ÚùòùãÅýè.ÃÅ\u0010ñ\u0004¦Õ^\fñÇÝR‹\u000e®ŽÎ÷\f®\u0002—kÒMv2\u001c¶OßÿqåËӐ½°;×^vmòÖº¹»\u001f}üîOœð¯÷Î?,Üï?\u001b\u0016ºŠ\"+|\tøÀ\u0007>ð/(øþtÜ\u0001_žðÅà\u0003\u001føÀ\u0007¾ à\u001böúàË\u0013¾\nøÀ\u0007>ð/(øúƒ!ør„¯Þ\u0002\u001føÀ\u0007>ð\u0005\u0005_§}\f¾<ák‚\u000f|à\u0003\u001føÂšãëwÁ—'|»à\u0003\u001føÀ\u0007¾°àk»¸%Wø\u001aà\u0003\u001føÀ\u0007¾ à{}¾\u000f¾<᫃\u000f|à\u0003\u001føÂ\u001añuÝǗ+|su¬<<BqÝýä#\u001fùÈ·åòEéÐ/J³Ï(ü‹Ò«_¢ôòÏ(½ÿ!Jo\u0000ŒÖï\u000eøtpµ6pfn~I\u001a9¬”]¬›O.ž\u001dWë\rnr“›Ü\f¯ù¥ˆEµÇÓ¬Tâ¤Ò¨5«²#Í\u0004˜À\u0004&0\tÌÙ`Æqe·^KâF\u0002ÌZ=\u0006&0\tL`\u0002s6˜ÆøC0Nš\u0015`Öê\u0015`\u0002\u0013˜À\u0004æºu’ŠdW\u0000f­\u0005L`\u0002\u0013˜À\u0004¦Höe0›À\u0004&0\tL`Šd_\u0006s\u0017˜À\u0004&0¹n«eˆdW\u0001f\u0003˜À\u0004&0\tL‘ìË`ց\tL`\u0002\u0013˜À\u0014ɾ\ff\r˜À\u0004&0¹në8ŠdW\u0001¦¦\u001f`\u0002\u0013˜À\u0004¦Hv\u000e05ý\u0000\u0013˜À\u0004&0E²s€©é\u0007˜À\u0004&0Ã\u0002sÒ±.’\r\u000fLM?À\u0004&0\tL‘ìË`V5ý\u0000\u0013˜À\u0004&0E²s€©é\u0007˜À\u0004&0\u0003kúéwE²!‚©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\tL‘ì\u001c`jú\u0001&0\tÌÀÀl[Þ+H05ý\u0000\u0013˜À\u0004&0E²s€©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\u0019\u0016˜¯Ï÷E²!‚©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\tL‘ìË`&š~€\tL`\u00023°9ÌnO$\u001b\"˜š~€\tL`\u0002\u0013˜\"Ù9ÀÔô\u0003L`\u0002\u0013˜À\u0014ÉÎ\u0001æ\\M?\u000f0ĊóDLb\u0012“˜Ä\\¦˜Q:™\u0019¥÷™Di\u0005P”¶³Gé™ѻҰןn?žî·ß\u000fRÜèÛ\u0011k”sâ›\u000eõ–ÌñŒ£.GãÌ5Bñò‡¯gå$)\u0012ãf³Z›q\\©¬=ƃ\tÆÑ»Ò1•©Lå5Sy\u000eU\u000fº‹ZùxÛ6ŽGk\u0004$ \u0001\tHÀ@Ç¥Ç\u001d\u0002æ)`•€\u0004$ \u0001\t\u0018¦€“¤•€ù\t˜\u0010€\u0004$ \u0001Ã\u0014p2çHÀü\u0004Œ\tH@\u0002\u0012€a\n8¹ú†€ù\tX! \u0001\tH@\u0002®íR”\u0004Ì `Ü\" \u0001\tH@\u0002®íÊ\u001f\u0004Ì\"`“€\u0004$ \u0001\t¸¶E«\u0004Ì\"à.\u0001\tH@\u0002\u0012pm{m\b˜EÀ ûi\u0010ˆ@\u0004\"\u0010Å\u0014Õ\u0004Eh>•2ù\tš½S&É£à­\u001aFÁÛ&\u0000Úá&7¹¹y7Ò[tc\u0015`ր\tL`\u0002\u0013˜À´èÆË`V\tL`\u0002\u0013˜À´èÆË`&.ºALb\u0012“˜ÄÜêE3rò4¯U3âŒm9y]\"Tu‰\u0010MiJSšº86\u0017ø²–äT›Õ\u001c†‘±aäòÖnl·\u0007à\u0003\u001fø6l•(—ö¬\u0000ÌJ\u000b˜À\u0004&0\tL—ö¼\ff\u0013˜À\u0004&0\tL—ö¼\fæ.0\tL`\u0002ӕ=\"ٗÁl\u0000\u0013˜À\u0004&0)’}\u0019Ì:0\tL`\u0002\u0013˜\"ٗÁ¬\u0001\u0013˜À\u0004&0ƒ\u0002sR\u0004+’\r\u000fÌ*0\tL`\u0002\u0013˜\"ٗÁL€\tL`\u0002\u0013˜À\u0014ɾ\ff\fL`\u0002\u0013˜À\f\nÌÉ\u001a]\"ÙðÀÔô\u0003L`\u0002\u0013˜À\u0014ɾ\bfµ¥é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\u0019\u0016˜ö±H6D05ý\u0000\u0013˜À\u0004&0E²s€©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\u0019XÓO¿+’\r\u0011LM?À\u0004&0\tL‘ì\u001c`jú\u0001&0\tL`Šdç\u0000SÓ\u000f0\tL`\u0006\u0006fÛò^A‚©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\tL‘ìË`65ý\u0000\u0013˜À\u0004fX`¾>ß\u0017Ɇ\b¦¦\u001f`\u0002\u0013˜À\u0004¦Hv\u000e05ý\u0000\u0013˜À\u0004&0E²s€©é\u0007˜À\u0004&0\u0003›ÃìöD²!‚©é\u0007˜À\u0004&0)’\u0003LM?À\u0004&0\tL‘ì\u001c`ÎÕôóð\b3Ä|8OÄ$&1‰IÌeŠ\u0019¥“™QzŸI”V\u0000Ei;{”.œ\u0019½+\r{ýéöãé~ûý ō¾\u001d±F9'¾éPoÉ\u001cÏ8êr4ÎX#”\u000bÆgåj\\ ÆI<UuC1\u000e¦ï©~ïhú\u0006Þ{ÛÅ3žñ¼a\u0003ڃî¢h>Þ¶\u0003ÓÌ\u0005AõZ\u000eãÒ$1.]\u0016…ƒó½é]\u001f¾8Úßë \u0010…(\\'\n\u0003\u001aiºzèkB+\bE(B\u0011ŠP„ºžh\u0001Bw[\bE(B\u0011ŠP„ºÂh\u0011B›\bE(B\u0011ŠÐÐç4-–\u0012$¡»\bE(B\u0011ŠP„\nr\u0017!´P„\"\u0014¡\bE¨ w\u0011Bë\bE(B\u0011ŠÐÀ\tÜ\u000b*È\rÐ\u001aB\u0011ŠP„\"\u0014¡‚ÜE\b­\"\u0014¡\bE(B\u0011*È]„Ð\u0004¡\bE(B\u0011\u001a8¡“r?Anx„j'B(B\u0011ŠP„\nr\u0017\"T;\u0011B\u0011ŠP„\"T»\b¡\ríD\bE(B\u0011\u001a:¡“ÕZ\u0004¹á\u0011ª\b¡\bE(B\u0011*È]ˆPíD\bE(B\u0011ŠPAîB„j'B(B\u0011ŠÐàۉú]Anˆ„j'B(B\u0011ŠP„\nr\u0017\"T;\u0011B\u0011ŠP„\"T»\u0010¡Ú‰\u0010ŠP„\"4xBÛ\u0016;\u000b’PíD\bE(B\u0011ŠPAîB„j'B(B\u0011ŠP„\nr\u0017\"T;\u0011B\u0011ŠP„†Nèëó}An€„Öµ\u0013!\u0014¡\bE(B\u0005¹\u000b\u0011ª\b¡\bE(B\u0011*È]ˆPíD\bE(B\u0011\u001aü\\h·'È\r‘PíD\bE(B\u0011ŠPAîB„j'B(B\u0011ŠP„\nr\u0017\"t®v¢‡G˜aèÃyb(C\u0019ÊP†ækh”NŠFé].QZ[\u0014¥=ôQº°hô®4ìõ§Û§ûí÷ƒ48úvT\u001båœ\u0013§ÃÁ%\u0003=ã¨Ëñ9sõQmùCܳr\\-’çf³ZÛ\\žÚí\u0001Œa\fãuÂx\u000eL\u000fº‹\u0012ùxÛ6\u000eL\u0013ð\u000f|à\u0003_X£Ðã\u000eøò„/\u0006\u001føÀ\u0007>ð\u0005\u0005ß$N\u0005_~ðUÀ\u0007>ð\u000f|AÁ7™O\u0004_nðÕZà\u0003\u001føÀ\u0007¾ à›\\P\u0003¾üàk‚\u000f|à\u0003\u001føÖm!Lðeo\u0017|à\u0003\u001føÀ·n\u000b‡€/\u000b|\rð\u000f|à\u0003ߺ\u0015­‚/\u000b|uð\u000f|à\u0003ߺ\u0015Ӏ/\u000b|A\u0016̐|ä#Ÿ:™\\ëd‚’3Ÿâ—üàÌØü’S1[5\u000e¢˜­Vãúº»Ù99\u001dLßjýÞÑô½¶÷¶KR’’T¹©Ñæ\u0002hfn‰ë9 \u0019×´™.\u000bͳÁùÁ´Í´×;Ôf\nMhnjšu©VAhŒP„\"\u0014¡\bE¨u©\u0016!´‚P„\"\u0014¡\bE¨u©\u0016 ´ÚB(B\u0011ŠP„®!¸ w\u0015„6\u0011ŠP„\"\u0014¡\b\u0015ä.Bè.B\u0011ŠP„\"\u0014¡‚ÜE\bm \u0014¡\bE(Bׁ+Aî*\b­#\u0014¡\bE(B\u0011*È]„Ð\u001aB\u0011ŠP„\"\u0014¡‚ÜE\b­\"\u0014¡\bE(B×ÁfAî*\bÕN„P„\"\u0014¡\b\u0015ä.D¨v\"„\"\u0014¡\bE¨ w!Bµ\u0013!\u0014¡\bEhè„N–`\u0011ä\u0006Gh¢\b¡\bE(B\u0011*È]ˆPíD\bE(B\u0011ŠPAîB„j'B(B\u0011ŠÐàۉú]Anˆ„j'B(B\u0011ŠP„\nr\u0017\"T;\u0011B\u0011ŠP„\"T»\u0010¡Ú‰\u0010ŠP„\"4xBÛ\u0016;\u000b’PíD\bE(B\u0011ŠPAîB„j'B(B\u0011ŠP„\nr\u0017\"T;\u0011B\u0011ŠP„†Nèëó}Anˆ„j'B(B\u0011ŠP„\nr\u0017!4ÖN„P„\"\u0014¡\b\u0015ä.D¨v\"„\"\u0014¡\b\r~.´Û\u0013ä†H¨v\"„\"\u0014¡\bE¨ w!Bµ\u0013!\u0014¡\bE(B\u0005¹\u000b\u0011:W;ÑÃ#Ì0ôá<1”¡\fe(Có54J'E£ô.—(­-ŠÒ\u001eú(]X4zW\u001aöúÓíÇÓýöûA\u001a\u001c};ªrΉÓáà’žqÔ帜¹ú¨²ü!îYÁ<7›Õ\u001ažñŒg<‡Ëó\u001c¼\u001et\u0017Eóñ¶m\u001cªVQˆB\u0014¢\u0010…¡T;(̓Â\u0004…(D!\nQ\u00188…“\u0010\u0016…ùQ\u0018£\u0010…(D!\n\u0003§p2/‰Âü(¬ \u0010…(D!\n\u0003§pr©\u000e\ns£°ÒB!\nQˆB\u0014®ÿ¢›(ÌBa\u0013…(D!\nQ¸þ˖ 0\u000b…»(D!\nQˆÂõ/~Ea\u0016\n\u001b(D!\nQˆÂõ¯ÎAa\u0016\nƒ¬Àa!\u000bYÈB\u0016\u0016\\\u0013”¥ù”ÕäGiƶšœÊäªqùT™Ür$휜\u000e¦oµ~ïhú^Û{Û%iø’î\u001d\fOÎÛé¯l0|øÓô\u001fƒŸ\u0006ýöéa{úÿ¢ÃöÃ~/c›íˆ<V뺤J9£Øj%{;N%\u0007z“*z—FïùÞ\u0010´ \u0005­F\u001d«x\u0005Ân‚]ìb\u0017»ØÅ®•¿Šb7Æ.v±‹]ìb×jaE±[\tsµ0îr—»ÜåîFº[ð\na9©œÓ\u0012aI«\u0015àEWg\u0005›¼Ù—/3™ÉLf²Ûrà³\u0019$Ÿ…^³œÄS\u0007]³\fT \u0002Õý´@]\u001cÔ¬-KÉn.s³‰ŒxY \u000e&ãÑñí´\u0006¦\u001cå¨õ®]’\u001cŽ¿\rþò—¿üå/]›\\¸¿uþò—¿üå/]¤\\¸¿5þò—¿ü寋•åυû[å/ùË_þòWþ\\¸¿\tùË_þò—¿òçÂýùË_þò—¿›ìïdm!ùsxþVøË_þò—¿ü•?\u0017ío³Å_þò—¿üå¯ü¹p›üå/ùËßMöw²Æ½ü9<õ_ñ—¿üå/åÏÅû«ÿŠ¿üå/ù+.Þ_ýWüå/ù»ÑþvÚÇòç\u0010ýÕÅ_þò—¿ü•?\u0017ï¯þ+þò—¿üå¯ü¹xõ_ñ—¿üåïf÷_õ»òç\u0010ýÕÅ_þò—¿ü•?\u0017ï¯þ+þò—¿üå¯ü¹pwõ_ñ—¿üåïfûÛ¶þ`þê¿â/ùË_þʟ‹÷Wÿ\u0015ùË_þòWþ\\¼¿ú¯øË_þòw£ý}}¾/\u000eÑ_ýWüå/ùË_ùsñþê¿â/ùË_þʟ‹÷Wÿ\u0015ùË_þnöüo·'\u000eÑ_ýWüå/ùË_ùsñþê¿â/ùË_þʟ‹÷w®þ«‡G˜\u0001ðÃy\u00020€\u0001\f`\u0000\u0007\fp”N\u0004Gé\rIQZŒ\u0015¥\u000b4DéBÁѻҰןn?žî·ß\u000f\u0012ðèÛñt”s¼\u000eD—¬ûŒ£.\u0005÷Fær­Z’‡í5¶/Ëö#¤#\u001dé[Iz@$›SþšÝ&v±‹]ìb\u0017»¦’‹bw\u0017»ØÅ.v±‹]3ÈE±ÛÀ.v±‹]ìnâ¼ñ±…\u001b‚d·Ž]ìb\u0017»ØÅ®¹(vkØÅ.v±‹]ì\n™‹b·Š]ìb\u0017»ØÝ@v'7\u001b\t™Ãc7Á.v±‹]ìbWÈ\\\u0014»1v±‹]ìb\u0017»Bæ¢Ø­`\u0017»ØÅ.v7ÝI³•98vëZª°‹]ìb\u0017»BæÂØÕR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÝDv'Ë(\b™ÃcWK\u0015v±‹]ìbWÈ\\\u0018»Zª°‹]ìb\u0017»BæÂØÕR…]ìb\u0017»\u001bÙR5^³WÈ\u001c\u001e»Zª°‹]ìb\u0017»BæÂØÕR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÝHvÛ\u0016þ\u000b’]-UØÅ.v±‹]!sQìÖ´Ta\u0017»ØÅ.v…Ì…±«¥\n»ØÅ.v7‘Ý×çûBæ\u0010ÙÕR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÅ®¹0vµTa\u0017»ØÅîFÎív{Bæ\u0010ÙÕR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÅ®¹0vçj©zx„\u0019î>œ'îr—»ÜånxîFé$o”ÞQ\u0014¥õUQºVB”.Ì\u001b½+\r{ýéöãé~ûý ݎ¾\u001d=G9gØé°sɨÏ8êrLÏ\\U]þPú¬`қÍj\réHG:Ò7‹ô9H>è.\níãmÛ8$®à\u0013ŸøÄ'>7qD|ÜÁgŽ|V[øÄ'>ñ‰Ï\räs\u0012\u0010ã3?>›øÄ'>ñ‰Ï\räs2ϊÏüøÜÅ'>ñ‰O|n Ÿ“Ë•ð™\u001fŸ\r|â\u0013ŸøÄçv.Z‹Ï,|Öñ‰O|â\u0013ŸÛ¹\u001c\u000f>³ðYÃ'>ñ‰O|ngÑ0>³ðYÅ'>ñ‰O|ng…\u0012>³ð\u0019d\u0015\u0012?ùÉO~òs\rª‚ò7ŸÒ¢üøÍÜZ”ä2zMè»,}\u0007\u0013}£w¥c\fc\u0018Ãê‹\fc—ïh…£\u001cå(G9ªÇˆ£‹:š´8ÊQŽr”£\n8º°£MŽr”£\u001cå¨f#Ž.ìè.G9ÊQŽrTÅ\u0011G\u0017v´ÁQŽr”£\u001cÕuÄх\u001d­s”£\u001cå(G•\u001eqtaGk\u001cå(G9ÊQíG\u001c]ØÑ*G9ÊQŽrT\r\u0012G\u0017v4Ô\u001a$‚\u0014¤ \u0005©>¤-èCJ²ö!Å­ÚÒ\u0019Þ/ÇÕ\"\u0019®îÖã\rn#l·\u0007ô¥/}Õ ÍÐsÐýy\nt{¯3|=ýûx;\u0018¶»;'§ÃöñÙÞ°w6•ú ½¨³ãÇiV*qRiԚÕÇGÙÆáo\u0005»ØÅ.v±‹Ý<ٍãÊn½–č\u0004»IÜÂ.v±‹]ìb7Ov\u001bFe<àmV°›ÄMìb\u0017»ØÅîvv\u0004\u000b™WÁî.v±‹]ìb\u0017»Bæ¢Øm`\u0017»ØÅ.v±+d.ŠÝ:v±‹]ìbw;\u0017Ð\u00112¯‚Ý\u001av±‹]ìb\u0017»Bæ¢Ø­b\u0017»ØÅ.v±+d.ŠÝ\u0004»ØÅ.v±»«Ë\n™WÁ®–*ìb\u0017»ØÅ®¹0vµTa\u0017»ØÅ.v…ÌE±[ÑR…]ìb\u0017»›ÈîdÅ\u0003!sxìj©Â.v±‹]ì\n™\u000bcWK\u0015v±‹]ìbWÈ\\\u0018»Zª°‹]ìbw#[ªú]!sˆìj©Â.v±‹]ì\n™\u000bcWK\u0015v±‹]ìbWÈ\\\u0018»Zª°‹]ìbw#Ùm[ø/HvµTa\u0017»ØÅ.v…Ì…±«¥\n»ØÅ.v±+d.Œ]-UØÅ.v±»‰ì¾>ß\u00172‡ÇnÜÒR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÅ®¹0vµTa\u0017»ØÅîFÎív{Bæ\u0010ÙÕR…]ìb\u0017»Ø\u00152\u0017Æ®–*ìb\u0017»ØÅ®¹0vçj©zx„\u0019î>œ'îr—»ÜånxîFé$o”ÞQ\u0014¥õUQºVB”.Ì\u001b½+\r{ýéöãé~ûý ݎ¾\u001d=G9gØé°sɨÏ8êrLÏ\\Õ\\þPú¬`қÍj\réHG:Ò7‹ô9H>è.\níãmÛ8$Nð‰O|â\u0013Ÿ›8\">îà3O>c|â\u0013ŸøÄç\u0006ò9\tˆñ™\u001fŸ\u0015|â\u0013ŸøÄç\u0006ò9™gÅgn|6[øÄ'>ñ‰Ï\räsr¹\u0012>ó㳉O|â\u0013ŸøÜÎEkñ™…Ï]|â\u0013ŸøÄçv.ǃÏ,|6ð‰O|â\u0013ŸÛY4ŒÏ,|Öñ‰O|â\u0013ŸÛY¡„Ï,|\u0006Y…ÄO~ò“Ÿü\\ƒ*¤ üͧ´(?~3·\u0016Õ\u001by\u0014\u0011Ö\u0014\u0011.Kß³ÁùÁä­tÜëM?oö÷:<æ1õ\u0018Y\u0000'\u0010ˆ\u0013\u0010ƒ\u0018Ä \u00061ˆ-‰³:ˆc\u0010ƒ\u0018Ä \u00061ˆ-’³:ˆ+ \u00061ˆA\fb\u001dÁ¢é•A¼Û\u00021ˆA\fb\u0010ƒX4½:ˆ› \u00061ˆA\fb\u0010‹¦W\u0007ñ.ˆA\fb\u0010ƒØú;¢éÕAÜ\u00001ˆA\fb\u0010ƒX4½:ˆë \u00061ˆA\fb\u0010‹¦W\u0007q\rÄ \u00061ˆAlm[Ñôê Ö¬\u0005b\u0010ƒ\u0018Ä \u0016M¯\u0010bÍZ \u00061ˆA\fbÑô\n!Ö¬\u0005b\u0010ƒ\u0018ÄÛ\u0001ñdm\u0007Ñtx\u0010kÖ\u00021ˆA\fb\u0010‹¦W\u0007qC³\u0016ˆA\fb\u0010ƒX4½Bˆ5k\u0018Ä \u0006ñ–4kõ»¢é\u0010!Ö¬\u0005b\u0010ƒ\u0018Ä \u0016M¯\u0010bÍZ \u00061ˆA\fbÑô\n!Ö¬\u0005b\u0010ƒ\u0018Ä[\u0002qÛ2ˆAB¬Y\u000bÄ \u00061ˆA,š^!̵@\fb\u0010ƒ\u0018Ä¢é\u0015B¬Y\u000bÄ \u00061ˆ·\u0003â×çû¢é\u0010!Ö¬\u0005b\u0010ƒ\u0018Ä \u0016M¯\u0010bÍZ \u00061ˆA\fbÑôê ®kÖ\u00021ˆA\fâ-™#îöDÓ!B¬Y\u000bÄ \u00061ˆA,š^!̵@\fb\u0010ƒ\u0018Ä¢é\u0015B<W³ÖÃ#̐øá<‘˜Ä$&1‰×Aâ(,ŽÒû™¢´r+JW…ˆÒ…‹£w¥a¯?Ý~<Ýo¿\u001f¤äÑ·#ì(çä;\u001dš.™ù\u0019G]Žò™k»jË\u001fnŸ\u0015Œ|³Y­A\u001eò‡ü¦#?\u0007Ò\u0007ÝEé}¼m\u001b‡Í5 \u0002\u0015¨@\u0005êvŒš;@Í\u0013Ô*P\nT \u0002u+@ÄÊ@Í\u000fÔ\u0004¨@\u0005*Pº\u0015 Nækš\u001f¨1P\nT \u0002u+@\\\b\u0005Ôü@­\u0000\u0015¨@\u0005*P-ê\u000bÔÌ ÖZ@\u0005*P\nTK\u0011\u00015;¨M \u0002\u0015¨@\u0005ª\u0002e f\u0007u\u0017¨@\u0005*Pªö\t¨ÙA\r²¾‰¨D%*Q‰º–õMA‰œOÑR~ glZš×ãáÙÞé`ü.ïÎ‰ò›r¥R~S\u001e\u001c\u001e\u001eÌ\u0006ypx¸óáâþò¿w.o®ÿvuûëäOôE}ûí·ßfâûoa¿Ã7®ÄÙñü©žµ\u000fO&mbÞ«3?¯ÿS}¿'”±!\u0019;cgäáß<þ=±×¬g“«u·%Ïl3`œß§Úò}J÷^x¸ø¦\\‰ËoþÓábtýñêú—Ááá‹F•g\u0002UžESyF„ƒó½á·CÃã‡ïtNN\u0007Ó/ú½£é\u0017\u000f›ŽÚí馣?¾3\u0019PN\u0006\u0015o»F–ÔÛÊQßô\u0003eîaß×»³p\u001d-¬†ha«U~Sî¿í\u000eßOe{b¤öùâ÷ñû¥ ú¾y›­‚¼Ã£Î\u0010L`2\u001c3\u001cÛ$‚’B\bZ8-Ü8‡Ò׳\u0018Dò@\u0000\u0001\b@›\u0004P\u001c8@ÿI&¸\rƒ!\u00061ˆA\fÚ$ƒ*Å\\3ñ\u001f^ÃXË§Köçé…&“¤\u001a?u±Ä\u001f\u00171>3/5y½+Ÿ˜ú~ÒɄ\u0012²µ:²\u0002Z{™tqµ\u0015 tûyH—¤š‘Žt¤#]0Ò¹Ý,‹_™\u000bQ’V\u000e~U\u0012#µ<.!|é‚AØÁ\u000ev«ÂnŽ;¹\fëŠaq\u0017‹XÄ\"\u0016±¸ú1àË+õb±\u0018\u0016\u001bXÄ\"\u0016±ˆÅ•³8Çz»X,†Å:\u0016±ˆE,bqå,αj.\u0016‹a±†E,b\u0011‹X\\9‹s¬}‹ÅbX¬b\u0011‹XÄ\"\u0016W?·øò\n¶X,†Å\u0004‹XÄ\"\u0016±¸z\u0016Û.¹\t„Å\u0018‹XÄ\"\u0016±¸r\u0016çXM\u0016‹Å°XÁ\"\u0016±ˆE,ª£ÁâW¨…·z,\u0017¹ÈE.n¥‹ù®ìº¦®®Ù\u001a°I斜¸•CŸi\u001eª>¹ò:U©JUª®CKŽJ¸,ØíÂ\u000ev°ƒ\u001dìÖ¡û\u0006vY°kÀ\u000ev°ƒ\u001dìÖ¡Ñ\u0006vY°«Ã\u000ev°ƒ\u001dìÖ¡§\u0006vY°«Á\u000ev°ƒ\u001dìÖ¡}\u0006vY°«Â\u000ev°ƒ\u001dìÖ¡S\u0006vY°K`\u0007;ØÁ\u000evëÐ\u0014\u0003»,ØÅ°ƒ\u001dì`\u0007»uè]\u0016ì*°ƒ\u001dì`\u0007»uhu]\u0006ìâ »ZhG;ÚÑNWËÒ»Z‚ÒrÍ\u001aXâŒ\r,³¬L÷^˜Ê7åV«ü¦Ü99\u001d¼?\u0019\ff[Ù¹¹¸Þ9¹¾»¿øôiüVÛ9¹»ûrq=\u0007šå™`–gQY~\u001aÉoÞª\u000bØøðê\u0016Çñð¨3¤\u001bÝè\u0016ìXîñ\u001bÅÍ\u000fÓn!0\rÏöN\u0007{\u0007ÓÞéÜ:U*tzV§ïÑ¡\u0012•¨D¥µW©\u0011îp©·wú¾÷\fG½Û«_®®'Së¢Ðä%\u0019!±ˆEëhÑãm\u0010Z\u000eBõÀ‡F$2\u001a\"\u0010\b´\u0011\u0002ýuòÞº¹½\u001f}ì?\u000f“JR/WvËqm\u00187^U›¯êÍ\u001f[õÊÏ¥ý?PK\u0007\b­ù\u0017þ’ \u0000\u0000`]\n\u0000PK\u0001\u0002-\u0003\u0014\u0000\b\u0000\b\u0000݄îZ­ù\u0017þ’ \u0000\u0000`]\n\u0000:\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000¤\u0000\u0000\u0000\u0000criteria-set-11-exported-2025-07-14T16:38:58.967Z1073.jsonPK\u0005\u0006\u0000\u0000\u0000\u0000\u0001\u0000\u0001\u0000h\u0000\u0000\u0000ú \u0000\u0000\u0000\u0000","criteriaSetId":null};
14
- const result = guard.sanitizeObject(input);
15
- expect(result.zipBinaryString).toBe(input.zipBinaryString);
16
- });
17
-
18
- test('allows clean string without altering it', () => {
19
- const input = { comment: 'This is a safe comment.' };
20
- const result = guard.sanitizeObject(input);
21
- expect(result.comment).toBe('This is a safe comment.');
22
- });
23
-
24
- test('sanitizes basic XSS attempt', () => {
25
- const input = { comment: '<script>alert("xss")</script>' };
26
- const result = guard.sanitizeObject(input);
27
- expect(result.comment).toBe('');
28
- });
29
-
30
- test('sanitizes inline XSS', () => {
31
- const input = { title: '<img src=x onerror=alert(1)>' };
32
- const result = guard.sanitizeObject(input);
33
- expect(result.title).toBe(''); // dompurify removes the dangerous attribute
34
- });
35
-
36
- test('sanitizes encoded XSS attempt', () => {
37
- const input = { encoded: '%3Cscript%3Ealert(1)%3C%2Fscript%3E' };
38
- const result = guard.sanitizeObject(input);
39
- expect(result.encoded).toBe(''); // <script> is decoded and then cleaned
40
- });
41
-
42
- test('sanitizes nested objects', () => {
43
- const input = {
44
- level1: {
45
- level2: {
46
- content: '<script>evil()</script>'
47
- }
48
- }
49
- };
50
- const result = guard.sanitizeObject(input);
51
- expect(result.level1.level2.content).toBe('');
52
- });
53
-
54
- test('sanitizes arrays inside objects', () => {
55
- const input = {
56
- tags: ['safe', '<img src=x onerror=alert(1)>']
57
- };
58
- const result = guard.sanitizeObject(input);
59
- expect(result.tags[0]).toBe('safe');
60
- expect(result.tags[1]).toBe('');
61
- });
62
-
63
- test('preserves clean strings in array', () => {
64
- const input = {
65
- tags: ['tag1', 'tag2', 'tag3']
66
- };
67
- const result = guard.sanitizeObject(input);
68
- expect(result.tags).toEqual(['tag1', 'tag2', 'tag3']);
69
- });
70
-
71
- test('sanitizes SVG-based XSS', () => {
72
- const input = { x: '<svg/onload=alert(1)>' };
73
- const result = guard.sanitizeObject(input);
74
- expect(result.x).toBe(''); // removes onload attribute
75
- });
76
-
77
- test('sanitizes strings and ignores non-string values', () => {
78
- const input = {
79
- num: 123,
80
- bool: true,
81
- nullValue: null,
82
- undef: undefined,
83
- notReplace: 'a < b'
84
- };
85
-
86
- const result = guard.sanitizeObject(input);
87
-
88
- expect(result.num).toBe(123);
89
- expect(result.bool).toBe(true);
90
- expect(result.nullValue).toBeNull();
91
- expect(result.undef).toBeUndefined();
92
- expect(result.notReplace).toBe('a &lt; b');
93
- });
94
-
95
- test('sanitizes XSS in deep mixed structures', () => {
96
- const input = {
97
- items: [
98
- { safe: 'ok' },
99
- { unsafe: '<iframe src="javascript:alert(1)">' }
100
- ]
101
- };
102
- const result = guard.sanitizeObject(input);
103
- expect(result.items[1].unsafe).toBe('');
104
- });
105
-
106
- test('sanitizes <a> with javascript href', () => {
107
- const input = { link: '<a href="javascript:alert(1)">click</a>' };
108
- const result = guard.sanitizeObject(input);
109
- expect(result.link).toBe('click');
110
- });
111
-
112
- test('removes unexpected <object> tag', () => {
113
- const input = { embed: '<object data="evil.swf"></object>' };
114
- const result = guard.sanitizeObject(input);
115
- expect(result.embed).toBe('');
116
- });
117
-
118
- test('removes unexpected <iframe> tag', () => {
119
- const input = { iframe: '<iframe src="http://malicious.com"></iframe>' };
120
- const result = guard.sanitizeObject(input);
121
- expect(result.iframe).toBe('');
122
- });
123
-
124
- test('removes style attribute with expression()', () => {
125
- const input = { style: '<div style="width:expression(alert(1))">' };
126
- const result = guard.sanitizeObject(input);
127
- expect(result.style).toBe('');
128
- });
129
-
130
- test('encodes < in string', () => {
131
- const input = { text: 'a < b' };
132
- const result = guard.sanitizeObject(input);
133
- expect(result.text).toBe('a &lt; b');
134
- });
135
-
136
- test('allows > in string without encoding', () => {
137
- const input = { text: 'a > b' };
138
- const result = guard.sanitizeObject(input);
139
- expect(result.text).toBe('a > b'); // dompurify leaves this unchanged
140
- });
141
-
142
- test('allows & in string without encoding', () => {
143
- const input = { text: 'Tom & Jerry' };
144
- const result = guard.sanitizeObject(input);
145
- expect(result.text).toBe('Tom & Jerry'); // & is preserved if not HTML
146
- });
147
-
148
- test('allows " in string without encoding', () => {
149
- const input = { text: 'She said "hello"' };
150
- const result = guard.sanitizeObject(input);
151
- expect(result.text).toBe('She said "hello"'); // not encoded
152
- });
153
-
154
- test('allows \' in string without encoding', () => {
155
- const input = { text: "It's fine" };
156
- const result = guard.sanitizeObject(input);
157
- expect(result.text).toBe("It's fine"); // not encoded
158
- });
159
-
160
- test('encodes only special HTML characters like < when needed', () => {
161
- const input = { text: 'if (a < b && b > c) { console.log("yes"); }' };
162
- const result = guard.sanitizeObject(input);
163
- expect(result.text).toBe('if (a &lt; b &amp;&amp; b &gt; c) { console.log("yes"); }');
164
- });
165
-
166
- test('sanitizes special chars inside deeply nested object', () => {
167
- const input = {
168
- user: {
169
- profile: {
170
- bio: `I'm <strong>bold</strong> & smart`
171
- }
172
- }
173
- };
174
- const result = guard.sanitizeObject(input);
175
- expect(result.user.profile.bio).toBe("I'm bold &amp; smart"); // <strong> removed
176
- });
177
-
178
- test('sanitizes array of special char strings', () => {
179
- const input = {
180
- messages: ['Hello & welcome', 'a < b', 'Use "quotes"', "It's fine"]
181
- };
182
- const result = guard.sanitizeObject(input);
183
- expect(result.messages).toEqual([
184
- 'Hello & welcome',
185
- 'a &lt; b',
186
- 'Use "quotes"',
187
- "It's fine"
188
- ]);
189
- });
190
-
191
-
192
- // test('sanitizes XML Tags', () => {
193
- // const input = {
194
- // messages: [
195
- // '<xml xmlns="https://developers.google.com/blockly/xml"><block type="main_return" id="main-return-block" deletable="false" x="30" y="30"><value name="script"><block type="context_variable" id="[p{VL@_oCmCmgd,dZUh)"><field name="VARIABLENAME">Identifier</field></block></value></block></xml>',
196
- // '&lt;xml xmlns=&quot;https://developers.google.com/blockly/xml&quot;&gt;&lt;block type=&quot;main_return&quot; id=&quot;main-return-block&quot; deletable=&quot;false&quot; x=&quot;30&quot; y=&quot;30&quot;&gt;&lt;value name=&quot;script&quot;&gt;&lt;block type=&quot;context_variable&quot; id=&quot;[p{VL@_oCmCmgd,dZUh)&quot;&gt;&lt;field name=&quot;VARIABLENAME&quot;&gt;Identifier&lt;/field&gt;&lt;/block&gt;&lt;/value&gt;&lt;/block&gt;&lt;/xml&gt;']
197
- // };
198
- // const result = guard.sanitizeObject(input);
199
- // expect(result.messages).toEqual([
200
- // 'Identifier',
201
- // '&lt;xml xmlns=&quot;https://developers.google.com/blockly/xml&quot;&gt;&lt;block type=&quot;main_return&quot; id=&quot;main-return-block&quot; deletable=&quot;false&quot; x=&quot;30&quot; y=&quot;30&quot;&gt;&lt;value name=&quot;script&quot;&gt;&lt;block type=&quot;context_variable&quot; id=&quot;[p{VL@_oCmCmgd,dZUh)&quot;&gt;&lt;field name=&quot;VARIABLENAME&quot;&gt;Identifier&lt;/field&gt;&lt;/block&gt;&lt;/value&gt;&lt;/block&gt;&lt;/xml&gt;'
202
- // ]);
203
- // });
204
- });