@pdtf/schemas 3.6.0-dev.3 → 3.6.0-dev.5

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 (280) 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/compassionate-easley-bafb14/CLAUDE.md +101 -0
  131. package/compassionate-easley-bafb14/LICENSE +21 -0
  132. package/compassionate-easley-bafb14/README.md +435 -0
  133. package/compassionate-easley-bafb14/docs/branch-release-workflow.md +138 -0
  134. package/compassionate-easley-bafb14/docs/sef25-extensions-ui-spec.md +355 -0
  135. package/compassionate-easley-bafb14/index.js +654 -0
  136. package/compassionate-easley-bafb14/package-lock.json +7297 -0
  137. package/compassionate-easley-bafb14/package.json +44 -0
  138. package/compassionate-easley-bafb14/src/examples/v1/exampleAddParticipantVouch.json +32 -0
  139. package/compassionate-easley-bafb14/src/examples/v1/exampleDocumentedVouch.json +40 -0
  140. package/compassionate-easley-bafb14/src/examples/v1/exampleElectronicRecord.json +30 -0
  141. package/compassionate-easley-bafb14/src/examples/v1/exampleTransaction.json +878 -0
  142. package/compassionate-easley-bafb14/src/examples/v1/exampleVouch.json +25 -0
  143. package/compassionate-easley-bafb14/src/examples/v2/exampleTransaction.json +901 -0
  144. package/compassionate-easley-bafb14/src/examples/v3/exampleAddParticipantVouch.json +38 -0
  145. package/compassionate-easley-bafb14/src/examples/v3/exampleCustomOverlay.json +55 -0
  146. package/compassionate-easley-bafb14/src/examples/v3/exampleCustomOverlay2.json +93 -0
  147. package/compassionate-easley-bafb14/src/examples/v3/exampleDocumentedVouch.json +47 -0
  148. package/compassionate-easley-bafb14/src/examples/v3/exampleElectronicRecord.json +36 -0
  149. package/compassionate-easley-bafb14/src/examples/v3/exampleTransaction.json +1038 -0
  150. package/compassionate-easley-bafb14/src/examples/v3/exampleVouch.json +32 -0
  151. package/compassionate-easley-bafb14/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
  152. package/compassionate-easley-bafb14/src/mappings/adf.js +198 -0
  153. package/compassionate-easley-bafb14/src/schemas/v1/GeoJSON.json +1279 -0
  154. package/compassionate-easley-bafb14/src/schemas/v1/baspiNotes.html +102 -0
  155. package/compassionate-easley-bafb14/src/schemas/v1/energy-performance-certificate.json +124 -0
  156. package/compassionate-easley-bafb14/src/schemas/v1/freehold-information.json +2051 -0
  157. package/compassionate-easley-bafb14/src/schemas/v1/leasehold-information.json +2064 -0
  158. package/compassionate-easley-bafb14/src/schemas/v1/legal-information.json +1045 -0
  159. package/compassionate-easley-bafb14/src/schemas/v1/material-facts.json +2109 -0
  160. package/compassionate-easley-bafb14/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
  161. package/compassionate-easley-bafb14/src/schemas/v1/pdtf-transaction.json +191 -0
  162. package/compassionate-easley-bafb14/src/schemas/v1/searches/drainage-and-water.json +261 -0
  163. package/compassionate-easley-bafb14/src/schemas/v1/searches/local-land-charges.json +69 -0
  164. package/compassionate-easley-bafb14/src/schemas/v1/searches/local-searches-required.json +857 -0
  165. package/compassionate-easley-bafb14/src/schemas/v1/searches.json +237 -0
  166. package/compassionate-easley-bafb14/src/schemas/v1/title-deed.json +841 -0
  167. package/compassionate-easley-bafb14/src/schemas/v2/baspiNotes.html +102 -0
  168. package/compassionate-easley-bafb14/src/schemas/v2/combined.json +37731 -0
  169. package/compassionate-easley-bafb14/src/schemas/v2/overlays/baspi.json +8132 -0
  170. package/compassionate-easley-bafb14/src/schemas/v2/overlays/con29DW.json +705 -0
  171. package/compassionate-easley-bafb14/src/schemas/v2/overlays/con29R.json +2956 -0
  172. package/compassionate-easley-bafb14/src/schemas/v2/overlays/fme1.json +1259 -0
  173. package/compassionate-easley-bafb14/src/schemas/v2/overlays/llc1.json +25 -0
  174. package/compassionate-easley-bafb14/src/schemas/v2/overlays/lpe1.json +2171 -0
  175. package/compassionate-easley-bafb14/src/schemas/v2/overlays/nts.json +326 -0
  176. package/compassionate-easley-bafb14/src/schemas/v2/overlays/oc1.json +2799 -0
  177. package/compassionate-easley-bafb14/src/schemas/v2/overlays/piq.json +3419 -0
  178. package/compassionate-easley-bafb14/src/schemas/v2/overlays/rds.json +3736 -0
  179. package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta10.json +5306 -0
  180. package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta6.json +4533 -0
  181. package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta7.json +1045 -0
  182. package/compassionate-easley-bafb14/src/schemas/v2/pdtf-transaction.json +34351 -0
  183. package/compassionate-easley-bafb14/src/schemas/v2/skeleton.json +3973 -0
  184. package/compassionate-easley-bafb14/src/schemas/v3/combined.json +48461 -0
  185. package/compassionate-easley-bafb14/src/schemas/v3/compactSkeleton.txt +4519 -0
  186. package/compassionate-easley-bafb14/src/schemas/v3/overlays/README.md +299 -0
  187. package/compassionate-easley-bafb14/src/schemas/v3/overlays/baspi4.json +8030 -0
  188. package/compassionate-easley-bafb14/src/schemas/v3/overlays/baspi5.json +8180 -0
  189. package/compassionate-easley-bafb14/src/schemas/v3/overlays/con29DW.json +716 -0
  190. package/compassionate-easley-bafb14/src/schemas/v3/overlays/con29R.json +2981 -0
  191. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ac.json +334 -0
  192. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/as.json +74 -0
  193. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/dk.json +33 -0
  194. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/dr.json +73 -0
  195. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/er.json +85 -0
  196. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/fd.json +75 -0
  197. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/hi.json +51 -0
  198. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/hs.json +73 -0
  199. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ic.json +83 -0
  200. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/jk.json +96 -0
  201. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/la.json +85 -0
  202. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/lc.json +76 -0
  203. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ma.json +90 -0
  204. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/mc.json +38 -0
  205. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/mi.json +70 -0
  206. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/nd.json +44 -0
  207. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/oa.json +24 -0
  208. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/oc.json +57 -0
  209. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/pc.json +38 -0
  210. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ph.json +195 -0
  211. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/rw.json +69 -0
  212. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sb.json +73 -0
  213. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sc.json +133 -0
  214. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sd.json +64 -0
  215. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sf.json +74 -0
  216. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sl.json +68 -0
  217. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ta.json +204 -0
  218. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/tf.json +103 -0
  219. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/tr.json +74 -0
  220. package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/wg.json +351 -0
  221. package/compassionate-easley-bafb14/src/schemas/v3/overlays/fme1.json +1266 -0
  222. package/compassionate-easley-bafb14/src/schemas/v3/overlays/llc1.json +25 -0
  223. package/compassionate-easley-bafb14/src/schemas/v3/overlays/lpe1.json +2199 -0
  224. package/compassionate-easley-bafb14/src/schemas/v3/overlays/nts.json +2159 -0
  225. package/compassionate-easley-bafb14/src/schemas/v3/overlays/nts2.json +2744 -0
  226. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ntsl.json +1815 -0
  227. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ntsl2.json +2219 -0
  228. package/compassionate-easley-bafb14/src/schemas/v3/overlays/oc1.json +2817 -0
  229. package/compassionate-easley-bafb14/src/schemas/v3/overlays/piq.json +3324 -0
  230. package/compassionate-easley-bafb14/src/schemas/v3/overlays/rds.json +3668 -0
  231. package/compassionate-easley-bafb14/src/schemas/v3/overlays/sef25.json +1644 -0
  232. package/compassionate-easley-bafb14/src/schemas/v3/overlays/sr24.json +38 -0
  233. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta10.json +4645 -0
  234. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta6.json +4572 -0
  235. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta6ed6.json +6536 -0
  236. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta7.json +1537 -0
  237. package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta7ed5.json +1551 -0
  238. package/compassionate-easley-bafb14/src/schemas/v3/pdtf-transaction.json +41570 -0
  239. package/compassionate-easley-bafb14/src/schemas/v3/skeleton.json +5767 -0
  240. package/compassionate-easley-bafb14/src/schemas/verifiedClaims/README.md +21 -0
  241. package/compassionate-easley-bafb14/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
  242. package/compassionate-easley-bafb14/src/utils/compactSkeleton.js +84 -0
  243. package/compassionate-easley-bafb14/src/utils/countTokens.js +67 -0
  244. package/compassionate-easley-bafb14/src/utils/extractExtensionOverlays.js +633 -0
  245. package/compassionate-easley-bafb14/src/utils/extractOverlay.js +381 -0
  246. package/compassionate-easley-bafb14/src/utils/extractProperties.js +44 -0
  247. package/compassionate-easley-bafb14/src/utils/listPathTitles.js +36 -0
  248. package/compassionate-easley-bafb14/src/utils/minimalSkeleton.js +85 -0
  249. package/compassionate-easley-bafb14/src/utils/pathList.csv +903 -0
  250. package/compassionate-easley-bafb14/src/utils/pathSkeleton.js +181 -0
  251. package/package.json +1 -1
  252. package/src/schemas/v3/combined.json +9 -15
  253. package/src/schemas/v3/overlays/baspi4.json +12 -7
  254. package/src/schemas/v3/overlays/baspi5.json +12 -7
  255. package/src/schemas/v3/overlays/extensions/ac.json +2 -1
  256. package/src/schemas/v3/overlays/extensions/dk.json +3 -2
  257. package/src/schemas/v3/overlays/extensions/ic.json +33 -9
  258. package/src/schemas/v3/overlays/extensions/lc.json +3 -2
  259. package/src/schemas/v3/overlays/extensions/mi.json +2 -1
  260. package/src/schemas/v3/overlays/extensions/nd.json +3 -2
  261. package/src/schemas/v3/overlays/extensions/pc.json +3 -2
  262. package/src/schemas/v3/overlays/extensions/ph.json +2 -1
  263. package/src/schemas/v3/overlays/extensions/rw.json +4 -3
  264. package/src/schemas/v3/overlays/extensions/sc.json +8 -4
  265. package/src/schemas/v3/overlays/extensions/sd.json +3 -2
  266. package/src/schemas/v3/overlays/extensions/tr.json +3 -2
  267. package/src/schemas/v3/overlays/extensions/wg.json +2 -1
  268. package/src/schemas/v3/overlays/lpe1.json +1 -1
  269. package/src/schemas/v3/overlays/nts.json +3 -1
  270. package/src/schemas/v3/overlays/nts2.json +3 -1
  271. package/src/schemas/v3/overlays/ntsl.json +3 -1
  272. package/src/schemas/v3/overlays/ntsl2.json +3 -1
  273. package/src/schemas/v3/overlays/piq.json +7 -5
  274. package/src/schemas/v3/overlays/rds.json +9 -6
  275. package/src/schemas/v3/overlays/sef25.json +6 -1
  276. package/src/schemas/v3/overlays/ta10.json +0 -9
  277. package/src/schemas/v3/overlays/ta6.json +8 -4
  278. package/src/schemas/v3/overlays/ta6ed6.json +4 -2
  279. package/src/schemas/v3/pdtf-transaction.json +15 -18
  280. package/src/utils/extractExtensionOverlays.js +11 -2
