@opentabs-dev/opentabs-plugin-zillow 0.0.74

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 (65) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15211 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/index.d.ts +14 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +47 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/tools/get-current-user.d.ts +14 -0
  9. package/dist/tools/get-current-user.d.ts.map +1 -0
  10. package/dist/tools/get-current-user.js +19 -0
  11. package/dist/tools/get-current-user.js.map +1 -0
  12. package/dist/tools/get-market-overview.d.ts +10 -0
  13. package/dist/tools/get-market-overview.d.ts.map +1 -0
  14. package/dist/tools/get-market-overview.js +70 -0
  15. package/dist/tools/get-market-overview.js.map +1 -0
  16. package/dist/tools/get-saved-homes.d.ts +6 -0
  17. package/dist/tools/get-saved-homes.d.ts.map +1 -0
  18. package/dist/tools/get-saved-homes.js +30 -0
  19. package/dist/tools/get-saved-homes.js.map +1 -0
  20. package/dist/tools/schemas.d.ts +99 -0
  21. package/dist/tools/schemas.d.ts.map +1 -0
  22. package/dist/tools/schemas.js +101 -0
  23. package/dist/tools/schemas.js.map +1 -0
  24. package/dist/tools/search-by-address.d.ts +32 -0
  25. package/dist/tools/search-by-address.d.ts.map +1 -0
  26. package/dist/tools/search-by-address.js +49 -0
  27. package/dist/tools/search-by-address.js.map +1 -0
  28. package/dist/tools/search-by-owner.d.ts +51 -0
  29. package/dist/tools/search-by-owner.d.ts.map +1 -0
  30. package/dist/tools/search-by-owner.js +78 -0
  31. package/dist/tools/search-by-owner.js.map +1 -0
  32. package/dist/tools/search-for-rent.d.ts +56 -0
  33. package/dist/tools/search-for-rent.d.ts.map +1 -0
  34. package/dist/tools/search-for-rent.js +86 -0
  35. package/dist/tools/search-for-rent.js.map +1 -0
  36. package/dist/tools/search-for-sale.d.ts +68 -0
  37. package/dist/tools/search-for-sale.d.ts.map +1 -0
  38. package/dist/tools/search-for-sale.js +98 -0
  39. package/dist/tools/search-for-sale.js.map +1 -0
  40. package/dist/tools/search-foreclosures.d.ts +49 -0
  41. package/dist/tools/search-foreclosures.d.ts.map +1 -0
  42. package/dist/tools/search-foreclosures.js +75 -0
  43. package/dist/tools/search-foreclosures.js.map +1 -0
  44. package/dist/tools/search-locations.d.ts +18 -0
  45. package/dist/tools/search-locations.d.ts.map +1 -0
  46. package/dist/tools/search-locations.js +23 -0
  47. package/dist/tools/search-locations.js.map +1 -0
  48. package/dist/tools/search-new-construction.d.ts +51 -0
  49. package/dist/tools/search-new-construction.d.ts.map +1 -0
  50. package/dist/tools/search-new-construction.js +78 -0
  51. package/dist/tools/search-new-construction.js.map +1 -0
  52. package/dist/tools/search-open-houses.d.ts +41 -0
  53. package/dist/tools/search-open-houses.d.ts.map +1 -0
  54. package/dist/tools/search-open-houses.js +59 -0
  55. package/dist/tools/search-open-houses.js.map +1 -0
  56. package/dist/tools/search-recently-sold.d.ts +52 -0
  57. package/dist/tools/search-recently-sold.d.ts.map +1 -0
  58. package/dist/tools/search-recently-sold.js +82 -0
  59. package/dist/tools/search-recently-sold.js.map +1 -0
  60. package/dist/tools.json +2056 -0
  61. package/dist/zillow-api.d.ts +143 -0
  62. package/dist/zillow-api.d.ts.map +1 -0
  63. package/dist/zillow-api.js +82 -0
  64. package/dist/zillow-api.js.map +1 -0
  65. package/package.json +55 -0
