@pdtf/schemas 3.6.0-2 → 3.6.0-21

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 (35) hide show
  1. package/.claude/settings.local.json +17 -2
  2. package/docs/sef25-extensions-ui-spec.md +146 -0
  3. package/index.js +97 -58
  4. package/package.json +4 -2
  5. package/src/schemas/v3/combined.json +7013 -1313
  6. package/src/schemas/v3/compactSkeleton.txt +353 -11
  7. package/src/schemas/v3/overlays/baspi4.json +161 -17
  8. package/src/schemas/v3/overlays/baspi5.json +166 -19
  9. package/src/schemas/v3/overlays/extensions/jk.json +24 -6
  10. package/src/schemas/v3/overlays/extensions/pc.json +36 -0
  11. package/src/schemas/v3/overlays/extensions/ph.json +197 -0
  12. package/src/schemas/v3/overlays/extensions/sc.json +83 -0
  13. package/src/schemas/v3/overlays/fme1.json +16 -14
  14. package/src/schemas/v3/overlays/lpe1.json +60 -30
  15. package/src/schemas/v3/overlays/nts.json +68 -1
  16. package/src/schemas/v3/overlays/nts2.json +68 -1
  17. package/src/schemas/v3/overlays/ntsl.json +68 -1
  18. package/src/schemas/v3/overlays/ntsl2.json +68 -1
  19. package/src/schemas/v3/overlays/piq.json +38 -1
  20. package/src/schemas/v3/overlays/rds.json +118 -6
  21. package/src/schemas/v3/overlays/ta6.json +40 -14
  22. package/src/schemas/v3/overlays/ta6ed6.json +6436 -0
  23. package/src/schemas/v3/overlays/ta7.json +70 -6
  24. package/src/schemas/v3/overlays/ta7ed5.json +1539 -0
  25. package/src/schemas/v3/pdtf-transaction.json +4098 -615
  26. package/src/schemas/v3/skeleton.json +491 -34
  27. package/src/tests/v3/buyerCircumstances.test.js +543 -0
  28. package/src/tests/v3/extensionOverlays.test.js +436 -0
  29. package/src/tests/v3/offers.test.js +37 -40
  30. package/src/tests/v3/patternProperties.test.js +149 -30
  31. package/src/tests/v3/ta6ed6.test.js +2356 -0
  32. package/src/tests/v3/ta7ed5.test.js +567 -0
  33. package/src/utils/extractExtensionOverlays.js +104 -31
  34. package/src/utils/extractOverlay.js +87 -23
  35. package/src/utils/pathSkeleton.js +1 -1
@@ -292,6 +292,29 @@
292
292
  },
293
293
  "electricVehicleChargingPoint": {
294
294
  "ntslRef": "B4.4",
295
+ "discriminator": {
296
+ "propertyName": "yesNo"
297
+ },
298
+ "oneOf": [
299
+ {
300
+ "properties": {
301
+ "yesNo": {
302
+ "enum": [
303
+ "No"
304
+ ]
305
+ }
306
+ }
307
+ },
308
+ {
309
+ "properties": {
310
+ "yesNo": {
311
+ "enum": [
312
+ "Yes"
313
+ ]
314
+ }
315
+ }
316
+ }
317
+ ],
295
318
  "required": [
296
319
  "yesNo"
297
320
  ],
@@ -1374,7 +1397,25 @@
1374
1397
  }
1375
1398
  },
1376
1399
  "otherHeatingFeatures": {
1377
- "ntslRef": "B3.4.2"
1400
+ "ntslRef": "B3.4.2",
1401
+ "items": {
1402
+ "enum": [
1403
+ "None",
1404
+ "Air conditioning",
1405
+ "Double glazing",
1406
+ "Triple glazing",
1407
+ "Night storage",
1408
+ "Solar water",
1409
+ "Underfloor heating",
1410
+ "Wood burner",
1411
+ "Aga/Rayburn",
1412
+ "Open fire",
1413
+ "Ground source heat pump",
1414
+ "Air source heat pump",
1415
+ "Solar thermal",
1416
+ "Passive House design"
1417
+ ]
1418
+ }
1378
1419
  }
