@unispechq/unispec-core 0.3.2 → 0.3.4

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 (440) hide show
  1. package/dist/cache/cache-factory.d.ts +2 -2
  2. package/dist/cache/cache-factory.js +1 -1
  3. package/dist/cache/cache-manager.d.ts +2 -2
  4. package/dist/cache/cache-manager.js +9 -7
  5. package/dist/cache/hash-utils.d.ts +1 -11
  6. package/dist/cache/hash-utils.js +1 -21
  7. package/dist/cache/hashing.d.ts +15 -6
  8. package/dist/cache/hashing.js +8 -12
  9. package/dist/cache/index.d.ts +6 -6
  10. package/dist/cache/index.js +5 -5
  11. package/dist/cache/lru-cache.d.ts +1 -13
  12. package/dist/cache/lru-cache.js +3 -24
  13. package/dist/cjs/cache/cache-factory.js +1 -1
  14. package/dist/cjs/cache/cache-manager.js +9 -7
  15. package/dist/cjs/cache/hash-utils.js +1 -23
  16. package/dist/cjs/cache/hashing.js +7 -13
  17. package/dist/cjs/cache/index.js +6 -8
  18. package/dist/cjs/cache/lru-cache.js +3 -24
  19. package/dist/cjs/diff/annotators.js +3 -2
  20. package/dist/cjs/diff/core.js +2 -2
  21. package/dist/cjs/diff/enhanced-diff.js +7 -21
  22. package/dist/cjs/diff/index.js +8 -8
  23. package/dist/cjs/errors/config-error.js +1 -1
  24. package/dist/cjs/errors/error-factory.js +7 -7
  25. package/dist/cjs/errors/index.js +8 -8
  26. package/dist/cjs/errors/loader-error.js +1 -1
  27. package/dist/cjs/errors/reference-error.js +1 -1
  28. package/dist/cjs/errors/schema-error.js +1 -1
  29. package/dist/cjs/errors/security-error.js +1 -1
  30. package/dist/cjs/errors/semantic-error.js +1 -1
  31. package/dist/cjs/index.js +13 -13
  32. package/dist/cjs/loader/index.js +4 -4
  33. package/dist/cjs/loader/security-validator.js +1 -1
  34. package/dist/cjs/loader/unispec-loader.js +3 -3
  35. package/dist/cjs/loader/yaml-loader.js +1 -1
  36. package/dist/cjs/normalizer/core.js +11 -6
  37. package/dist/cjs/normalizer/index.js +1 -1
  38. package/dist/cjs/normalizer/utils.js +23 -7
  39. package/dist/cjs/optimizer/core.js +35 -10
  40. package/dist/cjs/optimizer/index.js +3 -3
  41. package/dist/cjs/optimizer/optimization-functions.js +2 -2
  42. package/dist/cjs/schemas/dedupe.js +27 -14
  43. package/dist/cjs/schemas/index.js +3 -3
  44. package/dist/cjs/schemas/resolver.js +3 -2
  45. package/dist/cjs/validator/ajv-validator.js +1 -1
  46. package/dist/cjs/validator/config-validator-main.js +4 -4
  47. package/dist/cjs/validator/config-validator.js +1 -1
  48. package/dist/cjs/validator/index.js +7 -7
  49. package/dist/cjs/validator/reference-validator.js +1 -1
  50. package/dist/cjs/validator/tests-validator.js +2 -2
  51. package/dist/cjs/validator/unispec-validator.js +7 -11
  52. package/dist/cjs/validator/validator-factory.js +1 -1
  53. package/dist/diff/annotators.d.ts +1 -1
  54. package/dist/diff/annotators.js +3 -2
  55. package/dist/diff/change-reports.d.ts +1 -1
  56. package/dist/diff/core.d.ts +2 -2
  57. package/dist/diff/core.js +2 -2
  58. package/dist/diff/enhanced-diff.d.ts +3 -3
  59. package/dist/diff/enhanced-diff.js +7 -21
  60. package/dist/diff/impact-strategies-refactored.d.ts +2 -2
  61. package/dist/diff/impact-strategies.d.ts +2 -2
  62. package/dist/diff/index.d.ts +8 -8
  63. package/dist/diff/index.js +8 -8
  64. package/dist/diff/metrics-calculator.d.ts +1 -1
  65. package/dist/diff/risk-calculator.d.ts +1 -1
  66. package/dist/diff/suggestion-generator.d.ts +2 -2
  67. package/dist/errors/config-error.d.ts +1 -1
  68. package/dist/errors/config-error.js +1 -1
  69. package/dist/errors/error-factory.d.ts +7 -7
  70. package/dist/errors/error-factory.js +7 -7
  71. package/dist/errors/index.d.ts +8 -8
  72. package/dist/errors/index.js +8 -8
  73. package/dist/errors/loader-error.d.ts +1 -1
  74. package/dist/errors/loader-error.js +1 -1
  75. package/dist/errors/reference-error.d.ts +1 -1
  76. package/dist/errors/reference-error.js +1 -1
  77. package/dist/errors/schema-error.d.ts +1 -1
  78. package/dist/errors/schema-error.js +1 -1
  79. package/dist/errors/security-error.d.ts +1 -1
  80. package/dist/errors/security-error.js +1 -1
  81. package/dist/errors/semantic-error.d.ts +1 -1
  82. package/dist/errors/semantic-error.js +1 -1
  83. package/dist/index.cjs +13 -13
  84. package/dist/index.d.ts +13 -13
  85. package/dist/index.js +13 -13
  86. package/dist/loader/index.d.ts +5 -5
  87. package/dist/loader/index.js +4 -4
  88. package/dist/loader/security-validator.d.ts +1 -1
  89. package/dist/loader/security-validator.js +1 -1
  90. package/dist/loader/unispec-loader.d.ts +2 -2
  91. package/dist/loader/unispec-loader.js +3 -3
  92. package/dist/loader/yaml-loader.d.ts +1 -1
  93. package/dist/loader/yaml-loader.js +1 -1
  94. package/dist/normalizer/core.d.ts +2 -2
  95. package/dist/normalizer/core.js +11 -6
  96. package/dist/normalizer/graphql-normalizer.d.ts +1 -1
  97. package/dist/normalizer/index.d.ts +2 -2
  98. package/dist/normalizer/index.js +1 -1
  99. package/dist/normalizer/rest-normalizer.d.ts +1 -1
  100. package/dist/normalizer/types.d.ts +1 -1
  101. package/dist/normalizer/utils.d.ts +6 -3
  102. package/dist/normalizer/utils.js +23 -7
  103. package/dist/normalizer/websocket-normalizer.d.ts +1 -1
  104. package/dist/optimizer/core.d.ts +2 -2
  105. package/dist/optimizer/core.js +35 -10
  106. package/dist/optimizer/index.d.ts +4 -4
  107. package/dist/optimizer/index.js +3 -3
  108. package/dist/optimizer/optimization-functions.d.ts +2 -2
  109. package/dist/optimizer/optimization-functions.js +2 -2
  110. package/dist/optimizer/types.d.ts +1 -1
  111. package/dist/schemas/dedupe.d.ts +1 -1
  112. package/dist/schemas/dedupe.js +27 -14
  113. package/dist/schemas/index.d.ts +3 -3
  114. package/dist/schemas/index.js +3 -3
  115. package/dist/schemas/resolver.d.ts +1 -1
  116. package/dist/schemas/resolver.js +3 -2
  117. package/dist/types/index.d.ts +2 -1
  118. package/dist/validator/ajv-validator.d.ts +1 -1
  119. package/dist/validator/ajv-validator.js +1 -1
  120. package/dist/validator/config-validator-main.d.ts +2 -2
  121. package/dist/validator/config-validator-main.js +4 -4
  122. package/dist/validator/config-validator.d.ts +1 -1
  123. package/dist/validator/config-validator.js +1 -1
  124. package/dist/validator/index.d.ts +10 -10
  125. package/dist/validator/index.js +7 -7
  126. package/dist/validator/reference-validator.d.ts +1 -1
  127. package/dist/validator/reference-validator.js +1 -1
  128. package/dist/validator/schema-references.d.ts +1 -1
  129. package/dist/validator/semantic-validator.d.ts +1 -1
  130. package/dist/validator/tests-validator.d.ts +2 -2
  131. package/dist/validator/tests-validator.js +2 -2
  132. package/dist/validator/types.d.ts +3 -3
  133. package/dist/validator/unispec-validator.d.ts +2 -2
  134. package/dist/validator/unispec-validator.js +7 -11
  135. package/dist/validator/validator-factory.d.ts +3 -3
  136. package/dist/validator/validator-factory.js +1 -1
  137. package/package.json +3 -3
  138. package/dist/cjs/src/cache/cache-factory.js +0 -72
  139. package/dist/cjs/src/cache/cache-manager.js +0 -128
  140. package/dist/cjs/src/cache/constants.js +0 -25
  141. package/dist/cjs/src/cache/hash-utils.js +0 -19
  142. package/dist/cjs/src/cache/hashing.js +0 -230
  143. package/dist/cjs/src/cache/index.js +0 -24
  144. package/dist/cjs/src/cache/lru-cache.js +0 -144
  145. package/dist/cjs/src/cache/types.js +0 -5
  146. package/dist/cjs/src/diff/annotators.js +0 -160
  147. package/dist/cjs/src/diff/change-reports.js +0 -369
  148. package/dist/cjs/src/diff/core.js +0 -158
  149. package/dist/cjs/src/diff/enhanced-diff.js +0 -65
  150. package/dist/cjs/src/diff/impact-strategies-refactored.js +0 -230
  151. package/dist/cjs/src/diff/impact-strategies.js +0 -219
  152. package/dist/cjs/src/diff/index.js +0 -27
  153. package/dist/cjs/src/diff/metrics-calculator.js +0 -69
  154. package/dist/cjs/src/diff/risk-calculator.js +0 -58
  155. package/dist/cjs/src/diff/suggestion-generator.js +0 -78
  156. package/dist/cjs/src/diff/types.js +0 -11
  157. package/dist/cjs/src/errors/base-error.js +0 -33
  158. package/dist/cjs/src/errors/config-error.js +0 -11
  159. package/dist/cjs/src/errors/error-factory.js +0 -48
  160. package/dist/cjs/src/errors/index.js +0 -19
  161. package/dist/cjs/src/errors/loader-error.js +0 -11
  162. package/dist/cjs/src/errors/reference-error.js +0 -11
  163. package/dist/cjs/src/errors/schema-error.js +0 -11
  164. package/dist/cjs/src/errors/security-error.js +0 -11
  165. package/dist/cjs/src/errors/semantic-error.js +0 -11
  166. package/dist/cjs/src/generated-schemas.js +0 -2100
  167. package/dist/cjs/src/index.js +0 -59
  168. package/dist/cjs/src/loader/index.js +0 -13
  169. package/dist/cjs/src/loader/security-validator.js +0 -53
  170. package/dist/cjs/src/loader/types.js +0 -11
  171. package/dist/cjs/src/loader/unispec-loader.js +0 -84
  172. package/dist/cjs/src/loader/yaml-loader.js +0 -76
  173. package/dist/cjs/src/normalizer/core.js +0 -37
  174. package/dist/cjs/src/normalizer/graphql-normalizer.js +0 -67
  175. package/dist/cjs/src/normalizer/index.js +0 -7
  176. package/dist/cjs/src/normalizer/rest-normalizer.js +0 -51
  177. package/dist/cjs/src/normalizer/types.js +0 -2
  178. package/dist/cjs/src/normalizer/utils.js +0 -49
  179. package/dist/cjs/src/normalizer/websocket-normalizer.js +0 -81
  180. package/dist/cjs/src/optimizer/core.js +0 -140
  181. package/dist/cjs/src/optimizer/index.js +0 -17
  182. package/dist/cjs/src/optimizer/optimization-functions.js +0 -185
  183. package/dist/cjs/src/optimizer/types.js +0 -2
  184. package/dist/cjs/src/optimizer/utils.js +0 -32
  185. package/dist/cjs/src/schemas/dedupe.js +0 -113
  186. package/dist/cjs/src/schemas/index.js +0 -14
  187. package/dist/cjs/src/schemas/resolver.js +0 -42
  188. package/dist/cjs/src/schemas/utils.js +0 -53
  189. package/dist/cjs/src/types/index.js +0 -2
  190. package/dist/cjs/src/validator/ajv-validator.js +0 -82
  191. package/dist/cjs/src/validator/config-validator-main.js +0 -34
  192. package/dist/cjs/src/validator/config-validator.js +0 -17
  193. package/dist/cjs/src/validator/index.js +0 -23
  194. package/dist/cjs/src/validator/object-traversal.js +0 -112
  195. package/dist/cjs/src/validator/reference-validator.js +0 -233
  196. package/dist/cjs/src/validator/schema-references.js +0 -116
  197. package/dist/cjs/src/validator/semantic-validator.js +0 -328
  198. package/dist/cjs/src/validator/tests-validator.js +0 -16
  199. package/dist/cjs/src/validator/types.js +0 -2
  200. package/dist/cjs/src/validator/unispec-validator.js +0 -80
  201. package/dist/cjs/src/validator/validator-factory.js +0 -77
  202. package/dist/cjs/src/versions.js +0 -147
  203. package/dist/cjs/tests/cache/cache.test.js +0 -274
  204. package/dist/cjs/tests/cache/utils.js +0 -32
  205. package/dist/cjs/tests/concurrency-normalizer-optimizer.test.js +0 -1
  206. package/dist/cjs/tests/diff/diff-annotators.test.js +0 -280
  207. package/dist/cjs/tests/diff/diff-comprehensive.test.js +0 -262
  208. package/dist/cjs/tests/diff/diff-extended.test.js +0 -235
  209. package/dist/cjs/tests/diff/diff.test.js +0 -189
  210. package/dist/cjs/tests/diff/utils.js +0 -8
  211. package/dist/cjs/tests/errors/errors-integration.test.js +0 -173
  212. package/dist/cjs/tests/errors/errors.test.js +0 -280
  213. package/dist/cjs/tests/errors/utils.js +0 -7
  214. package/dist/cjs/tests/loader/integration.test.js +0 -216
  215. package/dist/cjs/tests/loader/loader.test.js +0 -341
  216. package/dist/cjs/tests/normalizer/normalizer-comprehensive.test.js +0 -648
  217. package/dist/cjs/tests/normalizer/normalizer-invalid.test.js +0 -258
  218. package/dist/cjs/tests/normalizer/normalizer-valid.test.js +0 -238
  219. package/dist/cjs/tests/normalizer/utils.js +0 -47
  220. package/dist/cjs/tests/optimizer/compress-references.test.js +0 -304
  221. package/dist/cjs/tests/optimizer/deduplication.test.js +0 -132
  222. package/dist/cjs/tests/optimizer/integration.test.js +0 -131
  223. package/dist/cjs/tests/optimizer/optimization-report.test.js +0 -222
  224. package/dist/cjs/tests/optimizer/optimize-document.test.js +0 -187
  225. package/dist/cjs/tests/optimizer/orphaned-schemas.test.js +0 -194
  226. package/dist/cjs/tests/optimizer/sort-schemas.test.js +0 -131
  227. package/dist/cjs/tests/optimizer/utils.js +0 -209
  228. package/dist/cjs/tests/schemas/schemas-edge-cases.test.js +0 -223
  229. package/dist/cjs/tests/schemas/schemas.test.js +0 -400
  230. package/dist/cjs/tests/schemas/utils.js +0 -7
  231. package/dist/cjs/tests/utils.js +0 -131
  232. package/dist/cjs/tests/validator/config-validator.test.js +0 -78
  233. package/dist/cjs/tests/validator/debug-config.js +0 -1
  234. package/dist/cjs/tests/validator/debug-missing-service.js +0 -1
  235. package/dist/cjs/tests/validator/debug-other-configs.js +0 -1
  236. package/dist/cjs/tests/validator/debug-references.js +0 -1
  237. package/dist/cjs/tests/validator/unispec-validator.test.js +0 -103
  238. package/dist/cjs/tests/validator/utils.js +0 -25
  239. package/dist/src/cache/cache-factory.d.ts +0 -31
  240. package/dist/src/cache/cache-factory.js +0 -65
  241. package/dist/src/cache/cache-manager.d.ts +0 -62
  242. package/dist/src/cache/cache-manager.js +0 -124
  243. package/dist/src/cache/constants.d.ts +0 -21
  244. package/dist/src/cache/constants.js +0 -22
  245. package/dist/src/cache/hash-utils.d.ts +0 -11
  246. package/dist/src/cache/hash-utils.js +0 -15
  247. package/dist/src/cache/hashing.d.ts +0 -28
  248. package/dist/src/cache/hashing.js +0 -193
  249. package/dist/src/cache/index.d.ts +0 -6
  250. package/dist/src/cache/index.js +0 -10
  251. package/dist/src/cache/lru-cache.d.ts +0 -44
  252. package/dist/src/cache/lru-cache.js +0 -140
  253. package/dist/src/cache/types.d.ts +0 -24
  254. package/dist/src/cache/types.js +0 -4
  255. package/dist/src/diff/annotators.d.ts +0 -4
  256. package/dist/src/diff/annotators.js +0 -155
  257. package/dist/src/diff/change-reports.d.ts +0 -37
  258. package/dist/src/diff/change-reports.js +0 -366
  259. package/dist/src/diff/core.d.ts +0 -26
  260. package/dist/src/diff/core.js +0 -155
  261. package/dist/src/diff/enhanced-diff.d.ts +0 -51
  262. package/dist/src/diff/enhanced-diff.js +0 -62
  263. package/dist/src/diff/impact-strategies-refactored.d.ts +0 -69
  264. package/dist/src/diff/impact-strategies-refactored.js +0 -223
  265. package/dist/src/diff/impact-strategies.d.ts +0 -41
  266. package/dist/src/diff/impact-strategies.js +0 -212
  267. package/dist/src/diff/index.d.ts +0 -8
  268. package/dist/src/diff/index.js +0 -11
  269. package/dist/src/diff/metrics-calculator.d.ts +0 -23
  270. package/dist/src/diff/metrics-calculator.js +0 -65
  271. package/dist/src/diff/risk-calculator.d.ts +0 -23
  272. package/dist/src/diff/risk-calculator.js +0 -55
  273. package/dist/src/diff/suggestion-generator.d.ts +0 -18
  274. package/dist/src/diff/suggestion-generator.js +0 -74
  275. package/dist/src/diff/types.d.ts +0 -24
  276. package/dist/src/diff/types.js +0 -8
  277. package/dist/src/errors/base-error.d.ts +0 -20
  278. package/dist/src/errors/base-error.js +0 -29
  279. package/dist/src/errors/config-error.d.ts +0 -4
  280. package/dist/src/errors/config-error.js +0 -7
  281. package/dist/src/errors/error-factory.d.ts +0 -22
  282. package/dist/src/errors/error-factory.js +0 -45
  283. package/dist/src/errors/index.d.ts +0 -8
  284. package/dist/src/errors/index.js +0 -8
  285. package/dist/src/errors/loader-error.d.ts +0 -4
  286. package/dist/src/errors/loader-error.js +0 -7
  287. package/dist/src/errors/reference-error.d.ts +0 -4
  288. package/dist/src/errors/reference-error.js +0 -7
  289. package/dist/src/errors/schema-error.d.ts +0 -4
  290. package/dist/src/errors/schema-error.js +0 -7
  291. package/dist/src/errors/security-error.d.ts +0 -4
  292. package/dist/src/errors/security-error.js +0 -7
  293. package/dist/src/errors/semantic-error.d.ts +0 -4
  294. package/dist/src/errors/semantic-error.js +0 -7
  295. package/dist/src/generated-schemas.d.ts +0 -2073
  296. package/dist/src/generated-schemas.js +0 -2097
  297. package/dist/src/index.d.ts +0 -13
  298. package/dist/src/index.js +0 -43
  299. package/dist/src/loader/index.d.ts +0 -5
  300. package/dist/src/loader/index.js +0 -5
  301. package/dist/src/loader/security-validator.d.ts +0 -5
  302. package/dist/src/loader/security-validator.js +0 -50
  303. package/dist/src/loader/types.d.ts +0 -30
  304. package/dist/src/loader/types.js +0 -8
  305. package/dist/src/loader/unispec-loader.d.ts +0 -10
  306. package/dist/src/loader/unispec-loader.js +0 -81
  307. package/dist/src/loader/yaml-loader.d.ts +0 -10
  308. package/dist/src/loader/yaml-loader.js +0 -39
  309. package/dist/src/normalizer/core.d.ts +0 -24
  310. package/dist/src/normalizer/core.js +0 -34
  311. package/dist/src/normalizer/graphql-normalizer.d.ts +0 -8
  312. package/dist/src/normalizer/graphql-normalizer.js +0 -64
  313. package/dist/src/normalizer/index.d.ts +0 -2
  314. package/dist/src/normalizer/index.js +0 -3
  315. package/dist/src/normalizer/rest-normalizer.d.ts +0 -8
  316. package/dist/src/normalizer/rest-normalizer.js +0 -48
  317. package/dist/src/normalizer/types.d.ts +0 -7
  318. package/dist/src/normalizer/types.js +0 -1
  319. package/dist/src/normalizer/utils.d.ts +0 -17
  320. package/dist/src/normalizer/utils.js +0 -45
  321. package/dist/src/normalizer/websocket-normalizer.d.ts +0 -8
  322. package/dist/src/normalizer/websocket-normalizer.js +0 -78
  323. package/dist/src/optimizer/core.d.ts +0 -17
  324. package/dist/src/optimizer/core.js +0 -136
  325. package/dist/src/optimizer/index.d.ts +0 -4
  326. package/dist/src/optimizer/index.js +0 -7
  327. package/dist/src/optimizer/optimization-functions.d.ts +0 -32
  328. package/dist/src/optimizer/optimization-functions.js +0 -179
  329. package/dist/src/optimizer/types.d.ts +0 -28
  330. package/dist/src/optimizer/types.js +0 -1
  331. package/dist/src/optimizer/utils.d.ts +0 -7
  332. package/dist/src/optimizer/utils.js +0 -29
  333. package/dist/src/schemas/dedupe.d.ts +0 -9
  334. package/dist/src/schemas/dedupe.js +0 -110
  335. package/dist/src/schemas/index.d.ts +0 -3
  336. package/dist/src/schemas/index.js +0 -6
  337. package/dist/src/schemas/resolver.d.ts +0 -19
  338. package/dist/src/schemas/resolver.js +0 -38
  339. package/dist/src/schemas/utils.d.ts +0 -20
  340. package/dist/src/schemas/utils.js +0 -49
  341. package/dist/src/types/index.d.ts +0 -434
  342. package/dist/src/types/index.js +0 -1
  343. package/dist/src/validator/ajv-validator.d.ts +0 -15
  344. package/dist/src/validator/ajv-validator.js +0 -75
  345. package/dist/src/validator/config-validator-main.d.ts +0 -10
  346. package/dist/src/validator/config-validator-main.js +0 -31
  347. package/dist/src/validator/config-validator.d.ts +0 -5
  348. package/dist/src/validator/config-validator.js +0 -14
  349. package/dist/src/validator/index.d.ts +0 -10
  350. package/dist/src/validator/index.js +0 -11
  351. package/dist/src/validator/object-traversal.d.ts +0 -52
  352. package/dist/src/validator/object-traversal.js +0 -104
  353. package/dist/src/validator/reference-validator.d.ts +0 -31
  354. package/dist/src/validator/reference-validator.js +0 -230
  355. package/dist/src/validator/schema-references.d.ts +0 -23
  356. package/dist/src/validator/schema-references.js +0 -111
  357. package/dist/src/validator/semantic-validator.d.ts +0 -26
  358. package/dist/src/validator/semantic-validator.js +0 -325
  359. package/dist/src/validator/tests-validator.d.ts +0 -9
  360. package/dist/src/validator/tests-validator.js +0 -13
  361. package/dist/src/validator/types.d.ts +0 -29
  362. package/dist/src/validator/types.js +0 -1
  363. package/dist/src/validator/unispec-validator.d.ts +0 -15
  364. package/dist/src/validator/unispec-validator.js +0 -77
  365. package/dist/src/validator/validator-factory.d.ts +0 -10
  366. package/dist/src/validator/validator-factory.js +0 -73
  367. package/dist/src/versions.d.ts +0 -10
  368. package/dist/src/versions.js +0 -143
  369. package/dist/tests/cache/cache.test.d.ts +0 -1
  370. package/dist/tests/cache/cache.test.js +0 -269
  371. package/dist/tests/cache/utils.d.ts +0 -4
  372. package/dist/tests/cache/utils.js +0 -24
  373. package/dist/tests/concurrency-normalizer-optimizer.test.d.ts +0 -0
  374. package/dist/tests/concurrency-normalizer-optimizer.test.js +0 -1
  375. package/dist/tests/diff/diff-annotators.test.d.ts +0 -1
  376. package/dist/tests/diff/diff-annotators.test.js +0 -275
  377. package/dist/tests/diff/diff-comprehensive.test.d.ts +0 -1
  378. package/dist/tests/diff/diff-comprehensive.test.js +0 -257
  379. package/dist/tests/diff/diff-extended.test.d.ts +0 -1
  380. package/dist/tests/diff/diff-extended.test.js +0 -230
  381. package/dist/tests/diff/diff.test.d.ts +0 -1
  382. package/dist/tests/diff/diff.test.js +0 -184
  383. package/dist/tests/diff/utils.d.ts +0 -2
  384. package/dist/tests/diff/utils.js +0 -3
  385. package/dist/tests/errors/errors-integration.test.d.ts +0 -1
  386. package/dist/tests/errors/errors-integration.test.js +0 -168
  387. package/dist/tests/errors/errors.test.d.ts +0 -1
  388. package/dist/tests/errors/errors.test.js +0 -275
  389. package/dist/tests/errors/utils.d.ts +0 -2
  390. package/dist/tests/errors/utils.js +0 -3
  391. package/dist/tests/loader/integration.test.d.ts +0 -1
  392. package/dist/tests/loader/integration.test.js +0 -211
  393. package/dist/tests/loader/loader.test.d.ts +0 -1
  394. package/dist/tests/loader/loader.test.js +0 -336
  395. package/dist/tests/normalizer/normalizer-comprehensive.test.d.ts +0 -1
  396. package/dist/tests/normalizer/normalizer-comprehensive.test.js +0 -643
  397. package/dist/tests/normalizer/normalizer-invalid.test.d.ts +0 -1
  398. package/dist/tests/normalizer/normalizer-invalid.test.js +0 -253
  399. package/dist/tests/normalizer/normalizer-valid.test.d.ts +0 -1
  400. package/dist/tests/normalizer/normalizer-valid.test.js +0 -233
  401. package/dist/tests/normalizer/utils.d.ts +0 -18
  402. package/dist/tests/normalizer/utils.js +0 -36
  403. package/dist/tests/optimizer/compress-references.test.d.ts +0 -1
  404. package/dist/tests/optimizer/compress-references.test.js +0 -299
  405. package/dist/tests/optimizer/deduplication.test.d.ts +0 -1
  406. package/dist/tests/optimizer/deduplication.test.js +0 -127
  407. package/dist/tests/optimizer/integration.test.d.ts +0 -1
  408. package/dist/tests/optimizer/integration.test.js +0 -126
  409. package/dist/tests/optimizer/optimization-report.test.d.ts +0 -1
  410. package/dist/tests/optimizer/optimization-report.test.js +0 -217
  411. package/dist/tests/optimizer/optimize-document.test.d.ts +0 -1
  412. package/dist/tests/optimizer/optimize-document.test.js +0 -182
  413. package/dist/tests/optimizer/orphaned-schemas.test.d.ts +0 -1
  414. package/dist/tests/optimizer/orphaned-schemas.test.js +0 -189
  415. package/dist/tests/optimizer/sort-schemas.test.d.ts +0 -1
  416. package/dist/tests/optimizer/sort-schemas.test.js +0 -126
  417. package/dist/tests/optimizer/utils.d.ts +0 -8
  418. package/dist/tests/optimizer/utils.js +0 -199
  419. package/dist/tests/schemas/schemas-edge-cases.test.d.ts +0 -1
  420. package/dist/tests/schemas/schemas-edge-cases.test.js +0 -218
  421. package/dist/tests/schemas/schemas.test.d.ts +0 -1
  422. package/dist/tests/schemas/schemas.test.js +0 -395
  423. package/dist/tests/schemas/utils.d.ts +0 -2
  424. package/dist/tests/schemas/utils.js +0 -3
  425. package/dist/tests/utils.d.ts +0 -10
  426. package/dist/tests/utils.js +0 -118
  427. package/dist/tests/validator/config-validator.test.d.ts +0 -1
  428. package/dist/tests/validator/config-validator.test.js +0 -73
  429. package/dist/tests/validator/debug-config.d.ts +0 -0
  430. package/dist/tests/validator/debug-config.js +0 -1
  431. package/dist/tests/validator/debug-missing-service.d.ts +0 -0
  432. package/dist/tests/validator/debug-missing-service.js +0 -1
  433. package/dist/tests/validator/debug-other-configs.d.ts +0 -0
  434. package/dist/tests/validator/debug-other-configs.js +0 -1
  435. package/dist/tests/validator/debug-references.d.ts +0 -0
  436. package/dist/tests/validator/debug-references.js +0 -1
  437. package/dist/tests/validator/unispec-validator.test.d.ts +0 -1
  438. package/dist/tests/validator/unispec-validator.test.js +0 -98
  439. package/dist/tests/validator/utils.d.ts +0 -6
  440. package/dist/tests/validator/utils.js +0 -20
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ErrorFactory = void 0;
4
- const base_error_1 = require("./base-error.js");
5
- const config_error_1 = require("./config-error.js");
6
- const loader_error_1 = require("./loader-error.js");
7
- const reference_error_1 = require("./reference-error.js");
8
- const schema_error_1 = require("./schema-error.js");
9
- const security_error_1 = require("./security-error.js");
10
- const semantic_error_1 = require("./semantic-error.js");
4
+ const base_error_1 = require("./base-error");
5
+ const config_error_1 = require("./config-error");
6
+ const loader_error_1 = require("./loader-error");
7
+ const reference_error_1 = require("./reference-error");
8
+ const schema_error_1 = require("./schema-error");
9
+ const security_error_1 = require("./security-error");
10
+ const semantic_error_1 = require("./semantic-error");
11
11
  /**
12
12
  * Error factory for creating specific error types.
13
13
  */
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecSemanticError = exports.UniSpecSecurityError = exports.UniSpecSchemaError = exports.UniSpecReferenceError = exports.UniSpecLoaderError = exports.ErrorFactory = exports.UniSpecConfigError = exports.UniSpecValidationError = void 0;
4
- var base_error_1 = require("./base-error.js");
4
+ var base_error_1 = require("./base-error");
5
5
  Object.defineProperty(exports, "UniSpecValidationError", { enumerable: true, get: function () { return base_error_1.UniSpecValidationError; } });