@@ -0,0 +1,143 @@
1
+ interface SearchQueryState {
2
+ pagination?: {
3
+ currentPage: number;
4
+ };
5
+ mapBounds: {
6
+ west: number;
7
+ east: number;
8
+ south: number;
9
+ north: number;
10
+ };
11
+ regionSelection?: {
12
+ regionId: number;
13
+ regionType: number;
14
+ }[];
15
+ filterState: Record<string, unknown>;
16
+ isMapVisible: boolean;
17
+ }
18
+ interface SearchWants {
19
+ cat1: string[];
20
+ cat2?: string[];
21
+ }
22
+ export interface SearchResponse {
23
+ user?: RawSearchUser;
24
+ cat1?: {
25
+ searchResults?: {
26
+ listResults?: RawListing[];
27
+ totalResultCount?: number;
28
+ };
29
+ };
30
+ categoryTotals?: {
31
+ cat1?: {
32
+ totalResultCount?: number;
33
+ };
34
+ cat2?: {
35
+ totalResultCount?: number;
36
+ };
37
+ };
38
+ regionState?: {
39
+ regionInfo?: {
40
+ regionId?: number;
41
+ regionType?: number;
42
+ regionName?: string;
43
+ displayName?: string;
44
+ }[];
45
+ };
46
+ }
47
+ export interface RawSearchUser {
48
+ isLoggedIn?: boolean;
49
+ guid?: string;
50
+ zuid?: string;
51
+ email?: string;
52
+ displayName?: string;
53
+ fullName?: string;
54
+ savedHomesCount?: number;
55
+ savedHomeIds?: string[];
56
+ claimedHomeIds?: string[];
57
+ isAgent?: boolean;
58
+ phoneNumber?: string;
59
+ }
60
+ export interface RawListing {
61
+ zpid?: string;
62
+ detailUrl?: string;
63
+ statusType?: string;
64
+ statusText?: string;
65
+ price?: string;
66
+ unformattedPrice?: number;
67
+ address?: string;
68
+ addressStreet?: string;
69
+ addressCity?: string;
70
+ addressState?: string;
71
+ addressZipcode?: string;
72
+ beds?: number;
73
+ baths?: number;
74
+ area?: number;
75
+ latLong?: {
76
+ latitude?: number;
77
+ longitude?: number;
78
+ };
79
+ imgSrc?: string;
80
+ zestimate?: number;
81
+ isSaved?: boolean;
82
+ listingType?: string;
83
+ has3DModel?: boolean;
84
+ hasVideo?: boolean;
85
+ hdpData?: {
86
+ homeInfo?: RawHomeInfo;
87
+ };
88
+ }
89
+ export interface RawHomeInfo {
90
+ zpid?: number;
91
+ streetAddress?: string;
92
+ zipcode?: string;
93
+ city?: string;
94
+ state?: string;
95
+ latitude?: number;
96
+ longitude?: number;
97
+ price?: number;
98
+ bathrooms?: number;
99
+ bedrooms?: number;
100
+ livingArea?: number;
101
+ homeType?: string;
102
+ homeStatus?: string;
103
+ daysOnZillow?: number;
104
+ zestimate?: number;
105
+ rentZestimate?: number;
106
+ taxAssessedValue?: number;
107
+ lotAreaValue?: number;
108
+ lotAreaUnit?: string;
109
+ currency?: string;
110
+ country?: string;
111
+ unit?: string;
112
+ timeOnZillow?: number;
113
+ dateSold?: string;
114
+ isZillowOwned?: boolean;
115
+ }
116
+ export interface AutocompleteResult {
117
+ display?: string;
118
+ resultType?: string;
119
+ metaData?: {
120
+ city?: string;
121
+ state?: string;
122
+ county?: string;
123
+ country?: string;
124
+ lat?: number;
125
+ lng?: number;
126
+ regionId?: number;
127
+ regionType?: string;
128
+ zipCode?: string;
129
+ zpid?: number;
130
+ streetName?: string;
131
+ streetNumber?: string;
132
+ unitNumber?: string;
133
+ addressType?: string;
134
+ };
135
+ }
136
+ export declare const isAuthenticated: () => boolean;
137
+ export declare const waitForAuth: () => Promise<boolean>;
138
+ export declare const search: (queryState: SearchQueryState, wants: SearchWants) => Promise<SearchResponse>;
139
+ export declare const autocomplete: (query: string) => Promise<AutocompleteResult[]>;
140
+ export declare const getUserFromSearchResponse: () => Promise<RawSearchUser>;
141
+ export declare const REGION_TYPE_MAP: Record<string, number>;
142
+ export {};
143
+ //# sourceMappingURL=zillow-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zillow-api.d.ts","sourceRoot":"","sources":["../src/zillow-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { ToolError, fetchJSON, getPageGlobal, waitUntil, getAuthCache, setAuthCache, clearAuthCache, } from '@opentabs-dev/plugin-sdk';
2
+ // --- Auth ---
3
+ const getAuth = () => {
4
+ const cached = getAuthCache('zillow');
5
+ if (cached?.isLoggedIn)
6
+ return cached;
7
+ // Check __NEXT_DATA__ for user session
8
+ const isLoggedIn = getPageGlobal('__PFS_TOPNAV_DATA__.isLoggedIn');
9
+ const guid = getPageGlobal('__NEXT_DATA__.props.guid');
10
+ const zuid = getPageGlobal('__NEXT_DATA__.props.zuid');
11
+ if (!guid)
12
+ return null;
13
+ const auth = {
14
+ isLoggedIn: isLoggedIn ?? false,
15
+ guid: guid ?? '',
16
+ zuid: zuid ?? '',
17
+ };
18
+ setAuthCache('zillow', auth);
19
+ return auth;
20
+ };
21
+ export const isAuthenticated = () => getAuth() !== null;
22
+ export const waitForAuth = () => waitUntil(() => isAuthenticated(), { interval: 500, timeout: 5000 }).then(() => true, () => false);
23
+ // --- Search API ---
24
+ const SEARCH_URL = 'https://www.zillow.com/async-create-search-page-state';
25
+ let requestCounter = 0;
26
+ export const search = async (queryState, wants) => {
27
+ requestCounter++;
28
+ const init = {
29
+ method: 'PUT',
30
+ headers: { 'Content-Type': 'application/json' },
31
+ body: JSON.stringify({
32
+ searchQueryState: queryState,
33
+ wants,
34
+ requestId: requestCounter,
35
+ }),
36
+ };
37
+ try {
38
+ const data = await fetchJSON(SEARCH_URL, init);
39
+ return data ?? {};
40
+ }
41
+ catch (err) {
42
+ if (err instanceof ToolError) {
43
+ // On auth errors, clear cached auth
44
+ if (err.category === 'auth')
45
+ clearAuthCache('zillow');
46
+ throw err;
47
+ }
48
+ throw ToolError.internal(`Search API error: ${err instanceof Error ? err.message : String(err)}`);
49
+ }
50
+ };
51
+ // --- Autocomplete API ---
52
+ const AUTOCOMPLETE_URL = 'https://www.zillowstatic.com/autocomplete/v3/suggestions';
53
+ export const autocomplete = async (query) => {
54
+ const url = `${AUTOCOMPLETE_URL}?q=${encodeURIComponent(query)}&abKey=6b25a67b-4c78-4f09-87dc-7698c41a4efc&clientId=homepage-render`;
55
+ const data = await fetchJSON(url, {
56
+ credentials: 'omit',
57
+ });
58
+ return data?.results ?? [];
59
+ };
60
+ // --- User data ---
61
+ export const getUserFromSearchResponse = async () => {
62
+ // The search API returns user data in every response. Make a minimal search
63
+ // to extract current user information.
64
+ const data = await search({
65
+ mapBounds: { west: -122.5, east: -122.3, south: 37.7, north: 37.8 },
66
+ filterState: {},
67
+ isMapVisible: false,
68
+ }, { cat1: ['total'] });
69
+ if (!data.user)
70
+ throw ToolError.auth('Not authenticated — please log in to Zillow.');
71
+ return data.user;
72
+ };
73
+ // --- Region type mapping ---
74
+ export const REGION_TYPE_MAP = {
75
+ city: 6,
76
+ county: 4,
77
+ zipcode: 7,
78
+ neighborhood: 8,
79
+ state: 2,
80
+ address: 0,
81
+ };
82
+ //# sourceMappingURL=zillow-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zillow-api.js","sourceRoot":"","sources":["../src/zillow-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,0BAA0B,CAAC;AAuIlC,eAAe;AAEf,MAAM,OAAO,GAAG,GAAsB,EAAE;IACtC,MAAM,MAAM,GAAG,YAAY,CAAa,QAAQ,CAAC,CAAC;IAClD,IAAI,MAAM,EAAE,UAAU;QAAE,OAAO,MAAM,CAAC;IAEtC,uCAAuC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,gCAAgC,CAAwB,CAAC;IAC1F,MAAM,IAAI,GAAG,aAAa,CAAC,0BAA0B,CAAuB,CAAC;IAC7E,MAAM,IAAI,GAAG,aAAa,CAAC,0BAA0B,CAAuB,CAAC;IAE7E,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,IAAI,GAAe;QACvB,UAAU,EAAE,UAAU,IAAI,KAAK;QAC/B,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,IAAI,EAAE,IAAI,IAAI,EAAE;KACjB,CAAC;IACF,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAqB,EAAE,CAChD,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACvE,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;AAEJ,qBAAqB;AAErB,MAAM,UAAU,GAAG,uDAAuD,CAAC;AAE3E,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,UAA4B,EAAE,KAAkB,EAA2B,EAAE;IACxG,cAAc,EAAE,CAAC;IAEjB,MAAM,IAAI,GAAyB;QACjC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,gBAAgB,EAAE,UAAU;YAC5B,KAAK;YACL,SAAS,EAAE,cAAc;SAC1B,CAAC;KACH,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAiB,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC7B,oCAAoC;YACpC,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM;gBAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,SAAS,CAAC,QAAQ,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC,CAAC;AAEF,2BAA2B;AAE3B,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAEpF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,KAAa,EAAiC,EAAE;IACjF,MAAM,GAAG,GAAG,GAAG,gBAAgB,MAAM,kBAAkB,CAAC,KAAK,CAAC,sEAAsE,CAAC;IAErI,MAAM,IAAI,GAAG,MAAM,SAAS,CAAuB,GAAG,EAAE;QACtD,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;IAEH,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,oBAAoB;AAEpB,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,IAA4B,EAAE;IAC1E,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CACvB;QACE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QACnE,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,KAAK;KACpB,EACD,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CACpB,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,MAAM,SAAS,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC,CAAC;AAEF,8BAA8B;AAE9B,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACX,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@opentabs-dev/opentabs-plugin-zillow",
3
+ "description": "OpenTabs plugin for Zillow real estate search",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "0.0.74",
8
+ "type": "module",
9
+ "main": "dist/adapter.iife.js",
10
+ "keywords": [
11
+ "opentabs-plugin"
12
+ ],
13
+ "opentabs": {
14
+ "displayName": "Zillow",
15
+ "description": "OpenTabs plugin for Zillow real estate search",
16
+ "urlPatterns": [
17
+ "*://*.zillow.com/*"
18
+ ],
19
+ "homepage": "https://www.zillow.com"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ }
26
+ },
27
+ "types": "./dist/index.d.ts",
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "scripts": {
32
+ "build": "tsc && opentabs-plugin build",
33
+ "dev": "tsc --watch --preserveWatchOutput & opentabs-plugin build --watch",
34
+ "type-check": "tsc --noEmit",
35
+ "lint": "biome lint src/",
36
+ "lint:fix": "biome lint --fix src/",
37
+ "format:check": "biome format src/",
38
+ "format": "biome format --write src/",
39
+ "check": "npm run build && npm run type-check && npm run lint && npm run format:check"
40
+ },
41
+ "peerDependencies": {
42
+ "zod": "^4.0.0"
43
+ },
44
+ "dependencies": {
45
+ "@opentabs-dev/plugin-sdk": "^0.0.74"
46
+ },
47
+ "devDependencies": {
48
+ "@opentabs-dev/plugin-tools": "^0.0.74",
49
+ "@biomejs/biome": "2.4.6",
50
+ "jiti": "^2.6.1",
51
+ "typescript": "^5.9.3",
52
+ "zod": "^4.3.6"
53
+ },
54
+ "license": "MIT"
55
+ }