1379
1420
  }
1380
1421
  },
@@ -1406,6 +1447,32 @@
1406
1447
  },
1407
1448
  "broadband": {
1408
1449
  "ntslRef": "B3.5",
1450
+ "discriminator": {
1451
+ "propertyName": "typeOfConnection"
1452
+ },
1453
+ "oneOf": [
1454
+ {
1455
+ "properties": {
1456
+ "typeOfConnection": {
1457
+ "enum": [
1458
+ "None"
1459
+ ]
1460
+ }
1461
+ }
1462
+ },
1463
+ {
1464
+ "properties": {
1465
+ "typeOfConnection": {
1466
+ "enum": [
1467
+ "ADSL copper wire",
1468
+ "Cable",
1469
+ "FTTC (Fibre to the Cabinet)",
1470
+ "FTTP (Fibre to the Premises)"
1471
+ ]
1472
+ }
1473
+ }
1474
+ }
1475
+ ],
1409
1476
  "required": [
1410
1477
  "typeOfConnection"
1411
1478
  ],
@@ -313,6 +313,29 @@
313
313
  },
314
314
  "electricVehicleChargingPoint": {
315
315
  "ntsl2Ref": "B4.4",
316
+ "discriminator": {
317
+ "propertyName": "yesNo"
318
+ },
319
+ "oneOf": [
320
+ {
321
+ "properties": {
322
+ "yesNo": {
323
+ "enum": [
324
+ "No"
325
+ ]
326
+ }
327
+ }
328
+ },
329
+ {
330
+ "properties": {
331
+ "yesNo": {
332
+ "enum": [
333
+ "Yes"
334
+ ]
335
+ }
336
+ }
337
+ }
338
+ ],
316
339
  "required": [
317
340
  "yesNo"
318
341
  ],
@@ -1740,7 +1763,25 @@
1740
1763
  }
1741
1764
  },
1742
1765
  "otherHeatingFeatures": {
1743
- "ntsl2Ref": "B3.4.2"
1766
+ "ntsl2Ref": "B3.4.2",
1767
+ "items": {
1768
+ "enum": [
1769
+ "None",
1770
+ "Air conditioning",
1771
+ "Double glazing",
1772
+ "Triple glazing",
1773
+ "Night storage",
1774
+ "Solar water",
1775
+ "Underfloor heating",
1776
+ "Wood burner",
1777
+ "Aga/Rayburn",
1778
+ "Open fire",
1779
+ "Ground source heat pump",
1780
+ "Air source heat pump",
1781
+ "Solar thermal",
1782
+ "Passive House design"
1783
+ ]
1784
+ }
1744
1785
  }
1745
1786
  }
1746
1787
  },
@@ -1772,6 +1813,32 @@
1772
1813
  },