6
- var config_error_1 = require("./config-error.js");
6
+ var config_error_1 = require("./config-error");
7
7
  Object.defineProperty(exports, "UniSpecConfigError", { enumerable: true, get: function () { return config_error_1.UniSpecConfigError; } });
8
- var error_factory_1 = require("./error-factory.js");
8
+ var error_factory_1 = require("./error-factory");
9
9
  Object.defineProperty(exports, "ErrorFactory", { enumerable: true, get: function () { return error_factory_1.ErrorFactory; } });
10
- var loader_error_1 = require("./loader-error.js");
10
+ var loader_error_1 = require("./loader-error");
11
11
  Object.defineProperty(exports, "UniSpecLoaderError", { enumerable: true, get: function () { return loader_error_1.UniSpecLoaderError; } });
12
- var reference_error_1 = require("./reference-error.js");
12
+ var reference_error_1 = require("./reference-error");
13
13
  Object.defineProperty(exports, "UniSpecReferenceError", { enumerable: true, get: function () { return reference_error_1.UniSpecReferenceError; } });
14
- var schema_error_1 = require("./schema-error.js");
14
+ var schema_error_1 = require("./schema-error");
15
15
  Object.defineProperty(exports, "UniSpecSchemaError", { enumerable: true, get: function () { return schema_error_1.UniSpecSchemaError; } });
