loanshub-shared 1.0.0 → 1.1.0
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/lib/app/index.d.ts +3 -3
- package/lib/app/index.js +18 -18
- package/lib/app/options/applicantOptions.d.ts +10 -10
- package/lib/app/options/applicantOptions.js +203 -203
- package/lib/app/options/assetOptions.d.ts +3 -3
- package/lib/app/options/assetOptions.js +38 -38
- package/lib/app/options/assetOptions.js.map +1 -1
- package/lib/app/options/bankOptions.d.ts +2 -0
- package/lib/app/options/bankOptions.js +10 -0
- package/lib/app/options/bankOptions.js.map +1 -0
- package/lib/app/options/employmentOptions.d.ts +6 -6
- package/lib/app/options/employmentOptions.js +69 -69
- package/lib/app/options/employmentOptions.js.map +1 -1
- package/lib/app/options/expenseOptions.d.ts +3 -3
- package/lib/app/options/expenseOptions.js +199 -134
- package/lib/app/options/expenseOptions.js.map +1 -1
- package/lib/app/options/index.d.ts +13 -12
- package/lib/app/options/index.js +47 -46
- package/lib/app/options/index.js.map +1 -1
- package/lib/app/options/liabilityOptions.d.ts +4 -4
- package/lib/app/options/liabilityOptions.js +60 -52
- package/lib/app/options/liabilityOptions.js.map +1 -1
- package/lib/app/options/repaymentOptions.d.ts +13 -13
- package/lib/app/options/repaymentOptions.js +53 -53
- package/lib/app/options/repaymentOptions.js.map +1 -1
- package/lib/app/stages.d.ts +15 -15
- package/lib/app/stages.js +35 -35
- package/lib/app/stages.js.map +1 -1
- package/lib/assetPropertyAddress.d.ts +26 -0
- package/lib/assetPropertyAddress.js +148 -0
- package/lib/assetPropertyAddress.js.map +1 -0
- package/lib/form/index.d.ts +2 -2
- package/lib/form/index.js +18 -18
- package/lib/form/loanForm.d.ts +180 -174
- package/lib/form/loanForm.js +92 -85
- package/lib/form/loanForm.js.map +1 -1
- package/lib/form/loanFormOptions.d.ts +18 -17
- package/lib/form/loanFormOptions.js +145 -139
- package/lib/form/loanFormOptions.js.map +1 -1
- package/lib/index.d.ts +6 -5
- package/lib/index.js +22 -21
- package/lib/index.js.map +1 -1
- package/lib/nominatimAddress.d.ts +41 -0
- package/lib/nominatimAddress.js +118 -0
- package/lib/nominatimAddress.js.map +1 -0
- package/lib/nominatimAddress.test.d.ts +1 -0
- package/lib/nominatimAddress.test.js +91 -0
- package/lib/nominatimAddress.test.js.map +1 -0
- package/lib/typings/firebase/employment.d.ts +11 -11
- package/lib/typings/firebase/employment.js +15 -15
- package/lib/typings/firebase/employment.js.map +1 -1
- package/lib/typings/firebase/index.d.ts +1 -1
- package/lib/typings/firebase/index.js +17 -17
- package/lib/typings/loanshub/address.d.ts +13 -13
- package/lib/typings/loanshub/address.js +2 -2
- package/lib/typings/loanshub/applicant.d.ts +71 -71
- package/lib/typings/loanshub/applicant.js +20 -20
- package/lib/typings/loanshub/applicant.js.map +1 -1
- package/lib/typings/loanshub/application.d.ts +100 -100
- package/lib/typings/loanshub/application.js +8 -8
- package/lib/typings/loanshub/application.js.map +1 -1
- package/lib/typings/loanshub/asset.d.ts +13 -13
- package/lib/typings/loanshub/asset.js +2 -2
- package/lib/typings/loanshub/attachment.d.ts +17 -17
- package/lib/typings/loanshub/attachment.js +2 -2
- package/lib/typings/loanshub/currentRate.d.ts +7 -7
- package/lib/typings/loanshub/currentRate.js +2 -2
- package/lib/typings/loanshub/index.d.ts +27 -27
- package/lib/typings/loanshub/index.js +38 -38
- package/lib/typings/loanshub/index.js.map +1 -1
- package/lib/typings/loanshub/lender.d.ts +13 -13
- package/lib/typings/loanshub/lender.js +2 -2
- package/lib/typings/loanshub/liability.d.ts +13 -13
- package/lib/typings/loanshub/liability.js +2 -2
- package/lib/typings/loanshub/rateReview.d.ts +4 -4
- package/lib/typings/loanshub/rateReview.js +2 -2
- package/lib/typings/loanshub/user.d.ts +5 -5
- package/lib/typings/loanshub/user.js +2 -2
- package/lib/typings/salestrekker/generated.d.ts +5880 -5899
- package/lib/typings/salestrekker/generated.js +1210 -1194
- package/lib/typings/salestrekker/generated.js.map +1 -1
- package/lib/typings/salestrekker/index.d.ts +6 -6
- package/lib/typings/salestrekker/index.js +24 -24
- package/lib/typings/salestrekker/index.js.map +1 -1
- package/lib/utils.d.ts +27 -27
- package/lib/utils.js +79 -80
- package/lib/utils.js.map +1 -1
- package/lib/utils.test.d.ts +1 -1
- package/lib/utils.test.js +88 -88
- package/package.json +5 -6
|
@@ -1,140 +1,146 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{ text: "
|
|
30
|
-
{ text: "
|
|
31
|
-
{ text: "
|
|
32
|
-
{ text: "
|
|
33
|
-
{ text: "
|
|
34
|
-
{ text: "
|
|
35
|
-
{ text: "
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
];
|
|
75
|
-
exports.
|
|
76
|
-
{ text: "
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{ text: "
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{ text: "
|
|
89
|
-
{ text: "
|
|
90
|
-
{ text: "
|
|
91
|
-
];
|
|
92
|
-
exports.
|
|
93
|
-
{
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.marketingSourceOptions = exports.maritalStatusOptions = exports.financeIssuesOptions = exports.employmentTypeOptions = exports.employmentDurationOptions = exports.loanFeaturesOptions = exports.purchaseConsiderationsOptions = exports.refinanceConsiderationsOptions = exports.incomeOptions = exports.stateOptions = exports.applicantTypeOptions = exports.formTypeOptions = void 0;
|
|
4
|
+
exports.getOptionText = getOptionText;
|
|
5
|
+
const loanForm_1 = require("./loanForm");
|
|
6
|
+
exports.formTypeOptions = [
|
|
7
|
+
{
|
|
8
|
+
text: "Purchase",
|
|
9
|
+
description: "I want to purchase a property",
|
|
10
|
+
value: loanForm_1.LeadFormTypes.PURCHASE
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
text: "Refinance",
|
|
14
|
+
description: "I want to refinance an existing loan",
|
|
15
|
+
value: loanForm_1.LeadFormTypes.REFINANCE
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
exports.applicantTypeOptions = [
|
|
19
|
+
{
|
|
20
|
+
text: "Owner occupier",
|
|
21
|
+
value: loanForm_1.ApplicantTypes.OWNER_OCCUPIER
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
text: "Investment property",
|
|
25
|
+
value: loanForm_1.ApplicantTypes.INVESTMENT
|
|
26
|
+
}
|
|
27
|
+
];
|
|
28
|
+
exports.stateOptions = [
|
|
29
|
+
{ text: "Queensland", value: loanForm_1.States.QLD },
|
|
30
|
+
{ text: "New South Wales", value: loanForm_1.States.NSW },
|
|
31
|
+
{ text: "Victoria", value: loanForm_1.States.VIC },
|
|
32
|
+
{ text: "Western Australia", value: loanForm_1.States.WA },
|
|
33
|
+
{ text: "Northern Territory", value: loanForm_1.States.NT },
|
|
34
|
+
{ text: "South Australia", value: loanForm_1.States.SA },
|
|
35
|
+
{ text: "Tasmania", value: loanForm_1.States.TAS },
|
|
36
|
+
{ text: "Australian Capital Territory", value: loanForm_1.States.ACT }
|
|
37
|
+
];
|
|
38
|
+
exports.incomeOptions = [
|
|
39
|
+
{ text: "PAYG income", value: loanForm_1.LoanFormOptionValues.PAYG_INCOME },
|
|
40
|
+
{ text: "Business income", value: loanForm_1.LoanFormOptionValues.BUSINESS_INCOME },
|
|
41
|
+
{ text: "Other taxable income", value: loanForm_1.LoanFormOptionValues.OTHER_TAXABLE_INCOME },
|
|
42
|
+
{ text: "Non-taxable income", value: loanForm_1.LoanFormOptionValues.NON_TAXABLE_INCOME }
|
|
43
|
+
];
|
|
44
|
+
exports.refinanceConsiderationsOptions = [
|
|
45
|
+
{ text: "SMSF borrower", value: loanForm_1.Considerations.SMSF_BORROWER },
|
|
46
|
+
{
|
|
47
|
+
text: "Using equity as guarantee",
|
|
48
|
+
value: loanForm_1.Considerations.USING_EQUITY_AS_GUARANTEE
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
text: "Equity release / cash-out",
|
|
52
|
+
value: loanForm_1.Considerations.EQUITY_RELEASE
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
text: "Refinancing to purchase another property",
|
|
56
|
+
value: loanForm_1.Considerations.PURCHASING_OTHER_PROPERTY
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
exports.purchaseConsiderationsOptions = [
|
|
60
|
+
{ text: "SMSF borrower", value: loanForm_1.Considerations.SMSF_BORROWER },
|
|
61
|
+
{ text: "Buying off the plan", value: loanForm_1.Considerations.BUYING_OFF_THE_PLAN },
|
|
62
|
+
{
|
|
63
|
+
text: "Using guarantors",
|
|
64
|
+
value: loanForm_1.Considerations.USING_GUARANTORS
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
text: "Using gifted funds",
|
|
68
|
+
value: loanForm_1.Considerations.USING_GIFTED_FUNDS
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
text: "Eligible for First Home Buyers grant",
|
|
72
|
+
value: loanForm_1.Considerations.USING_FHBG
|
|
73
|
+
}
|
|
74
|
+
];
|
|
75
|
+
exports.loanFeaturesOptions = [
|
|
76
|
+
{ text: "Variable rate", value: loanForm_1.LoanFeatures.VARIABLE_RATE },
|
|
77
|
+
{ text: "Fixed rate", value: loanForm_1.LoanFeatures.FIXED_RATE },
|
|
78
|
+
{ text: "Offset facility", value: loanForm_1.LoanFeatures.OFFSET_FACILITY },
|
|
79
|
+
{ text: "Redraw facility", value: loanForm_1.LoanFeatures.REDRAW_FACILITY },
|
|
80
|
+
{ text: "Interest only", value: loanForm_1.LoanFeatures.INTEREST_ONLY }
|
|
81
|
+
];
|
|
82
|
+
exports.employmentDurationOptions = [
|
|
83
|
+
{ text: "On probation", value: loanForm_1.EmploymentDurations.ON_PROBATION },
|
|
84
|
+
{
|
|
85
|
+
text: "From 6 months to 1 year",
|
|
86
|
+
value: loanForm_1.EmploymentDurations.UNDER_ONE_YEAR
|
|
87
|
+
},
|
|
88
|
+
{ text: "More than 1 year", value: loanForm_1.EmploymentDurations.ONE_YEAR },
|
|
89
|
+
{ text: "More than 2 years", value: loanForm_1.EmploymentDurations.TWO_YEARS },
|
|
90
|
+
{ text: "More than 3 years", value: loanForm_1.EmploymentDurations.OVER_THREE_YEARS }
|
|
91
|
+
];
|
|
92
|
+
exports.employmentTypeOptions = [
|
|
93
|
+
{ text: "Full time", value: loanForm_1.EmploymentTypes.FULL_TIME },
|
|
94
|
+
{ text: "Part time", value: loanForm_1.EmploymentTypes.PART_TIME },
|
|
95
|
+
{ text: "Casual", value: loanForm_1.EmploymentTypes.CASUAL },
|
|
96
|
+
{ text: "Self-employed", value: loanForm_1.EmploymentTypes.SELF_EMPLOYED },
|
|
97
|
+
{ text: "Home duties", value: loanForm_1.EmploymentTypes.HOME_DUTIES }
|
|
98
|
+
];
|
|
99
|
+
exports.financeIssuesOptions = [
|
|
100
|
+
{
|
|
101
|
+
text: "Decreased earnings in the next 12 months",
|
|
102
|
+
value: loanForm_1.FinanceIssues.DECREASED_EARNINGS
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
text: "Bankruptcy or insolvency declared against you",
|
|
106
|
+
value: loanForm_1.FinanceIssues.BANKRUPTCY_INSOLVENCY
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
text: "Legal (court) judgement against you",
|
|
110
|
+
value: loanForm_1.FinanceIssues.LEGAL_JUDGEMENT_AGAINST
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
text: "Difficulty making a loan repayment",
|
|
114
|
+
value: loanForm_1.FinanceIssues.DIFFICULTY_REPAYING
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
exports.maritalStatusOptions = [
|
|
118
|
+
{
|
|
119
|
+
text: "Single",
|
|
120
|
+
value: loanForm_1.RelationshipTypes.SINGLE
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
text: "Married / defacto",
|
|
124
|
+
value: loanForm_1.RelationshipTypes.MARRIED_OR_DEFACTO
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
text: "Other",
|
|
128
|
+
value: loanForm_1.RelationshipTypes.OTHER
|
|
129
|
+
}
|
|
130
|
+
];
|
|
131
|
+
exports.marketingSourceOptions = [
|
|
132
|
+
{ text: "Facebook", value: loanForm_1.MarketingSources.FACEBOOK },
|
|
133
|
+
{ text: "Google search", value: loanForm_1.MarketingSources.GOOGLE_SEARCH },
|
|
134
|
+
{ text: "Instagram", value: loanForm_1.MarketingSources.INSTAGRAM },
|
|
135
|
+
{ text: "LinkedIn", value: loanForm_1.MarketingSources.LINKED_IN },
|
|
136
|
+
{ text: "A friend", value: loanForm_1.MarketingSources.FRIEND },
|
|
137
|
+
{ text: "A finance professional", value: loanForm_1.MarketingSources.PROFESSIONAL }
|
|
138
|
+
];
|
|
139
|
+
function getOptionText(options, value) {
|
|
140
|
+
const option = options.find(i => i.value === value);
|
|
141
|
+
if (!option) {
|
|
142
|
+
throw new Error(`No option found for ${value}`);
|
|
143
|
+
}
|
|
144
|
+
return option.text;
|
|
145
|
+
}
|
|
140
146
|
//# sourceMappingURL=loanFormOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loanFormOptions.js","sourceRoot":"","sources":["../../src/form/loanFormOptions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"loanFormOptions.js","sourceRoot":"","sources":["../../src/form/loanFormOptions.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from "./app";
|
|
2
|
-
export * from "./typings/loanshub";
|
|
3
|
-
export * from "./typings/salestrekker";
|
|
4
|
-
export * from "./typings/firebase";
|
|
5
|
-
export * from "./utils";
|
|
1
|
+
export * from "./app";
|
|
2
|
+
export * from "./typings/loanshub";
|
|
3
|
+
export * from "./typings/salestrekker";
|
|
4
|
+
export * from "./typings/firebase";
|
|
5
|
+
export * from "./utils";
|
|
6
|
+
export * from "./nominatimAddress";
|
package/lib/index.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./app"), exports);
|
|
18
|
-
__exportStar(require("./typings/loanshub"), exports);
|
|
19
|
-
__exportStar(require("./typings/salestrekker"), exports);
|
|
20
|
-
__exportStar(require("./typings/firebase"), exports);
|
|
21
|
-
__exportStar(require("./utils"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./app"), exports);
|
|
18
|
+
__exportStar(require("./typings/loanshub"), exports);
|
|
19
|
+
__exportStar(require("./typings/salestrekker"), exports);
|
|
20
|
+
__exportStar(require("./typings/firebase"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
22
|
+
__exportStar(require("./nominatimAddress"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,qDAAmC;AACnC,yDAAuC;AACvC,qDAAmC;AACnC,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,qDAAmC;AACnC,yDAAuC;AACvC,qDAAmC;AACnC,0CAAwB;AACxB,qDAAmC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse Nominatim /search JSON into fields used by the loan application Address model (Australia).
|
|
3
|
+
* @see https://nominatim.org/release-docs/develop/api/Search/
|
|
4
|
+
*/
|
|
5
|
+
export interface NominatimAddressDetails {
|
|
6
|
+
house_number?: string;
|
|
7
|
+
road?: string;
|
|
8
|
+
pedestrian?: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
suburb?: string;
|
|
11
|
+
neighbourhood?: string;
|
|
12
|
+
city?: string;
|
|
13
|
+
town?: string;
|
|
14
|
+
village?: string;
|
|
15
|
+
locality?: string;
|
|
16
|
+
municipality?: string;
|
|
17
|
+
county?: string;
|
|
18
|
+
state?: string;
|
|
19
|
+
postcode?: string;
|
|
20
|
+
country_code?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface NominatimSearchHit {
|
|
23
|
+
display_name: string;
|
|
24
|
+
address?: NominatimAddressDetails;
|
|
25
|
+
}
|
|
26
|
+
/** Normalised row from Nominatim `/search` applied to the form */
|
|
27
|
+
export interface NominatimAddressSuggestion {
|
|
28
|
+
displayName: string;
|
|
29
|
+
streetAddress: string;
|
|
30
|
+
suburb: string;
|
|
31
|
+
city: string;
|
|
32
|
+
state: string;
|
|
33
|
+
postcode: number | null;
|
|
34
|
+
}
|
|
35
|
+
export declare function normaliseNominatimQuery(q: string): string;
|
|
36
|
+
export declare function parsePostcode(postcode: string | undefined): number | null;
|
|
37
|
+
/**
|
|
38
|
+
* Map a single Nominatim search hit to structured Australian address fields.
|
|
39
|
+
*/
|
|
40
|
+
export declare function mapNominatimHitToSuggestion(hit: NominatimSearchHit): NominatimAddressSuggestion;
|
|
41
|
+
export declare function formatSuggestionAsSingleLine(s: NominatimAddressSuggestion): string;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Parse Nominatim /search JSON into fields used by the loan application Address model (Australia).
|
|
4
|
+
* @see https://nominatim.org/release-docs/develop/api/Search/
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.normaliseNominatimQuery = normaliseNominatimQuery;
|
|
8
|
+
exports.parsePostcode = parsePostcode;
|
|
9
|
+
exports.mapNominatimHitToSuggestion = mapNominatimHitToSuggestion;
|
|
10
|
+
exports.formatSuggestionAsSingleLine = formatSuggestionAsSingleLine;
|
|
11
|
+
const AU_STATE_TO_ABBR = {
|
|
12
|
+
"australian capital territory": "ACT",
|
|
13
|
+
"new south wales": "NSW",
|
|
14
|
+
"victoria": "VIC",
|
|
15
|
+
queensland: "QLD",
|
|
16
|
+
"south australia": "SA",
|
|
17
|
+
"western australia": "WA",
|
|
18
|
+
tasmania: "TAS",
|
|
19
|
+
"northern territory": "NT",
|
|
20
|
+
act: "ACT",
|
|
21
|
+
nsw: "NSW",
|
|
22
|
+
vic: "VIC",
|
|
23
|
+
qld: "QLD",
|
|
24
|
+
sa: "SA",
|
|
25
|
+
wa: "WA",
|
|
26
|
+
tas: "TAS",
|
|
27
|
+
nt: "NT",
|
|
28
|
+
};
|
|
29
|
+
function normaliseNominatimQuery(q) {
|
|
30
|
+
return q.trim().replace(/\s+/g, " ");
|
|
31
|
+
}
|
|
32
|
+
function normaliseState(raw) {
|
|
33
|
+
if (!raw)
|
|
34
|
+
return "";
|
|
35
|
+
let t = raw.trim();
|
|
36
|
+
// ISO 3166-2 style: AU-VIC, AU NSW, AU/QLD → strip country + delimiter
|
|
37
|
+
const auIso = /^AU[-\s_/]+(.+)$/i.exec(t);
|
|
38
|
+
if (auIso) {
|
|
39
|
+
t = auIso[1].trim();
|
|
40
|
+
}
|
|
41
|
+
if (/^[A-Z]{2,3}$/i.test(t)) {
|
|
42
|
+
const u = t.toUpperCase();
|
|
43
|
+
if (["ACT", "NSW", "VIC", "QLD", "SA", "WA", "TAS", "NT"].includes(u)) {
|
|
44
|
+
return u;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const key = t.toLowerCase().replace(/\s+/g, " ").trim();
|
|
48
|
+
return AU_STATE_TO_ABBR[key] || "";
|
|
49
|
+
}
|
|
50
|
+
function nominatimStateParts(a) {
|
|
51
|
+
const extras = a;
|
|
52
|
+
return a.state || extras["ISO3166-2-lvl4"];
|
|
53
|
+
}
|
|
54
|
+
function pickSuburb(a) {
|
|
55
|
+
return (a.suburb ||
|
|
56
|
+
a.neighbourhood ||
|
|
57
|
+
a.city ||
|
|
58
|
+
a.town ||
|
|
59
|
+
a.village ||
|
|
60
|
+
a.locality ||
|
|
61
|
+
a.municipality ||
|
|
62
|
+
"");
|
|
63
|
+
}
|
|
64
|
+
function pickCity(a, suburb) {
|
|
65
|
+
const candidates = [
|
|
66
|
+
a.city,
|
|
67
|
+
a.town,
|
|
68
|
+
a.village,
|
|
69
|
+
a.municipality,
|
|
70
|
+
a.county,
|
|
71
|
+
].filter(Boolean);
|
|
72
|
+
for (const c of candidates) {
|
|
73
|
+
if (c && c !== suburb)
|
|
74
|
+
return c;
|
|
75
|
+
}
|
|
76
|
+
return "";
|
|
77
|
+
}
|
|
78
|
+
function buildStreet(a) {
|
|
79
|
+
const parts = [];
|
|
80
|
+
if (a.house_number)
|
|
81
|
+
parts.push(a.house_number.trim());
|
|
82
|
+
const road = a.road || a.pedestrian || a.path || "";
|
|
83
|
+
if (road)
|
|
84
|
+
parts.push(road.trim());
|
|
85
|
+
return parts.join(" ").trim();
|
|
86
|
+
}
|
|
87
|
+
function parsePostcode(postcode) {
|
|
88
|
+
if (!postcode)
|
|
89
|
+
return null;
|
|
90
|
+
const digits = String(postcode).replace(/\D/g, "");
|
|
91
|
+
if (!digits)
|
|
92
|
+
return null;
|
|
93
|
+
const n = parseInt(digits.slice(0, 4), 10);
|
|
94
|
+
return Number.isFinite(n) ? n : null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Map a single Nominatim search hit to structured Australian address fields.
|
|
98
|
+
*/
|
|
99
|
+
function mapNominatimHitToSuggestion(hit) {
|
|
100
|
+
const a = hit.address || {};
|
|
101
|
+
const suburb = pickSuburb(a);
|
|
102
|
+
const city = pickCity(a, suburb);
|
|
103
|
+
const streetAddress = buildStreet(a);
|
|
104
|
+
return {
|
|
105
|
+
displayName: hit.display_name || "",
|
|
106
|
+
streetAddress,
|
|
107
|
+
suburb,
|
|
108
|
+
city: city || suburb,
|
|
109
|
+
state: normaliseState(nominatimStateParts(a)),
|
|
110
|
+
postcode: parsePostcode(a.postcode),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function formatSuggestionAsSingleLine(s) {
|
|
114
|
+
const pc = s.postcode != null ? String(s.postcode) : "";
|
|
115
|
+
const tail = [s.suburb, s.state, pc].filter(Boolean).join(" ");
|
|
116
|
+
return [s.streetAddress, tail].filter(Boolean).join(", ");
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=nominatimAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nominatimAddress.js","sourceRoot":"","sources":["../src/nominatimAddress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const nominatimAddress_1 = require("./nominatimAddress");
|
|
4
|
+
describe("normaliseNominatimQuery", () => {
|
|
5
|
+
it("trims and collapses spaces", () => {
|
|
6
|
+
expect((0, nominatimAddress_1.normaliseNominatimQuery)(" 12 Foo Street ")).toBe("12 Foo Street");
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
describe("parsePostcode", () => {
|
|
10
|
+
it("parses AU 4-digit", () => {
|
|
11
|
+
expect((0, nominatimAddress_1.parsePostcode)("3000")).toBe(3000);
|
|
12
|
+
});
|
|
13
|
+
it("returns null for empty", () => {
|
|
14
|
+
expect((0, nominatimAddress_1.parsePostcode)(undefined)).toBe(null);
|
|
15
|
+
expect((0, nominatimAddress_1.parsePostcode)("")).toBe(null);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
describe("mapNominatimHitToSuggestion", () => {
|
|
19
|
+
it("maps a typical Melbourne CBD hit", () => {
|
|
20
|
+
const hit = {
|
|
21
|
+
display_name: "200, Bourke Street, Melbourne, City of Melbourne, Victoria, 3000, Australia",
|
|
22
|
+
address: {
|
|
23
|
+
house_number: "200",
|
|
24
|
+
road: "Bourke Street",
|
|
25
|
+
suburb: "Melbourne",
|
|
26
|
+
city: "City of Melbourne",
|
|
27
|
+
state: "Victoria",
|
|
28
|
+
postcode: "3000",
|
|
29
|
+
country_code: "au",
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
const s = (0, nominatimAddress_1.mapNominatimHitToSuggestion)(hit);
|
|
33
|
+
expect(s.streetAddress).toBe("200 Bourke Street");
|
|
34
|
+
expect(s.suburb).toBe("Melbourne");
|
|
35
|
+
expect(s.state).toBe("VIC");
|
|
36
|
+
expect(s.postcode).toBe(3000);
|
|
37
|
+
expect(s.displayName.length).toBeGreaterThan(0);
|
|
38
|
+
});
|
|
39
|
+
it("maps AU-VIC ISO 3166-2 and ISO3166-2-lvl4 when state is empty", () => {
|
|
40
|
+
const hit = {
|
|
41
|
+
display_name: "Test",
|
|
42
|
+
address: {
|
|
43
|
+
road: "Main Road",
|
|
44
|
+
suburb: "Beechworth",
|
|
45
|
+
postcode: "3747",
|
|
46
|
+
country_code: "au",
|
|
47
|
+
state: "AU-VIC",
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
expect((0, nominatimAddress_1.mapNominatimHitToSuggestion)(hit).state).toBe("VIC");
|
|
51
|
+
const hitIso = {
|
|
52
|
+
display_name: "Test2",
|
|
53
|
+
address: {
|
|
54
|
+
road: "St Georges Terrace",
|
|
55
|
+
suburb: "Perth",
|
|
56
|
+
postcode: "6000",
|
|
57
|
+
country_code: "au",
|
|
58
|
+
"ISO3166-2-lvl4": "AU-WA",
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
expect((0, nominatimAddress_1.mapNominatimHitToSuggestion)(hitIso).state).toBe("WA");
|
|
62
|
+
});
|
|
63
|
+
it("handles NSW abbreviated state", () => {
|
|
64
|
+
const hit = {
|
|
65
|
+
display_name: "Test",
|
|
66
|
+
address: {
|
|
67
|
+
road: "George Street",
|
|
68
|
+
suburb: "Sydney",
|
|
69
|
+
state: "NSW",
|
|
70
|
+
postcode: "2000",
|
|
71
|
+
country_code: "au",
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
const s = (0, nominatimAddress_1.mapNominatimHitToSuggestion)(hit);
|
|
75
|
+
expect(s.state).toBe("NSW");
|
|
76
|
+
expect(s.postcode).toBe(2000);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe("formatSuggestionAsSingleLine", () => {
|
|
80
|
+
it("joins structured fields", () => {
|
|
81
|
+
expect((0, nominatimAddress_1.formatSuggestionAsSingleLine)({
|
|
82
|
+
displayName: "",
|
|
83
|
+
streetAddress: "1 Test St",
|
|
84
|
+
suburb: "Brisbane",
|
|
85
|
+
city: "Brisbane",
|
|
86
|
+
state: "QLD",
|
|
87
|
+
postcode: 4000,
|
|
88
|
+
})).toContain("4000");
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=nominatimAddress.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nominatimAddress.test.js","sourceRoot":"","sources":["../src/nominatimAddress.test.ts"],"names":[],"mappings":"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"}
|