@@ -0,0 +1,181 @@
1
+ const fs = require("fs");
2
+ const traverse = require("traverse");
3
+
4
+ const combinedSchema = require("../schemas/v3/combined.json");
5
+
6
+ // Extract fields that have overlay-specific properties
7
+ const extractFields = [
8
+ "baspi4", "baspi5", "nts", "nts2", "ntsl", "ntsl2",
9
+ "ta6", "ta7", "ta7ed5", "ta10", "lpe1", "fme1", "piq",
10
+ "con29R", "con29DW", "llc1", "rds", "oc1", "sr24",
11
+ ];
12
+
13
+ // Delete properties we don't want in the skeleton
14
+ const deleteProperties = (sourceSchema, propertyNames) => {
15
+ traverse(sourceSchema).forEach(function (element) {
16
+ if (propertyNames.includes(this.key)) {
17
+ this.delete(true);
18
+ }
19
+ });
20
+ return sourceSchema;
21
+ };
22
+
23
+ // Collect all paths in path notation
24
+ const collectPaths = (schema, currentPath = "") => {
25
+ const paths = [];
26
+
27
+ if (!schema || typeof schema !== 'object') {
28
+ return paths;
29
+ }
30
+
31
+ // Handle arrays
32
+ if (schema.type === "array" && schema.items) {
33
+ const arrayPath = currentPath + "[]";
34
+ paths.push(arrayPath);
35
+ // Continue with items
36
+ const itemPaths = collectPaths(schema.items, arrayPath);
37
+ paths.push(...itemPaths);
38
+ return paths;
39
+ }
40
+
41
+ // Handle primitives - add type suffix
42
+ if (schema.type && !schema.properties && !schema.oneOf && !schema.items) {
43
+ let typeChar = "";
44
+ switch(schema.type) {
45
+ case "string": typeChar = ":s"; break;
46
+ case "number": typeChar = ":n"; break;
47
+ case "integer": typeChar = ":i"; break;
48
+ case "boolean": typeChar = ":b"; break;
49
+ default: typeChar = "";
50
+ }
51
+ if (currentPath) {
52
+ paths.push(currentPath + typeChar);
53
+ }
54
+ return paths;
55
+ }
56
+
57
+ // Handle objects with properties
58
+ if (schema.properties) {
59
+ // If this is an object without a path yet, don't add it
60
+ if (currentPath && !schema.type?.includes("array")) {
61
+ paths.push(currentPath);
62
+ }
63
+
64
+ Object.keys(schema.properties).forEach((propName) => {
65
+ const newPath = currentPath ? `${currentPath}.${propName}` : propName;
66
+ const propPaths = collectPaths(schema.properties[propName], newPath);
67
+ paths.push(...propPaths);
68
+ });
69
+ }
70
+
71
+ // Handle oneOf - collect all possible properties
72
+ if (schema.oneOf) {
73
+ const variantProps = new Set();
74
+ schema.oneOf.forEach((oneOfSchema) => {
75
+ if (oneOfSchema.properties) {
76
+ Object.keys(oneOfSchema.properties).forEach((propName) => {
77
+ variantProps.add(propName);
78
+ });
79
+ }
80
+ });
81
+
82
+ // Process each unique property
83
+ variantProps.forEach((propName) => {
84
+ const newPath = currentPath ? `${currentPath}.${propName}` : propName;
85
+ // Check if all variants have the same type
86
+ let commonType = null;
87
+ let isVariant = false;
88
+
89
+ schema.oneOf.forEach((oneOfSchema) => {
90
+ if (oneOfSchema.properties && oneOfSchema.properties[propName]) {
91
+ const propType = oneOfSchema.properties[propName].type;
92
+ if (commonType === null) {
93
+ commonType = propType;
94
+ } else if (commonType !== propType) {
95
+ isVariant = true;
96
+ }
97
+ }
98
+ });
99
+
100
+ if (isVariant || !commonType) {
101
+ paths.push(newPath + ":v"); // variant
102
+ } else {
103
+ // Process the first variant's version of this property
104
+ for (const oneOfSchema of schema.oneOf) {
105
+ if (oneOfSchema.properties && oneOfSchema.properties[propName]) {
106
+ const propPaths = collectPaths(oneOfSchema.properties[propName], newPath);
107
+ paths.push(...propPaths);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ });
113
+ }
114
+
115
+ // Empty objects
116
+ if (currentPath && !schema.properties && !schema.oneOf && !schema.items && !schema.type) {
117
+ paths.push(currentPath);
118
+ }
119
+
120
+ return paths;
121
+ };
122
+
123
+ // Remove duplicates
124
+ const deduplicatePaths = (paths) => {
125
+ return [...new Set(paths)];
126
+ };
127
+
128
+ // Sort paths for readability
129
+ const sortPaths = (paths) => {
130
+ return paths.sort((a, b) => {
131
+ // Sort by depth first (fewer dots = higher up)
132
+ const depthA = (a.match(/\./g) || []).length;
133
+ const depthB = (b.match(/\./g) || []).length;
134
+ if (depthA !== depthB) return depthA - depthB;
135
+
136
+ // Then alphabetically
137
+ return a.localeCompare(b);
138
+ });
139
+ };
140
+
141
+ // Create clean schema
142
+ const coreSchema = deleteProperties(JSON.parse(JSON.stringify(combinedSchema)), [
143
+ "discriminator",
144
+ ...extractFields.map((item) => `${item}Ref`),
145
+ ...extractFields.map((item) => `${item}Required`),
146
+ ...extractFields.map((item) => `${item}Title`),
147
+ ...extractFields.map((item) => `${item}Description`),
148
+ ...extractFields.map((item) => `${item}Enum`),
149
+ ]);
150
+
151
+ // Remove metadata
152
+ const skeletonSchema = deleteProperties(coreSchema, [
153
+ "$schema", "$id", "title", "description", "required",
154
+ "enum", "minItems", "minLength", "format", "minimum", "maximum",
155
+ ]);
156
+
157
+ // Collect paths
158
+ const allPaths = collectPaths(skeletonSchema);
159
+ const uniquePaths = deduplicatePaths(allPaths);
160
+ const sortedPaths = sortPaths(uniquePaths);
161
+
162
+ // Write as text file
163
+ const pathContent = sortedPaths.join('\n');
164
+ fs.writeFileSync("../schemas/v3/pathSkeleton.txt", pathContent);
165
+
166
+ // Also create a JSON version for comparison
167
+ fs.writeFileSync("../schemas/v3/pathSkeleton.json", JSON.stringify(sortedPaths, null, 2));
168
+
169
+ console.log(`Path skeleton written to ../schemas/v3/pathSkeleton.txt`);
170
+ console.log(`Total paths: ${sortedPaths.length}`);
171
+ console.log(`Text size: ${pathContent.length} bytes`);
172
+
173
+ // Count tokens
174
+ try {
175
+ const GPT3Encoder = require('gpt-3-encoder');
176
+ const encoded = GPT3Encoder.encode(pathContent);
177
+ console.log(`Tokens (GPT-3): ${encoded.length}`);
178
+ console.log(`Reduction: ${((1 - encoded.length / 78734) * 100).toFixed(1)}% fewer tokens than JSON skeleton`);
179
+ } catch (e) {
180
+ console.log(`Estimated tokens: ~${Math.ceil(pathContent.length / 4)}`);
181
+ }
@@ -0,0 +1,101 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance for AI coding agents when working with code in this repository.
4
+
5
+ ## Overview
6
+
7
+ This repository contains the Property Data Trust Framework (PDTF) schemas - JSON Schema-based definitions for digital residential property data exchange in England and Wales. The framework enables frictionless exchange of property data between software products and services.
8
+
9
+ ## Commands
10
+
11
+ ### Testing
12
+ ```bash
13
+ npm test # Run all tests
14
+ npm run test:watch # Run tests in watch mode
15
+ ```
16
+
17
+ ### Development
18
+ ```bash
19
+ npm install # Install dependencies
20
+ npm run extract-overlays # Regenerate v3 schemas and overlays from combined.json
21
+ npm run extract-extension-overlays # Regenerate v3 extension overlays from combined.json
22
+ npm run publish:dev # Publish the dev branch package to npm tag dev
23
+ npm run publish:next # Publish the next branch package to npm tag next
24
+ npm run publish:latest # Publish the main branch package to npm tag latest
25
+ ```
26
+
27
+ **Important**: `src/schemas/v3/combined.json` is the source of truth for v3 schema changes. Never edit generated schema artifacts directly; there are no exceptions. Utility/source files may be edited normally. After changing `combined.json`, always run both overlay extraction commands so derived files stay in sync.
28
+
29
+ ## Architecture
30
+
31
+ ### Schema System
32
+ The PDTF uses a flexible overlay system where a base transaction schema can be extended with form-specific overlays:
33
+
34
+ - **Base Schema**: Core transaction schema at `/src/schemas/v3/pdtf-transaction.json`
35
+ - **Overlays**: Form-specific extensions in `/src/schemas/v3/overlays/` (e.g., baspi5.json, ta6.json)
36
+ - **Merging**: Overlays are merged with the base schema using deepmerge with custom merge strategies
37
+ - **Generated Files**: `pdtf-transaction.json`, `skeleton.json`, `compactSkeleton.txt`, `src/schemas/v3/overlays/*.json`, and `src/schemas/v3/overlays/extensions/*.json` are generated from `combined.json`
38
+
39
+ ### Key Components
40
+
41
+ 1. **index.js**: Main module exposing schema utilities
42
+ - `getTransactionSchema(schemaId, overlays)`: Merges base schema with overlays
43
+ - `getValidator(schemaId, overlays)`: Returns AJV validator for schema
44
+ - `validateVerifiedClaims()`: Validates verified claims structure
45
+
46
+ 2. **Schema Versions**: Currently on v3, with v2 still supported
47
+ - Use `https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json` for v3
48
+
49
+ 3. **Overlay System**: Supports multiple UK property forms
50
+ - BASPI (v4 and v5)
51
+ - Law Society TA forms (TA6, TA7, TA10)
52
+ - NTS forms (2023 and 2025 versions)
53
+ - CON29R, PIQ, RDS, and others
54
+
55
+ ### Testing Approach
56
+ Tests in `/src/tests/` validate:
57
+ - Schema structure with different overlay combinations
58
+ - Path validation for nested properties
59
+ - Custom overlay merging
60
+ - Verified claims validation
61
+
62
+ Use existing test patterns when adding new tests.
63
+
64
+ ## Branch And Release Workflow
65
+
66
+ This repository publishes `@pdtf/schemas` through three branches and npm
67
+ dist-tags:
68
+
69
+ - `main` -> npm `latest`: stable PDTF releases for broad industry use.
70
+ - `next` -> npm `next`: tested capabilities proposed for the next managed PDTF
71
+ point release.
72
+ - `dev` -> npm `dev`: the unstable coal face for faster-moving integration work
73
+ and early adopters.
74
+
75
+ PRs may be merged into `dev` to prove out work before it is ready for the managed
76
+ release path. Once a `dev` PR has been tested and is suitable for standards
77
+ review, promote the same change into `next` via a focused PR. Do not treat `dev`
78
+ as the standard, and do not publish `dev` or `next` builds to npm `latest`.
79
+
80
+ Promotion is automatic by default: after a PR is merged into `dev`,
81
+ `.github/workflows/promote-dev-to-next.yml` creates a matching PR into `next` by
82
+ cherry-picking the merged dev PR. Add the `no-promote-next` label before merging
83
+ a dev PR only when it should stay out of the `next` review queue. Reviewers
84
+ should still inspect the promotion PR, resolve conflicts, and adjust
85
+ release/version metadata if needed before merging to `next`.
86
+
87
+ Each npm publish needs a unique semver version. Use `-dev.N` versions on `dev`,
88
+ prerelease versions on `next`, and normal release versions on `main`.
89
+
90
+ Consumer-specific compatibility profiles belong in the consuming application or
91
+ service unless the capability becomes generic PDTF package functionality.
92
+ Consumers should pin/hash supplied schemas and use their own target-profile
93
+ configuration for API calls and webhooks.
94
+
95
+ See `docs/branch-release-workflow.md` for the full workflow.
96
+
97
+ ## Important Notes
98
+
99
+ - All schemas use JSON Schema Draft 07
100
+ - The repository publishes to npm as `@pdtf/schemas`
101
+ - Overlays may contain fields from licensed forms (BASPI, PIQ, Law Society) - ensure compliance when rendering data
@@ -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.