16
- var security_error_1 = require("./security-error.js");
16
+ var security_error_1 = require("./security-error");
17
17
  Object.defineProperty(exports, "UniSpecSecurityError", { enumerable: true, get: function () { return security_error_1.UniSpecSecurityError; } });
18
- var semantic_error_1 = require("./semantic-error.js");
18
+ var semantic_error_1 = require("./semantic-error");
19
19
  Object.defineProperty(exports, "UniSpecSemanticError", { enumerable: true, get: function () { return semantic_error_1.UniSpecSemanticError; } });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecLoaderError = void 0;
4
- const base_error_1 = require("./base-error.js");
4
+ const base_error_1 = require("./base-error");
5
5
  class UniSpecLoaderError extends base_error_1.UniSpecValidationError {
6
6
  constructor(message, path = "", details) {
7
7
  super(message, "loader_error", path, "error", details);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecReferenceError = void 0;
4
- const base_error_1 = require("./base-error.js");
4
+ const base_error_1 = require("./base-error");
5
5
  class UniSpecReferenceError extends base_error_1.UniSpecValidationError {
6
6
  constructor(message, path = "", details) {
7
7
  super(message, "reference_error", path, "error", details);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecSchemaError = void 0;
4
- const base_error_1 = require("./base-error.js");
4
+ const base_error_1 = require("./base-error");
5
5
  class UniSpecSchemaError extends base_error_1.UniSpecValidationError {
6
6
  constructor(message, path = "", details) {
7
7
  super(message, "schema_error", path, "error", details);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecSecurityError = void 0;
4
- const base_error_1 = require("./base-error.js");
4
+ const base_error_1 = require("./base-error");
5
5
  class UniSpecSecurityError extends base_error_1.UniSpecValidationError {
6
6
  constructor(message, path = "", details) {
7
7
  super(message, "security_error", path, "error", details);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniSpecSemanticError = void 0;
4
- const base_error_1 = require("./base-error.js");
4
+ const base_error_1 = require("./base-error");
5
5
  class UniSpecSemanticError extends base_error_1.UniSpecValidationError {
6
6
  constructor(message, path = "", details) {
7
7
  super(message, "semantic_error", path, "error", details);
package/dist/cjs/index.js CHANGED
@@ -20,40 +20,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  // ============================================================================
21
21
  // CACHING SYSTEM
22
22
  // ============================================================================
23
- __exportStar(require("./cache/index.js"), exports);
23
+ __exportStar(require("./cache"), exports);
24
24
  // ============================================================================
25
25
  // DIFF AND CHANGE ANALYSIS
26
26
  // ============================================================================
27
- __exportStar(require("./diff/index.js"), exports);
27
+ __exportStar(require("./diff"), exports);
28
28
  // ============================================================================
29
29
  // DOCUMENT LOADING AND PARSING
30
30
  // ============================================================================
31
- __exportStar(require("./loader/index.js"), exports);
31
+ __exportStar(require("./loader"), exports);
32
32
  // ============================================================================
33
33
  // DOCUMENT NORMALIZATION
34
34
  // ============================================================================
35
- __exportStar(require("./normalizer/index.js"), exports);
35
+ __exportStar(require("./normalizer"), exports);
36
36
  // ============================================================================
37
37
  // DOCUMENT OPTIMIZATION
38
38
  // ============================================================================
39
- __exportStar(require("./optimizer/index.js"), exports);
39
+ __exportStar(require("./optimizer"), exports);
40
40
  // ============================================================================
41
41
  // SCHEMA MANAGEMENT
42
42
  // ============================================================================
43
- __exportStar(require("./schemas/index.js"), exports);
44
- __exportStar(require("./types/index.js"), exports);
43
+ __exportStar(require("./schemas"), exports);
44
+ __exportStar(require("./types"), exports);
45
45
  // ============================================================================
46
46
  // VALIDATION SYSTEM
47
47
  // ============================================================================
48
- __exportStar(require("./validator/index.js"), exports);
48
+ __exportStar(require("./validator"), exports);
49
49
  // ============================================================================
50
50
  // UTILITY FUNCTIONS
51
51
  // ============================================================================
52
- __exportStar(require("./validator/object-traversal.js"), exports);
53
- __exportStar(require("./validator/reference-validator.js"), exports);
54
- __exportStar(require("./validator/schema-references.js"), exports);
55
- __exportStar(require("./validator/semantic-validator.js"), exports);
52
+ __exportStar(require("./validator/object-traversal"), exports);
53
+ __exportStar(require("./validator/reference-validator"), exports);
54
+ __exportStar(require("./validator/schema-references"), exports);
55
+ __exportStar(require("./validator/semantic-validator"), exports);
56
56
  // ============================================================================
57
57
  // VERSION INFORMATION
58
58
  // ============================================================================
59
- __exportStar(require("./versions.js"), exports);
59
+ __exportStar(require("./versions"), exports);
@@ -2,12 +2,12 @@
2
2
  // Export all loader functionality
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.validateYamlModule = exports.getYamlModule = exports.loadUniSpec = exports.ALLOWED_YAML_MODULES = exports.validateDocumentSecurity = void 0;
5
- var security_validator_1 = require("./security-validator.js");
5
+ var security_validator_1 = require("./security-validator");
6
6
  Object.defineProperty(exports, "validateDocumentSecurity", { enumerable: true, get: function () { return security_validator_1.validateDocumentSecurity; } });
7
- var types_1 = require("./types.js");
7
+ var types_1 = require("./types");
8
8
  Object.defineProperty(exports, "ALLOWED_YAML_MODULES", { enumerable: true, get: function () { return types_1.ALLOWED_YAML_MODULES; } });
9
- var unispec_loader_1 = require("./unispec-loader.js");
9
+ var unispec_loader_1 = require("./unispec-loader");
10
10
  Object.defineProperty(exports, "loadUniSpec", { enumerable: true, get: function () { return unispec_loader_1.loadUniSpec; } });
11
- var yaml_loader_1 = require("./yaml-loader.js");
11
+ var yaml_loader_1 = require("./yaml-loader");
12
12
  Object.defineProperty(exports, "getYamlModule", { enumerable: true, get: function () { return yaml_loader_1.getYamlModule; } });
13
13
  Object.defineProperty(exports, "validateYamlModule", { enumerable: true, get: function () { return yaml_loader_1.validateYamlModule; } });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateDocumentSecurity = validateDocumentSecurity;
4
- const errors_1 = require("../errors/index.js");
4
+ const errors_1 = require("@/errors");
5
5
  /**
6
6
  * Validate document security constraints using iterative approach to prevent stack overflow.
7
7
  */
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadUniSpec = loadUniSpec;
4
- const index_1 = require("../errors/index.js");
5
- const security_validator_1 = require("./security-validator.js");
6
- const yaml_loader_1 = require("./yaml-loader.js");
4
+ const index_1 = require("@/errors/index");
5
+ const security_validator_1 = require("./security-validator");
6
+ const yaml_loader_1 = require("./yaml-loader");
7
7
  /**
8
8
  * Load a UniSpec document from a raw input value.
9
9
  * Supports:
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getYamlModule = getYamlModule;
37
37
  exports.validateYamlModule = validateYamlModule;
38
- const index_1 = require("../errors/index.js");
38
+ const index_1 = require("@/errors/index");
39
39
  // Static import with security validation
40
40
  let yamlModule = null;
41
41
  /**
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeUniSpec = normalizeUniSpec;
4
- const graphql_normalizer_1 = require("./graphql-normalizer.js");
5
- const rest_normalizer_1 = require("./rest-normalizer.js");
6
- const utils_1 = require("./utils.js");
7
- const websocket_normalizer_1 = require("./websocket-normalizer.js");
4
+ const graphql_normalizer_1 = require("./graphql-normalizer");
5
+ const rest_normalizer_1 = require("./rest-normalizer");
6
+ const utils_1 = require("./utils");
7
+ const websocket_normalizer_1 = require("./websocket-normalizer");
8
8
  /**
9
9
  * Normalize a UniSpec document into a canonical, deterministic form.
10
10
  *
@@ -27,6 +27,11 @@ const websocket_normalizer_1 = require("./websocket-normalizer.js");
27
27
  * @returns The normalized UniSpec document
28
28
  */
29
29
  function normalizeUniSpec(doc, _options = {}) {
30
- const normalized = (0, utils_1.normalizeValue)(doc);
31
- return (0, websocket_normalizer_1.normalizeWebSocket)((0, graphql_normalizer_1.normalizeGraphqlOperations)((0, rest_normalizer_1.normalizeRestRoutes)(normalized)));
30
+ // Apply protocol-specific normalizations first
31
+ const restNormalized = (0, rest_normalizer_1.normalizeRestRoutes)(doc);
32
+ const graphqlNormalized = (0, graphql_normalizer_1.normalizeGraphqlOperations)(restNormalized);
33
+ const finalNormalized = (0, websocket_normalizer_1.normalizeWebSocket)(graphqlNormalized);
34
+ // Always apply structural normalization to ensure immutability
35
+ // and consistent key sorting, even if no protocol changes were made
36
+ return (0, utils_1.normalizeValue)(finalNormalized);
32
37
  }
@@ -3,5 +3,5 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.normalizeUniSpec = void 0;
5
5
  // Re-export core function
6
- var core_1 = require("./core.js");
6
+ var core_1 = require("./core");
7
7
  Object.defineProperty(exports, "normalizeUniSpec", { enumerable: true, get: function () { return core_1.normalizeUniSpec; } });
@@ -12,20 +12,36 @@ function isPlainObject(value) {
12
12
  return Object.prototype.toString.call(value) === "[object Object]";
13
13
  }
14
14
  /**
15
- * Recursively normalize a value by sorting object keys lexicographically.
15
+ * Normalize a value by sorting object keys lexicographically (recursive).
16
+ * Always creates new objects to ensure immutability.
17
+ * Handles circular references gracefully.
16
18
  *
17
19
  * @param value - The value to normalize
18
- * @returns The normalized value
20
+ * @param seen - WeakSet of already seen objects for circular reference detection
21
+ * @returns The normalized value (always a new object for objects/arrays)
19
22
  */
20
- function normalizeValue(value) {
23
+ function normalizeValue(value, seen = new WeakSet()) {
24
+ // Handle primitives and null/undefined
25
+ if (value === null || typeof value !== "object") {
26
+ return value;
27
+ }
21
28
  if (Array.isArray(value)) {
22
- return value.map((item) => normalizeValue(item));
29
+ // Always create new array with recursively normalized items
30
+ return value.map((item) => normalizeValue(item, seen));
23
31
  }
24
32
  if (isPlainObject(value)) {
25
- const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
33
+ // Check for circular references
34
+ if (seen.has(value)) {
35
+ // Return a placeholder for circular references to avoid infinite recursion
36
+ return "[Circular]";
37
+ }
38
+ seen.add(value);
39
+ const entries = Object.entries(value);
40
+ // Always create new object with sorted keys and recursively normalized values
41
+ const sortedEntries = entries.sort(([a], [b]) => a.localeCompare(b));
26
42
  const normalized = {};
27
- for (const [key, val] of entries) {
28
- normalized[key] = normalizeValue(val);
43
+ for (const [key, val] of sortedEntries) {
44
+ normalized[key] = normalizeValue(val, seen);
29
45
  }
30
46
  return normalized;
31
47
  }
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.optimizeDocument = optimizeDocument;
4
4
  exports.generateOptimizationReport = generateOptimizationReport;
5
- const optimization_functions_1 = require("./optimization-functions.js");
5
+ const schemas_1 = require("@/schemas");
6
+ const optimization_functions_1 = require("./optimization-functions");
6
7
  /**
7
8
  * Optimize a UniSpec document with various optimization strategies.
8
9
  *
@@ -24,12 +25,6 @@ function optimizeDocument(doc, options = {}) {
24
25
  }
25
26
  let deduplicatedCount = 0;
26
27
  // Apply optimizations in order
27
- if (options.removeUnusedSchemas === true) {
28
- const removed = (0, optimization_functions_1.removeOrphanedSchemas)(optimizedDoc);
29
- if (removed.length > 0) {
30
- changes.push(`Removed ${removed.length} orphaned schemas: ${removed.join(", ")}`);
31
- }
32
- }
33
28
  if (options.dedupeSchemas !== false) {
34
29
  const dedupResult = (0, optimization_functions_1.deduplicateSchemas)(optimizedDoc);
35
30
  if (dedupResult.removedSchemas.length > 0) {
@@ -38,6 +33,12 @@ function optimizeDocument(doc, options = {}) {
38
33
  deduplicatedCount = dedupResult.removedSchemas.length;
39
34
  }
40
35
  }
36
+ if (options.removeUnusedSchemas === true) {
37
+ const removed = (0, optimization_functions_1.removeOrphanedSchemas)(optimizedDoc);
38
+ if (removed.length > 0) {
39
+ changes.push(`Removed ${removed.length} orphaned schemas: ${removed.join(", ")}`);
40
+ }
41
+ }
41
42
  if (options.sortSchemas !== false) {
42
43
  const sortedCount = (0, optimization_functions_1.sortSchemas)(optimizedDoc);
43
44
  if (sortedCount > 0) {
@@ -85,7 +86,7 @@ function generateOptimizationReport(doc) {
85
86
  return;
86
87
  for (const [key, value] of Object.entries(obj)) {
87
88
  if (key === "schemaRef" && typeof value === "string") {
88
- const schemaName = value.split("/").pop(); // Simple extraction for analysis
89
+ const schemaName = (0, schemas_1.normalizeSchemaRef)(value);
89
90
  if (schemaName)
90
91
  referencedSchemas.add(schemaName);
91
92
  }
@@ -105,11 +106,35 @@ function generateOptimizationReport(doc) {
105
106
  }
106
107
  const totalSchemas = Object.keys(doc.service?.schemas || {}).length;
107
108
  const potentialReduction = orphaned.length + dedupResult.removedSchemas.length;
108
- return {
109
+ // Calculate reference compression savings only if there are schema references
110
+ let referenceCompression = 0;
111
+ if (totalSchemas > 0) {
112
+ // Count actual schema references to estimate compression savings
113
+ let referenceCount = 0;
114
+ function countReferences(obj) {
115
+ if (!obj || typeof obj !== "object")
116
+ return;
117
+ for (const [key, value] of Object.entries(obj)) {
118
+ if (key === "schemaRef" && typeof value === "string") {
119
+ referenceCount++;
120
+ }
121
+ else if (typeof value === "object" && value !== null) {
122
+ countReferences(value);
123
+ }
124
+ }
125
+ }
126
+ countReferences(doc);
127
+ // Only estimate compression if there are references to compress
128
+ if (referenceCount > 1) {
129
+ referenceCompression = Math.min(referenceCount * 0.1, totalSchemas * 0.1);
130
+ }
131
+ }
132
+ const result = {
109
133
  recommendations,
110
134
  potentialSavings: {
111
135
  schemaReduction: potentialReduction,
112
- referenceCompression: totalSchemas * 0.1, // Estimate 10% compression
136
+ referenceCompression,
113
137
  },
114
138
  };
139
+ return result;
115
140
  }
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.compressReference = exports.sortSchemas = exports.removeOrphanedSchemas = exports.deduplicateSchemas = exports.compressSchemaReferences = exports.optimizeDocument = exports.generateOptimizationReport = void 0;
5
5
  // Export core functions
6
- var core_1 = require("./core.js");
6
+ var core_1 = require("./core");
7
7
  Object.defineProperty(exports, "generateOptimizationReport", { enumerable: true, get: function () { return core_1.generateOptimizationReport; } });
8
8
  Object.defineProperty(exports, "optimizeDocument", { enumerable: true, get: function () { return core_1.optimizeDocument; } });
9
9
  // Export optimization functions
10
- var optimization_functions_1 = require("./optimization-functions.js");
10
+ var optimization_functions_1 = require("./optimization-functions");
11
11
  Object.defineProperty(exports, "compressSchemaReferences", { enumerable: true, get: function () { return optimization_functions_1.compressSchemaReferences; } });
12
12
  Object.defineProperty(exports, "deduplicateSchemas", { enumerable: true, get: function () { return optimization_functions_1.deduplicateSchemas; } });
13
13
  Object.defineProperty(exports, "removeOrphanedSchemas", { enumerable: true, get: function () { return optimization_functions_1.removeOrphanedSchemas; } });
14
14
  Object.defineProperty(exports, "sortSchemas", { enumerable: true, get: function () { return optimization_functions_1.sortSchemas; } });
15
15
  // Export utilities
16
- var utils_1 = require("./utils.js");
16
+ var utils_1 = require("./utils");
17
17
  Object.defineProperty(exports, "compressReference", { enumerable: true, get: function () { return utils_1.compressReference; } });
@@ -4,8 +4,8 @@ exports.deduplicateSchemas = deduplicateSchemas;
4
4
  exports.removeOrphanedSchemas = removeOrphanedSchemas;
5
5
  exports.sortSchemas = sortSchemas;
6
6
  exports.compressSchemaReferences = compressSchemaReferences;
7
- const schemas_1 = require("../schemas/index.js");
8
- const utils_1 = require("./utils.js");
7
+ const schemas_1 = require("@/schemas");
8
+ const utils_1 = require("./utils");
9
9
  /**
10
10
  * Remove duplicate schemas from a UniSpec document.
11
11
  * Duplicates are identified by identical JSON Schema content.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dedupeSchemas = dedupeSchemas;
4
- const utils_1 = require("./utils.js");
4
+ const utils_1 = require("./utils");
5
5
  function updateSchemaRefs(doc, mapping) {
6
6
  const rest = doc.service?.protocols?.rest;
7
7
  const websocket = doc.service?.protocols?.websocket;
@@ -75,26 +75,39 @@ function updateSchemaRefs(doc, mapping) {
75
75
  * @param doc - The UniSpec document to deduplicate
76
76
  */
77
77
  function dedupeSchemas(doc) {
78
- if (!doc.service?.schemas)
78
+ if (!doc?.service?.schemas || typeof doc.service.schemas !== "object")
79
79
  return;
80
- const names = Object.keys(doc.service.schemas);
80
+ const schemas = doc.service.schemas;
81
81
  const hashToName = new Map();
82
- const renameMap = {};
83
- for (const name of names) {
84
- const schema = doc.service.schemas[name];
82
+ const toDelete = [];
83
+ // Find duplicates
84
+ for (const name of Object.keys(schemas)) {
85
+ const schema = schemas[name];
85
86
  const hash = (0, utils_1.stableStringify)(schema?.jsonSchema ?? null);
86
87
  const existing = hashToName.get(hash);
87
88
  if (!existing) {
88
89
  hashToName.set(hash, name);
89
- continue;
90
90
  }
91
- renameMap[name] = existing;
91
+ else {
92
+ // Mark for deletion - keep the first one encountered
93
+ toDelete.push(name);
94
+ }
92
95
  }
93
- const duplicates = Object.keys(renameMap);
94
- if (duplicates.length === 0)
95
- return;
96
- updateSchemaRefs(doc, renameMap);
97
- for (const dup of duplicates) {
98
- delete doc.service.schemas[dup];
96
+ // Update references before deleting
97
+ if (toDelete.length > 0) {
98
+ const renameMap = {};
99
+ for (const dup of toDelete) {
100
+ const schema = schemas[dup];
101
+ const hash = (0, utils_1.stableStringify)(schema?.jsonSchema ?? null);
102
+ const existing = hashToName.get(hash);
103
+ if (existing) {
104
+ renameMap[dup] = existing;
105
+ }
106
+ }
107
+ updateSchemaRefs(doc, renameMap);
108
+ // Delete duplicates
109
+ for (const dup of toDelete) {
110
+ delete schemas[dup];
111
+ }
99
112
  }
100
113
  }
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.stableStringify = exports.normalizeSchemaRef = exports.resolveSchemaRef = exports.registerSchema = exports.dedupeSchemas = void 0;
5
5
  // Export deduplication functions
6
- var dedupe_1 = require("./dedupe.js");
6
+ var dedupe_1 = require("./dedupe");
7
7
  Object.defineProperty(exports, "dedupeSchemas", { enumerable: true, get: function () { return dedupe_1.dedupeSchemas; } });
8
8
  // Export resolver functions
9
- var resolver_1 = require("./resolver.js");
9
+ var resolver_1 = require("./resolver");
10
10
  Object.defineProperty(exports, "registerSchema", { enumerable: true, get: function () { return resolver_1.registerSchema; } });
11
11
  Object.defineProperty(exports, "resolveSchemaRef", { enumerable: true, get: function () { return resolver_1.resolveSchemaRef; } });
12
- var utils_1 = require("./utils.js");
12
+ var utils_1 = require("./utils");
13
13
  Object.defineProperty(exports, "normalizeSchemaRef", { enumerable: true, get: function () { return utils_1.normalizeSchemaRef; } });
14
14
  Object.defineProperty(exports, "stableStringify", { enumerable: true, get: function () { return utils_1.stableStringify; } });
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveSchemaRef = resolveSchemaRef;
4
4
  exports.registerSchema = registerSchema;
5
- const utils_1 = require("./utils.js");
5
+ const utils_1 = require("./utils");
6
6
  /**
7
7
  * Resolve a schema reference to its definition in a UniSpec document.
8
8
  *
@@ -11,6 +11,8 @@ const utils_1 = require("./utils.js");
11
11
  * @returns The schema definition or undefined if not found
12
12
  */
13
13
  function resolveSchemaRef(doc, ref) {
14
+ if (!doc)
15
+ return undefined;
14
16
  const name = (0, utils_1.normalizeSchemaRef)(ref);
15
17
  if (!name)
16
18
  return undefined;
@@ -33,7 +35,6 @@ function registerSchema(doc, name, jsonSchema) {
33
35
  doc.service.schemas = {};
34
36
  }
35
37
  const definition = {
36
- name,
37
38
  jsonSchema,
38
39
  };
39
40
  doc.service.schemas[name] = definition;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getValidator = getValidator;
7
7
  exports.clearValidatorCache = clearValidatorCache;
8
8
  const _2020_js_1 = __importDefault(require("ajv/dist/2020.js"));
9
- const generated_schemas_1 = require("../generated-schemas.js");
9
+ const generated_schemas_1 = require("@/generated-schemas");
10
10
  let cached = null;
11
11
  /**
12
12
  * Load default schemas from generated schemas.
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateUniSpecConfig = validateUniSpecConfig;
4
- const errors_1 = require("../errors/index.js");
5
- const ajv_validator_1 = require("./ajv-validator.js");
6
- const config_validator_1 = require("./config-validator.js");
7
- const validator_factory_1 = require("./validator-factory.js");
4
+ const errors_1 = require("@/errors");
5
+ const ajv_validator_1 = require("./ajv-validator");
6
+ const config_validator_1 = require("./config-validator");
7
+ const validator_factory_1 = require("./validator-factory");
8
8
  /**
9
9
  * Validate a UniSpec Config document against the UniSpec Config JSON Schema.
10
10
  *
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateConfigCustomRules = validateConfigCustomRules;
4
- const errors_1 = require("../errors/index.js");
4
+ const errors_1 = require("@/errors");
5
5
  /**
6
6
  * Custom validation for UniSpec Config documents.
7
7
  */
@@ -3,21 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.mapAjvErrors = exports.createValidator = exports.validateUniSpec = exports.validateUniSpecTests = exports.validateSemantic = exports.validateReferences = exports.validateUniSpecConfig = exports.getValidator = exports.clearValidatorCache = void 0;
5
5
  // Export AJV utilities
6
- var ajv_validator_1 = require("./ajv-validator.js");
6
+ var ajv_validator_1 = require("./ajv-validator");
7
7
  Object.defineProperty(exports, "clearValidatorCache", { enumerable: true, get: function () { return ajv_validator_1.clearValidatorCache; } });
8
8
  Object.defineProperty(exports, "getValidator", { enumerable: true, get: function () { return ajv_validator_1.getValidator; } });
9
- var config_validator_main_1 = require("./config-validator-main.js");
9
+ var config_validator_main_1 = require("./config-validator-main");
10
10
  Object.defineProperty(exports, "validateUniSpecConfig", { enumerable: true, get: function () { return config_validator_main_1.validateUniSpecConfig; } });
11
- var reference_validator_1 = require("./reference-validator.js");
11
+ var reference_validator_1 = require("./reference-validator");
12
12
  Object.defineProperty(exports, "validateReferences", { enumerable: true, get: function () { return reference_validator_1.validateReferences; } });
13
13
  // Re-export semantic and reference validators
14
- var semantic_validator_1 = require("./semantic-validator.js");
14
+ var semantic_validator_1 = require("./semantic-validator");
15
15
  Object.defineProperty(exports, "validateSemantic", { enumerable: true, get: function () { return semantic_validator_1.validateSemantic; } });
16
- var tests_validator_1 = require("./tests-validator.js");
16
+ var tests_validator_1 = require("./tests-validator");
17
17
  Object.defineProperty(exports, "validateUniSpecTests", { enumerable: true, get: function () { return tests_validator_1.validateUniSpecTests; } });
18
- var unispec_validator_1 = require("./unispec-validator.js");
18
+ var unispec_validator_1 = require("./unispec-validator");
19
19
  Object.defineProperty(exports, "validateUniSpec", { enumerable: true, get: function () { return unispec_validator_1.validateUniSpec; } });
20
20
  // Export validator factory for advanced usage
21
- var validator_factory_1 = require("./validator-factory.js");
21
+ var validator_factory_1 = require("./validator-factory");
22
22
  Object.defineProperty(exports, "createValidator", { enumerable: true, get: function () { return validator_factory_1.createValidator; } });
23
23
  Object.defineProperty(exports, "mapAjvErrors", { enumerable: true, get: function () { return validator_factory_1.mapAjvErrors; } });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateReferences = validateReferences;
4
- const object_traversal_1 = require("./object-traversal.js");
4
+ const object_traversal_1 = require("./object-traversal");
5
5
  /**
6
6
  * Extract all schema references from a UniSpec document.
7
7
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateUniSpecTests = void 0;
4
- const ajv_validator_1 = require("./ajv-validator.js");
5
- const validator_factory_1 = require("./validator-factory.js");
4
+ const ajv_validator_1 = require("./ajv-validator");
5
+ const validator_factory_1 = require("./validator-factory");
6
6
  /**
7
7
  * Validate a UniSpec Tests document against the UniSpec Tests JSON Schema.
8
8
  *