@pdtf/schemas 0.6.3 → 0.6.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdtf/schemas",
3
- "version": "0.6.3",
3
+ "version": "0.6.6",
4
4
  "description": "Property Data Trust Framework Schemas and Utilities",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -20,8 +20,8 @@
20
20
  },
21
21
  "claims": {
22
22
  "/propertyPack/materialFacts/address": {
23
- "address1": "3 The Hollys",
24
- "address2": "Birtley",
23
+ "line1": "3 The Hollys",
24
+ "line2": "Birtley",
25
25
  "town": "CHESTER LE STREET",
26
26
  "county": "County Durham",
27
27
  "postcode": "DH3 1QN"
@@ -1,17 +1,17 @@
1
1
  {
2
- "$schema": "https://homebuyingandsellinggroup.co.uk/schemas/pdtf-transaction.json",
2
+ "$schema": "https://raw.githubusercontent.com/Property-Data-Trust-Framework/schemas/master/src/schemas/pdtf-transaction.json",
3
3
  "transactionId": "3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a",
4
4
  "status": "active",
5
5
  "participants": [
6
6
  {
7
7
  "name": {
8
- "forenames": "Peter Ronald",
9
- "surname": "Hetherington-Smythe"
8
+ "firstName": "Peter",
9
+ "lastName": "Hetherington-Smythe"
10
10
  },
11
11
  "dateOfBirth": "1975-12-25",
12
12
  "phone": "07777 222333",
13
13
  "email": "peter@theseller.com",
14
- "address": { "address1": "47 Park Road", "postcode": "AL3 5AF" },
14
+ "address": { "line1": "47 Park Road", "postcode": "AL3 5AF" },
15
15
  "role": "Seller"
16
16
  }
17
17
  ],
@@ -19,15 +19,13 @@
19
19
  "materialFacts": {
20
20
  "uprn": 1241304304,
21
21
  "address": {
22
- "address1": "47 Park Road",
23
- "address2": "",
22
+ "line1": "47 Park Road",
23
+ "line2": "",
24
24
  "town": "HARPENDEN",
25
25
  "county": "Herts",
26
26
  "postcode": "AL3 5AF"
27
27
  },
28
- "energyEfficiency": {
29
- "energyEfficiencyRating": "A"
30
- },
28
+
31
29
  "delayFactors": {
32
30
  "hasDelayFactors": { "yesNo": "No" }
33
31
  },
@@ -52,9 +50,18 @@
52
50
  "yesNo": "No"
53
51
  }
54
52
  },
55
- "flammableExternalWallSystem": {
53
+ "typeOfConstruction": {
54
+ "isStandardForm": {
55
+ "yesNo": "Yes"
56
+ },
56
57
  "hasFlammableExternalWallSystem": "No"
57
58
  },
59
+ "energyEfficiency": {
60
+ "energyEfficiencyRating": "A",
61
+ "hasSprayFoamInstalled": {
62
+ "yesNo": "No"
63
+ }
64
+ },
58
65
  "councilTax": {
59
66
  "councilTaxBand": "A",
60
67
  "councilTaxAffectingAlterations": {
@@ -12,7 +12,7 @@
12
12
  "ownership",
13
13
  "parking",
14
14
  "listingAndConservation",
15
- "flammableExternalWallSystem",
15
+ "typeOfConstruction",
16
16
  "energyEfficiency",
17
17
  "councilTax",
18
18
  "disputesAndComplaints",
@@ -45,7 +45,10 @@
45
45
  },
46
46
  "delayFactors": {
47
47
  "baspiRef": "A1.2",
48
- "RDSRef": "Metadata/PotentialDelays,Metadata/PotentialDelayDuration",
48
+ "RDSMapping": {
49
+ "hasDelayFactors/yesNo": " Metadata/PotentialDelays",
50
+ "hasDelayFactors/details": "Metadata/PotentialDelayDuration"
51
+ },
49
52
  "title": "Delay Factors",
50
53
  "type": "object",
51
54
  "required": ["hasDelayFactors"],
@@ -398,12 +401,18 @@
398
401
  }
399
402
  }
400
403
  },
401
- "flammableExternalWallSystem": {
402
- "baspiRef": "A1.8.2",
403
- "RDSRef": "Property/Flags,Certificates",
404
+ "typeOfConstruction": {
405
+ "baspiRef": "1.8",
406
+ "title": "Type of Construction",
404
407
  "type": "object",
405
- "required": ["hasFlammableExternalWallSystem"],
408
+ "required": ["isStandardForm", "hasFlammableExternalWallSystem"],
406
409
  "properties": {
410
+ "isStandardForm": {
411
+ "baspiRef": "A1.8.1",
412
+ "RDSRef": "Buildings,BuildingSections/ConstructionType,ConstructionMaterials",
413
+ "title": "Is the property built in a standard form of construction? E.g. brick and/or block with timber-supported roof comprising a tile or slate cover?",
414
+ "$ref": "#/$defs/yesNoDetailIfNo"
415
+ },
407
416
  "hasFlammableExternalWallSystem": {
408
417
  "baspiRef": "A2.1",
409
418
  "RDSRef": "Tenure/DisputesComplaints,Tenure/LegalClaims",
@@ -419,18 +428,25 @@
419
428
  }
420
429
  },
421
430
  "energyEfficiency": {
422
- "baspiRef": "1.8.3",
423
431
  "RDSRef": "Certificates/{category='energyEfficiency',standard='EPC',gradeLevelRating=?},Certificates/{category='energyEfficiency',standard='EPC',status='exempt'},",
424
432
  "lawSocietyRef": "TA6/7.6",
425
433
  "title": "Energy Efficiency",
426
434
  "type": "object",
427
- "required": ["energyEfficiencyRating"],
435
+ "required": ["energyEfficiencyRating", "hasSprayFoamInstalled"],
428
436
  "properties": {
429
437
  "energyEfficiencyRating": {
438
+ "baspiRef": "1.8.3",
430
439
  "title": "Energy Efficiency Rating",
431
440
  "description": "What is the energy efficiency rating of the property according to the latest Energy Performance Certificate (EPC)?",
432
441
  "type": "string",
433
442
  "enum": ["A", "B", "C", "D", "E", "F", "G", "Exempt Property"]
443
+ },
444
+ "hasSprayFoamInstalled": {
445
+ "baspiRef": "A1.8.4",
446
+ "RDSRef": "",
447
+ "title": "Has spray foam insulation been installed at the property?",
448
+ "$ref": "#/$defs/yesNoDetailIfYes",
449
+ "description": "If yes, please give details together with certification from BBA or KIWA and the installation warranty for the work carried out."
434
450
  }
435
451
  }
436
452
  },
@@ -1625,12 +1641,12 @@
1625
1641
  "address": {
1626
1642
  "type": "object",
1627
1643
  "properties": {
1628
- "address1": {
1644
+ "line1": {
1629
1645
  "title": "Address 1",
1630
1646
  "type": "string",
1631
1647
  "minLength": 1
1632
1648
  },
1633
- "address2": {
1649
+ "line2": {
1634
1650
  "title": "Address 2",
1635
1651
  "type": "string"
1636
1652
  },
@@ -1648,7 +1664,7 @@
1648
1664
  "minLength": 1
1649
1665
  }
1650
1666
  },
1651
- "required": ["address1", "postcode"]
1667
+ "required": ["line1", "postcode"]
1652
1668
  },
1653
1669
  "contactDetails": {
1654
1670
  "type": "object",
@@ -658,7 +658,8 @@
658
658
  "required": [
659
659
  "willRemoveAllRubbish",
660
660
  "otherPropertyInChain",
661
- "moveRestrictionDates"
661
+ "moveRestrictionDates",
662
+ "digitalPropertyLogbook"
662
663
  ],
663
664
  "properties": {
664
665
  "willRemoveAllRubbish": {
@@ -762,6 +763,49 @@
762
763
  ]
763
764
  }
764
765
  }
766
+ },
767
+ "digitalPropertyLogbook": {
768
+ "baspiRef": "B7.5",
769
+ "RDSRef": "",
770
+ "title": "Do you have a Digital Property Logbook?",
771
+ "description": "See https://www.rlba.org.uk/what-is-a-property-logbook? [NOTE: If you do not, check if you have documents form when you bought your property provided by your property lawyer at the time. It is recommended that you provide your property lawyer with access to avoid duplication and delays]",
772
+ "type": "object",
773
+ "properties": {
774
+ "yesNo": {
775
+ "type": "string",
776
+ "title": "",
777
+ "enum": ["No", "Yes"]
778
+ }
779
+ },
780
+ "required": ["yesNo"],
781
+ "dependencies": {
782
+ "yesNo": {
783
+ "oneOf": [
784
+ {
785
+ "properties": {
786
+ "yesNo": {
787
+ "enum": ["No"]
788
+ }
789
+ },
790
+ "additionalProperties": false
791
+ },
792
+ {
793
+ "properties": {
794
+ "yesNo": {
795
+ "enum": ["Yes"]
796
+ },
797
+ "willHandoverLogbook": {
798
+ "title": "Please confirm that on completion you will provide the buyer with the login and password to the Property Logbook.",
799
+ "description": "[NOTE: It is recommended that you reset the password before handing it over to avoid security issues by passing on your own password.]",
800
+ "type": "boolean",
801
+ "const": true
802
+ }
803
+ },
804
+ "required": ["willHandoverLogbook"]
805
+ }
806
+ ]
807
+ }
808
+ }
765
809
  }
766
810
  }
767
811
  },
@@ -917,11 +961,11 @@
917
961
  "address": {
918
962
  "type": "object",
919
963
  "properties": {
920
- "address1": {
964
+ "line1": {
921
965
  "title": "Address 1",
922
966
  "type": "string"
923
967
  },
924
- "address2": {
968
+ "line2": {
925
969
  "title": "Address 2",
926
970
  "type": "string"
927
971
  },
@@ -938,7 +982,7 @@
938
982
  "type": "string"
939
983
  }
940
984
  },
941
- "required": ["address1", "postcode"]
985
+ "required": ["line1", "postcode"]
942
986
  }
943
987
  }
944
988
  }
@@ -0,0 +1,102 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Buyers and Sellers Property Information Form Notes</title>
5
+ </head>
6
+ <body>
7
+ <h1>ABOUT THIS FORM</h1>
8
+ <p>
9
+ The form will take a little time to complete but contains information
10
+ which will speed up the legal process.
11
+ </p>
12
+
13
+ <h2>
14
+ PART A - Getting the property 'Market Ready' (Disclosure of material
15
+ facts)
16
+ </h2>
17
+ <p>
18
+ Whether you are the legal owner of the property or representing them you
19
+ should complete this form as though the questions are being answered by
20
+ the legal owner and based, as far as possible, on their personal knowledge
21
+ of the property.
22
+ </p>
23
+ <p>
24
+ The information you provide must be accurate. You must complete this form
25
+ to comply with the Consumer Protection from Unfair Trading Regulations
26
+ 2008 during the marketing of the property. Under these regulations it is a
27
+ legal requirement to disclose anything that would materially affect the
28
+ 'average person's' decision to buy the property.
29
+ </p>
30
+
31
+ <h3>How will the information be used?</h3>
32
+ <p>
33
+ To comply with the regulations, the information will be displayed by the
34
+ person marketing the property for anyone to view, this might include their
35
+ own website or via the property portals.
36
+ </p>
37
+
38
+ <h2>PART B - Getting the property 'Sale Ready'</h2>
39
+ <p></p>
40
+ You need to complete the information in Section A to market your home and
41
+ both Part A and Part B will be used during the legal process. Anyone making
42
+ an offer to buy or lend money on the property is entitled to see Part A and
43
+ Part B.
44
+
45
+ <h3>How will the information be used?</h3>
46
+ <p>
47
+ Your property lawyer and your buyer's property lawyer and valuer will use
48
+ this information as part of the legal process for selling your home and it
49
+ will form part of the contract for sale.
50
+ </p>
51
+ <p>
52
+ You must answer all questions or it will delay the legal process. You must
53
+ not leave out information which could affect a buyer's decision to
54
+ proceed.
55
+ </p>
56
+ <p>
57
+ If any of the information changes before you complete the sale then you
58
+ should let your estate agent and your property lawyer know about the
59
+ changes, in writing, as soon as possible.
60
+ </p>
61
+ <p>
62
+ If the property is leasehold, commonhold or a managed freehold, additional
63
+ information forms will need to be completed by you and the person who
64
+ manages the shared amenities. Your property lawyer will deal with this,
65
+ but you can help by asking the property manager for details of their costs
66
+ to provide the information and who your lawyer should contact to get the
67
+ information.
68
+ </p>
69
+ <p>
70
+ Whilst you do not need a property lawyer to help you complete the form,
71
+ instructing your property lawyer now will mean they can help you collate
72
+ the information, review the answers which you have provided and may help
73
+ you answer questions you aren't sure about. This can significantly speed
74
+ up the legal process.
75
+ </p>
76
+ <p>
77
+ Make sure you give all of the documents which you have referred to in your
78
+ answers to your property lawyer.
79
+ </p>
80
+
81
+ <h2>THINKING OF BUYING THIS PROPERTY?</h2>
82
+ <p>
83
+ The information contained in this form is intended to help you decide
84
+ whether the property is suitable for you. However, if there is a
85
+ particular reason you are buying the property (e.g. to let it, extend it,
86
+ run a business from it, etc) you should double check with your property
87
+ lawyer and surveyor whether there is anything which might affect that.
88
+ </p>
89
+ <p>
90
+ The information given by the seller is based on their own knowledge and
91
+ opinion. You should assume that the seller is not a legal expert, surveyor
92
+ or building maintenance expert and that any information is given as a home
93
+ owner, or their representative, and can only be relied upon to that
94
+ extent.
95
+ </p>
96
+ <p>
97
+ You should verify any answers which are important to you with your
98
+ property lawyer or surveyor or ask for quotes from the appropriate trade
99
+ experts, e.g. builder, plumber, electrician, damp and timber expert, etc.
100
+ </p>
101
+ </body>
102
+ </html>
@@ -34,20 +34,24 @@
34
34
  "required": ["name", "email", "role"],
35
35
  "properties": {
36
36
  "name": {
37
- "title": "",
37
+ "title": "Name",
38
38
  "type": "object",
39
- "required": ["forenames", "surname"],
39
+ "required": ["firstName", "lastName"],
40
40
  "properties": {
41
- "forenames": {
42
- "title": "Forenames",
41
+ "firstName": {
42
+ "title": "First name",
43
43
  "type": "string"
44
44
  },
45
- "preferredName": {
46
- "title": "Preferred name / known as",
45
+ "middleName": {
46
+ "title": "Middle name(s)",
47
+ "type": "string"
48
+ },
49
+ "lastName": {
50
+ "title": "lastName",
47
51
  "type": "string"
48
52
  },
49
- "surname": {
50
- "title": "Surname",
53
+ "preferredName": {
54
+ "title": "Preferred name / known as",
51
55
  "type": "string"
52
56
  }
53
57
  }
@@ -235,12 +239,12 @@
235
239
  "address": {
236
240
  "type": "object",
237
241
  "properties": {
238
- "address1": {
242
+ "line1": {
239
243
  "title": "Address 1",
240
244
  "type": "string",
241
245
  "minLength": 1
242
246
  },
243
- "address2": {
247
+ "line2": {
244
248
  "title": "Address 2",
245
249
  "type": "string"
246
250
  },
@@ -258,7 +262,7 @@
258
262
  "minLength": 1
259
263
  }
260
264
  },
261
- "required": ["address1", "postcode"]
265
+ "required": ["line1", "postcode"]
262
266
  },
263
267
  "riskIndicatorAndSearch": {
264
268
  "type": "object",
@@ -269,7 +273,7 @@
269
273
  "enum": ["Yes", "No"]
270
274
  }
271
275
  },
272
- "required": ["address1", "postcode"]
276
+ "required": ["hasRisk"]
273
277
  }
274
278
  }
275
279
  }
@@ -77,8 +77,8 @@ test("correctly gets a subschema through an arrays element", () => {
77
77
  });
78
78
 
79
79
  test("correctly gets another subschema through an arrays element", () => {
80
- const subschema = getSubschema("/participants/0/name/forenames");
81
- expect(subschema.title).toBe("Forenames");
80
+ const subschema = getSubschema("/participants/0/name/firstName");
81
+ expect(subschema.title).toBe("First name");
82
82
  });
83
83
 
84
84
  test("correctly gets a subschema validator which is already cached", () => {