1773
1814
  "broadband": {
1774
1815
  "ntsl2Ref": "B3.5",
1816
+ "discriminator": {
1817
+ "propertyName": "typeOfConnection"
1818
+ },
1819
+ "oneOf": [
1820
+ {
1821
+ "properties": {
1822
+ "typeOfConnection": {
1823
+ "enum": [
1824
+ "None"
1825
+ ]
1826
+ }
1827
+ }
1828
+ },
1829
+ {
1830
+ "properties": {
1831
+ "typeOfConnection": {
1832
+ "enum": [
1833
+ "ADSL copper wire",
1834
+ "Cable",
1835
+ "FTTC (Fibre to the Cabinet)",
1836
+ "FTTP (Fibre to the Premises)"
1837
+ ]
1838
+ }
1839
+ }
1840
+ }
1841
+ ],
1775
1842
  "required": [
1776
1843
  "typeOfConnection"
1777
1844
  ],
@@ -13,9 +13,9 @@
13
13
  "properties": {
14
14
  "role": {
15
15
  "enum": [
16
- "Seller's Conveyancer",
17
16
  "Prospective Buyer",
18
17
  "Buyer's Conveyancer",
18
+ "Seller's Conveyancer",
19
19
  "Estate Agent",
20
20
  "Buyer's Agent",
21
21
  "Surveyor",
@@ -65,11 +65,22 @@
65
65
  "enum": [
66
66
  "Personal Representative for a Deceased Owner",
67
67
  "Under Power of Attorney",
68
+ "Trustee",
68
69
  "Assistant",
69
70
  "Other"
70
71
  ]
71
72
  }
72
73
  }
74
+ },
75
+ {
76
+ "properties": {
77
+ "capacity": {
78
+ "enum": [
79
+ "Company Director",
80
+ "Company Secretary"
81
+ ]
82
+ }
83
+ }
73
84
  }
74
85
  ]
75
86
  }
@@ -1743,6 +1754,32 @@
1743
1754
  },
1744
1755
  "broadband": {
1745
1756
  "piqRef": "A7.1.15",
1757
+ "discriminator": {
1758
+ "propertyName": "typeOfConnection"
1759
+ },
1760
+ "oneOf": [
1761
+ {
1762
+ "properties": {
1763
+ "typeOfConnection": {
1764
+ "enum": [
1765
+ "None"
1766
+ ]
1767
+ }
1768
+ }
1769
+ },
1770
+ {
1771
+ "properties": {
1772
+ "typeOfConnection": {
1773
+ "enum": [
1774
+ "ADSL copper wire",
1775
+ "Cable",
1776
+ "FTTC (Fibre to the Cabinet)",
1777
+ "FTTP (Fibre to the Premises)"
1778
+ ]
1779
+ }
1780
+ }
1781
+ }
1782
+ ],
1746
1783
  "properties": {
1747
1784
  "typeOfConnection": {
1748
1785
  "piqRef": "A7.1.16"
@@ -34,6 +34,7 @@
34
34
  "enum": [
35
35
  "Personal Representative for a Deceased Owner",
36
36
  "Under Power of Attorney",
37
+ "Trustee",
37
38
  "Assistant",
38
39
  "Other"
39
40
  ]
@@ -42,6 +43,19 @@
42
43
  "rdsRef": "Participants/OtherDocumentation"
43
44
  }
44
45
  }
46
+ },
47
+ {
48
+ "properties": {
49
+ "capacity": {
50
+ "enum": [
51
+ "Company Director",
52
+ "Company Secretary"
53
+ ]
54
+ },
55
+ "sellersCapacityDetails": {
56
+ "rdsRef": "Participants/OtherDocumentation"
57
+ }
58
+ }
45
59
  }
46
60
  ]
47
61
  }
@@ -1476,14 +1490,60 @@
1476
1490
  }
1477
1491
  ]
1478
1492
  },
1479
- "isConnectedToNationalGrid": {
1480
- "rdsRef": "Objects/isExternallyConnected=yes|no|true|false,Connection,Objects/ExternalConnection"
1481
- },
1482
1493
  "photovoltaicMeterPanelLocation": {
1483
1494
  "rdsRef": "Objects/class='meters|valve|stopcock'&access=?&accessLocation=?"
1484
1495
  },
