loanshub-shared 1.0.0 → 1.3.1

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 (90) hide show
  1. package/lib/app/index.d.ts +3 -3
  2. package/lib/app/index.js +18 -18
  3. package/lib/app/options/applicantOptions.d.ts +10 -10
  4. package/lib/app/options/applicantOptions.js +203 -203
  5. package/lib/app/options/assetOptions.d.ts +3 -3
  6. package/lib/app/options/assetOptions.js +38 -38
  7. package/lib/app/options/assetOptions.js.map +1 -1
  8. package/lib/app/options/bankOptions.d.ts +2 -0
  9. package/lib/app/options/bankOptions.js +10 -0
  10. package/lib/app/options/bankOptions.js.map +1 -0
  11. package/lib/app/options/employmentOptions.d.ts +6 -6
  12. package/lib/app/options/employmentOptions.js +69 -69
  13. package/lib/app/options/employmentOptions.js.map +1 -1
  14. package/lib/app/options/expenseOptions.d.ts +3 -3
  15. package/lib/app/options/expenseOptions.js +199 -134
  16. package/lib/app/options/expenseOptions.js.map +1 -1
  17. package/lib/app/options/index.d.ts +13 -12
  18. package/lib/app/options/index.js +47 -46
  19. package/lib/app/options/index.js.map +1 -1
  20. package/lib/app/options/liabilityOptions.d.ts +4 -4
  21. package/lib/app/options/liabilityOptions.js +60 -52
  22. package/lib/app/options/liabilityOptions.js.map +1 -1
  23. package/lib/app/options/repaymentOptions.d.ts +13 -13
  24. package/lib/app/options/repaymentOptions.js +53 -53
  25. package/lib/app/options/repaymentOptions.js.map +1 -1
  26. package/lib/app/stages.d.ts +15 -15
  27. package/lib/app/stages.js +35 -35
  28. package/lib/app/stages.js.map +1 -1
  29. package/lib/assetPropertyAddress.d.ts +26 -0
  30. package/lib/assetPropertyAddress.js +148 -0
  31. package/lib/assetPropertyAddress.js.map +1 -0
  32. package/lib/form/index.d.ts +2 -2
  33. package/lib/form/index.js +18 -18
  34. package/lib/form/loanForm.d.ts +180 -174
  35. package/lib/form/loanForm.js +92 -85
  36. package/lib/form/loanForm.js.map +1 -1
  37. package/lib/form/loanFormOptions.d.ts +18 -17
  38. package/lib/form/loanFormOptions.js +145 -139
  39. package/lib/form/loanFormOptions.js.map +1 -1
  40. package/lib/index.d.ts +6 -5
  41. package/lib/index.js +22 -21
  42. package/lib/index.js.map +1 -1
  43. package/lib/nominatimAddress.d.ts +41 -0
  44. package/lib/nominatimAddress.js +118 -0
  45. package/lib/nominatimAddress.js.map +1 -0
  46. package/lib/nominatimAddress.test.d.ts +1 -0
  47. package/lib/nominatimAddress.test.js +91 -0
  48. package/lib/nominatimAddress.test.js.map +1 -0
  49. package/lib/typings/firebase/employment.d.ts +11 -11
  50. package/lib/typings/firebase/employment.js +15 -15
  51. package/lib/typings/firebase/employment.js.map +1 -1
  52. package/lib/typings/firebase/index.d.ts +1 -1
  53. package/lib/typings/firebase/index.js +17 -17
  54. package/lib/typings/loanshub/address.d.ts +13 -13
  55. package/lib/typings/loanshub/address.js +2 -2
  56. package/lib/typings/loanshub/applicant.d.ts +77 -71
  57. package/lib/typings/loanshub/applicant.js +20 -20
  58. package/lib/typings/loanshub/applicant.js.map +1 -1
  59. package/lib/typings/loanshub/application.d.ts +102 -100
  60. package/lib/typings/loanshub/application.js +8 -8
  61. package/lib/typings/loanshub/application.js.map +1 -1
  62. package/lib/typings/loanshub/asset.d.ts +13 -13
  63. package/lib/typings/loanshub/asset.js +2 -2
  64. package/lib/typings/loanshub/attachment.d.ts +17 -17
  65. package/lib/typings/loanshub/attachment.js +2 -2
  66. package/lib/typings/loanshub/currentRate.d.ts +7 -7
  67. package/lib/typings/loanshub/currentRate.js +2 -2
  68. package/lib/typings/loanshub/index.d.ts +27 -27
  69. package/lib/typings/loanshub/index.js +38 -38
  70. package/lib/typings/loanshub/index.js.map +1 -1
  71. package/lib/typings/loanshub/lender.d.ts +13 -13
  72. package/lib/typings/loanshub/lender.js +2 -2
  73. package/lib/typings/loanshub/liability.d.ts +13 -13
  74. package/lib/typings/loanshub/liability.js +2 -2
  75. package/lib/typings/loanshub/rateReview.d.ts +4 -4
  76. package/lib/typings/loanshub/rateReview.js +2 -2
  77. package/lib/typings/loanshub/user.d.ts +5 -5
  78. package/lib/typings/loanshub/user.js +2 -2
  79. package/lib/typings/salestrekker/generated.d.ts +5880 -5899
  80. package/lib/typings/salestrekker/generated.js +1210 -1194
  81. package/lib/typings/salestrekker/generated.js.map +1 -1
  82. package/lib/typings/salestrekker/index.d.ts +6 -6
  83. package/lib/typings/salestrekker/index.js +24 -24
  84. package/lib/typings/salestrekker/index.js.map +1 -1
  85. package/lib/utils.d.ts +27 -27
  86. package/lib/utils.js +79 -80
  87. package/lib/utils.js.map +1 -1
  88. package/lib/utils.test.d.ts +1 -1
  89. package/lib/utils.test.js +88 -88
  90. package/package.json +5 -6
