@pdtf/schemas 3.6.0-dev.3 → 3.6.0-dev.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 (263) hide show
  1. package/charming-napier-57a77c/LICENSE +21 -0
  2. package/charming-napier-57a77c/README.md +430 -0
  3. package/charming-napier-57a77c/docs/sef25-extensions-ui-spec.md +355 -0
  4. package/charming-napier-57a77c/index.js +654 -0
  5. package/charming-napier-57a77c/package-lock.json +7297 -0
  6. package/charming-napier-57a77c/package.json +41 -0
  7. package/charming-napier-57a77c/src/examples/v1/exampleAddParticipantVouch.json +32 -0
  8. package/charming-napier-57a77c/src/examples/v1/exampleDocumentedVouch.json +40 -0
  9. package/charming-napier-57a77c/src/examples/v1/exampleElectronicRecord.json +30 -0
  10. package/charming-napier-57a77c/src/examples/v1/exampleTransaction.json +878 -0
  11. package/charming-napier-57a77c/src/examples/v1/exampleVouch.json +25 -0
  12. package/charming-napier-57a77c/src/examples/v2/exampleTransaction.json +901 -0
  13. package/charming-napier-57a77c/src/examples/v3/exampleAddParticipantVouch.json +38 -0
  14. package/charming-napier-57a77c/src/examples/v3/exampleCustomOverlay.json +55 -0
  15. package/charming-napier-57a77c/src/examples/v3/exampleCustomOverlay2.json +93 -0
  16. package/charming-napier-57a77c/src/examples/v3/exampleDocumentedVouch.json +47 -0
  17. package/charming-napier-57a77c/src/examples/v3/exampleElectronicRecord.json +36 -0
  18. package/charming-napier-57a77c/src/examples/v3/exampleTransaction.json +1038 -0
  19. package/charming-napier-57a77c/src/examples/v3/exampleVouch.json +32 -0
  20. package/charming-napier-57a77c/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
  21. package/charming-napier-57a77c/src/mappings/adf.js +198 -0
  22. package/charming-napier-57a77c/src/schemas/v1/GeoJSON.json +1279 -0
  23. package/charming-napier-57a77c/src/schemas/v1/baspiNotes.html +102 -0
  24. package/charming-napier-57a77c/src/schemas/v1/energy-performance-certificate.json +124 -0
  25. package/charming-napier-57a77c/src/schemas/v1/freehold-information.json +2051 -0
  26. package/charming-napier-57a77c/src/schemas/v1/leasehold-information.json +2064 -0
  27. package/charming-napier-57a77c/src/schemas/v1/legal-information.json +1045 -0
  28. package/charming-napier-57a77c/src/schemas/v1/material-facts.json +2109 -0
  29. package/charming-napier-57a77c/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
  30. package/charming-napier-57a77c/src/schemas/v1/pdtf-transaction.json +191 -0
  31. package/charming-napier-57a77c/src/schemas/v1/searches/drainage-and-water.json +261 -0
  32. package/charming-napier-57a77c/src/schemas/v1/searches/local-land-charges.json +69 -0
  33. package/charming-napier-57a77c/src/schemas/v1/searches/local-searches-required.json +857 -0
  34. package/charming-napier-57a77c/src/schemas/v1/searches.json +237 -0
  35. package/charming-napier-57a77c/src/schemas/v1/title-deed.json +841 -0
  36. package/charming-napier-57a77c/src/schemas/v2/baspiNotes.html +102 -0
  37. package/charming-napier-57a77c/src/schemas/v2/combined.json +37731 -0
  38. package/charming-napier-57a77c/src/schemas/v2/overlays/baspi.json +8132 -0
  39. package/charming-napier-57a77c/src/schemas/v2/overlays/con29DW.json +705 -0
  40. package/charming-napier-57a77c/src/schemas/v2/overlays/con29R.json +2956 -0
  41. package/charming-napier-57a77c/src/schemas/v2/overlays/fme1.json +1259 -0
  42. package/charming-napier-57a77c/src/schemas/v2/overlays/llc1.json +25 -0
  43. package/charming-napier-57a77c/src/schemas/v2/overlays/lpe1.json +2171 -0
  44. package/charming-napier-57a77c/src/schemas/v2/overlays/nts.json +326 -0
  45. package/charming-napier-57a77c/src/schemas/v2/overlays/oc1.json +2799 -0
  46. package/charming-napier-57a77c/src/schemas/v2/overlays/piq.json +3419 -0
  47. package/charming-napier-57a77c/src/schemas/v2/overlays/rds.json +3736 -0
  48. package/charming-napier-57a77c/src/schemas/v2/overlays/ta10.json +5306 -0
  49. package/charming-napier-57a77c/src/schemas/v2/overlays/ta6.json +4533 -0
  50. package/charming-napier-57a77c/src/schemas/v2/overlays/ta7.json +1045 -0
  51. package/charming-napier-57a77c/src/schemas/v2/pdtf-transaction.json +34351 -0
  52. package/charming-napier-57a77c/src/schemas/v2/skeleton.json +3973 -0
  53. package/charming-napier-57a77c/src/schemas/v3/combined.json +48153 -0
  54. package/charming-napier-57a77c/src/schemas/v3/compactSkeleton.txt +4457 -0
  55. package/charming-napier-57a77c/src/schemas/v3/overlays/README.md +299 -0
  56. package/charming-napier-57a77c/src/schemas/v3/overlays/baspi4.json +8027 -0
  57. package/charming-napier-57a77c/src/schemas/v3/overlays/baspi5.json +8177 -0
  58. package/charming-napier-57a77c/src/schemas/v3/overlays/con29DW.json +716 -0
  59. package/charming-napier-57a77c/src/schemas/v3/overlays/con29R.json +2981 -0
  60. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ac.json +333 -0
  61. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/as.json +74 -0
  62. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/dk.json +32 -0
  63. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/dr.json +73 -0
  64. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/er.json +85 -0
  65. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/fd.json +75 -0
  66. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/hi.json +51 -0
  67. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/hs.json +73 -0
  68. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ic.json +59 -0
  69. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/jk.json +96 -0
  70. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/la.json +85 -0
  71. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/lc.json +75 -0
  72. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ma.json +90 -0
  73. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/mc.json +38 -0
  74. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/mi.json +69 -0
  75. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/nd.json +43 -0
  76. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/oa.json +24 -0
  77. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/oc.json +57 -0
  78. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/pc.json +37 -0
  79. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ph.json +194 -0
  80. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/rw.json +68 -0
  81. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sb.json +73 -0
  82. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sc.json +129 -0
  83. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sd.json +63 -0
  84. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sf.json +74 -0
  85. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sl.json +68 -0
  86. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ta.json +240 -0
  87. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/tf.json +103 -0
  88. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/tr.json +73 -0
  89. package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/wg.json +350 -0
  90. package/charming-napier-57a77c/src/schemas/v3/overlays/fme1.json +1266 -0
  91. package/charming-napier-57a77c/src/schemas/v3/overlays/llc1.json +25 -0
  92. package/charming-napier-57a77c/src/schemas/v3/overlays/lpe1.json +2199 -0
  93. package/charming-napier-57a77c/src/schemas/v3/overlays/nts.json +2157 -0
  94. package/charming-napier-57a77c/src/schemas/v3/overlays/nts2.json +2742 -0
  95. package/charming-napier-57a77c/src/schemas/v3/overlays/ntsl.json +1813 -0
  96. package/charming-napier-57a77c/src/schemas/v3/overlays/ntsl2.json +2217 -0
  97. package/charming-napier-57a77c/src/schemas/v3/overlays/oc1.json +2817 -0
  98. package/charming-napier-57a77c/src/schemas/v3/overlays/piq.json +3321 -0
  99. package/charming-napier-57a77c/src/schemas/v3/overlays/rds.json +3665 -0
  100. package/charming-napier-57a77c/src/schemas/v3/overlays/sef25.json +1639 -0
  101. package/charming-napier-57a77c/src/schemas/v3/overlays/sr24.json +38 -0
  102. package/charming-napier-57a77c/src/schemas/v3/overlays/ta10.json +4654 -0
  103. package/charming-napier-57a77c/src/schemas/v3/overlays/ta6.json +4568 -0
  104. package/charming-napier-57a77c/src/schemas/v3/overlays/ta6ed6.json +6537 -0
  105. package/charming-napier-57a77c/src/schemas/v3/overlays/ta7.json +1537 -0
  106. package/charming-napier-57a77c/src/schemas/v3/overlays/ta7ed5.json +1551 -0
  107. package/charming-napier-57a77c/src/schemas/v3/pdtf-transaction.json +41229 -0
  108. package/charming-napier-57a77c/src/schemas/v3/skeleton.json +5703 -0
  109. package/charming-napier-57a77c/src/schemas/verifiedClaims/README.md +21 -0
  110. package/charming-napier-57a77c/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
  111. package/charming-napier-57a77c/src/tests/v3/buyerCircumstances.test.js +543 -0
  112. package/charming-napier-57a77c/src/tests/v3/caching.test.js +591 -0
  113. package/charming-napier-57a77c/src/tests/v3/enquiries.test.js +1096 -0
  114. package/charming-napier-57a77c/src/tests/v3/extensionOverlays.test.js +1599 -0
  115. package/charming-napier-57a77c/src/tests/v3/offers.test.js +823 -0
  116. package/charming-napier-57a77c/src/tests/v3/patternProperties.test.js +688 -0
  117. package/charming-napier-57a77c/src/tests/v3/ta6ed6.test.js +2374 -0
  118. package/charming-napier-57a77c/src/tests/v3/ta7ed5.test.js +600 -0
  119. package/charming-napier-57a77c/src/tests/v3/transactionSchema.test.js +646 -0
  120. package/charming-napier-57a77c/src/tests/v3/verifiedClaimsValidator.test.js +195 -0
  121. package/charming-napier-57a77c/src/utils/compactSkeleton.js +84 -0
  122. package/charming-napier-57a77c/src/utils/countTokens.js +67 -0
  123. package/charming-napier-57a77c/src/utils/extractExtensionOverlays.js +624 -0
  124. package/charming-napier-57a77c/src/utils/extractOverlay.js +381 -0
  125. package/charming-napier-57a77c/src/utils/extractProperties.js +44 -0
  126. package/charming-napier-57a77c/src/utils/listPathTitles.js +36 -0
  127. package/charming-napier-57a77c/src/utils/minimalSkeleton.js +85 -0
  128. package/charming-napier-57a77c/src/utils/pathList.csv +903 -0
  129. package/charming-napier-57a77c/src/utils/pathSkeleton.js +181 -0
  130. package/keen-dewdney-6ae15b/LICENSE +21 -0
  131. package/keen-dewdney-6ae15b/README.md +334 -0
  132. package/keen-dewdney-6ae15b/index.js +557 -0
  133. package/keen-dewdney-6ae15b/package-lock.json +7296 -0
  134. package/keen-dewdney-6ae15b/package.json +39 -0
  135. package/keen-dewdney-6ae15b/src/examples/v1/exampleAddParticipantVouch.json +32 -0
  136. package/keen-dewdney-6ae15b/src/examples/v1/exampleDocumentedVouch.json +40 -0
  137. package/keen-dewdney-6ae15b/src/examples/v1/exampleElectronicRecord.json +30 -0
  138. package/keen-dewdney-6ae15b/src/examples/v1/exampleTransaction.json +878 -0
  139. package/keen-dewdney-6ae15b/src/examples/v1/exampleVouch.json +25 -0
  140. package/keen-dewdney-6ae15b/src/examples/v2/exampleTransaction.json +901 -0
  141. package/keen-dewdney-6ae15b/src/examples/v3/exampleAddParticipantVouch.json +35 -0
  142. package/keen-dewdney-6ae15b/src/examples/v3/exampleCustomOverlay.json +55 -0
  143. package/keen-dewdney-6ae15b/src/examples/v3/exampleCustomOverlay2.json +93 -0
  144. package/keen-dewdney-6ae15b/src/examples/v3/exampleDocumentedVouch.json +44 -0
  145. package/keen-dewdney-6ae15b/src/examples/v3/exampleElectronicRecord.json +33 -0
  146. package/keen-dewdney-6ae15b/src/examples/v3/exampleTransaction.json +1034 -0
  147. package/keen-dewdney-6ae15b/src/examples/v3/exampleVouch.json +29 -0
  148. package/keen-dewdney-6ae15b/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
  149. package/keen-dewdney-6ae15b/src/mappings/adf.js +198 -0
  150. package/keen-dewdney-6ae15b/src/schemas/v1/GeoJSON.json +1279 -0
  151. package/keen-dewdney-6ae15b/src/schemas/v1/baspiNotes.html +102 -0
  152. package/keen-dewdney-6ae15b/src/schemas/v1/energy-performance-certificate.json +124 -0
  153. package/keen-dewdney-6ae15b/src/schemas/v1/freehold-information.json +2051 -0
  154. package/keen-dewdney-6ae15b/src/schemas/v1/leasehold-information.json +2064 -0
  155. package/keen-dewdney-6ae15b/src/schemas/v1/legal-information.json +1045 -0
  156. package/keen-dewdney-6ae15b/src/schemas/v1/material-facts.json +2109 -0
  157. package/keen-dewdney-6ae15b/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
  158. package/keen-dewdney-6ae15b/src/schemas/v1/pdtf-transaction.json +191 -0
  159. package/keen-dewdney-6ae15b/src/schemas/v1/searches/drainage-and-water.json +261 -0
  160. package/keen-dewdney-6ae15b/src/schemas/v1/searches/local-land-charges.json +69 -0
  161. package/keen-dewdney-6ae15b/src/schemas/v1/searches/local-searches-required.json +857 -0
  162. package/keen-dewdney-6ae15b/src/schemas/v1/searches.json +237 -0
  163. package/keen-dewdney-6ae15b/src/schemas/v1/title-deed.json +841 -0
  164. package/keen-dewdney-6ae15b/src/schemas/v2/baspiNotes.html +102 -0
  165. package/keen-dewdney-6ae15b/src/schemas/v2/combined.json +37731 -0
  166. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/baspi.json +8132 -0
  167. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/con29DW.json +705 -0
  168. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/con29R.json +2956 -0
  169. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/fme1.json +1259 -0
  170. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/llc1.json +25 -0
  171. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/lpe1.json +2171 -0
  172. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/nts.json +326 -0
  173. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/oc1.json +2799 -0
  174. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/piq.json +3419 -0
  175. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/rds.json +3736 -0
  176. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/ta10.json +5306 -0
  177. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/ta6.json +4533 -0
  178. package/keen-dewdney-6ae15b/src/schemas/v2/overlays/ta7.json +1045 -0
  179. package/keen-dewdney-6ae15b/src/schemas/v2/pdtf-transaction.json +34351 -0
  180. package/keen-dewdney-6ae15b/src/schemas/v2/skeleton.json +3973 -0
  181. package/keen-dewdney-6ae15b/src/schemas/v3/combined.json +41720 -0
  182. package/keen-dewdney-6ae15b/src/schemas/v3/compactSkeleton.txt +3325 -0
  183. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/README.md +299 -0
  184. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/baspi4.json +7872 -0
  185. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/baspi5.json +8019 -0
  186. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/con29DW.json +716 -0
  187. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/con29R.json +2981 -0
  188. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/as.json +72 -0
  189. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/dr.json +73 -0
  190. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/er.json +83 -0
  191. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/fd.json +72 -0
  192. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/hi.json +48 -0
  193. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/hs.json +71 -0
  194. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/jk.json +76 -0
  195. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/la.json +83 -0
  196. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/ma.json +87 -0
  197. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/mc.json +36 -0
  198. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/oa.json +22 -0
  199. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/oc.json +55 -0
  200. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/sb.json +71 -0
  201. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/sf.json +72 -0
  202. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/sl.json +66 -0
  203. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/extensions/tf.json +100 -0
  204. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/fme1.json +1264 -0
  205. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/llc1.json +25 -0
  206. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/lpe1.json +2226 -0
  207. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/nts.json +2090 -0
  208. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/nts2.json +2678 -0
  209. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/ntsl.json +1746 -0
  210. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/ntsl2.json +2153 -0
  211. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/oc1.json +2817 -0
  212. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/piq.json +3276 -0
  213. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/rds.json +3552 -0
  214. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/sr24.json +38 -0
  215. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/ta10.json +4642 -0
  216. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/ta6.json +4501 -0
  217. package/keen-dewdney-6ae15b/src/schemas/v3/overlays/ta7.json +1435 -0
  218. package/keen-dewdney-6ae15b/src/schemas/v3/pdtf-transaction.json +37225 -0
  219. package/keen-dewdney-6ae15b/src/schemas/v3/skeleton.json +4323 -0
  220. package/keen-dewdney-6ae15b/src/schemas/verifiedClaims/README.md +12 -0
  221. package/keen-dewdney-6ae15b/src/schemas/verifiedClaims/pdtf-verified-claims.json +431 -0
  222. package/keen-dewdney-6ae15b/src/tests/v3/caching.test.js +591 -0
  223. package/keen-dewdney-6ae15b/src/tests/v3/extensionOverlays.test.js +525 -0
  224. package/keen-dewdney-6ae15b/src/tests/v3/transactionSchema.test.js +574 -0
  225. package/keen-dewdney-6ae15b/src/tests/v3/verifiedClaimsValidator.test.js +128 -0
  226. package/keen-dewdney-6ae15b/src/utils/compactSkeleton.js +84 -0
  227. package/keen-dewdney-6ae15b/src/utils/countTokens.js +67 -0
  228. package/keen-dewdney-6ae15b/src/utils/extractExtensionOverlays.js +362 -0
  229. package/keen-dewdney-6ae15b/src/utils/extractOverlay.js +290 -0
  230. package/keen-dewdney-6ae15b/src/utils/extractProperties.js +44 -0
  231. package/keen-dewdney-6ae15b/src/utils/listPathTitles.js +36 -0
  232. package/keen-dewdney-6ae15b/src/utils/minimalSkeleton.js +85 -0
  233. package/keen-dewdney-6ae15b/src/utils/pathList.csv +903 -0
  234. package/keen-dewdney-6ae15b/src/utils/pathSkeleton.js +181 -0
  235. package/package.json +1 -1
  236. package/src/schemas/v3/combined.json +8 -15
  237. package/src/schemas/v3/overlays/baspi4.json +12 -7
  238. package/src/schemas/v3/overlays/baspi5.json +12 -7
  239. package/src/schemas/v3/overlays/extensions/ac.json +2 -1
  240. package/src/schemas/v3/overlays/extensions/dk.json +3 -2
  241. package/src/schemas/v3/overlays/extensions/ic.json +2 -1
  242. package/src/schemas/v3/overlays/extensions/lc.json +3 -2
  243. package/src/schemas/v3/overlays/extensions/mi.json +2 -1
  244. package/src/schemas/v3/overlays/extensions/nd.json +3 -2
  245. package/src/schemas/v3/overlays/extensions/pc.json +3 -2
  246. package/src/schemas/v3/overlays/extensions/ph.json +2 -1
  247. package/src/schemas/v3/overlays/extensions/rw.json +4 -3
  248. package/src/schemas/v3/overlays/extensions/sc.json +8 -4
  249. package/src/schemas/v3/overlays/extensions/sd.json +3 -2
  250. package/src/schemas/v3/overlays/extensions/tr.json +3 -2
  251. package/src/schemas/v3/overlays/extensions/wg.json +2 -1
  252. package/src/schemas/v3/overlays/lpe1.json +1 -1
  253. package/src/schemas/v3/overlays/nts.json +3 -1
  254. package/src/schemas/v3/overlays/nts2.json +3 -1
  255. package/src/schemas/v3/overlays/ntsl.json +3 -1
  256. package/src/schemas/v3/overlays/ntsl2.json +3 -1
  257. package/src/schemas/v3/overlays/piq.json +7 -5
  258. package/src/schemas/v3/overlays/rds.json +9 -6
  259. package/src/schemas/v3/overlays/ta10.json +0 -9
  260. package/src/schemas/v3/overlays/ta6.json +8 -4
  261. package/src/schemas/v3/overlays/ta6ed6.json +4 -2
  262. package/src/schemas/v3/pdtf-transaction.json +15 -18
  263. package/src/utils/extractExtensionOverlays.js +10 -1