1485
- "photovoltaicBatteriesLocation": {
1486
- "rdsRef": "Objects/class='meters|valve|stopcock'&access=?&accessLocation=?"
1496
+ "photovoltaicBatteries": {
1497
+ "rdsRef": "Objects/class='meters|valve|stopcock'&access=?&accessLocation=?",
1498
+ "discriminator": {
1499
+ "propertyName": "yesNo"
1500
+ },
1501
+ "oneOf": [
1502
+ {
1503
+ "properties": {
1504
+ "yesNo": {
1505
+ "enum": [
1506
+ "No"
1507
+ ]
1508
+ }
1509
+ }
1510
+ },
1511
+ {
1512
+ "properties": {
1513
+ "yesNo": {
1514
+ "enum": [
1515
+ "Yes"
1516
+ ]
1517
+ }
1518
+ }
1519
+ }
1520
+ ]
1521
+ },
1522
+ "nationalGrid": {
1523
+ "rdsRef": "Objects/isExternallyConnected=yes|no|true|false,Connection,Objects/ExternalConnection",
1524
+ "discriminator": {
1525
+ "propertyName": "yesNo"
1526
+ },
1527
+ "oneOf": [
1528
+ {
1529
+ "properties": {
1530
+ "yesNo": {
1531
+ "enum": [
1532
+ "No"
1533
+ ]
1534
+ }
1535
+ }
1536
+ },
1537
+ {
1538
+ "properties": {
1539
+ "yesNo": {
1540
+ "enum": [
1541
+ "Yes"
1542
+ ]
1543
+ }
1544
+ }
1545
+ }
1546
+ ]
1487
1547
  }
1488
1548
  }
1489
1549
  }
@@ -1983,7 +2043,33 @@
1983
2043
  ]
1984
2044
  },
1985
2045
  "broadband": {
1986
- "rdsRef": "Services/Internet"
2046
+ "rdsRef": "Services/Internet",
2047
+ "discriminator": {
2048
+ "propertyName": "typeOfConnection"
2049
+ },
2050
+ "oneOf": [
2051
+ {
2052
+ "properties": {
2053
+ "typeOfConnection": {
2054
+ "enum": [
2055
+ "None"
2056
+ ]
2057
+ }
2058
+ }
2059
+ },
2060
+ {
2061
+ "properties": {
2062
+ "typeOfConnection": {
2063
+ "enum": [
2064
+ "ADSL copper wire",
2065
+ "Cable",
2066
+ "FTTC (Fibre to the Cabinet)",
2067
+ "FTTP (Fibre to the Premises)"
2068
+ ]
2069
+ }
2070
+ }
2071
+ }
2072
+ ]
1987
2073
  }
1988
2074
  }
1989
2075
  },
@@ -3301,6 +3387,32 @@
3301
3387
  }
3302
3388
  ]
3303
3389
  },
3390
+ "insulation": {
3391
+ "rdsRef": "Certificates",
3392
+ "discriminator": {
3393
+ "propertyName": "yesNo"
3394
+ },
3395
+ "oneOf": [
3396
+ {
3397
+ "properties": {
3398
+ "yesNo": {
3399
+ "enum": [
3400
+ "No"
3401
+ ]
3402
+ }
3403
+ }
3404
+ },
3405
+ {
3406
+ "properties": {
3407
+ "yesNo": {
3408
+ "enum": [
3409
+ "Yes"
3410
+ ]
3411
+ }
3412
+ }
3413
+ }
3414
+ ]
3415
+ },
3304
3416
  "solarPanels": {
3305
3417
  "rdsRef": "Certificates",
3306
3418
  "discriminator": {
@@ -1405,6 +1405,7 @@
1405
1405
  }
1406
1406
  },
1407
1407
  "specialistIssues": {
1408
+ "ta6Ref": "7.8",
1408
1409
  "required": [
1409
1410
  "japaneseKnotweed"
1410
1411
  ],
@@ -1434,24 +1435,33 @@
1434
1435
  },
1435
1436
  "managementPlanInPlace": {
1436
1437
  "ta6Ref": "7.8.2"
1437
- },
1438
- "attachments": {
1439
- "ta6Ref": "7.8.3"
1440
1438
  }
1441
1439
  },
