@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.
- package/charming-napier-57a77c/LICENSE +21 -0
- package/charming-napier-57a77c/README.md +430 -0
- package/charming-napier-57a77c/docs/sef25-extensions-ui-spec.md +355 -0
- package/charming-napier-57a77c/index.js +654 -0
- package/charming-napier-57a77c/package-lock.json +7297 -0
- package/charming-napier-57a77c/package.json +41 -0
- package/charming-napier-57a77c/src/examples/v1/exampleAddParticipantVouch.json +32 -0
- package/charming-napier-57a77c/src/examples/v1/exampleDocumentedVouch.json +40 -0
- package/charming-napier-57a77c/src/examples/v1/exampleElectronicRecord.json +30 -0
- package/charming-napier-57a77c/src/examples/v1/exampleTransaction.json +878 -0
- package/charming-napier-57a77c/src/examples/v1/exampleVouch.json +25 -0
- package/charming-napier-57a77c/src/examples/v2/exampleTransaction.json +901 -0
- package/charming-napier-57a77c/src/examples/v3/exampleAddParticipantVouch.json +38 -0
- package/charming-napier-57a77c/src/examples/v3/exampleCustomOverlay.json +55 -0
- package/charming-napier-57a77c/src/examples/v3/exampleCustomOverlay2.json +93 -0
- package/charming-napier-57a77c/src/examples/v3/exampleDocumentedVouch.json +47 -0
- package/charming-napier-57a77c/src/examples/v3/exampleElectronicRecord.json +36 -0
- package/charming-napier-57a77c/src/examples/v3/exampleTransaction.json +1038 -0
- package/charming-napier-57a77c/src/examples/v3/exampleVouch.json +32 -0
- package/charming-napier-57a77c/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
- package/charming-napier-57a77c/src/mappings/adf.js +198 -0
- package/charming-napier-57a77c/src/schemas/v1/GeoJSON.json +1279 -0
- package/charming-napier-57a77c/src/schemas/v1/baspiNotes.html +102 -0
- package/charming-napier-57a77c/src/schemas/v1/energy-performance-certificate.json +124 -0
- package/charming-napier-57a77c/src/schemas/v1/freehold-information.json +2051 -0
- package/charming-napier-57a77c/src/schemas/v1/leasehold-information.json +2064 -0
- package/charming-napier-57a77c/src/schemas/v1/legal-information.json +1045 -0
- package/charming-napier-57a77c/src/schemas/v1/material-facts.json +2109 -0
- package/charming-napier-57a77c/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
- package/charming-napier-57a77c/src/schemas/v1/pdtf-transaction.json +191 -0
- package/charming-napier-57a77c/src/schemas/v1/searches/drainage-and-water.json +261 -0
- package/charming-napier-57a77c/src/schemas/v1/searches/local-land-charges.json +69 -0
- package/charming-napier-57a77c/src/schemas/v1/searches/local-searches-required.json +857 -0
- package/charming-napier-57a77c/src/schemas/v1/searches.json +237 -0
- package/charming-napier-57a77c/src/schemas/v1/title-deed.json +841 -0
- package/charming-napier-57a77c/src/schemas/v2/baspiNotes.html +102 -0
- package/charming-napier-57a77c/src/schemas/v2/combined.json +37731 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/baspi.json +8132 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/con29DW.json +705 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/con29R.json +2956 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/fme1.json +1259 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/llc1.json +25 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/lpe1.json +2171 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/nts.json +326 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/oc1.json +2799 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/piq.json +3419 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/rds.json +3736 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/ta10.json +5306 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/ta6.json +4533 -0
- package/charming-napier-57a77c/src/schemas/v2/overlays/ta7.json +1045 -0
- package/charming-napier-57a77c/src/schemas/v2/pdtf-transaction.json +34351 -0
- package/charming-napier-57a77c/src/schemas/v2/skeleton.json +3973 -0
- package/charming-napier-57a77c/src/schemas/v3/combined.json +48153 -0
- package/charming-napier-57a77c/src/schemas/v3/compactSkeleton.txt +4457 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/README.md +299 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/baspi4.json +8027 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/baspi5.json +8177 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/con29DW.json +716 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/con29R.json +2981 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ac.json +333 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/as.json +74 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/dk.json +32 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/dr.json +73 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/er.json +85 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/fd.json +75 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/hi.json +51 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/hs.json +73 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ic.json +59 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/jk.json +96 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/la.json +85 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/lc.json +75 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ma.json +90 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/mc.json +38 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/mi.json +69 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/nd.json +43 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/oa.json +24 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/oc.json +57 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/pc.json +37 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ph.json +194 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/rw.json +68 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sb.json +73 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sc.json +129 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sd.json +63 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sf.json +74 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/sl.json +68 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/ta.json +240 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/tf.json +103 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/tr.json +73 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/extensions/wg.json +350 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/fme1.json +1266 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/llc1.json +25 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/lpe1.json +2199 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/nts.json +2157 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/nts2.json +2742 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ntsl.json +1813 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ntsl2.json +2217 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/oc1.json +2817 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/piq.json +3321 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/rds.json +3665 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/sef25.json +1639 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/sr24.json +38 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ta10.json +4654 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ta6.json +4568 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ta6ed6.json +6537 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ta7.json +1537 -0
- package/charming-napier-57a77c/src/schemas/v3/overlays/ta7ed5.json +1551 -0
- package/charming-napier-57a77c/src/schemas/v3/pdtf-transaction.json +41229 -0
- package/charming-napier-57a77c/src/schemas/v3/skeleton.json +5703 -0
- package/charming-napier-57a77c/src/schemas/verifiedClaims/README.md +21 -0
- package/charming-napier-57a77c/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
- package/charming-napier-57a77c/src/tests/v3/buyerCircumstances.test.js +543 -0
- package/charming-napier-57a77c/src/tests/v3/caching.test.js +591 -0
- package/charming-napier-57a77c/src/tests/v3/enquiries.test.js +1096 -0
- package/charming-napier-57a77c/src/tests/v3/extensionOverlays.test.js +1599 -0
- package/charming-napier-57a77c/src/tests/v3/offers.test.js +823 -0
- package/charming-napier-57a77c/src/tests/v3/patternProperties.test.js +688 -0
- package/charming-napier-57a77c/src/tests/v3/ta6ed6.test.js +2374 -0
- package/charming-napier-57a77c/src/tests/v3/ta7ed5.test.js +600 -0
- package/charming-napier-57a77c/src/tests/v3/transactionSchema.test.js +646 -0
- package/charming-napier-57a77c/src/tests/v3/verifiedClaimsValidator.test.js +195 -0
- package/charming-napier-57a77c/src/utils/compactSkeleton.js +84 -0
- package/charming-napier-57a77c/src/utils/countTokens.js +67 -0
- package/charming-napier-57a77c/src/utils/extractExtensionOverlays.js +624 -0
- package/charming-napier-57a77c/src/utils/extractOverlay.js +381 -0
- package/charming-napier-57a77c/src/utils/extractProperties.js +44 -0
- package/charming-napier-57a77c/src/utils/listPathTitles.js +36 -0
- package/charming-napier-57a77c/src/utils/minimalSkeleton.js +85 -0
- package/charming-napier-57a77c/src/utils/pathList.csv +903 -0
- package/charming-napier-57a77c/src/utils/pathSkeleton.js +181 -0
- package/compassionate-easley-bafb14/CLAUDE.md +101 -0
- package/compassionate-easley-bafb14/LICENSE +21 -0
- package/compassionate-easley-bafb14/README.md +435 -0
- package/compassionate-easley-bafb14/docs/branch-release-workflow.md +138 -0
- package/compassionate-easley-bafb14/docs/sef25-extensions-ui-spec.md +355 -0
- package/compassionate-easley-bafb14/index.js +654 -0
- package/compassionate-easley-bafb14/package-lock.json +7297 -0
- package/compassionate-easley-bafb14/package.json +44 -0
- package/compassionate-easley-bafb14/src/examples/v1/exampleAddParticipantVouch.json +32 -0
- package/compassionate-easley-bafb14/src/examples/v1/exampleDocumentedVouch.json +40 -0
- package/compassionate-easley-bafb14/src/examples/v1/exampleElectronicRecord.json +30 -0
- package/compassionate-easley-bafb14/src/examples/v1/exampleTransaction.json +878 -0
- package/compassionate-easley-bafb14/src/examples/v1/exampleVouch.json +25 -0
- package/compassionate-easley-bafb14/src/examples/v2/exampleTransaction.json +901 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleAddParticipantVouch.json +38 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleCustomOverlay.json +55 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleCustomOverlay2.json +93 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleDocumentedVouch.json +47 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleElectronicRecord.json +36 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleTransaction.json +1038 -0
- package/compassionate-easley-bafb14/src/examples/v3/exampleVouch.json +32 -0
- package/compassionate-easley-bafb14/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
- package/compassionate-easley-bafb14/src/mappings/adf.js +198 -0
- package/compassionate-easley-bafb14/src/schemas/v1/GeoJSON.json +1279 -0
- package/compassionate-easley-bafb14/src/schemas/v1/baspiNotes.html +102 -0
- package/compassionate-easley-bafb14/src/schemas/v1/energy-performance-certificate.json +124 -0
- package/compassionate-easley-bafb14/src/schemas/v1/freehold-information.json +2051 -0
- package/compassionate-easley-bafb14/src/schemas/v1/leasehold-information.json +2064 -0
- package/compassionate-easley-bafb14/src/schemas/v1/legal-information.json +1045 -0
- package/compassionate-easley-bafb14/src/schemas/v1/material-facts.json +2109 -0
- package/compassionate-easley-bafb14/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
- package/compassionate-easley-bafb14/src/schemas/v1/pdtf-transaction.json +191 -0
- package/compassionate-easley-bafb14/src/schemas/v1/searches/drainage-and-water.json +261 -0
- package/compassionate-easley-bafb14/src/schemas/v1/searches/local-land-charges.json +69 -0
- package/compassionate-easley-bafb14/src/schemas/v1/searches/local-searches-required.json +857 -0
- package/compassionate-easley-bafb14/src/schemas/v1/searches.json +237 -0
- package/compassionate-easley-bafb14/src/schemas/v1/title-deed.json +841 -0
- package/compassionate-easley-bafb14/src/schemas/v2/baspiNotes.html +102 -0
- package/compassionate-easley-bafb14/src/schemas/v2/combined.json +37731 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/baspi.json +8132 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/con29DW.json +705 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/con29R.json +2956 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/fme1.json +1259 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/llc1.json +25 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/lpe1.json +2171 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/nts.json +326 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/oc1.json +2799 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/piq.json +3419 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/rds.json +3736 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta10.json +5306 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta6.json +4533 -0
- package/compassionate-easley-bafb14/src/schemas/v2/overlays/ta7.json +1045 -0
- package/compassionate-easley-bafb14/src/schemas/v2/pdtf-transaction.json +34351 -0
- package/compassionate-easley-bafb14/src/schemas/v2/skeleton.json +3973 -0
- package/compassionate-easley-bafb14/src/schemas/v3/combined.json +48461 -0
- package/compassionate-easley-bafb14/src/schemas/v3/compactSkeleton.txt +4519 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/README.md +299 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/baspi4.json +8030 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/baspi5.json +8180 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/con29DW.json +716 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/con29R.json +2981 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ac.json +334 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/as.json +74 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/dk.json +33 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/dr.json +73 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/er.json +85 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/fd.json +75 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/hi.json +51 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/hs.json +73 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ic.json +83 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/jk.json +96 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/la.json +85 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/lc.json +76 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ma.json +90 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/mc.json +38 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/mi.json +70 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/nd.json +44 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/oa.json +24 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/oc.json +57 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/pc.json +38 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ph.json +195 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/rw.json +69 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sb.json +73 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sc.json +133 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sd.json +64 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sf.json +74 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/sl.json +68 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/ta.json +204 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/tf.json +103 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/tr.json +74 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/extensions/wg.json +351 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/fme1.json +1266 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/llc1.json +25 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/lpe1.json +2199 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/nts.json +2159 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/nts2.json +2744 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ntsl.json +1815 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ntsl2.json +2219 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/oc1.json +2817 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/piq.json +3324 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/rds.json +3668 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/sef25.json +1644 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/sr24.json +38 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta10.json +4645 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta6.json +4572 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta6ed6.json +6536 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta7.json +1537 -0
- package/compassionate-easley-bafb14/src/schemas/v3/overlays/ta7ed5.json +1551 -0
- package/compassionate-easley-bafb14/src/schemas/v3/pdtf-transaction.json +41570 -0
- package/compassionate-easley-bafb14/src/schemas/v3/skeleton.json +5767 -0
- package/compassionate-easley-bafb14/src/schemas/verifiedClaims/README.md +21 -0
- package/compassionate-easley-bafb14/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
- package/compassionate-easley-bafb14/src/utils/compactSkeleton.js +84 -0
- package/compassionate-easley-bafb14/src/utils/countTokens.js +67 -0
- package/compassionate-easley-bafb14/src/utils/extractExtensionOverlays.js +633 -0
- package/compassionate-easley-bafb14/src/utils/extractOverlay.js +381 -0
- package/compassionate-easley-bafb14/src/utils/extractProperties.js +44 -0
- package/compassionate-easley-bafb14/src/utils/listPathTitles.js +36 -0
- package/compassionate-easley-bafb14/src/utils/minimalSkeleton.js +85 -0
- package/compassionate-easley-bafb14/src/utils/pathList.csv +903 -0
- package/compassionate-easley-bafb14/src/utils/pathSkeleton.js +181 -0
- package/package.json +1 -1
- package/src/schemas/v3/combined.json +9 -15
- package/src/schemas/v3/overlays/baspi4.json +12 -7
- package/src/schemas/v3/overlays/baspi5.json +12 -7
- package/src/schemas/v3/overlays/extensions/ac.json +2 -1
- package/src/schemas/v3/overlays/extensions/dk.json +3 -2
- package/src/schemas/v3/overlays/extensions/ic.json +33 -9
- package/src/schemas/v3/overlays/extensions/lc.json +3 -2
- package/src/schemas/v3/overlays/extensions/mi.json +2 -1
- package/src/schemas/v3/overlays/extensions/nd.json +3 -2
- package/src/schemas/v3/overlays/extensions/pc.json +3 -2
- package/src/schemas/v3/overlays/extensions/ph.json +2 -1
- package/src/schemas/v3/overlays/extensions/rw.json +4 -3
- package/src/schemas/v3/overlays/extensions/sc.json +8 -4
- package/src/schemas/v3/overlays/extensions/sd.json +3 -2
- package/src/schemas/v3/overlays/extensions/tr.json +3 -2
- package/src/schemas/v3/overlays/extensions/wg.json +2 -1
- package/src/schemas/v3/overlays/lpe1.json +1 -1
- package/src/schemas/v3/overlays/nts.json +3 -1
- package/src/schemas/v3/overlays/nts2.json +3 -1
- package/src/schemas/v3/overlays/ntsl.json +3 -1
- package/src/schemas/v3/overlays/ntsl2.json +3 -1
- package/src/schemas/v3/overlays/piq.json +7 -5
- package/src/schemas/v3/overlays/rds.json +9 -6
- package/src/schemas/v3/overlays/sef25.json +6 -1
- package/src/schemas/v3/overlays/ta10.json +0 -9
- package/src/schemas/v3/overlays/ta6.json +8 -4
- package/src/schemas/v3/overlays/ta6ed6.json +4 -2
- package/src/schemas/v3/pdtf-transaction.json +15 -18
- 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.
|