@@ -0,0 +1,543 @@
1
+ const { isPathValid, getSubschema, getValidator } = require("../../../index.js");
2
+
3
+ const schemaId =
4
+ "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json";
5
+
6
+ describe("buyerCircumstances path validation", () => {
7
+ describe("isPathValid for buyerCircumstances fields", () => {
8
+ test("validates path /offers/*/buyerCircumstances", () => {
9
+ const path = "/offers/offer-123/buyerCircumstances";
10
+ expect(isPathValid(path, schemaId)).toBe(true);
11
+ });
12
+
13
+ test("validates path /offers/*/buyerCircumstances/intendedUse", () => {
14
+ const path = "/offers/offer-123/buyerCircumstances/intendedUse";
15
+ expect(isPathValid(path, schemaId)).toBe(true);
16
+ });
17
+
18
+ test("validates path /offers/*/buyerCircumstances/firstTimeBuyer", () => {
19
+ const path = "/offers/offer-123/buyerCircumstances/firstTimeBuyer";
20
+ expect(isPathValid(path, schemaId)).toBe(true);
21
+ });
22
+
23
+ test("validates path /offers/*/buyerCircumstances/rightToBuy", () => {
24
+ const path = "/offers/offer-123/buyerCircumstances/rightToBuy";
25
+ expect(isPathValid(path, schemaId)).toBe(true);
26
+ });
27
+
28
+ test("validates path /offers/*/buyerCircumstances/ltdCompanyPurchase", () => {
29
+ const path = "/offers/offer-123/buyerCircumstances/ltdCompanyPurchase";
30
+ expect(isPathValid(path, schemaId)).toBe(true);
31
+ });
32
+
33
+ test("validates path /offers/*/buyerCircumstances/numberOfOwners", () => {
34
+ const path = "/offers/offer-123/buyerCircumstances/numberOfOwners";
35
+ expect(isPathValid(path, schemaId)).toBe(true);
36
+ });
37
+
38
+ test("validates path /offers/*/buyerCircumstances/numberOfExpats", () => {
39
+ const path = "/offers/offer-123/buyerCircumstances/numberOfExpats";
40
+ expect(isPathValid(path, schemaId)).toBe(true);
41
+ });
42
+
43
+ test("validates path /offers/*/buyerCircumstances/giftedEquity", () => {
44
+ const path = "/offers/offer-123/buyerCircumstances/giftedEquity";
45
+ expect(isPathValid(path, schemaId)).toBe(true);
46
+ });
47
+
48
+ test("validates path /offers/*/buyerCircumstances/numberOfGiftedDeposits", () => {
49
+ const path = "/offers/offer-123/buyerCircumstances/numberOfGiftedDeposits";
50
+ expect(isPathValid(path, schemaId)).toBe(true);
51
+ });
52
+
53
+ test("validates path /offers/*/buyerCircumstances/requiresMortgage", () => {
54
+ const path = "/offers/offer-123/buyerCircumstances/requiresMortgage";
55
+ expect(isPathValid(path, schemaId)).toBe(true);
56
+ });
57
+
58
+ test("validates path /offers/*/buyerCircumstances/helpToBuyEquityLoan", () => {
59
+ const path = "/offers/offer-123/buyerCircumstances/helpToBuyEquityLoan";
60
+ expect(isPathValid(path, schemaId)).toBe(true);
61
+ });
62
+
63
+ test("validates path /offers/*/buyerCircumstances/armedForcesHelpToBuy", () => {
64
+ const path = "/offers/offer-123/buyerCircumstances/armedForcesHelpToBuy";
65
+ expect(isPathValid(path, schemaId)).toBe(true);
66
+ });
67
+
68
+ test("validates path /offers/*/buyerCircumstances/numberOfHelpToBuyIsas", () => {
69
+ const path = "/offers/offer-123/buyerCircumstances/numberOfHelpToBuyIsas";
70
+ expect(isPathValid(path, schemaId)).toBe(true);
71
+ });
72
+
73
+ test("validates path /offers/*/buyerCircumstances/bridgingFinanceRepresentation", () => {
74
+ const path = "/offers/offer-123/buyerCircumstances/bridgingFinanceRepresentation";
75
+ expect(isPathValid(path, schemaId)).toBe(true);
76
+ });
77
+
78
+ test("validates path /offers/*/buyerCircumstances/depositAmount", () => {
79
+ const path = "/offers/offer-123/buyerCircumstances/depositAmount";
80
+ expect(isPathValid(path, schemaId)).toBe(true);
81
+ });
82
+
83
+ test("validates path /offers/*/buyerCircumstances/loanToValue", () => {
84
+ const path = "/offers/offer-123/buyerCircumstances/loanToValue";
85
+ expect(isPathValid(path, schemaId)).toBe(true);
86
+ });
87
+
88
+ test("validates path /offers/*/buyerCircumstances/numberOfBorrowers", () => {
89
+ const path = "/offers/offer-123/buyerCircumstances/numberOfBorrowers";
90
+ expect(isPathValid(path, schemaId)).toBe(true);
91
+ });
92
+
93
+ test("validates path /offers/*/buyerCircumstances/jointProprietorSoleMortgagor", () => {
94
+ const path = "/offers/offer-123/buyerCircumstances/jointProprietorSoleMortgagor";
95
+ expect(isPathValid(path, schemaId)).toBe(true);
96
+ });
97
+
98
+ test("validates path /offers/*/buyerCircumstances/soleProprietorJointMortgagor", () => {
99
+ const path = "/offers/offer-123/buyerCircumstances/soleProprietorJointMortgagor";
100
+ expect(isPathValid(path, schemaId)).toBe(true);
101
+ });
102
+
103
+ test("validates path /offers/*/buyerCircumstances/deedOfPostponement", () => {
104
+ const path = "/offers/offer-123/buyerCircumstances/deedOfPostponement";
105
+ expect(isPathValid(path, schemaId)).toBe(true);
106
+ });
107
+
108
+ test("validates path /offers/*/buyerCircumstances/separateRepresentation", () => {
109
+ const path = "/offers/offer-123/buyerCircumstances/separateRepresentation";
110
+ expect(isPathValid(path, schemaId)).toBe(true);
111
+ });
112
+
113
+ test("validates path /offers/*/buyerCircumstances/oldestBorrowerAge", () => {
114
+ const path = "/offers/offer-123/buyerCircumstances/oldestBorrowerAge";
115
+ expect(isPathValid(path, schemaId)).toBe(true);
116
+ });
117
+
118
+ test("validates path /offers/*/buyerCircumstances/mortgageTerm", () => {
119
+ const path = "/offers/offer-123/buyerCircumstances/mortgageTerm";
120
+ expect(isPathValid(path, schemaId)).toBe(true);
121
+ });
122
+
123
+ test("validates path /offers/*/buyerCircumstances/adverseCredit", () => {
124
+ const path = "/offers/offer-123/buyerCircumstances/adverseCredit";
125
+ expect(isPathValid(path, schemaId)).toBe(true);
126
+ });
127
+
128
+ test("validates path /offers/*/buyerCircumstances/employmentType", () => {
129
+ const path = "/offers/offer-123/buyerCircumstances/employmentType";
130
+ expect(isPathValid(path, schemaId)).toBe(true);
131
+ });
132
+
133
+ test("validates path /offers/*/buyerCircumstances/existingMortgagedProperties", () => {
134
+ const path = "/offers/offer-123/buyerCircumstances/existingMortgagedProperties";
135
+ expect(isPathValid(path, schemaId)).toBe(true);
136
+ });
137
+
138
+ test("validates path /offers/*/buyerCircumstances/annualIncome", () => {
139
+ const path = "/offers/offer-123/buyerCircumstances/annualIncome";
140
+ expect(isPathValid(path, schemaId)).toBe(true);
141
+ });
142
+
143
+ test("validates path /offers/*/buyerCircumstances/residencyStatus", () => {
144
+ const path = "/offers/offer-123/buyerCircumstances/residencyStatus";
145
+ expect(isPathValid(path, schemaId)).toBe(true);
146
+ });
147
+
148
+ test("validates path /offers/*/buyerCircumstances/nominatedLender", () => {
149
+ const path = "/offers/offer-123/buyerCircumstances/nominatedLender";
150
+ expect(isPathValid(path, schemaId)).toBe(true);
151
+ });
152
+
153
+ test("rejects invalid path /offers/*/buyerCircumstances/nonExistentField", () => {
154
+ const path = "/offers/offer-123/buyerCircumstances/nonExistentField";
155
+ expect(isPathValid(path, schemaId)).toBe(false);
156
+ });
157
+ });
158
+
159
+ describe("getSubschema for buyerCircumstances", () => {
160
+ test("returns correct subschema for buyerCircumstances", () => {
161
+ const path = "/offers/offer-123/buyerCircumstances";
162
+ const subschema = getSubschema(path, schemaId);
163
+
164
+ expect(subschema).toBeDefined();
165
+ expect(subschema.type).toBe("object");
166
+ expect(subschema.properties).toBeDefined();
167
+ expect(subschema.properties.intendedUse).toBeDefined();
168
+ expect(subschema.properties.firstTimeBuyer).toBeDefined();
169
+ expect(subschema.properties.requiresMortgage).toBeDefined();
170
+ });
171
+
172
+ test("returns correct subschema for intendedUse", () => {
173
+ const path = "/offers/offer-123/buyerCircumstances/intendedUse";
174
+ const subschema = getSubschema(path, schemaId);
175
+
176
+ expect(subschema).toBeDefined();
177
+ expect(subschema.type).toBe("string");
178
+ });
179
+
180
+ test("returns correct subschema for firstTimeBuyer (boolean)", () => {
181
+ const path = "/offers/offer-123/buyerCircumstances/firstTimeBuyer";
182
+ const subschema = getSubschema(path, schemaId);
183
+
184
+ expect(subschema).toBeDefined();
185
+ expect(subschema.type).toBe("boolean");
186
+ });
187
+
188
+ test("returns correct subschema for numberOfOwners (integer)", () => {
189
+ const path = "/offers/offer-123/buyerCircumstances/numberOfOwners";
190
+ const subschema = getSubschema(path, schemaId);
191
+
192
+ expect(subschema).toBeDefined();
193
+ expect(subschema.type).toBe("integer");
194
+ });
195
+
196
+ test("returns correct subschema for depositAmount (number)", () => {
197
+ const path = "/offers/offer-123/buyerCircumstances/depositAmount";
198
+ const subschema = getSubschema(path, schemaId);
199
+
200
+ expect(subschema).toBeDefined();
201
+ expect(subschema.type).toBe("number");
202
+ });
203
+ });
204
+
205
+ describe("validation of buyerCircumstances data", () => {
206
+ test("accepts valid offer with buyerCircumstances (requiresMortgage: Yes)", () => {
207
+ const validator = getValidator(schemaId);
208
+ const transaction = {
209
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
210
+ status: "active",
211
+ participants: [
212
+ {
213
+ role: "Buyer",
214
+ participantStatus: "Active",
215
+ },
216
+ ],
217
+ offers: {
218
+ "offer-1": {
219
+ amount: 250000,
220
+ currency: "GBP",
221
+ status: "Pending",
222
+ buyerCircumstances: {
223
+ intendedUse: "Owner occupied",
224
+ firstTimeBuyer: true,
225
+ rightToBuy: false,
226
+ ltdCompanyPurchase: false,
227
+ numberOfOwners: 2,
228
+ numberOfExpats: 0,
229
+ giftedEquity: false,
230
+ numberOfGiftedDeposits: 1,
231
+ requiresMortgage: "Yes",
232
+ helpToBuyEquityLoan: false,
233
+ armedForcesHelpToBuy: false,
234
+ numberOfHelpToBuyIsas: 2,
235
+ depositAmount: 50000,
236
+ loanToValue: 80,
237
+ numberOfBorrowers: 2,
238
+ jointProprietorSoleMortgagor: false,
239
+ soleProprietorJointMortgagor: false,
240
+ deedOfPostponement: false,
241
+ separateRepresentation: false,
242
+ oldestBorrowerAge: 35,
243
+ mortgageTerm: 25,
244
+ existingMortgagedProperties: 0,
245
+ annualIncome: 75000,
246
+ },
247
+ },
248
+ },
249
+ };
250
+
251
+ const isValid = validator(transaction);
252
+ expect(isValid).toBe(true);
253
+ });
254
+
255
+ test("accepts valid offer with buyerCircumstances (requiresMortgage: No)", () => {
256
+ const validator = getValidator(schemaId);
257
+ const transaction = {
258
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
259
+ status: "active",
260
+ participants: [
261
+ {
262
+ role: "Buyer",
263
+ participantStatus: "Active",
264
+ },
265
+ ],
266
+ offers: {
267
+ "offer-1": {
268
+ amount: 250000,
269
+ currency: "GBP",
270
+ status: "Pending",
271
+ buyerCircumstances: {
272
+ intendedUse: "Buy-to-let",
273
+ firstTimeBuyer: false,
274
+ requiresMortgage: "No",
275
+ },
276
+ },
277
+ },
278
+ };
279
+
280
+ const isValid = validator(transaction);
281
+ expect(isValid).toBe(true);
282
+ });
283
+
284
+ test("accepts offer with partial buyerCircumstances (requiresMortgage required)", () => {
285
+ const validator = getValidator(schemaId);
286
+ const transaction = {
287
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
288
+ status: "active",
289
+ participants: [
290
+ {
291
+ role: "Buyer",
292
+ participantStatus: "Active",
293
+ },
294
+ ],
295
+ offers: {
296
+ "offer-1": {
297
+ amount: 250000,
298
+ currency: "GBP",
299
+ status: "Pending",
300
+ buyerCircumstances: {
301
+ firstTimeBuyer: true,
302
+ requiresMortgage: "Yes",
303
+ },
304
+ },
305
+ },
306
+ };
307
+
308
+ const isValid = validator(transaction);
309
+ expect(isValid).toBe(true);
310
+ });
311
+
312
+ test("rejects buyerCircumstances without required requiresMortgage field", () => {
313
+ const validator = getValidator(schemaId);
314
+ const transaction = {
315
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
316
+ status: "active",
317
+ participants: [
318
+ {
319
+ role: "Buyer",
320
+ participantStatus: "Active",
321
+ },
322
+ ],
323
+ offers: {
324
+ "offer-1": {
325
+ amount: 250000,
326
+ currency: "GBP",
327
+ status: "Pending",
328
+ buyerCircumstances: {
329
+ firstTimeBuyer: true,
330
+ },
331
+ },
332
+ },
333
+ };
334
+
335
+ const isValid = validator(transaction);
336
+ expect(isValid).toBe(false);
337
+ });
338
+
339
+ test("rejects buyerCircumstances with wrong type for firstTimeBuyer", () => {
340
+ const validator = getValidator(schemaId);
341
+ const transaction = {
342
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
343
+ status: "active",
344
+ participants: [
345
+ {
346
+ role: "Buyer",
347
+ participantStatus: "Active",
348
+ },
349
+ ],
350
+ offers: {
351
+ "offer-1": {
352
+ amount: 250000,
353
+ currency: "GBP",
354
+ status: "Pending",
355
+ buyerCircumstances: {
356
+ firstTimeBuyer: "yes", // should be boolean
357
+ },
358
+ },
359
+ },
360
+ };
361
+
362
+ const isValid = validator(transaction);
363
+ expect(isValid).toBe(false);
364
+ });
365
+
366
+ test("rejects buyerCircumstances with wrong type for numberOfOwners", () => {
367
+ const validator = getValidator(schemaId);
368
+ const transaction = {
369
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
370
+ status: "active",
371
+ participants: [
372
+ {
373
+ role: "Buyer",
374
+ participantStatus: "Active",
375
+ },
376
+ ],
377
+ offers: {
378
+ "offer-1": {
379
+ amount: 250000,
380
+ currency: "GBP",
381
+ status: "Pending",
382
+ buyerCircumstances: {
383
+ numberOfOwners: "two", // should be integer
384
+ },
385
+ },
386
+ },
387
+ };
388
+
389
+ const isValid = validator(transaction);
390
+ expect(isValid).toBe(false);
391
+ });
392
+
393
+ test("rejects buyerCircumstances with wrong type for depositAmount", () => {
394
+ const validator = getValidator(schemaId);
395
+ const transaction = {
396
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
397
+ status: "active",
398
+ participants: [
399
+ {
400
+ role: "Buyer",
401
+ participantStatus: "Active",
402
+ },
403
+ ],
404
+ offers: {
405
+ "offer-1": {
406
+ amount: 250000,
407
+ currency: "GBP",
408
+ status: "Pending",
409
+ buyerCircumstances: {
410
+ depositAmount: "50000", // should be number
411
+ },
412
+ },
413
+ },
414
+ };
415
+
416
+ const isValid = validator(transaction);
417
+ expect(isValid).toBe(false);
418
+ });
419
+ });
420
+ });
421
+
422
+ describe("ownership new fields path validation", () => {
423
+ describe("isPathValid for outstandingMortgage and existingLender", () => {
424
+ test("validates path /propertyPack/ownership/outstandingMortgage", () => {
425
+ const path = "/propertyPack/ownership/outstandingMortgage";
426
+ expect(isPathValid(path, schemaId)).toBe(true);
427
+ });
428
+
429
+ test("validates path /propertyPack/ownership/existingLender", () => {
430
+ const path = "/propertyPack/ownership/existingLender";
431
+ expect(isPathValid(path, schemaId)).toBe(true);
432
+ });
433
+ });
434
+
435
+ describe("getSubschema for ownership new fields", () => {
436
+ test("returns correct subschema for outstandingMortgage", () => {
437
+ const path = "/propertyPack/ownership/outstandingMortgage";
438
+ const subschema = getSubschema(path, schemaId);
439
+
440
+ expect(subschema).toBeDefined();
441
+ expect(subschema.type).toBe("string");
442
+ });
443
+
444
+ test("returns correct subschema for existingLender", () => {
445
+ const path = "/propertyPack/ownership/existingLender";
446
+ const subschema = getSubschema(path, schemaId);
447
+
448
+ expect(subschema).toBeDefined();
449
+ expect(subschema.type).toBe("string");
450
+ });
451
+ });
452
+
453
+ describe("validation of ownership new fields", () => {
454
+ test("accepts valid ownership with outstandingMortgage and existingLender", () => {
455
+ const validator = getValidator(schemaId);
456
+ const transaction = {
457
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
458
+ status: "active",
459
+ participants: [
460
+ {
461
+ role: "Seller",
462
+ participantStatus: "Active",
463
+ },
464
+ ],
465
+ propertyPack: {
466
+ ownership: {
467
+ outstandingMortgage: "Yes",
468
+ existingLender: "Nationwide Building Society",
469
+ },
470
+ },
471
+ };
472
+
473
+ const isValid = validator(transaction);
474
+ expect(isValid).toBe(true);
475
+ });
476
+
477
+ test("accepts ownership without outstandingMortgage and existingLender", () => {
478
+ const validator = getValidator(schemaId);
479
+ const transaction = {
480
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
481
+ status: "active",
482
+ participants: [
483
+ {
484
+ role: "Seller",
485
+ participantStatus: "Active",
486
+ },
487
+ ],
488
+ propertyPack: {
489
+ ownership: {
490
+ numberOfSellers: 2,
491
+ },
492
+ },
493
+ };
494
+
495
+ const isValid = validator(transaction);
496
+ expect(isValid).toBe(true);
497
+ });
498
+
499
+ test("rejects ownership with wrong type for outstandingMortgage", () => {
500
+ const validator = getValidator(schemaId);
501
+ const transaction = {
502
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
503
+ status: "active",
504
+ participants: [
505
+ {
506
+ role: "Seller",
507
+ participantStatus: "Active",
508
+ },
509
+ ],
510
+ propertyPack: {
511
+ ownership: {
512
+ outstandingMortgage: true, // should be string
513
+ },
514
+ },
515
+ };
516
+
517
+ const isValid = validator(transaction);
518
+ expect(isValid).toBe(false);
519
+ });
520
+
521
+ test("rejects ownership with wrong type for existingLender", () => {
522
+ const validator = getValidator(schemaId);
523
+ const transaction = {
524
+ transactionId: "123e4567-e89b-12d3-a456-426614174000",
525
+ status: "active",
526
+ participants: [
527
+ {
528
+ role: "Seller",
529
+ participantStatus: "Active",
530
+ },
531
+ ],
532
+ propertyPack: {
533
+ ownership: {
534
+ existingLender: 12345, // should be string
535
+ },
536
+ },
537
+ };
538
+
539
+ const isValid = validator(transaction);
540
+ expect(isValid).toBe(false);
541
+ });
542
+ });
543
+ });