@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,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Property Data Trust Framework
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,430 @@
1
+ # PDTF Schemas
2
+
3
+ [![npm version](https://badge.fury.io/js/%40pdtf%2Fschemas.svg)](https://badge.fury.io/js/%40pdtf%2Fschemas)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ The Property Data Trust Framework (PDTF) Schemas provide standardized JSON Schema definitions for digital residential property data exchange in England and Wales. This package enables frictionless property data exchange between software products and services while maintaining trusted information about data provenance.
7
+
8
+ ## Project Goals & Status
9
+
10
+ **Current Version:** 3.5.0 (3.6.0-41 available as a pre-release on branch/package-tag `next`)
11
+
12
+ This schema framework aims to support the [Home Buying and Selling Group](https://homebuyingandsellinggroup.co.uk) 'Property Pack' initiative, encompassing all requirements starting with the Buyers and Sellers Property Information set ([BASPI v4.0](https://homebuyingandsellinggroup.co.uk/baspi/)).
13
+
14
+ **Key Objectives:**
15
+
16
+ - 🏠 **Standardize** residential property data exchange across England and Wales
17
+ - 🔗 **Enable** frictionless data sharing between software products and services
18
+ - 🛡️ **Maintain** trusted information about data provenance and verification
19
+ - 📋 **Support** industry-standard forms (BASPI, NTS, Law Society TA forms)
20
+ - 🧩 **Provide** modular components for flexible implementation
21
+
22
+ **Related Projects:**
23
+
24
+ - [API Specifications](https://github.com/Property-Data-Trust-Framework/api) - OpenAPI specs for data exchange protocols
25
+ - [PDTF Website](https://trust.propdata.org.uk) - Official framework documentation
26
+
27
+ This repository is a living document, with schemas evolving as framework requirements are refined and extended. Semantic versioning ensures backward compatibility while enabling schema evolution.
28
+
29
+ ## Quick Start
30
+
31
+ ### Installation
32
+
33
+ ```bash
34
+ npm install @pdtf/schemas
35
+ ```
36
+
37
+ ### Basic Usage
38
+
39
+ ```javascript
40
+ const { getTransactionSchema, getValidator } = require("@pdtf/schemas");
41
+
42
+ // Get a schema with BASPI v5 overlay
43
+ const schema = getTransactionSchema(
44
+ "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
45
+ ["baspiV5"]
46
+ );
47
+
48
+ // Create a validator
49
+ const validator = getValidator(
50
+ "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
51
+ ["baspiV5"]
52
+ );
53
+
54
+ // Validate data
55
+ const isValid = validator(propertyData);
56
+ if (!isValid) {
57
+ console.log("Validation errors:", validator.errors);
58
+ }
59
+ ```
60
+
61
+ ## Features
62
+
63
+ - **🏗️ Modular Schema System** - Base schemas with flexible overlay composition
64
+ - **📋 Multiple Form Support** - BASPI, NTS, Law Society TA forms, and more
65
+ - **🧩 Extension Overlays** - Granular NTS2 and SEF25 features as individual modules
66
+ - **✅ JSON Schema Validation** - Full JSON Schema Draft 07 support with AJV
67
+ - **🔗 Verified Claims** - Support for verified data provenance tracking
68
+ - **📚 Comprehensive Documentation** - Detailed usage guides and examples
69
+
70
+ ## Package Structure
71
+
72
+ ```
73
+ @pdtf/schemas/
74
+ ├── src/
75
+ │ ├── schemas/
76
+ │ │ ├── v3/ # Current schema version
77
+ │ │ │ ├── pdtf-transaction.json # Base transaction schema
78
+ │ │ │ ├── overlays/ # Form-specific overlays
79
+ │ │ │ │ ├── baspi5.json # BASPI v5 overlay
80
+ │ │ │ │ ├── nts.json # National Trading Standards
81
+ │ │ │ │ ├── ta6.json # Law Society forms
82
+ │ │ │ │ └── extensions/ # Modular NTS2 extensions
83
+ │ │ │ │ ├── jk.json # Japanese Knotweed
84
+ │ │ │ │ ├── tf.json # Transfer Fees
85
+ │ │ │ │ └── ... # NTS2 + SEF25 extensions
86
+ │ │ │ └── combined.json # Master schema for generation
87
+ │ │ ├── v2/ # Legacy schema version
88
+ │ │ ├── verifiedClaims/ # Verified claims schemas
89
+ │ │ └── examples/ # Example data files
90
+ │ ├── tests/ # Jest test suite
91
+ │ └── utils/ # Build and extraction tools
92
+ ├── index.js # Main API entry point
93
+ └── package.json
94
+ ```
95
+
96
+ ## Core Concepts
97
+
98
+ ### Base Schema + Overlays
99
+
100
+ PDTF uses a **base transaction schema** combined with **overlays** to create form-specific schemas:
101
+
102
+ - **Base Schema**: Core property transaction structure
103
+ - **Overlays**: Form-specific fields, references, and validation rules
104
+ - **Extensions**: Modular components for selective feature adoption
105
+
106
+ ### Schema Versions
107
+
108
+ - **v3** (Current): Full feature set with extension support
109
+ - **v2** (Legacy): Maintained for backward compatibility
110
+
111
+ ## API Reference
112
+
113
+ ### Core Functions
114
+
115
+ #### `getTransactionSchema(schemaId, overlays)`
116
+
117
+ Creates a merged schema from base schema and overlays.
118
+
119
+ ```javascript
120
+ const schema = getTransactionSchema(
121
+ "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
122
+ ["baspiV5", "ta6ed4"]
123
+ );
124
+ ```
125
+
126
+ **Parameters:**
127
+
128
+ - `schemaId` (string): Schema version URL
129
+ - `overlays` (array): Array of overlay names or objects
130
+
131
+ #### `getValidator(schemaId, overlays)`
132
+
133
+ Returns an AJV validator function for the specified schema combination.
134
+
135
+ ```javascript
136
+ const validator = getValidator(schemaId, ["baspiV5"]);
137
+ const isValid = validator(data);
138
+ ```
139
+
140
+ #### `validateVerifiedClaims(claims, schemaId, overlays)`
141
+
142
+ Validates verified claims against schema paths.
143
+
144
+ ```javascript
145
+ const errors = validateVerifiedClaims(verifiedClaims, schemaId, ["nts2023"]);
146
+ ```
147
+
148
+ ### Available Overlays
149
+
150
+ #### Main Form Overlays
151
+
152
+ | Overlay | Description | Version |
153
+ | --------- | --------------------------------------- | --------- |
154
+ | `baspiV4` | Buyers and Sellers Property Information | v4.0 |
155
+ | `baspiV5` | Buyers and Sellers Property Information | v5.0 |
156
+ | `nts2023` | National Trading Standards | 2023 |
157
+ | `nts2025` | National Trading Standards | 2025 |
158
+ | `ta6ed4` | Law Society Property Information Form | Edition 4 |
159
+ | `ta7ed3` | Law Society Leasehold Information Form | Edition 3 |
160
+ | `ta10ed3` | Law Society Fittings and Contents Form | Edition 3 |
161
+
162
+ [View all overlays →](src/schemas/v3/overlays/README.md)
163
+
164
+ #### Extension Overlays
165
+
166
+ Modular features for selective adoption. Extensions are merged on top of an NTS base overlay.
167
+
168
+ ```javascript
169
+ // NTS2 extensions
170
+ const schema = getTransactionSchema(schemaId, ["nts2023", "jk", "tf", "ma"]);
171
+
172
+ // SEF25 extensions (Seller Enquiry Form)
173
+ const sef25 = ["sc", "pc", "ph", "dk", "rw", "sd", "lc", "wg", "ic", "nd", "mi", "tr"];
174
+ const schema = getTransactionSchema(schemaId, ["nts2023", ...sef25]);
175
+ ```
176
+
177
+ **NTS2 Extensions:**
178
+
179
+ | Extension | Code | Description |
180
+ | --- | --- | --- |
181
+ | Japanese Knotweed | `jk` | Knotweed presence and management |
182
+ | Asbestos | `as` | Asbestos presence and management |
183
+ | Dry Rot | `dr` | Dry rot treatment |
184
+ | Subsidence | `sb` | Subsidence or structural fault |
185
+ | Health & Safety | `hs` | Ongoing health or safety issues |
186
+ | Outside Areas | `oa` | Outside areas details |
187
+ | Main Construction | `mc` | Construction type if standard form |
188
+ | Loft Access | `la` | Loft access and details |
189
+ | Spray Foam | `sf` | Spray foam insulation |
190
+ | Solar Panels | `sl` | Solar panel ownership details |
191
+ | Heating Installed | `hi` | Central heating installation date |
192
+ | Flood Defences | `fd` | Flood defence information |
193
+ | Estate Rentcharges | `er` | Estate rentcharges for freehold |
194
+ | Managing Agent | `ma` | Leasehold managing agent details |
195
+ | Transfer Fees | `tf` | Additional leasehold fees |
196
+ | Onward Chain | `oc` | Other property in chain |
197
+
198
+ **SEF25 Extensions (Seller Enquiry Form):**
199
+
200
+ | Extension | Code | Description |
201
+ | --- | --- | --- |
202
+ | Supply Costs | `sc` | Private water/sewerage costs |
203
+ | Parking Permit Cost | `pc` | Parking permit frequency |
204
+ | Property Hazards | `ph` | 4 hazard Yes/No questions |
205
+ | Dropped Kerb | `dk` | Dropped kerb access to parking |
206
+ | Private Right of Way | `rw` | Private right of way |
207
+ | Storm/Fire/Flood Damage | `sd` | Storm, fire or flood damage |
208
+ | Solar Lease Costs | `lc` | Solar panel lease costs |
209
+ | Warranties & Guarantees | `wg` | 7 warranty categories upfront |
210
+ | Insurance Claims | `ic` | Insurance claims upfront |
211
+ | Neighbour Development | `nd` | Neighbour development |
212
+ | Material Issue | `mi` | Other material issue upfront |
213
+ | Title Restrictions | `tr` | Title restrictions for freehold |
214
+
215
+ [View full SEF25 UI spec →](docs/sef25-extensions-ui-spec.md) | [View all extensions →](src/schemas/v3/overlays/README.md#extension-overlays)
216
+
217
+ ## Usage Examples
218
+
219
+ ### Form-Specific Schemas
220
+
221
+ ```javascript
222
+ // BASPI v5 for estate agents
223
+ const baspiSchema = getTransactionSchema(schemaId, ["baspiV5"]);
224
+
225
+ // Law Society conveyancing forms
226
+ const legalSchema = getTransactionSchema(schemaId, ["ta6ed4", "ta7ed3"]);
227
+
228
+ // National Trading Standards compliance
229
+ const ntsSchema = getTransactionSchema(schemaId, ["nts2023"]);
230
+ ```
231
+
232
+ ### Modular Extension Features
233
+
234
+ ```javascript
235
+ // Selective NTS2 adoption
236
+ const partialNts2 = getTransactionSchema(schemaId, [
237
+ "nts2023", // Base NTS
238
+ "jk", // Japanese Knotweed
239
+ "tf", // Transfer Fees
240
+ "ma", // Managing Agent
241
+ ]);
242
+
243
+ // SEF25 Seller Enquiry Form extensions
244
+ const sef25 = ["sc", "pc", "ph", "dk", "rw", "sd", "lc", "wg", "ic", "nd", "mi", "tr"];
245
+ const sellerEnquiry = getTransactionSchema(schemaId, ["nts2023", ...sef25]);
246
+ ```
247
+
248
+ ### Data Validation
249
+
250
+ ```javascript
251
+ const { getValidator } = require("@pdtf/schemas");
252
+
253
+ const validator = getValidator(schemaId, ["baspiV5"]);
254
+
255
+ const propertyData = {
256
+ propertyPack: {
257
+ priceInformation: {
258
+ price: 350000,
259
+ priceQualifier: "Freehold",
260
+ },
261
+ // ... more property data
262
+ },
263
+ };
264
+
265
+ if (validator(propertyData)) {
266
+ console.log("✅ Data is valid");
267
+ } else {
268
+ console.log("❌ Validation errors:", validator.errors);
269
+ }
270
+ ```
271
+
272
+ ### Verified Claims & Data Provenance
273
+
274
+ PDTF supports verified claims to maintain data provenance and trust throughout property transactions. Claims package specific property data with verification evidence, enabling traceability back to authoritative sources.
275
+
276
+ ```javascript
277
+ const { validateVerifiedClaims } = require("@pdtf/schemas");
278
+
279
+ // Current verified claims format
280
+ const verifiedClaims = [
281
+ {
282
+ id: "claim-12345",
283
+ transactionId: "txn-67890",
284
+ schemaVersion: "3.4.0",
285
+ verification: {
286
+ trust_framework: "uk_pdtf",
287
+ time: "2024-07-01T10:30:00Z",
288
+ evidence: [
289
+ {
290
+ type: "vouch",
291
+ attestation: {
292
+ type: "digital_attestation",
293
+ voucher: { name: "Estate Agent Ltd" },
294
+ },
295
+ verification_method: { type: "auth" },
296
+ },
297
+ ],
298
+ },
299
+ terms_of_use: {
300
+ confidentiality_level: "public",
301
+ },
302
+ claims: {
303
+ "/propertyPack/priceInformation/price": 350000,
304
+ "/propertyPack/energyEfficiency/epcRating": "C",
305
+ },
306
+ },
307
+ ];
308
+
309
+ // Validate claims against schema
310
+ const errors = validateVerifiedClaims(verifiedClaims, schemaId, ["baspiV5"]);
311
+ if (errors.length === 0) {
312
+ console.log("✅ Verified claims are valid");
313
+ }
314
+ ```
315
+
316
+ **Key Features:**
317
+
318
+ - **Schema Path Validation** - Claims reference specific schema paths (e.g., `/propertyPack/priceInformation/price`)
319
+ - **Provenance Tracking** - Each claim includes verification evidence and source attribution
320
+ - **Trust Framework Integration** - Claims operate within the UK PDTF trust framework
321
+ - **Attachment Support** - Supporting documents can be cryptographically linked to claims
322
+ - **Confidentiality Controls** - Terms of use define access levels and permitted recipients
323
+
324
+ #### Confidentiality Levels
325
+
326
+ Verified claims support three confidentiality levels through a pdtf-specific extension: a `terms_of_use` field, enabling fine-grained access control:
327
+
328
+ **Public Data** - Freely accessible data from official sources or public listing information:
329
+
330
+ ```javascript
331
+ {
332
+ terms_of_use: {
333
+ confidentiality_level: "public";
334
+ }
335
+ }
336
+ ```
337
+
338
+ Examples: Land Registry data, Energy Performance Certificates, planning records, council tax information
339
+
340
+ **Restricted Data** - Limited to transaction participants:
341
+
342
+ ```javascript
343
+ {
344
+ terms_of_use: {
345
+ confidentiality_level: "restricted";
346
+ }
347
+ }
348
+ ```
349
+
350
+ Examples: Commercial property reports, contents of legal forms
351
+
352
+ **Confidential Data** - Role-based access with explicit authorization:
353
+
354
+ ```javascript
355
+ {
356
+ terms_of_use: {
357
+ confidentiality_level: "confidential",
358
+ allowed_roles: [
359
+ "Estate Agent",
360
+ "Seller's Conveyancer",
361
+ "Buyer's Conveyancer",
362
+ "Mortgage Broker",
363
+ "Lender"
364
+ ]
365
+ }
366
+ }
367
+ ```
368
+
369
+ Examples: Identity verification reports, anti-money laundering checks, sensitive personal information
370
+
371
+ **Guidelines:**
372
+
373
+ - Use **public** for government/official data sources
374
+ - Use **restricted** for commercial data providers and processed information
375
+ - Use **confidential** for sensitive personal data requiring explicit role authorization
376
+ - Always consider data source and sensitivity when assigning levels
377
+
378
+ **Roadmap - W3C Verifiable Credentials:**
379
+ The next version of the PDTF framework will migrate to [W3C Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) to provide:
380
+
381
+ - **Enhanced Security** - Cryptographically signed claims with tamper detection
382
+ - **Granular Permissions** - Fine-grained access control over claim data
383
+ - **Interoperability** - Standards-based approach for broader ecosystem compatibility
384
+ - **Selective Disclosure** - Share only necessary claim data for each transaction context
385
+
386
+ ## Development
387
+
388
+ ### Building Schemas
389
+
390
+ Schemas are generated from a master `combined.json` file:
391
+
392
+ ```bash
393
+ # Extract overlays and base schema
394
+ node src/utils/extractOverlay.js
395
+
396
+ # Generate extension overlays
397
+ node src/utils/extractExtensionOverlays.js
398
+ ```
399
+
400
+ ### Testing
401
+
402
+ ```bash
403
+ # Run all tests
404
+ npm test
405
+
406
+ # Test specific functionality
407
+ npm test -- --testPathPattern=extensionOverlays
408
+ npm test -- --testPathPattern=transactionSchema
409
+ ```
410
+
411
+ ## Versioning
412
+
413
+ The schema follows semantic versioning:
414
+
415
+ - **Patch** (3.4.x): Bug fixes, no breaking changes
416
+ - **Minor** (3.x.0): New fields, backward compatible
417
+ - **Major** (x.0.0): Breaking changes, migration required
418
+
419
+ ## Licensing
420
+
421
+ Licensed under the [MIT License](https://opensource.org/licenses/MIT).
422
+
423
+ **Important:** Overlays contain fields from licensed forms ([BASPI](https://homebuyingsellingcouncil.co.uk/wp-content/uploads/2021/03/Terms-of-Licence-mandatory-download-for-use-of-BASPI.pdf), [PIQ](https://www.propertymark.co.uk/static/14e7c154-98de-4230-957f09bd8d5ddeec/f542b10a-7710-4c37-b3958ccaeec25d4b/property-information-questionnaire-residential-sales.pdf), [Law Society TA](https://www.lawsociety.org.uk/topics/property/transaction-forms)). When rendering data into these forms, ensure compliance with their respective license terms.
424
+
425
+ ## Support
426
+
427
+ - 📖 [Overlay Documentation](src/schemas/v3/overlays/README.md)
428
+ - 📁 [Example Files](src/examples/)
429
+ - 🐛 [Issue Tracker](https://github.com/Property-Data-Trust-Framework/schemas/issues)
430
+ - 🌐 [PDTF Website](https://trust.propdata.org.uk)