1442
1440
  "required": [
1443
- "managementPlanInPlace",
1444
- "attachments"
1441
+ "managementPlanInPlace"
1442
+ ],
1443
+ "oneOf": [
1444
+ null,
1445
+ {
1446
+ "required": [
1447
+ "attachments"
1448
+ ],
1449
+ "properties": {
1450
+ "attachments": {
1451
+ "ta6Ref": "7.8.3"
1452
+ }
1453
+ }
1454
+ }
1445
1455
  ]
1446
1456
  }
1447
1457
  ],
1448
1458
  "required": [
1449
1459
  "yesNo"
1450
1460
  ],
1451
- "title": "Is the property affected by Japanese knotweed?",
1452
1461
  "properties": {
1453
1462
  "yesNo": {
1454
- "ta6Ref": "7.8.1"
1463
+ "ta6Ref": "7.8.1",
1464
+ "title": "Is the property affected by Japanese knotweed?"
1455
1465
  }
1456
1466
  }
1457
1467
  }
@@ -2270,7 +2280,11 @@
2270
2280
  ],
2271
2281
  "properties": {
2272
2282
  "yesNo": {
2273
- "ta6Ref": "12.3c1"
2283
+ "ta6Ref": "12.3c1",
2284
+ "enum": [
2285
+ "Yes",
2286
+ "No"
2287
+ ]
2274
2288
  }
2275
2289
  }
2276
2290
  }
@@ -3264,7 +3278,11 @@
3264
3278
  ],
3265
3279
  "properties": {
3266
3280
  "yesNo": {
3267
- "ta6Ref": "7.4.1"
3281
+ "ta6Ref": "7.4.1",
3282
+ "enum": [
3283
+ "Yes",
3284
+ "No"
3285
+ ]
3268
3286
  }
3269
3287
  }
3270
3288
  },
@@ -3451,7 +3469,7 @@
3451
3469
  "required": [
3452
3470
  "yesNo"
3453
3471
  ],
3454
- "title": "Is the seller aware of any boundary feature having been moved in the last 10 years or during the sellers period of ownership if longer?",
3472
+ "title": "Is the seller aware of any boundary feature having been moved in the last 10 years or during the seller's period of ownership if longer?",
3455
3473
  "properties": {
3456
3474
  "yesNo": {
3457
3475
  "ta6Ref": "1.3.1"
@@ -3493,7 +3511,7 @@
3493
3511
  "required": [
3494
3512
  "yesNo"
3495
3513
  ],
3496
- "title": "During the sellers ownership, has any adjacent land or property been purchased by the seller?",
3514
+ "title": "During the seller's ownership, has any adjacent land or property been purchased by the seller?",
3497
3515
  "properties": {
3498
3516
  "yesNo": {
3499
3517
  "ta6Ref": "1.4.1"
@@ -3587,7 +3605,7 @@
3587
3605
  "required": [
3588
3606
  "yesNo"
3589
3607
  ],
3590
- "title": "Do any drains, pipes or wires serving the property cross any neighbours property?",
3608
+ "title": "Do any drains, pipes or wires serving the property cross any neighbour's property?",
3591
3609
  "properties": {
3592
3610
  "yesNo": {
3593
3611
  "ta6Ref": "8.7.1"
@@ -3715,7 +3733,11 @@
3715
3733
  "ta6Ref": "12.1.2"
3716
3734
  },
3717
3735
  "attachments": {
3718
- "ta6Ref": "12.1.3"
3736
+ "ta6Ref": "12.1.3",
3737
+ "enum": [
3738
+ "Attached",
3739
+ "To follow"
3740
+ ]
3719
3741
  }
3720
3742
  },
3721
3743
  "required": [
@@ -3767,7 +3789,11 @@
3767
3789
  "ta6Ref": "12.2.2a.1"
3768
3790
  },
3769
3791
  "attachments": {
3770
- "ta6Ref": "12.2.2a.2"
3792
+ "ta6Ref": "12.2.2a.2",
3793
+ "enum": [
3794
+ "Attached",
3795
+ "To follow"
3796
+ ]
3771
3797
  }
3772
3798
  }
3773
3799
  }