diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 7bf3a60..d468a31 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -11,12 +11,16 @@ module.exports = {
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
- project: './tsconfig.json',
+ project: './tsconfig.eslint.json',
},
plugins: [
'@typescript-eslint',
+ 'simple-import-sort',
],
rules: {
'max-len': 'off',
+ 'simple-import-sort/imports': 'error',
+ 'simple-import-sort/exports': 'error',
+ 'object-curly-newline': 'off',
},
};
diff --git a/README.md b/README.md
index b17f8fc..43a7a86 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@ This library bundles up PDL API requests into simple function calls, making it e
- [đ Endpoints](#endpoints)
- [đ Documentation](#documentation)
- [Special Note about Search API Support](#special-note)
+ - [Upgrading to v5.X.X](#upgrading-to-v5)
## đ§ Installation
@@ -72,7 +73,7 @@ PDLJSClient.person.enrichment({ phone: '4155688415' }).then((data) => {
});
// By Bulk Enrichment
-const records = {
+const bulkEnrichmentRecords = {
requests: [
{
params: {
@@ -87,7 +88,7 @@ const records = {
],
};
-PDLJSClient.person.bulk(records).then((data) => {
+PDLJSClient.person.bulk.enrichment(bulkEnrichmentRecords).then((data) => {
console.log(data.items);
}).catch((error) => {
console.log(error);
@@ -128,6 +129,20 @@ PDLJSClient.person.retrieve({ id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' }).then((data) =
console.log(error);
});
+// By Bulk Retrieve
+const bulkRetrieveRecords = {
+ requests: [
+ { id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' },
+ { id: 'PzFD15NINdBWNULBBkwlig_0000' },
+ ],
+};
+
+PDLJSClient.person.bulk.retrieve(bulkRetrieveRecords).then((data) => {
+ console.log(data.items);
+}).catch((error) => {
+ console.log(error);
+});
+
// By Fuzzy Enrichment
PDLJSClient.person.identify({ name: 'sean thorne' }).then((data) => {
console.log(data);
@@ -281,9 +296,10 @@ PDLJSClient.person.identify({ company: 'walmart', sandbox: true }).then((data) =
| API Endpoint | PDLJS Function |
|-|-|
| [Person Enrichment API](https://docs.peopledatalabs.com/docs/enrichment-api) | `PDLJS.person.enrichment({ ...params })` |
-| [Person Bulk Person Enrichment API](https://docs.peopledatalabs.com/docs/bulk-enrichment-api) | `PDLJS.person.bulk({ ...records })` |
+| [Person Bulk Person Enrichment API](https://docs.peopledatalabs.com/docs/bulk-enrichment-api) | `PDLJS.person.bulk.enrichment({ ...records })` |
| [Person Search API](https://docs.peopledatalabs.com/docs/search-api) | SQL: `PDLJS.person.search.sql({ ...params })`
Elasticsearch: `PDLJS.person.search.elastic({ ...params })`|
| [Person Retrieve API](https://docs.peopledatalabs.com/docs/person-retrieve-api) | `PDLJS.person.retrieve({ ...params })` |
+| [Person Bulk Person Retrieve API](https://docs.peopledatalabs.com/docs/bulk-person-retrieve) | `PDLJS.person.bulk.retrieve({ ...records })` |
| [Person Identify API](https://docs.peopledatalabs.com/docs/identify-api) | `PDLJS.person.identify({ ...params })` |
**Company Endpoints**
@@ -354,3 +370,7 @@ PDLJSClient.company.search.sql({ searchQuery: sqlQuery, size: 10 }).then((data)
console.log(error);
});
```
+
+#### Upgrading to v5.X.X
+
+NOTE: When upgrading to v5.X.X from v4.X.X and below, Bulk Enrichment was moved from `PDLJS.person.bulk({ ...records })` to `PDLJS.person.bulk.enrichment({ ...records })`
\ No newline at end of file
diff --git a/example/index.js b/example/index.js
index 409c407..ecdecaa 100644
--- a/example/index.js
+++ b/example/index.js
@@ -1,7 +1,6 @@
/* eslint no-console: "off" */
import dotenv from 'dotenv';
-
import PDLJS from 'peopledatalabs';
dotenv.config({ path: '../.env.local' });
@@ -22,14 +21,14 @@ PDLJSClient.person.identify({ phone: '4155688415' }).then((data) => {
console.log(error);
});
-const records = {
+const bulkEnrichmentRecords = {
requests: [
{ params: { profile: ['linkedin.com/in/seanthorne'] } },
{ params: { profile: ['linkedin.com/in/randrewn'] } },
],
};
-PDLJSClient.person.bulk(records).then((data) => {
+PDLJSClient.person.bulk.enrichment(bulkEnrichmentRecords).then((data) => {
console.log(data.items);
}).catch((error) => {
console.log(error);
@@ -50,6 +49,19 @@ PDLJSClient.person.retrieve({ id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' }).then((data) =
console.log(error);
});
+const bulkRetrieveRecords = {
+ requests: [
+ { id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' },
+ { id: 'PzFD15NINdBWNULBBkwlig_0000' },
+ ],
+};
+
+PDLJSClient.person.bulk.retrieve(bulkRetrieveRecords).then((data) => {
+ console.log(data.items);
+}).catch((error) => {
+ console.log(error);
+});
+
// Company APIs
PDLJSClient.company.enrichment({ website: 'peopledatalabs.com' }).then((data) => {
diff --git a/example/package.json b/example/package.json
index ee6af0c..206dc64 100644
--- a/example/package.json
+++ b/example/package.json
@@ -10,7 +10,7 @@
"author": "People Data Labs",
"license": "MIT",
"dependencies": {
- "dotenv": "^14.2.0",
+ "dotenv": "^16.0.3",
"peopledatalabs": "*"
}
-}
+}
\ No newline at end of file
diff --git a/example/yarn.lock b/example/yarn.lock
index db8878c..90a5102 100644
--- a/example/yarn.lock
+++ b/example/yarn.lock
@@ -9,10 +9,10 @@ axios@^0.24.0:
dependencies:
follow-redirects "^1.14.4"
-dotenv@^14.2.0:
- version "14.3.2"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369"
- integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==
+dotenv@^16.0.3:
+ version "16.0.3"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
+ integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
follow-redirects@^1.14.4:
version "1.15.1"
diff --git a/package.json b/package.json
index 62afb5f..54c2bde 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "peopledatalabs",
- "version": "4.1.0",
+ "version": "5.0.0",
"description": "JavaScript client with TypeScript support for the People Data Labs API",
"type": "module",
"main": "dist/index.cjs",
@@ -16,7 +16,8 @@
"dev": "microbundle watch -p 6008",
"test": "yarn run build && yarn run mocha",
"mocha": "mocha --recursive 'tests/**/*.js'",
- "pub": "yarn run build && yarn publish"
+ "pub": "yarn run build && yarn publish",
+ "lint": "eslint --fix"
},
"repository": {
"type": "git",
@@ -43,11 +44,11 @@
"homepage": "https://docs.peopledatalabs.com/docs/javascript-sdk",
"devDependencies": {
"@types/lodash": "^4.14.191",
- "@typescript-eslint/eslint-plugin": "^5.48.1",
- "@typescript-eslint/parser": "^5.48.1",
+ "@typescript-eslint/eslint-plugin": "^5.48.2",
+ "@typescript-eslint/parser": "^5.48.2",
"chai": "^4.3.7",
"dotenv": "^16.0.3",
- "eslint": "^8.31.0",
+ "eslint": "^8.32.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-airbnb-typescript": "^17.0.0",
@@ -55,6 +56,7 @@
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.32.0",
"eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-simple-import-sort": "^8.0.0",
"eslint-plugin-unused-imports": "^2.0.0",
"esm": "^3.2.25",
"microbundle": "^0.15.1",
diff --git a/src/endpoints/autocomplete/index.ts b/src/endpoints/autocomplete/index.ts
index 68b8cfe..3318342 100644
--- a/src/endpoints/autocomplete/index.ts
+++ b/src/endpoints/autocomplete/index.ts
@@ -1,4 +1,5 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
import type { AutoCompleteParams, AutoCompleteResponse } from '../../types/autocomplete-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
diff --git a/src/endpoints/bulk/index.ts b/src/endpoints/bulkEnrichment/index.ts
similarity index 99%
rename from src/endpoints/bulk/index.ts
rename to src/endpoints/bulkEnrichment/index.ts
index f151ad4..8cae1a0 100644
--- a/src/endpoints/bulk/index.ts
+++ b/src/endpoints/bulkEnrichment/index.ts
@@ -1,4 +1,5 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
import { BulkPersonEnrichmentParams, BulkPersonEnrichmentResponse } from '../../types/bulk-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
diff --git a/src/endpoints/bulkRetrieve/index.ts b/src/endpoints/bulkRetrieve/index.ts
new file mode 100644
index 0000000..5675def
--- /dev/null
+++ b/src/endpoints/bulkRetrieve/index.ts
@@ -0,0 +1,28 @@
+import axios from 'axios';
+
+import { check, errorHandler } from '../../errors';
+import { BulkPersonRetrieveParams, BulkPersonRetrieveResponse } from '../../types/bulk-retrieve-types';
+import { parseRateLimitingResponse } from '../../utils/api-utils';
+
+export default (basePath: string, apiKey: string, records: BulkPersonRetrieveParams) => {
+ const headers = {
+ 'Content-Type': 'application/json',
+ 'Accept-Encoding': 'gzip',
+ 'X-Api-Key': apiKey,
+ 'User-Agent': 'PDL-JS-SDK',
+ };
+
+ return new Promise((resolve, reject) => {
+ check(records, basePath, apiKey, 'Records', 'bulk').then(() => {
+ axios.post(`${basePath}/person/retrieve/bulk`, records, { headers })
+ .then((response) => {
+ resolve(parseRateLimitingResponse(response));
+ })
+ .catch((error) => {
+ reject(errorHandler(error));
+ });
+ }).catch((error) => {
+ reject(error);
+ });
+ });
+};
diff --git a/src/endpoints/cleaner/index.ts b/src/endpoints/cleaner/index.ts
index 5dd223c..998c428 100644
--- a/src/endpoints/cleaner/index.ts
+++ b/src/endpoints/cleaner/index.ts
@@ -1,4 +1,5 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
import { BaseResponse } from '../../types/api-types';
import { CleanerType } from '../../types/cleaner-types';
diff --git a/src/endpoints/enrichment/index.ts b/src/endpoints/enrichment/index.ts
index 204a93a..2f026c6 100644
--- a/src/endpoints/enrichment/index.ts
+++ b/src/endpoints/enrichment/index.ts
@@ -1,9 +1,8 @@
import axios from 'axios';
import _ from 'lodash';
-import {
- PersonEnrichmentParams, CompanyEnrichmentParams, EnrichmentType, PersonEnrichmentResponse, CompanyEnrichmentResponse,
-} from '../../types/enrichment-types';
+
import { check, errorHandler } from '../../errors';
+import { CompanyEnrichmentParams, CompanyEnrichmentResponse, EnrichmentType, PersonEnrichmentParams, PersonEnrichmentResponse } from '../../types/enrichment-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
export default (
diff --git a/src/endpoints/identify/index.ts b/src/endpoints/identify/index.ts
index 7cce879..9ecd5bf 100644
--- a/src/endpoints/identify/index.ts
+++ b/src/endpoints/identify/index.ts
@@ -1,7 +1,8 @@
-import _ from 'lodash';
import axios from 'axios';
+import _ from 'lodash';
+
import { check, errorHandler } from '../../errors';
-import { IdentifyResponse, IdentifyParams } from '../../types/identify-types';
+import { IdentifyParams, IdentifyResponse } from '../../types/identify-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
export default (
diff --git a/src/endpoints/index.ts b/src/endpoints/index.ts
index 03f9122..01afce8 100644
--- a/src/endpoints/index.ts
+++ b/src/endpoints/index.ts
@@ -1,13 +1,12 @@
import autocomplete from './autocomplete';
-import bulk from './bulk';
+import bulkEnrichment from './bulkEnrichment';
+import bulkRetrieve from './bulkRetrieve';
import cleaner from './cleaner';
import enrichment from './enrichment';
import identify from './identify';
+import jobTitle from './jobTitle';
import retrieve from './retrieve';
import search from './search';
-import jobTitle from './jobTitle';
import skill from './skill';
-export {
- autocomplete, bulk, cleaner, enrichment, identify, retrieve, search, jobTitle, skill,
-};
+export { autocomplete, bulkEnrichment, bulkRetrieve, cleaner, enrichment, identify, jobTitle, retrieve, search, skill };
diff --git a/src/endpoints/jobTitle/index.ts b/src/endpoints/jobTitle/index.ts
index 20a0074..04523ce 100644
--- a/src/endpoints/jobTitle/index.ts
+++ b/src/endpoints/jobTitle/index.ts
@@ -1,4 +1,5 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
import { JobTitleParams, JobTitleResponse } from '../../types/jobTitle-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
diff --git a/src/endpoints/retrieve/index.ts b/src/endpoints/retrieve/index.ts
index 803c055..9e1b717 100644
--- a/src/endpoints/retrieve/index.ts
+++ b/src/endpoints/retrieve/index.ts
@@ -1,4 +1,5 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
import { RetrieveParams, RetrieveResponse } from '../../types/retrieve-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
diff --git a/src/endpoints/search/index.ts b/src/endpoints/search/index.ts
index af4d2f0..6eede96 100644
--- a/src/endpoints/search/index.ts
+++ b/src/endpoints/search/index.ts
@@ -1,7 +1,8 @@
import axios from 'axios';
+
import { check, errorHandler } from '../../errors';
-import { BaseSearchParams, SearchType } from '../../types/search-types';
import { BaseResponse } from '../../types/api-types';
+import { BaseSearchParams, SearchType } from '../../types/search-types';
import { parseRateLimitingResponse } from '../../utils/api-utils';
export default (
diff --git a/src/errors.ts b/src/errors.ts
index abf696d..26d2347 100644
--- a/src/errors.ts
+++ b/src/errors.ts
@@ -1,9 +1,10 @@
import { AxiosError } from 'axios';
-import { ErrorEndpoint } from './types/error-types';
-import { BaseSearchParams } from './types/search-types';
+
import { AutoCompleteParams } from './types/autocomplete-types';
-import { RetrieveParams } from './types/retrieve-types';
+import { ErrorEndpoint } from './types/error-types';
import { JobTitleParams } from './types/jobTitle-types';
+import { RetrieveParams } from './types/retrieve-types';
+import { BaseSearchParams } from './types/search-types';
import { SkillParams } from './types/skill-types';
const check = (
diff --git a/src/index.ts b/src/index.ts
index fd735c6..0e1b6f0 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,32 +1,15 @@
+import { autocomplete, bulkEnrichment, bulkRetrieve, cleaner, enrichment, identify, jobTitle, retrieve, search, skill } from './endpoints';
+import { APISettings } from './types/api-types';
import { AutoCompleteParams, AutoCompleteResponse } from './types/autocomplete-types';
-import {
- CompanyCleanerParams,
- CompanyCleanerResponse,
- LocationCleanerParams,
- LocationCleanerResponse,
- SchoolCleanerParams,
- SchoolCleanerResponse,
-} from './types/cleaner-types';
-import {
- CompanyEnrichmentParams,
- CompanyEnrichmentResponse,
- PersonEnrichmentParams,
- PersonEnrichmentResponse,
-} from './types/enrichment-types';
+import { BulkPersonRetrieveParams, BulkPersonRetrieveResponse } from './types/bulk-retrieve-types';
import { BulkPersonEnrichmentParams, BulkPersonEnrichmentResponse } from './types/bulk-types';
-import {
- autocomplete, bulk, cleaner, enrichment, identify, retrieve, search, jobTitle, skill,
-} from './endpoints';
-import {
- CompanySearchParams,
- CompanySearchResponse,
- PersonSearchParams,
- PersonSearchResponse,
-} from './types/search-types';
+import { CompanyCleanerParams, CompanyCleanerResponse, LocationCleanerParams, LocationCleanerResponse, SchoolCleanerParams, SchoolCleanerResponse } from './types/cleaner-types';
+import { CompanyResponse, PersonResponse } from './types/common-types';
+import { CompanyEnrichmentParams, CompanyEnrichmentResponse, PersonEnrichmentParams, PersonEnrichmentResponse } from './types/enrichment-types';
import { IdentifyParams, IdentifyResponse } from './types/identify-types';
-import { APISettings } from './types/api-types';
-import { RetrieveParams, RetrieveResponse } from './types/retrieve-types';
import { JobTitleParams, JobTitleResponse } from './types/jobTitle-types';
+import { RetrieveParams, RetrieveResponse } from './types/retrieve-types';
+import { CompanySearchParams, CompanySearchResponse, PersonSearchParams, PersonSearchResponse } from './types/search-types';
import { SkillParams, SkillResponse } from './types/skill-types';
class PDLJS {
@@ -44,7 +27,10 @@ class PDLJS {
};
identify: (params: IdentifyParams) => Promise;
retrieve: (params: RetrieveParams) => Promise;
- bulk: (records: BulkPersonEnrichmentParams) => Promise;
+ bulk: {
+ enrichment: (records: BulkPersonEnrichmentParams) => Promise;
+ retrieve: (records: BulkPersonRetrieveParams) => Promise;
+ }
};
public company: {
@@ -82,7 +68,10 @@ class PDLJS {
elastic: (params) => search(this.basePath, this.sandboxBasePath, this.apiKey, 'elastic', params, 'person'),
sql: (params) => search(this.basePath, this.sandboxBasePath, this.apiKey, 'sql', params, 'person'),
},
- bulk: (records) => bulk(this.basePath, this.apiKey, records),
+ bulk: {
+ enrichment: (records) => bulkEnrichment(this.basePath, this.apiKey, records),
+ retrieve: (records) => bulkRetrieve(this.basePath, this.apiKey, records),
+ },
identify: (params) => identify(this.basePath, this.sandboxBasePath, this.apiKey, params),
retrieve: (params) => retrieve(this.basePath, this.apiKey, params),
};
@@ -115,31 +104,35 @@ class PDLJS {
export default PDLJS;
export type {
+ APISettings,
AutoCompleteParams,
AutoCompleteResponse,
+ BulkPersonEnrichmentParams,
+ BulkPersonEnrichmentResponse,
+ BulkPersonRetrieveParams,
+ BulkPersonRetrieveResponse,
CompanyCleanerParams,
CompanyCleanerResponse,
- LocationCleanerParams,
- LocationCleanerResponse,
- SchoolCleanerParams,
- SchoolCleanerResponse,
CompanyEnrichmentParams,
CompanyEnrichmentResponse,
- PersonEnrichmentParams,
- PersonEnrichmentResponse,
- BulkPersonEnrichmentParams,
- BulkPersonEnrichmentResponse,
+ CompanyResponse,
CompanySearchParams,
CompanySearchResponse,
- PersonSearchParams,
- PersonSearchResponse,
IdentifyParams,
IdentifyResponse,
- RetrieveParams,
- RetrieveResponse,
JobTitleParams,
JobTitleResponse,
+ LocationCleanerParams,
+ LocationCleanerResponse,
+ PersonEnrichmentParams,
+ PersonEnrichmentResponse,
+ PersonResponse,
+ PersonSearchParams,
+ PersonSearchResponse,
+ RetrieveParams,
+ RetrieveResponse,
+ SchoolCleanerParams,
+ SchoolCleanerResponse,
SkillParams,
SkillResponse,
- APISettings,
};
diff --git a/src/types/bulk-retrieve-types.ts b/src/types/bulk-retrieve-types.ts
new file mode 100644
index 0000000..2219636
--- /dev/null
+++ b/src/types/bulk-retrieve-types.ts
@@ -0,0 +1,27 @@
+import { BaseResponse, RateLimit } from './api-types';
+import { PersonResponse } from './common-types';
+
+export type BulkPersonRetrieveRequest = {
+ id: string;
+ metadata?: unknown;
+};
+
+export interface BulkPersonRetrieveParams {
+ requests: Array & {
+ pretty?: boolean;
+ filter_updated?: 'job_change' | any;
+ }
+}
+
+export interface BulkPersonRetrieveResponseItem extends BaseResponse {
+ data: PersonResponse;
+ metadata?: unknown;
+ billed: boolean;
+}
+
+// This response does extend from the BaseResponse since each item in the array has its own status
+// See https://docs.peopledatalabs.com/docs/bulk-requests
+export type BulkPersonRetrieveResponse = {
+ items: Array,
+ rateLimit: RateLimit
+};
diff --git a/src/types/bulk-types.ts b/src/types/bulk-types.ts
index ae8c4ce..df77272 100644
--- a/src/types/bulk-types.ts
+++ b/src/types/bulk-types.ts
@@ -1,5 +1,5 @@
-import { PersonEnrichmentParams, PersonEnrichmentResponse } from './enrichment-types';
import { RateLimit } from './api-types';
+import { PersonEnrichmentParams, PersonEnrichmentResponse } from './enrichment-types';
export interface BulkPersonEnrichmentRequest {
params: PersonEnrichmentParams,
diff --git a/src/types/cleaner-types.ts b/src/types/cleaner-types.ts
index 7ded4fe..6a2cb70 100644
--- a/src/types/cleaner-types.ts
+++ b/src/types/cleaner-types.ts
@@ -1,6 +1,6 @@
-import { RequireAtLeastOne } from './utility-types';
-import { LocationResponse } from './common-types';
import { BaseResponse } from './api-types';
+import { LocationResponse } from './common-types';
+import { RequireAtLeastOne } from './utility-types';
export type CleanerType = 'company' | 'school' | 'location';
@@ -39,7 +39,7 @@ export interface CompanyCleanerResponse extends BaseResponse {
export type SchoolCleanerParams = CompanyCleanerParams;
-export interface SchoolCleanerResponse extends BaseResponse{
+export interface SchoolCleanerResponse extends BaseResponse {
name?: string,
type?: string,
id?: string,
@@ -67,7 +67,7 @@ export interface LocationCleanerParams {
pretty?: boolean;
}
-export interface LocationCleanerResponse extends BaseResponse{
+export interface LocationCleanerResponse extends BaseResponse {
name?: string,
locality?: string,
region?: string,
diff --git a/src/types/common-types.ts b/src/types/common-types.ts
index a1e35b7..fe68f2e 100644
--- a/src/types/common-types.ts
+++ b/src/types/common-types.ts
@@ -193,7 +193,7 @@ export interface PersonResponse {
job_onet_minor_group?: string,
job_onet_broad_occupation?: string,
job_onet_specific_occupation?: string,
- job_onet_title?: string,
+ job_onet_specific_occupation_detail?: string,
job_summary?: string,
job_last_updated?: string,
job_start_date?: string,
@@ -237,7 +237,8 @@ export interface PersonResponse {
num_records?: number,
num_sources?: number,
first_seen?: string,
- certifications?: Array
+ certifications?: Array,
+ recommended_personal_email?: string,
}
export interface CompanyResponse {
@@ -255,6 +256,8 @@ export interface CompanyResponse {
profiles?: Array,
website?: string,
ticker?: string,
+ gics_sector?: string,
+ mic_exchange?: string,
type?: string,
summary?: string,
tags?: Array,
@@ -262,7 +265,375 @@ export interface CompanyResponse {
alternative_names?: Array,
alternative_domains?: Array,
affiliated_profiles?: Array,
- likelihood?: number
+ likelihood?: number,
+ average_employee_tenure?: number,
+ average_tenure_by_level?: {
+ cxo?: number,
+ director?: number,
+ entry?: number,
+ manager?: number,
+ owner?: number,
+ partner?: number,
+ senior?: number,
+ training?: number,
+ unpaid?: number,
+ vp?: number,
+ },
+ average_tenure_by_role?: {
+ customer_service?: number,
+ design?: number,
+ education?: number,
+ engineering?: number,
+ finance?: number,
+ health?: number,
+ human_resources?: number,
+ legal?: number,
+ marketing?: number,
+ media?: number,
+ operations?: number,
+ public_relations?: number,
+ real_estate?: number,
+ sales?: number,
+ trades?: number,
+ },
+ employee_count_by_country?: {
+ afghanistan?: number,
+ albania ?: number,
+ algeria ?: number,
+ 'american samoa' ?: number,
+ andorra ?: number,
+ angola ?: number,
+ anguilla ?: number,
+ antarctica ?: number,
+ 'antigua and barbuda' ?: number,
+ argentina ?: number,
+ armenia ?: number,
+ aruba ?: number,
+ australia?: number,
+ austria?: number,
+ azerbaijan?: number,
+ bahamas?: number,
+ bahrain?: number,
+ bangladesh?: number,
+ barbados?: number,
+ belarus?: number,
+ belgium?: number,
+ belize?: number,
+ benin?: number,
+ bermuda?: number,
+ bhutan?: number,
+ bolivia?: number,
+ 'bosnia and herzegovina'?: number,
+ botswana?: number,
+ 'bouvet island'?: number,
+ brazil?: number,
+ 'british indian ocean territory'?: number,
+ 'british virgin islands'?: number,
+ brunei?: number,
+ bulgaria?: number,
+ 'burkina faso'?: number,
+ burundi?: number,
+ cambodia?: number,
+ cameroon?: number,
+ canada?: number,
+ 'cape verde'?: number,
+ 'caribbean netherlands'?: number,
+ 'cayman islands'?: number,
+ 'central african republic'?: number,
+ chad?: number,
+ chile?: number,
+ china?: number,
+ 'christmas island'?: number,
+ 'cocos (keeling) islands'?: number,
+ colombia?: number,
+ comoros?: number,
+ 'cook islands'?: number,
+ 'costa rica'?: number,
+ croatia?: number,
+ cuba?: number,
+ curaçao?: number,
+ cyprus?: number,
+ czechia?: number,
+ 'cĂŽte dâivoire'?: number,
+ 'democratic republic of the congo'?: number,
+ denmark?: number,
+ djibouti?: number,
+ dominica?: number,
+ 'dominican republic'?: number,
+ ecuador?: number,
+ egypt?: number,
+ 'el salvador'?: number,
+ 'equatorial guinea'?: number,
+ eritrea?: number,
+ estonia?: number,
+ ethiopia?: number,
+ 'falkland islands'?: number,
+ 'faroe islands'?: number,
+ fiji?: number,
+ finland?: number,
+ france?: number,
+ 'french guiana'?: number,
+ 'french polynesia'?: number,
+ 'french southern territories'?: number,
+ gabon?: number,
+ gambia?: number,
+ georgia?: number,
+ germany?: number,
+ ghana?: number,
+ gibraltar?: number,
+ greece?: number,
+ greenland?: number,
+ grenada?: number,
+ guadeloupe?: number,
+ guam?: number,
+ guatemala?: number,
+ guernsey?: number,
+ guinea?: number,
+ 'guinea-bissau'?: number,
+ guyana?: number,
+ haiti?: number,
+ 'heard island and mcdonald islands'?: number,
+ honduras?: number,
+ 'hong kong'?: number,
+ hungary?: number,
+ iceland?: number,
+ india?: number,
+ indonesia?: number,
+ iran?: number,
+ iraq?: number,
+ ireland?: number,
+ 'isle of man'?: number,
+ israel?: number,
+ italy?: number,
+ 'ivory coast'?: number,
+ jamaica?: number,
+ japan?: number,
+ jersey?: number,
+ jordan?: number,
+ kazakhstan?: number,
+ kenya?: number,
+ kiribati?: number,
+ kosovo?: number,
+ kuwait?: number,
+ kyrgyzstan?: number,
+ laos?: number,
+ latvia?: number,
+ lebanon?: number,
+ lesotho?: number,
+ liberia?: number,
+ libya?: number,
+ liechtenstein?: number,
+ lithuania?: number,
+ luxembourg?: number,
+ macau?: number,
+ macedonia?: number,
+ madagascar?: number,
+ malawi?: number,
+ malaysia?: number,
+ maldives?: number,
+ mali?: number,
+ malta?: number,
+ 'marshall islands'?: number,
+ martinique?: number,
+ mauritania?: number,
+ mauritius?: number,
+ mayotte?: number,
+ mexico?: number,
+ micronesia?: number,
+ moldova?: number,
+ monaco?: number,
+ mongolia?: number,
+ montenegro?: number,
+ montserrat?: number,
+ morocco?: number,
+ mozambique?: number,
+ myanmar?: number,
+ namibia?: number,
+ nauru?: number,
+ nepal?: number,
+ netherlands?: number,
+ 'netherlands antilles'?: number,
+ 'new caledonia'?: number,
+ 'new zealand'?: number,
+ nicaragua?: number,
+ niger?: number,
+ nigeria?: number,
+ niue?: number,
+ 'norfolk island'?: number,
+ 'north korea'?: number,
+ 'northern mariana islands'?: number,
+ norway?: number,
+ oman?: number,
+ pakistan?: number,
+ palau?: number,
+ palestine?: number,
+ panama?: number,
+ 'papua new guinea'?: number,
+ paraguay?: number,
+ peru?: number,
+ philippines?: number,
+ pitcairn?: number,
+ poland?: number,
+ portugal?: number,
+ 'puerto rico'?: number,
+ qatar?: number,
+ 'republic of the congo'?: number,
+ romania?: number,
+ russia?: number,
+ rwanda?: number,
+ réunion?: number,
+ 'saint barthélemy'?: number,
+ 'saint helena'?: number,
+ 'saint kitts and nevis'?: number,
+ 'saint lucia'?: number,
+ 'saint martin'?: number,
+ 'saint pierre and miquelon'?: number,
+ 'saint vincent and the grenadines'?: number,
+ samoa?: number,
+ 'san marino'?: number,
+ 'saudi arabia'?: number,
+ senegal?: number,
+ serbia?: number,
+ seychelles?: number,
+ 'sierra leone'?: number,
+ singapore?: number,
+ 'sint maarten'?: number,
+ slovakia?: number,
+ slovenia?: number,
+ 'solomon islands'?: number,
+ somalia?: number,
+ 'south africa'?: number,
+ 'south georgia and the south sandwich islands'?: number,
+ 'south korea'?: number,
+ 'south sudan'?: number,
+ spain?: number,
+ 'sri lanka'?: number,
+ sudan?: number,
+ suriname?: number,
+ 'svalbard and jan mayen'?: number,
+ swaziland?: number,
+ sweden?: number,
+ switzerland?: number,
+ syria?: number,
+ 'sĂŁo tomĂ© and prĂncipe'?: number,
+ taiwan?: number,
+ tajikistan?: number,
+ tanzania?: number,
+ thailand?: number,
+ 'timor-leste'?: number,
+ togo?: number,
+ tokelau?: number,
+ tonga?: number,
+ 'trinidad and tobago'?: number,
+ tunisia?: number,
+ 'turkey' ?: number,
+ 'turkmenistan'?: number,
+ 'turks and caicos islands'?: number,
+ tuvalu?: number,
+ 'u.s. virgin islands'?: number,
+ uganda?: number,
+ ukraine?: number,
+ 'united arab emirates'?: number,
+ 'united kingdom'?: number,
+ 'united states'?: number,
+ 'united states minor outlying islands'?: number,
+ uruguay?: number,
+ uzbekistan?: number,
+ vanuatu?: number,
+ 'vatican city'?: number,
+ venezuela?: number,
+ vietnam?: number,
+ 'wallis and futuna'?: number,
+ 'western sahara'?: number,
+ yemen?: number,
+ zambia?: number,
+ zimbabwe?: number,
+ 'Ă
land islands'?: number,
+ 'Ă„land islands'?: number,
+ },
+ employee_count_by_month?: object,
+ employee_count_by_month_by_level?: object,
+ employee_count_by_month_by_role?: object,
+ employee_churn_rate: {
+ '3_month'?: number,
+ '6_month'?: number,
+ '12_month'?: number,
+ '24_month'?: number,
+ },
+ employee_growth_rate?: {
+ '3_month'?: number,
+ '6_month'?: number,
+ '12_month'?: number,
+ '24_month'?: number,
+ },
+ gross_additions_by_month?: object,
+ gross_departures_by_month?: object,
+ inferred_revenue?: string,
+ recent_exec_departures?: Array<{
+ departed_date?: string,
+ pdl_id?: string,
+ job_title?: string,
+ job_title_role?: string,
+ job_title_sub_role?: string,
+ job_title_levels?: Array,
+ new_company_id?: string,
+ new_company_job_title?: string,
+ new_company_job_title_role?: string,
+ new_company_job_title_sub_role?: string,
+ new_company_job_title_levels?: Array,
+ }>,
+ recent_exec_hires?: Array<{
+ joined_date?: string,
+ pdl_id?: string,
+ job_title?: string,
+ job_title_role?: string,
+ job_title_sub_role?: string,
+ job_title_levels?: Array,
+ previous_company_id?: string,
+ previous_company_job_title?: string,
+ previous_company_job_title_role?: string,
+ previous_company_job_title_sub_role?: string,
+ previous_company_job_title_levels?: Array,
+ }>,
+ top_next_employers_by_role?: {
+ customer_service?: object,
+ design?: object,
+ education?: object,
+ engineering?: object,
+ finance?: object,
+ health?: object,
+ human_resources?: object,
+ legal?: object,
+ marketing?: object,
+ media?: object,
+ operations?: object,
+ public_relations?: object,
+ real_estate?: object,
+ sales?: object,
+ trades?: object,
+ },
+ top_previous_employers_by_role?: {
+ customer_service?: object,
+ design?: object,
+ education?: object,
+ engineering?: object,
+ finance?: object,
+ health?: object,
+ human_resources?: object,
+ legal?: object,
+ marketing?: object,
+ media?: object,
+ operations?: object,
+ public_relations?: object,
+ real_estate?: object,
+ sales?: object,
+ trades?: object,
+ },
+ top_us_employee_metros: object,
+ all_subsidiaries?: Array,
+ direct_subsidiaries?: Array,
+ immediate_parent?: string,
+ ultimate_parent?: string,
}
export interface ErrorResponse {
diff --git a/src/types/enrichment-types.ts b/src/types/enrichment-types.ts
index 17a15ce..6d7b679 100644
--- a/src/types/enrichment-types.ts
+++ b/src/types/enrichment-types.ts
@@ -1,6 +1,6 @@
-import { RequireAtLeastOne } from './utility-types';
import { BaseResponse } from './api-types';
import { CompanyResponse, PersonResponse } from './common-types';
+import { RequireAtLeastOne } from './utility-types';
export type EnrichmentType = 'company' | 'person';
diff --git a/src/types/retrieve-types.ts b/src/types/retrieve-types.ts
index 20f4de0..6dd71ff 100644
--- a/src/types/retrieve-types.ts
+++ b/src/types/retrieve-types.ts
@@ -5,8 +5,10 @@ export type RetrieveParams = {
id: string;
} & {
pretty?: boolean;
+ filter_updated?: 'job_change' | any;
};
export interface RetrieveResponse extends BaseResponse {
data: PersonResponse
+ billed: boolean;
}
diff --git a/src/types/search-types.ts b/src/types/search-types.ts
index f959e60..8d48631 100644
--- a/src/types/search-types.ts
+++ b/src/types/search-types.ts
@@ -34,4 +34,4 @@ export interface PersonSearchResponse extends BaseSearchResponse
export interface CompanySearchParams extends BaseSearchParams {}
-export interface CompanySearchResponse extends BaseSearchResponse{}
+export interface CompanySearchResponse extends BaseSearchResponse {}
diff --git a/src/utils/api-utils.ts b/src/utils/api-utils.ts
index 30df94e..9b75185 100644
--- a/src/utils/api-utils.ts
+++ b/src/utils/api-utils.ts
@@ -1,4 +1,5 @@
import { AxiosResponse } from 'axios';
+
import { RateLimit } from '../types/api-types';
// eslint-disable-next-line import/prefer-default-export
diff --git a/tests/index.test.js b/tests/index.test.js
index d4c660d..412842b 100644
--- a/tests/index.test.js
+++ b/tests/index.test.js
@@ -2,7 +2,8 @@
import { expect } from 'chai';
import dotenv from 'dotenv';
-// eslint-disable-next-line
+
+// eslint-disable-next-line import/extensions
import PDLJS from '../dist/index.m.js';
dotenv.config({ path: './.env.local' });
@@ -42,6 +43,13 @@ const personElastic = {
const personID = 'qEnOZ5Oh0poWnQ1luFBfVw_0000';
+const bulkRecords = {
+ requests: [
+ { id: 'qEnOZ5Oh0poWnQ1luFBfVw_0000' },
+ { id: 'PzFD15NINdBWNULBBkwlig_0000' },
+ ],
+};
+
const website = 'peopledatalabs.com';
const companySQL = "SELECT * FROM company WHERE tags='big data' AND industry='financial services' AND location.country='united states';";
@@ -96,11 +104,11 @@ describe('Person Enrichment', () => {
});
});
-describe('Person Identify', () => {
- it(`Should Return Person Record for ${phone}`, (done) => {
- PDLJSClient.person.identify({ phone: '4155688415' }).then((data) => {
- expect(data.status).to.equal(200);
- expect(data).to.be.a('object');
+describe('Person Bulk Enrichment', () => {
+ it(`Should Return Person Records for ${JSON.stringify(records)}`, (done) => {
+ PDLJSClient.person.bulk.enrichment(records).then((data) => {
+ expect(data.items.length).to.equal(2);
+ expect(data.items).to.be.a('array');
done();
}).catch((error) => {
expect(error).to.be.a('object');
@@ -108,10 +116,10 @@ describe('Person Identify', () => {
});
});
- it('Should Error for Person Identify', (done) => {
- PDLJSClient.person.identify().then((data) => {
- expect(data.status).to.equal(200);
- expect(data).to.be.a('object');
+ it('Should Error for Person Bulk Enrichment', (done) => {
+ PDLJSClient.person.bulk.enrichment().then((data) => {
+ expect(data.items.length).to.equal(2);
+ expect(data.items).to.be.a('array');
done();
}).catch((error) => {
expect(error).to.be.a('object');
@@ -120,11 +128,11 @@ describe('Person Identify', () => {
});
});
-describe('Person Bulk', () => {
- it(`Should Return Person Records for ${JSON.stringify(records)}`, (done) => {
- PDLJSClient.person.bulk(records).then((data) => {
- expect(data.items.length).to.equal(2);
- expect(data.items).to.be.a('array');
+describe('Person Identify', () => {
+ it(`Should Return Person Record for ${phone}`, (done) => {
+ PDLJSClient.person.identify({ phone: '4155688415' }).then((data) => {
+ expect(data.status).to.equal(200);
+ expect(data).to.be.a('object');
done();
}).catch((error) => {
expect(error).to.be.a('object');
@@ -132,10 +140,10 @@ describe('Person Bulk', () => {
});
});
- it('Should Error for Person Bulk', (done) => {
- PDLJSClient.person.bulk().then((data) => {
- expect(data.items.length).to.equal(2);
- expect(data.items).to.be.a('array');
+ it('Should Error for Person Identify', (done) => {
+ PDLJSClient.person.identify().then((data) => {
+ expect(data.status).to.equal(200);
+ expect(data).to.be.a('object');
done();
}).catch((error) => {
expect(error).to.be.a('object');
@@ -214,6 +222,30 @@ describe('Person Retrieve', () => {
});
});
+describe('Bulk Person Retrieve', () => {
+ it(`Should Return Person Records for ${JSON.stringify(bulkRecords)}`, (done) => {
+ PDLJSClient.person.bulk.retrieve(bulkRecords).then((data) => {
+ expect(data.status).to.equal(200);
+ expect(data).to.be.a('object');
+ done();
+ }).catch((error) => {
+ expect(error).to.be.a('object');
+ done();
+ });
+ });
+
+ it('Should Error for Bulk Person Retrieve', (done) => {
+ PDLJSClient.person.bulk.retrieve().then((data) => {
+ expect(data.status).to.equal(200);
+ expect(data).to.be.a('object');
+ done();
+ }).catch((error) => {
+ expect(error).to.be.a('object');
+ done();
+ });
+ });
+});
+
describe('Company Enrichment', () => {
it(`Should Return Company Record for ${website}`, (done) => {
PDLJSClient.company.enrichment({ website }).then((data) => {
@@ -425,7 +457,7 @@ describe('Job Title API', () => {
});
describe('Sandbox APIs', () => {
- it(`Should Return Sandbox Person Record for { email: 'irussell@example.org' }`, (done) => {
+ it('Should Return Sandbox Person Record for { email: \'irussell@example.org\' }', (done) => {
PDLJSClient.person.enrichment({ email: 'irussell@example.org', sandbox: true }).then((data) => {
expect(data.status).to.equal(200);
expect(data).to.be.a('object');
@@ -447,7 +479,7 @@ describe('Sandbox APIs', () => {
});
});
- it(`Should Return Sandbox Person Records for "SELECT * FROM person WHERE location_country='mexico';"`, (done) => {
+ it('Should Return Sandbox Person Records for "SELECT * FROM person WHERE location_country=\'mexico\';"', (done) => {
PDLJSClient.person.search.sql({ searchQuery: "SELECT * FROM person WHERE location_country='mexico';", size: 10, sandbox: true }).then((data) => {
expect(data.status).to.equal(200);
expect(data).to.be.a('object');
@@ -469,8 +501,8 @@ describe('Sandbox APIs', () => {
});
});
- it(`Should Return Sandbox Person Records for { query: { bool: { must: [{term: {location_country: "mexico"}}] } } }`, (done) => {
- PDLJSClient.person.search.elastic({ searchQuery: { query: { bool: { must: [{term: {location_country: "mexico"}}] } } }, size: 10, sandbox: true }).then((data) => {
+ it('Should Return Sandbox Person Records for { query: { bool: { must: [{term: {location_country: "mexico"}}] } } }', (done) => {
+ PDLJSClient.person.search.elastic({ searchQuery: { query: { bool: { must: [{ term: { location_country: 'mexico' } }] } } }, size: 10, sandbox: true }).then((data) => {
expect(data.status).to.equal(200);
expect(data).to.be.a('object');
done();
@@ -491,7 +523,7 @@ describe('Sandbox APIs', () => {
});
});
- it(`Should Return Sandbox Identify Person Records for { company: 'walmart' }`, (done) => {
+ it('Should Return Sandbox Identify Person Records for { company: \'walmart\' }', (done) => {
PDLJSClient.person.identify({ company: 'walmart', sandbox: true }).then((data) => {
expect(data.status).to.equal(200);
expect(data).to.be.a('object');
diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json
new file mode 100644
index 0000000..627392d
--- /dev/null
+++ b/tsconfig.eslint.json
@@ -0,0 +1,5 @@
+{
+ "extends": "./tsconfig.json",
+ "include": ["src/**/*", "tests", "example", ".eslintrc.cjs"],
+ "exclude": ["node_modules", "dist",]
+ }
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index a78abf5..0f51e95 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1222,14 +1222,14 @@
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91"
integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==
-"@typescript-eslint/eslint-plugin@^5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.1.tgz#deee67e399f2cb6b4608c935777110e509d8018c"
- integrity sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ==
- dependencies:
- "@typescript-eslint/scope-manager" "5.48.1"
- "@typescript-eslint/type-utils" "5.48.1"
- "@typescript-eslint/utils" "5.48.1"
+"@typescript-eslint/eslint-plugin@^5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3"
+ integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.48.2"
+ "@typescript-eslint/type-utils" "5.48.2"
+ "@typescript-eslint/utils" "5.48.2"
debug "^4.3.4"
ignore "^5.2.0"
natural-compare-lite "^1.4.0"
@@ -1237,72 +1237,72 @@
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/parser@^5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.1.tgz#d0125792dab7e232035434ab8ef0658154db2f10"
- integrity sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA==
+"@typescript-eslint/parser@^5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3"
+ integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==
dependencies:
- "@typescript-eslint/scope-manager" "5.48.1"
- "@typescript-eslint/types" "5.48.1"
- "@typescript-eslint/typescript-estree" "5.48.1"
+ "@typescript-eslint/scope-manager" "5.48.2"
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/typescript-estree" "5.48.2"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz#39c71e4de639f5fe08b988005beaaf6d79f9d64d"
- integrity sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ==
+"@typescript-eslint/scope-manager@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc"
+ integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==
dependencies:
- "@typescript-eslint/types" "5.48.1"
- "@typescript-eslint/visitor-keys" "5.48.1"
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/visitor-keys" "5.48.2"
-"@typescript-eslint/type-utils@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz#5d94ac0c269a81a91ad77c03407cea2caf481412"
- integrity sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==
+"@typescript-eslint/type-utils@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7"
+ integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==
dependencies:
- "@typescript-eslint/typescript-estree" "5.48.1"
- "@typescript-eslint/utils" "5.48.1"
+ "@typescript-eslint/typescript-estree" "5.48.2"
+ "@typescript-eslint/utils" "5.48.2"
debug "^4.3.4"
tsutils "^3.21.0"
-"@typescript-eslint/types@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.1.tgz#efd1913a9aaf67caf8a6e6779fd53e14e8587e14"
- integrity sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==
+"@typescript-eslint/types@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e"
+ integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==
-"@typescript-eslint/typescript-estree@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz#9efa8ee2aa471c6ab62e649f6e64d8d121bc2056"
- integrity sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==
+"@typescript-eslint/typescript-estree@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0"
+ integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==
dependencies:
- "@typescript-eslint/types" "5.48.1"
- "@typescript-eslint/visitor-keys" "5.48.1"
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/visitor-keys" "5.48.2"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/utils@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.1.tgz#20f2f4e88e9e2a0961cbebcb47a1f0f7da7ba7f9"
- integrity sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==
+"@typescript-eslint/utils@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3"
+ integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==
dependencies:
"@types/json-schema" "^7.0.9"
"@types/semver" "^7.3.12"
- "@typescript-eslint/scope-manager" "5.48.1"
- "@typescript-eslint/types" "5.48.1"
- "@typescript-eslint/typescript-estree" "5.48.1"
+ "@typescript-eslint/scope-manager" "5.48.2"
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/typescript-estree" "5.48.2"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
semver "^7.3.7"
-"@typescript-eslint/visitor-keys@5.48.1":
- version "5.48.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz#79fd4fb9996023ef86849bf6f904f33eb6c8fccb"
- integrity sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==
+"@typescript-eslint/visitor-keys@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060"
+ integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==
dependencies:
- "@typescript-eslint/types" "5.48.1"
+ "@typescript-eslint/types" "5.48.2"
eslint-visitor-keys "^3.3.0"
acorn-jsx@^5.3.2:
@@ -2365,6 +2365,11 @@ eslint-plugin-react@^7.32.0:
semver "^6.3.0"
string.prototype.matchall "^4.0.8"
+eslint-plugin-simple-import-sort@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz#9d9a2372b0606e999ea841b10458a370a6ccc160"
+ integrity sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==
+
eslint-plugin-unused-imports@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz"
@@ -2410,10 +2415,10 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@^8.31.0:
- version "8.31.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524"
- integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==
+eslint@^8.32.0:
+ version "8.32.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861"
+ integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==
dependencies:
"@eslint/eslintrc" "^1.4.1"
"@humanwhocodes/config-array" "^0.11.8"