@opendoor/partner-sdk-server-js-core 1.1.5-beta.80.1 → 1.1.6-beta.81.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.
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
* Keys not in this map are treated as experimental question data
|
|
6
6
|
* and sent via the `experimental` field.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* API returns abbreviated pool type values ('none', 'community') that differ
|
|
10
|
+
* from the enum keys the questionnaire and GraphQL API expect.
|
|
11
|
+
* Used in both the outbound transform and the inbound prefill path.
|
|
12
|
+
*/
|
|
13
|
+
export declare const POOL_TYPE_NORMALIZE: Record<string, string>;
|
|
8
14
|
/**
|
|
9
15
|
* Transform dot-notation answers from QualificationQuestions into
|
|
10
16
|
* the GraphQL OfferInput shape: camelCase fields + experimental array.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answerKeyMapping.d.ts","sourceRoot":"","sources":["../src/answerKeyMapping.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgGH;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"answerKeyMapping.d.ts","sourceRoot":"","sources":["../src/answerKeyMapping.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgGH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqHzB"}
|
package/dist/answerKeyMapping.js
CHANGED
|
@@ -84,6 +84,15 @@ const NUMERIC_KEYS = new Set([
|
|
|
84
84
|
'home.basement_finished_sq_ft',
|
|
85
85
|
'home.basement_unfinished_sq_ft',
|
|
86
86
|
]);
|
|
87
|
+
/**
|
|
88
|
+
* API returns abbreviated pool type values ('none', 'community') that differ
|
|
89
|
+
* from the enum keys the questionnaire and GraphQL API expect.
|
|
90
|
+
* Used in both the outbound transform and the inbound prefill path.
|
|
91
|
+
*/
|
|
92
|
+
export const POOL_TYPE_NORMALIZE = {
|
|
93
|
+
none: 'no_pool',
|
|
94
|
+
community: 'community_pool',
|
|
95
|
+
};
|
|
87
96
|
/**
|
|
88
97
|
* Transform dot-notation answers from QualificationQuestions into
|
|
89
98
|
* the GraphQL OfferInput shape: camelCase fields + experimental array.
|
|
@@ -96,11 +105,6 @@ const NUMERIC_KEYS = new Set([
|
|
|
96
105
|
export function transformAnswersToOfferInput(answers) {
|
|
97
106
|
const offerInput = {};
|
|
98
107
|
const experimental = [];
|
|
99
|
-
// Normalize values that differ between prefill data (MLS) and BFF expectations.
|
|
100
|
-
const POOL_TYPE_NORMALIZE = {
|
|
101
|
-
none: 'no_pool',
|
|
102
|
-
community: 'community_pool',
|
|
103
|
-
};
|
|
104
108
|
for (const [key, rawValue] of Object.entries(answers)) {
|
|
105
109
|
if (rawValue === undefined || SKIP_KEYS.has(key))
|
|
106
110
|
continue;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EACV,0BAA0B,EAC1B,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EACV,0BAA0B,EAC1B,OAAO,EACP,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAiGpB,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6ED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,MAAM,EAAE,oBAAoB;IAoBxC;;;;;;;OAOG;IACG,qBAAqB,CACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,0BAA0B,CAAC;IAiDtC;;;OAGG;YACW,iBAAiB;IA4B/B;;OAEG;YACW,eAAe;IAqC7B;;;;;OAKG;IACG,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoBzE;;;;;;;OAOG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,mBAAmB,CAAC;IAoC/B;;;;;;OAMG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAc1D;;;;OAIG;IACG,6BAA6B,CACjC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,2BAA2B,CAAC;IAkBvC;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwB3E;;;;;;;;OAQG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,yBAAyB,CAAC;IA6BrC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAsEzD;;;;;OAKG;IACG,kBAAkB,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,0BAA0B,CAAC;IAuDtC;;;;;;OAMG;IACG,aAAa,CACjB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;YA8BnB,OAAO;YAoDP,gBAAgB;IAgC9B,OAAO,CAAC,GAAG;CAKZ"}
|
package/dist/client.js
CHANGED
|
@@ -25,7 +25,7 @@ import { OpendoorAPIError } from './errors.js';
|
|
|
25
25
|
import { ValidationError } from './errors.js';
|
|
26
26
|
import { validateCreateOfferRequest, validateUpdateOfferRequest, } from './validators.js';
|
|
27
27
|
import { OFFER_REQUEST_CREATE, OFFER_REQUEST_UPDATE, } from './graphql/mutations.js';
|
|
28
|
-
import { transformAnswersToOfferInput } from './answerKeyMapping.js';
|
|
28
|
+
import { transformAnswersToOfferInput, POOL_TYPE_NORMALIZE, } from './answerKeyMapping.js';
|
|
29
29
|
import { OFFER_REQUEST_QUERY, OFFER_REQUEST_WITH_SELL_DIRECT_PRICING, ADDRESS_UNIT_CHECK, SELLER_INPUT_PREFILLS_QUERY, LIST_PARTNERS_QUERY, ADDRESS_DETAILS_QUERY, } from './graphql/queries.js';
|
|
30
30
|
// ============================================================================
|
|
31
31
|
// Valid GraphQL OfferInput fields (from schema-public.graphql)
|
|
@@ -462,9 +462,12 @@ export class OpendoorClient {
|
|
|
462
462
|
if (!data.sellerInputPrefills) {
|
|
463
463
|
throw new OpendoorAPIError('Home detail not found', 'NOT_FOUND', 404);
|
|
464
464
|
}
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
465
|
+
const raw = data.sellerInputPrefills.answerPrefills ?? {};
|
|
466
|
+
const poolType = raw['home.pool_type'];
|
|
467
|
+
if (typeof poolType === 'string' && poolType in POOL_TYPE_NORMALIZE) {
|
|
468
|
+
raw['home.pool_type'] = POOL_TYPE_NORMALIZE[poolType];
|
|
469
|
+
}
|
|
470
|
+
return { answerPrefills: raw };
|
|
468
471
|
}
|
|
469
472
|
// --------------------------------------------------------------------------
|
|
470
473
|
// Internal: GraphQL transport
|