@@ -1,140 +1,146 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOptionText = exports.marketingSourceOptions = exports.maritalStatusOptions = exports.financeIssuesOptions = exports.employmentTypeOptions = exports.employmentDurationOptions = exports.loanFeaturesOptions = exports.purchaseConsiderationsOptions = exports.refinanceConsiderationsOptions = exports.stateOptions = exports.applicantTypeOptions = exports.formTypeOptions = void 0;
4
- const loanForm_1 = require("./loanForm");
5
- exports.formTypeOptions = [
6
- {
7
- text: "Purchase",
8
- description: "I want to purchase a property",
9
- value: loanForm_1.LeadFormTypes.PURCHASE
10
- },
11
- {
12
- text: "Refinance",
13
- description: "I want to refinance an existing loan",
14
- value: loanForm_1.LeadFormTypes.REFINANCE
15
- }
16
- ];
17
- exports.applicantTypeOptions = [
18
- {
19
- text: "Owner occupier",
20
- value: loanForm_1.ApplicantTypes.OWNER_OCCUPIER
21
- },
22
- {
23
- text: "Investment property",
24
- value: loanForm_1.ApplicantTypes.INVESTMENT
25
- }
26
- ];
27
- exports.stateOptions = [
28
- { text: "Queensland", value: loanForm_1.States.QLD },
29
- { text: "New South Wales", value: loanForm_1.States.NSW },
30
- { text: "Victoria", value: loanForm_1.States.VIC },
31
- { text: "Western Australia", value: loanForm_1.States.WA },
32
- { text: "Northern Territory", value: loanForm_1.States.NT },
33
- { text: "South Australia", value: loanForm_1.States.SA },
34
- { text: "Tasmania", value: loanForm_1.States.TAS },
35
- { text: "Australian Capital Territory", value: loanForm_1.States.ACT }
36
- ];
37
- exports.refinanceConsiderationsOptions = [
38
- { text: "SMSF borrower", value: loanForm_1.Considerations.SMSF_BORROWER },
39
- {
40
- text: "Using equity as guarantee",
41
- value: loanForm_1.Considerations.USING_EQUITY_AS_GUARANTEE
42
- },
43
- {
44
- text: "Equity release / cash-out",
45
- value: loanForm_1.Considerations.EQUITY_RELEASE
46
- },
47
- {
48
- text: "Refinancing to purchase another property",
49
- value: loanForm_1.Considerations.PURCHASING_OTHER_PROPERTY
50
- }
51
- ];
52
- exports.purchaseConsiderationsOptions = [
53
- { text: "SMSF borrower", value: loanForm_1.Considerations.SMSF_BORROWER },
54
- { text: "Buying off the plan", value: loanForm_1.Considerations.BUYING_OFF_THE_PLAN },
55
- {
56
- text: "Using guarantors",
57
- value: loanForm_1.Considerations.USING_GUARANTORS
58
- },
59
- {
60
- text: "Using gifted funds",
61
- value: loanForm_1.Considerations.USING_GIFTED_FUNDS
62
- },
63
- {
64
- text: "Eligible for First Home Buyers grant",
65
- value: loanForm_1.Considerations.USING_FHBG
66
- }
67
- ];
68
- exports.loanFeaturesOptions = [
69
- { text: "Variable rate", value: loanForm_1.LoanFeatures.VARIABLE_RATE },
70
- { text: "Fixed rate", value: loanForm_1.LoanFeatures.FIXED_RATE },
71
- { text: "Offset facility", value: loanForm_1.LoanFeatures.OFFSET_FACILITY },
72
- { text: "Redraw facility", value: loanForm_1.LoanFeatures.REDRAW_FACILITY },
73
- { text: "Interest only", value: loanForm_1.LoanFeatures.INTEREST_ONLY }
74
- ];
75
- exports.employmentDurationOptions = [
76
- { text: "On probation", value: loanForm_1.EmploymentDurations.ON_PROBATION },
77
- {
78
- text: "From 6 months to 1 year",
79
- value: loanForm_1.EmploymentDurations.UNDER_ONE_YEAR
80
- },
81
- { text: "More than 1 year", value: loanForm_1.EmploymentDurations.ONE_YEAR },
82
- { text: "More than 2 years", value: loanForm_1.EmploymentDurations.TWO_YEARS },
83
- { text: "More than 3 years", value: loanForm_1.EmploymentDurations.OVER_THREE_YEARS }
84
- ];
85
- exports.employmentTypeOptions = [
86
- { text: "Full time", value: loanForm_1.EmploymentTypes.FULL_TIME },
87
- { text: "Part time", value: loanForm_1.EmploymentTypes.PART_TIME },
88
- { text: "Casual", value: loanForm_1.EmploymentTypes.CASUAL },
89
- { text: "Self-employed", value: loanForm_1.EmploymentTypes.SELF_EMPLOYED },
90
- { text: "Home duties", value: loanForm_1.EmploymentTypes.HOME_DUTIES }
91
- ];
92
- exports.financeIssuesOptions = [
93
- {
94
- text: "Decreased earnings in the next 12 months",
95
- value: loanForm_1.FinanceIssues.DECREASED_EARNINGS
96
- },
97
- {
98
- text: "Bankruptcy or insolvency declared against you",
99
- value: loanForm_1.FinanceIssues.BANKRUPTCY_INSOLVENCY
100
- },
101
- {
102
- text: "Legal (court) judgement against you",
103
- value: loanForm_1.FinanceIssues.LEGAL_JUDGEMENT_AGAINST
104
- },
105
- {
106
- text: "Difficulty making a loan repayment",
107
- value: loanForm_1.FinanceIssues.DIFFICULTY_REPAYING
108
- }
109
- ];
110
- exports.maritalStatusOptions = [
111
- {
112
- text: "Single",
113
- value: loanForm_1.RelationshipTypes.SINGLE
114
- },
115
- {
116
- text: "Married / defacto",
117
- value: loanForm_1.RelationshipTypes.MARRIED_OR_DEFACTO
118
- },
119
- {
120
- text: "Other",
121
- value: loanForm_1.RelationshipTypes.OTHER
122
- }
123
- ];
124
- exports.marketingSourceOptions = [
125
- { text: "Facebook", value: loanForm_1.MarketingSources.FACEBOOK },
126
- { text: "Google search", value: loanForm_1.MarketingSources.GOOGLE_SEARCH },
127
- { text: "Instagram", value: loanForm_1.MarketingSources.INSTAGRAM },
128
- { text: "LinkedIn", value: loanForm_1.MarketingSources.LINKED_IN },
129
- { text: "A friend", value: loanForm_1.MarketingSources.FRIEND },
130
- { text: "A finance professional", value: loanForm_1.MarketingSources.PROFESSIONAL }
131
- ];
132
- function getOptionText(options, value) {
133
- const option = options.find(i => i.value === value);
134
- if (!option) {
135
- throw new Error(`No option found for ${value}`);
136
- }
137
- return option.text;
138
- }
139
- exports.getOptionText = getOptionText;
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":";;;AAAA,yCAWoB;AAQP,QAAA,eAAe,GAAqB;IAC/C;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+BAA+B;QAC5C,KAAK,EAAE,wBAAa,CAAC,QAAQ;KAC9B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,sCAAsC;QACnD,KAAK,EAAE,wBAAa,CAAC,SAAS;KAC/B;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,yBAAc,CAAC,cAAc;KACrC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,yBAAc,CAAC,UAAU;KACjC;CACF,CAAC;AAEW,QAAA,YAAY,GAAqB;IAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAM,CAAC,GAAG,EAAE;IACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAM,CAAC,GAAG,EAAE;IAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAM,CAAC,GAAG,EAAE;IACvC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAM,CAAC,EAAE,EAAE;IAC/C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,iBAAM,CAAC,EAAE,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAM,CAAC,EAAE,EAAE;IAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAM,CAAC,GAAG,EAAE;IACvC,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,iBAAM,CAAC,GAAG,EAAE;CAC5D,CAAC;AAEW,QAAA,8BAA8B,GAAqB;IAC9D,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAc,CAAC,aAAa,EAAE;IAC9D;QACE,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,yBAAc,CAAC,yBAAyB;KAChD;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,yBAAc,CAAC,cAAc;KACrC;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,KAAK,EAAE,yBAAc,CAAC,yBAAyB;KAChD;CACF,CAAC;AAEW,QAAA,6BAA6B,GAAqB;IAC7D,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,yBAAc,CAAC,aAAa,EAAE;IAC9D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,yBAAc,CAAC,mBAAmB,EAAE;IAC1E;QACE,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,yBAAc,CAAC,gBAAgB;KACvC;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,yBAAc,CAAC,kBAAkB;KACzC;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,KAAK,EAAE,yBAAc,CAAC,UAAU;KACjC;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAqB;IACnD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAY,CAAC,aAAa,EAAE;IAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAY,CAAC,UAAU,EAAE;IACtD,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,uBAAY,CAAC,eAAe,EAAE;IAChE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,uBAAY,CAAC,eAAe,EAAE;IAChE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAY,CAAC,aAAa,EAAE;CAC7D,CAAC;AAEW,QAAA,yBAAyB,GAAqB;IACzD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,8BAAmB,CAAC,YAAY,EAAE;IACjE;QACE,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,8BAAmB,CAAC,cAAc;KAC1C;IACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,8BAAmB,CAAC,QAAQ,EAAE;IACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAAmB,CAAC,SAAS,EAAE;IACnE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAAmB,CAAC,gBAAgB,EAAE;CAC3E,CAAC;AAEW,QAAA,qBAAqB,GAAqB;IACrD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,0BAAe,CAAC,SAAS,EAAE;IACvD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,0BAAe,CAAC,SAAS,EAAE;IACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAAe,CAAC,MAAM,EAAE;IACjD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,0BAAe,CAAC,aAAa,EAAE;IAC/D,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,0BAAe,CAAC,WAAW,EAAE;CAC5D,CAAC;AAEW,QAAA,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,0CAA0C;QAChD,KAAK,EAAE,wBAAa,CAAC,kBAAkB;KACxC;IACD;QACE,IAAI,EAAE,+CAA+C;QACrD,KAAK,EAAE,wBAAa,CAAC,qBAAqB;KAC3C;IACD;QACE,IAAI,EAAE,qCAAqC;QAC3C,KAAK,EAAE,wBAAa,CAAC,uBAAuB;KAC7C;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,KAAK,EAAE,wBAAa,CAAC,mBAAmB;KACzC;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,4BAAiB,CAAC,MAAM;KAChC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,4BAAiB,CAAC,kBAAkB;KAC5C;IACD;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,4BAAiB,CAAC,KAAK;KAC/B;CACF,CAAC;AAEW,QAAA,sBAAsB,GAAqB;IACtD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAAgB,CAAC,QAAQ,EAAE;IACtD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,2BAAgB,CAAC,aAAa,EAAE;IAChE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,2BAAgB,CAAC,SAAS,EAAE;IACxD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAAgB,CAAC,SAAS,EAAE;IACvD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAAgB,CAAC,MAAM,EAAE;IACpD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,2BAAgB,CAAC,YAAY,EAAE;CACzE,CAAC;AAEF,SAAgB,aAAa,CAAC,OAAyB,EAAE,KAAa;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;KACjD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAND,sCAMC"}
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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"}