@affixapi/integrator
Advanced tools
+30
-31
| { | ||
| "$schema": "https://json.schemastore.org/package", | ||
| "name": "@affixapi/integrator", | ||
| "version": "1.0.11", | ||
| "version": "1.0.12", | ||
| "main": "index.js", | ||
@@ -23,4 +23,4 @@ "typings": "index.d.ts", | ||
| "eslint": "eslint .", | ||
| "start": "node --no-warnings --experimental-modules --loader=extensionless/register dist/app.js", | ||
| "dev": "nodemon - exec 'tsx' src/app.ts", | ||
| "start": "node --env-file .env --no-warnings --experimental-modules --loader=extensionless/register dist/app.js", | ||
| "dev": "node --import tsx --env-file .env --watch src/app.ts", | ||
| "docker:dev": "npm run build && ./dev-resources/publish-image && ./dev-resources/run-container", | ||
@@ -34,13 +34,13 @@ "lint": "npm run eslint", | ||
| "dependencies": { | ||
| "@affixapi/api": "npm:@affixapi/api-with-joi@1.1.85", | ||
| "@affixapi/api": "npm:@affixapi/api-with-joi@1.1.101", | ||
| "@slonik/migrator": "0.12.0", | ||
| "axios": "1.7.2", | ||
| "axios": "1.7.7", | ||
| "cors": "2.8.5", | ||
| "express": "4.19.2", | ||
| "express": "4.21.1", | ||
| "express-async-handler": "1.2.0", | ||
| "extensionless": "1.9.9", | ||
| "joi": "17.13.1", | ||
| "jose": "5.3.0", | ||
| "pg-promise": "11.8.0", | ||
| "pino": "9.1.0", | ||
| "joi": "17.13.3", | ||
| "jose": "5.9.6", | ||
| "pg-promise": "11.10.1", | ||
| "pino": "9.5.0", | ||
| "slonik": "29.2.0" | ||
@@ -55,34 +55,33 @@ }, | ||
| "@types/faker": "5.5.9", | ||
| "@types/jest": "29.5.12", | ||
| "@types/node": "20.14.0", | ||
| "@types/jest": "29.5.14", | ||
| "@types/node": "22.8.7", | ||
| "@types/supertest": "6.0.2", | ||
| "@typescript-eslint/eslint-plugin": "7.11.0", | ||
| "@typescript-eslint/parser": "7.11.0", | ||
| "@typescript-eslint/eslint-plugin": "7.17.0", | ||
| "@typescript-eslint/parser": "7.18.0", | ||
| "depcheck": "1.4.7", | ||
| "eslint": "8.57.0", | ||
| "eslint": "8.57.1", | ||
| "eslint-config-prettier": "9.1.0", | ||
| "eslint-config-typescript": "3.0.0", | ||
| "eslint-import-resolver-typescript": "3.6.1", | ||
| "eslint-plugin-import": "2.29.1", | ||
| "eslint-plugin-jest": "28.5.0", | ||
| "eslint-import-resolver-typescript": "3.6.3", | ||
| "eslint-plugin-import": "2.31.0", | ||
| "eslint-plugin-jest": "28.8.3", | ||
| "eslint-plugin-node": "11.1.0", | ||
| "eslint-plugin-prettier": "5.1.3", | ||
| "eslint-plugin-security": "3.0.0", | ||
| "eslint-plugin-prettier": "5.2.1", | ||
| "eslint-plugin-security": "3.0.1", | ||
| "eslint-plugin-sort-keys-fix": "1.1.2", | ||
| "eslint-plugin-typescript-sort-keys": "3.2.0", | ||
| "eslint-plugin-typescript-sort-keys": "3.3.0", | ||
| "faker": "5.5.3", | ||
| "husky": "9.0.11", | ||
| "husky": "9.1.6", | ||
| "jest": "29.7.0", | ||
| "nodemon": "3.1.2", | ||
| "pg-mem": "2.8.1", | ||
| "prettier": "3.3.0", | ||
| "pg-mem": "3.0.3", | ||
| "prettier": "3.3.3", | ||
| "supertest": "7.0.0", | ||
| "ts-jest": "29.1.4", | ||
| "ts-jest": "29.2.5", | ||
| "ts-node": "10.9.2", | ||
| "ts-patch": "3.1.2", | ||
| "ts-patch": "3.2.1", | ||
| "tsconfig-paths": "4.2.0", | ||
| "tsx": "4.11.2", | ||
| "typescript": "5.4.5", | ||
| "typescript-transform-paths": "3.4.7", | ||
| "umzug": "3.8.0" | ||
| "tsx": "4.19.2", | ||
| "typescript": "5.5.4", | ||
| "typescript-transform-paths": "3.5.1", | ||
| "umzug": "3.8.2" | ||
| }, | ||
@@ -89,0 +88,0 @@ "commitlint": { |
+22
-5
@@ -21,3 +21,3 @@ # integrator | ||
| [](https://www.loom.com/share/f8d674ad58a444c7ba953ea85dd0c2e5 "Integrating Affix API: A Quick and Easy Demo 👍") | ||
| [](https://www.loom.com/share/f8d674ad58a444c7ba953ea85dd0c2e5 "Integrating Affix API: A Quick and Easy Demo 👍") | ||
@@ -32,2 +32,4 @@ [](https://www.loom.com/share/8dedf54a643543a8941fa480fc27fbb2 "Integrating Affix API: A Quick and Easy Demo 👍") | ||
| docker login ghcr.io --username YOUR_GITHUB_USERNAME | ||
| docker compose up | ||
@@ -56,7 +58,22 @@ ``` | ||
| Create the `.env` file and edit appropriately. | ||
| ``` | ||
| export CLIENT_ID='' | ||
| export CLIENT_SECRET='' | ||
| export REDIRECT_URI='http://localhost:8080/callback' | ||
| export NODE_ENV=dev | ||
| cp .env.EXAMPLE .env | ||
| ``` | ||
| do note, depending if you are running the app locally or within docker, you | ||
| will need to change the `DB_CXN_STR` | ||
| ```bash | ||
| DB_CXN_STR=postgres://postgres:affixapi@localhost:5432/postgres # locally | ||
| DB_CXN_STR=postgres://postgres:affixapi@postgres:5432/postgres # in docker | ||
| ``` | ||
| ``` | ||
| export CLIENT_ID='' # your client_id for the respective environment provided for you in your onboarding document | ||
| export CLIENT_SECRET='' # your client_id for the respective environment provided for you in your onboarding document | ||
| export REDIRECT_URI='http://localhost:8080/callback' # for testing you can leave as is. for development/production environments put your real redirect url for the respective environment | ||
| export NODE_ENV=dev # dev or prod | ||
| export HOST=0.0.0.0 # interface the node server listens on. either `0.0.0.0` (for server running in docker or accepting non-local traffic) or `localhost` (for local testing) | ||
@@ -63,0 +80,0 @@ export PORT=8080 |
+37
-84
@@ -16,14 +16,8 @@ import type * as api from '@affixapi/api'; | ||
| }) => Promise<{ | ||
| id: string; | ||
| remote_id: string; | ||
| id: string | null; | ||
| remote_id: string | null; | ||
| legal_name: string | null; | ||
| display_name: string | null; | ||
| tax_id: string | null; | ||
| address: { | ||
| street_address: string | null; | ||
| locality: string | null; | ||
| administrative_area: string | null; | ||
| country: "BZ" | "CA" | "CR" | "GT" | "MX" | "PA" | "SV" | "US" | "AR" | "BR" | "CL" | "PE" | "AT" | "BE" | "CH" | "CY" | "CZ" | "DE" | "DK" | "EE" | "ES" | "FI" | "FR" | "GB" | "GR" | "IE" | "IM" | "IS" | "IT" | "LI" | "LT" | "LU" | "LV" | "NL" | "NO" | "PL" | "RO" | "RU" | "SE" | "SK" | "CN" | "HK" | "ID" | "IL" | "IN" | "JP" | "KR" | "MO" | "MY" | "PH" | "PS" | "SG" | "TH" | "TR" | "TW" | "VN" | "ZA" | "AU" | "NZ" | null; | ||
| post_code: string | null; | ||
| } | null; | ||
| address: api.openapi.components["schemas"]["addressResponse"]; | ||
| }[]>; | ||
@@ -46,7 +40,7 @@ export declare const xhrEmployees: ({ accessToken }: { | ||
| gender: "male" | "female" | "not_specified" | null; | ||
| ethnicity: "not_specified" | "asian" | "black" | "hispanic" | "mixed" | "other" | "white" | null; | ||
| marital_status: "not_specified" | "other" | "single" | "married" | "divorced" | null; | ||
| ethnicity: null | "asian" | "black" | "hispanic" | "mixed" | "not_specified" | "other" | "white"; | ||
| marital_status: "single" | "married" | "divorced" | "not_specified" | "other" | null; | ||
| date_of_birth: string | null; | ||
| employment_status: "active" | "inactive" | "pending" | "leave" | null; | ||
| employment_type: "other" | "full_time" | "part_time" | "contractor" | null; | ||
| employment_status: api.openapi.components["schemas"]["employment-statusResponse"]; | ||
| employment_type: null | "full_time" | "part_time" | "contractor" | "other"; | ||
| start_date: string | null; | ||
@@ -56,23 +50,5 @@ remote_created_at: string | null; | ||
| avatar: string | null; | ||
| home_location: { | ||
| street_address: string | null; | ||
| locality: string | null; | ||
| administrative_area: string | null; | ||
| country: "BZ" | "CA" | "CR" | "GT" | "MX" | "PA" | "SV" | "US" | "AR" | "BR" | "CL" | "PE" | "AT" | "BE" | "CH" | "CY" | "CZ" | "DE" | "DK" | "EE" | "ES" | "FI" | "FR" | "GB" | "GR" | "IE" | "IM" | "IS" | "IT" | "LI" | "LT" | "LU" | "LV" | "NL" | "NO" | "PL" | "RO" | "RU" | "SE" | "SK" | "CN" | "HK" | "ID" | "IL" | "IN" | "JP" | "KR" | "MO" | "MY" | "PH" | "PS" | "SG" | "TH" | "TR" | "TW" | "VN" | "ZA" | "AU" | "NZ" | null; | ||
| post_code: string | null; | ||
| } | null; | ||
| work_location: { | ||
| id: string | null; | ||
| remote_id: string | null; | ||
| name: string | null; | ||
| type: string | null; | ||
| address: { | ||
| street_address: string | null; | ||
| locality: string | null; | ||
| administrative_area: string | null; | ||
| country: "BZ" | "CA" | "CR" | "GT" | "MX" | "PA" | "SV" | "US" | "AR" | "BR" | "CL" | "PE" | "AT" | "BE" | "CH" | "CY" | "CZ" | "DE" | "DK" | "EE" | "ES" | "FI" | "FR" | "GB" | "GR" | "IE" | "IM" | "IS" | "IT" | "LI" | "LT" | "LU" | "LV" | "NL" | "NO" | "PL" | "RO" | "RU" | "SE" | "SK" | "CN" | "HK" | "ID" | "IL" | "IN" | "JP" | "KR" | "MO" | "MY" | "PH" | "PS" | "SG" | "TH" | "TR" | "TW" | "VN" | "ZA" | "AU" | "NZ" | null; | ||
| post_code: string | null; | ||
| } | null; | ||
| } | null; | ||
| manager: { | ||
| home_location: api.openapi.components["schemas"]["addressResponse"]; | ||
| work_location: api.openapi.components["schemas"]["locationResponse"]; | ||
| manager: ({ | ||
| first_name: string | null; | ||
@@ -83,4 +59,4 @@ last_name: string | null; | ||
| remote_id: string | null; | ||
| } | null; | ||
| bank_account: { | ||
| }) | null; | ||
| bank_account: ({ | ||
| account_number: string | null; | ||
@@ -91,33 +67,12 @@ bank_name: string | null; | ||
| iban: string | null; | ||
| } | null; | ||
| employment_history: { | ||
| job_title: string | null; | ||
| effective_date: string | null; | ||
| group_id: string | null; | ||
| group_remote_id: string | null; | ||
| group_name: string | null; | ||
| manager_id: string | null; | ||
| manager_remote_id: string | null; | ||
| }[] | null; | ||
| compensation_history: { | ||
| pay_rate: number | null; | ||
| pay_period: string | null; | ||
| pay_frequency: "other" | "year" | "weekly" | "biweekly" | "semimonthly" | "monthly" | null; | ||
| employment_type: "other" | "full_time" | "part_time" | "contractor" | null; | ||
| currency: "usd" | "gbp" | "eur" | null; | ||
| effective_date: string | null; | ||
| notes: string | null; | ||
| }[] | null; | ||
| }) | null; | ||
| employment_history: api.openapi.components["schemas"]["employment-historyResponse"][] | null; | ||
| compensation_history: api.openapi.components["schemas"]["compensation-historyResponse"][] | null; | ||
| custom_fields: Record<string, unknown> | null; | ||
| groups: { | ||
| id: string | null; | ||
| remote_id: string | null; | ||
| groups: api.openapi.components["schemas"]["Groups20230301Response"]; | ||
| dependents: (({ | ||
| name: string | null; | ||
| type: "department" | "team" | "cost_centre" | "pay_group" | null; | ||
| }[] | null; | ||
| dependents: { | ||
| name: string | null; | ||
| relationship: string | null; | ||
| }[] | null; | ||
| emergency_contacts: { | ||
| })[]) | null; | ||
| emergency_contacts: (({ | ||
| first_name: string | null; | ||
@@ -128,3 +83,3 @@ last_name: string | null; | ||
| primary_contact: boolean | null; | ||
| }[] | null; | ||
| })[]) | null; | ||
| }[]>; | ||
@@ -137,3 +92,3 @@ export declare const xhrGroups: ({ accessToken }: { | ||
| name: string | null; | ||
| type: "department" | "team" | "cost_centre" | "pay_group" | null; | ||
| type: null | "department" | "team" | "cost_centre" | "pay_group"; | ||
| }[] | null>; | ||
@@ -154,4 +109,4 @@ export declare const xhrIdentity: ({ accessToken }: { | ||
| remote_id: string; | ||
| state: "pending" | "paid" | null; | ||
| type: "regular" | "one_time" | "off_cycle" | "correction" | "reversal" | null; | ||
| state: "paid" | "pending" | null; | ||
| type: api.openapi.components["schemas"]["payrun-typeResponse"]; | ||
| start_date: string | null; | ||
@@ -171,4 +126,4 @@ end_date: string | null; | ||
| payrun_remote_id: string; | ||
| payrun_type: "regular" | "one_time" | "off_cycle" | "correction" | "reversal" | null; | ||
| currency: "usd" | "gbp" | "eur" | null; | ||
| payrun_type: api.openapi.components["schemas"]["payrun-typeResponse"]; | ||
| currency: api.openapi.components["schemas"]["currency-not-nullResponse"]; | ||
| gross_pay: number | null; | ||
@@ -179,7 +134,7 @@ net_pay: number | null; | ||
| payment_date: string; | ||
| earnings: { | ||
| earnings: (({ | ||
| name: string; | ||
| amount: number; | ||
| hours: number | null; | ||
| }[] | null; | ||
| })[]) | null; | ||
| contributions: { | ||
@@ -193,6 +148,10 @@ name: string; | ||
| }[] | null; | ||
| taxes: { | ||
| taxes: (({ | ||
| name: string; | ||
| amount: number; | ||
| employer_tax: boolean | null; | ||
| })[]) | null; | ||
| reimbursements: { | ||
| name: string; | ||
| amount: number; | ||
| }[] | null; | ||
@@ -227,4 +186,4 @@ }[]>; | ||
| amount: number; | ||
| unit: "hours" | "days" | "months" | null; | ||
| status: "pending" | "approved" | "rejected" | null; | ||
| unit: null | "hours" | "days" | "months"; | ||
| status: null | "approved" | "pending" | "rejected"; | ||
| employee_note: string | null; | ||
@@ -234,3 +193,3 @@ policy_id: string | null; | ||
| policy_name: string | null; | ||
| policy_type: "bereavement" | "holiday" | "jury_duty" | "personal" | "sick" | "vacation" | "volunteer" | null; | ||
| policy_type: api.openapi.components["schemas"]["policy-typeResponse"]; | ||
| remote_created_at: string | null; | ||
@@ -249,3 +208,3 @@ remote_modified_at: string | null; | ||
| policy_name: string | null; | ||
| policy_type: "bereavement" | "holiday" | "jury_duty" | "personal" | "sick" | "vacation" | "volunteer" | null; | ||
| policy_type: api.openapi.components["schemas"]["policy-typeResponse"]; | ||
| remote_created_at: string | null; | ||
@@ -261,9 +220,3 @@ remote_modified_at: string | null; | ||
| type: string | null; | ||
| address: { | ||
| street_address: string | null; | ||
| locality: string | null; | ||
| administrative_area: string | null; | ||
| country: "BZ" | "CA" | "CR" | "GT" | "MX" | "PA" | "SV" | "US" | "AR" | "BR" | "CL" | "PE" | "AT" | "BE" | "CH" | "CY" | "CZ" | "DE" | "DK" | "EE" | "ES" | "FI" | "FR" | "GB" | "GR" | "IE" | "IM" | "IS" | "IT" | "LI" | "LT" | "LU" | "LV" | "NL" | "NO" | "PL" | "RO" | "RU" | "SE" | "SK" | "CN" | "HK" | "ID" | "IL" | "IN" | "JP" | "KR" | "MO" | "MY" | "PH" | "PS" | "SG" | "TH" | "TR" | "TW" | "VN" | "ZA" | "AU" | "NZ" | null; | ||
| post_code: string | null; | ||
| } | null; | ||
| address: api.openapi.components["schemas"]["addressResponse"]; | ||
| } | null)[]>; | ||
@@ -270,0 +223,0 @@ export declare const callMostEndpoints: ({ accessToken, startDate, endDate, }: { |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 10 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 10 instances in 1 package
37
-2.63%139
13.93%97651
-2.19%821
-5.85%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated
Updated
Updated